카테고리 없음

6. 막을 수 없는 공격 - 제로데이

#sxweet1y 2024. 6. 11. 23:34

공격을 막는것은 공격을 하는 것보다 어렵다. 어쩌면 당연한 말이다. 막는 방법은 한정되어있지만 공격하는 방법은 무한하기 때문이다. 새로운 방법으로 나타나는 공격 방식을 “제로데이 공격”이라고 한다.
이때 제로데이란 프로그램의 취약점이 공표된 날을 의미한다. 즉, 공격자들이 프로그램에 들어올 수 있는 문이 열리는 날이다. 제로데이 공격은 프로그램에서 나타나는 취약점들 중 개발자가 인지하지 못하고 있는 곳을 비집고 들어가 공격하는 방식이며 제로데이 취약점이란 대응방안이 나오기 전까지의 요소를 의미한다.
개발자나 공급업체가 이 취약점에 대해 모르고 있기에 제로데이 공격에게 대응할 수 있는 시간적 여유와 기술적 여유가 부족하다.
대응방안에 답이 없는 제로데이에 대해 사례와 함께 알아보려한다.


첫번째 사례 : CVE-2024-0519

아마 제목부터 익숙하지 않은 알파벳과 숫자들이 나와 많이 당황스러울 것이다. 이 기호는 제로데이 취약점을 나타내는 것이다.
CVE-2024-0519는 크롬 브라우저의 V8(자바 스크립트 웹브라우저 엔진) 엔진에서 발생하는 범위를 벗어난 메모리 접근의 취약점이다. 올해(2024) 첫번째로 발견된 제로데이 취약점이다. 이 취약점은 아웃오브바운드 메모리 접근 문제로 프로그램이 자신의 영역에서 벗어나 다른 프로그램의 메모리까지 접근할 수 있는 상황을 만들어낼 수 있었다. 이때 아웃오브바운드(out-of-bounds)란 악의적인 웹 콘텐츠를 처리하는 동안 공격자가 사용자의 메모리에 저장된 정보를 노출 시킬수 있는 취약점이다.
메모리에 저장된 정보들을 볼 수 있는 것도 문제이지만 시스템을 조작하고 마비시키거나 악성코드를 주입하는 일도 가능하게 한다.
사실 대응방안 또한 함께 말하고 싶어 여러 자료들을 찾아보았다. 하지만 취약점이 패치되었다는 점 말고는 구글은 다른 세부내용을 공개시키지 않고 있다. 아쉽더라도 이만 다음 사례를 알아보러 가보자.

두번째 사례: CVE-2022-41040, CVE-2022-41082

이번엔 두가지 취약점에 대해 말해보려한다. Microsoft Exchange Server 에서 발생한 취약점이다.
먼저 CVE-2022-41040이다. 이는 SSRF이라는 취약점이다. SSRF는 Server-Side Request Forgery의 약자로 서버측에서 위조된 요청을 보내도록한다. SSRF를 사용하여 공격자들은 서버측 프로그램에서 임의의 주소를 보내게하여 일반적인 유저들이 접근할 수 없었던 서버 내부에 접근을 가능하게 한다. 서버 내부에 접근 하게 되면 중요 데이터가 유출되거나 실제 허가받지 않은 행위들을 통해 범죄를 저지른다.
이 취약점의 대응방안은 공격자들이 입력할 값들을 블랙리스트 방식 또는 화이트리스트 방식으로 필터링을 시키는 방법이 있다. 사실 화이트리스트 방식보단 블랙리스트 방식이 훨씬 서버의 제약이 덜 생기기 때문에 사용자에겐 편리하지만 존재하는 모든 우회 지점들을 신경써야한다는 점이 단점이다. 또는 요청을 처리하는 서버와 중요 정보가 있는 내부망을 분리시키는 방법이 있다. 분리 시킴으로써 취약점을 이용해 접근 하더라도 중요 정보는 빼갈수 없도록 한다.
두번째로 CVE-2022-41082이다. 이는 RCE의 취약점이다. RCE는 원격코드실행을 뜻하는데 이는 공격자가 원격으로 다른 프로그램이나 네트워크에서 악성 코드를 실행할수 있는 공격이다. 공격자는 이 공격을 다양한 방법으로 이용한다. 위와 비슷하게   액세스하게 되면 공격자는 악성 코드를 사용하여 강제로 실행하도록 만든다. 또는 데이터를 도난하거나 파괴를 한다.
마이크로소프트는 이 두가지 취약점을 해결하기 위하여 취약점 완화 정책을 사용자에게 자동으로 적용하게 하였으며 마이크로소프트에서 배포한 취약점 완화 스크립트를 다운로드시켰다.



처음 내가 제로데이에 대해 알게된 것은 이 글을 쓰기전 다른 글들을 써내려갈때였다. 최초로 단어를 보았을때 단어 자체가 흥미롭게 보였고 재밌어 보여 이에 대해 더 탐구해보게 된 것이다.  사이버 보안이란 분야를 목표로 하는 이들은 사이버 공격(또는 범죄)를 목표로 하는 이들보다 한 칸 더 위에 자리잡아야 신속하게 대응할 수 있다. 하지만 바람대로 이루어진다면 사이버 보안이란 분야는 그리 멋있게 보이지 않을 것이다. 사이버 보안의 일을 하는 사람들은 공격이 어떤 경로에서 무엇을 통해 일어났는지 그때그때 파악 할 수 있어야한다. 그런 점에서 더욱더 어렵게 느껴진다. 예를 들면 살인을 저지르는 방법은 수백가지이다. 그에 반해 사건을 조사하는 경찰분들은 그 주위 물건들과 정황을 추측하여 범인을 찾아내고 살인 방법에 대해 알아내야한다. 제로데이 공격이 가장 어려운 공격인 이유는 처음보는 살인 현장이기 때문이다. 또한 살인현장의 관리자 조차도 알지 못한 은밀한 사건이다. 물론 여러 사이버보안 업계에선 많은 인력을 동원하여 최대한 빠르게 피해자들에게 보상과 프로그램 개선을 노력하고있다.
이번 사례를 찾으면서 보안 업계의 매력을 또한번 느꼈다. 내가 만약 개발자이며 프로그램의 취약점이란 구멍을 통해 몰래 들어온 이들을 찾게 된다면 무척이나 당혹스러울 것 같다. 사이버 보안 전문가들은 이러한 상황에서 침착하고, 신속하지만 또 정확하게 문제 상황을 해결 할 수 있는 능력을 요구한다. 공격에 대한 사례들과 이와 관련된 대응방법을 확인함으로써 당황하는 그 순간의 시간을 덜 수 있지 않을까 한다.