HITB – The Exploit Distribution Mechanism in Browser Exploit Packs

보안 분야의 흐름을 보면, 크래커(Cracker)들이 과거 기관 또는 특정 사이트의 서버를 대상으로 하는 공격이 주를 이루었다. 하지만, 이러한 공격을 받으면서 기업은 많은 돈을 투자하여 보안 시설을 높임으로 인해, 침투를 당하더라도 최대한 빨리 이를 인지하여 대응하고 있다. 이러한 환경은 공격자 입장에선 공격을 성공하더라도, 역추적을 통해 자신이 노출되는 결과를 나을 수 있게 된다. 그리고 이 때 당시 크래커들은 자신의 명예를 높히는 수단으로 해킹 기술을 활용하였다.

하지만 점점 해킹 기술이 범죄 조직의 돈벌이의 수단으로 사용되기 시작하면서, 공격의 대상과 목적이 달라지게 되었다. 그런 변화로 인해, 많은 크래커들이 보안에 무지한 사용자를 대상으로 공격을 진행하기 시작했다. 이는 IT 발전과도 관련이 있는데, 특히 국내의 경우 IT 인프라가 잘 구축되어 있고, 많은 사람들이 컴퓨터와 친숙하며, 인터넷 결제와 같이 거래 시스템을 전부 디지털화 되어있다. 이러한 환경 상, 공격자는 기업의 시스템에 침투하여 정보를 빼오는 리스크가 큰 일을 할 필요가 없이, 보안에 무지한 개인 사용자의 정보를 유출함으로 리스크를 감소시키면서 많은 부당 이득을 챙길 수 있는 것이다.

본 글에 나와있는 글의 내용을 보면 보통 Browser Exploit Packs(이하 BEP)는 1,500~3,000달러 선에서 거래가 되고 있다고 한다. 여기에선 이러한 BEP를 활용하여 크래커들이 어떠한 식으로 익스플로잇을 배포하는지 설명하고 있다.

유포 방법은 잘 알려진 Drive by Download Attacks 를 사용하였다. 사용자에게 이메일을 보내거나 취약한 사이트에 침투하여, iframe을 삽입하는 방식으로 사용자를 악성 사이트로 접근하게 만들고, 이 때 브라우저 익스플로잇을 사용하여 공격을 수행한다. 이런 순서만보면 이미 잘 알려진 방법인데 이런 글을 어떻게 HITB에서 받아줬을까 생각할 수 있는데, 다행히 글에선 여기서 그치지 않고 작성자들이 악성코드 배포 사이트 하나에 침투하여 소스코드를 확인하여 익스플로잇 배포 기법을 상세하게 다루고 있다.

이 익스플로잇의 배포 기법에 재미있는 점은 크게 3가지가 있다.

  1. User-Agent 정보를 이용한 익스플로잇 배포
  2. IP 정보를 활용한 효과적인 익스플로잇 관리 및 배포
  3. 배포 은닉을 위해 Content-Disposition을 이용

이 글에선 정리차원에서 각 내용을 하나하나 작성해보도록 하겠다.

1. User-Agent 정보를 이용한 익스플로잇 배포
모의해킹 중 웹해킹을 진행해보았다면, 웹 프록시 툴을 통해 HTTP 헤더를 지겹게 봐왔을 것이다. User-Agent 는 HTTP 헤더의 한 필드로 운영체제 종류 및 버전, 웹 브라우저 종류 및 버전 정보를 담고 있는 필드이다. 익스플로잇 배포 시스템은 클라이언트가 악성 웹사이트로 접근하는 클라이언트의 패킷에서 이 필드의 정보를 가져와서 운영체제 및 웹 브라우저 정보를 토대로 적절한 익스플로잇을 선정하여 배포한다.

2. IP 정보를 활용한 효과적인 익스플로잇 관리 및 배포
이 익스플로잇 배포 시스템은 클라이언트의 IP 정보를 받는다. IP 관리 데이터베이스는 받은 IP 주소와 일치하는 IP 주소가 존재하는지 확인하고 없을 시 해당 IP 주소를 데이터베이스에 저장한다. 추가적으로 IP 주소를 MaxMind의 GEOIP 라이브러리를 사용하여 해당 국가가 어느 곳인지를 파악한다. 이러한 국가 정보는 봇넷 관리 측면에서 봇넷 관리자에게 유용하게 사용될 수 있다. 만약 IP 주소가 존재한다면, 동일한 IP를 사용하여 분석가가 자신의 악성코드를 분석하는 행위를 방지하기 위해 별도의 익스플로잇을 배포하지 않는다. 이로써 크래커는 많지 않은 익스플로잇을 효과적으로 사용할 수 있는 것이다.

3. 배포 은닉을 위해 Content-Disposition을 이용
악성 웹사이트에 접근한 사용자는 악성코드 배포 시스템에서 브라우저 익스플로잇을 수행하는 악성코드를 받는다. 이 익스플로잇을 HTTP 헤더의 Content-Disposition 필드에 attachment 의 인자로 준다. 이러한 필드가 추가됨에 따라 클라이언트에서 악성 파일을 다운로드하여 실행하게 된다. 글에서 설명한 배포 시스템의 BEP는 18개의 익스플로잇을 가지고 있다.

크래커는 이와 같이 단순히 사이트를 해킹하고 자신의 악성코드 다운로드를 유도하는 단순한 방식이 아닌, 익스플로잇 배포 시스템을 구축하고 익스플로잇 팩을 사용하여, 효과적으로 익스플로잇을 관리하여 효율적인 클라이언트 점령을 수행한다.

사실 이 글은 읽은 김에 정리나해볼까 해서 쓴 글이긴 하지만, 침해사고 조사관이나 악성코드 분석관은 이러한 내용을 염두하고 조사한다면, 사고 분석에 도움이 되지 않을까 싶다.

n0fate's Forensic Space :)