2008년 04월 15일
해킹과 악성코드 이야기 - Downloader
최근에 인터넷을 통해서 유포되는 악성코드를 한넘을 살짝 잡아서 훑어보았다. 사실 최근이라는 말을 했지만 이것이 곧 최신이란 뜻은 아니다. 요즘은 해킹도 워낙 조직적이게 이뤄지기 때문에 과거에 홀연히 나타난 기인에 의해서 후다닥 해치우고 사라지는 꿈같은 이야기는 좀처럼 들을 수 없게 되었다. 뭔말이나면 악성코드에 의한 해킹이란것이 공장자동화(?)를 달성한 범죄조직에서 자행되고 있고 그러다보니 소량 다품종 생산을 한다기 보다 대량 소품종을 선호하는 추세이다. 뭐랄까.. 규모의 경제에 지배를 받게 됐다라고 하는게 맞을 듯 하다.
그래서 인터넷을 떠돌며 불쌍한 중생의 PC를 노리는 악성코드는 대부분 거기서 거기인 형태를 가지고 있게 되었다. 그럼 어떤 형태인가 한번 생각해보자. 아 그 형태를 논하기 전에 배경부터 알아보는게 순서인 듯 하다.
21세기의 시작과 함께 해킹은 점점 자동화와 익명화의 길에 들어서게 된다. 즉, 손으로 하기보다는 기계적으로 해킹하고 전파할 수 있는 방향으로, 또 근원지를 찾지 못하는 방향으로 발전하고 있다는 것이다. 해커가 일일이 PC나 서버를 해킹하기 위해 노력을 기울이기 보다는 그들의 말을 잘 들을 수 있는 우매한 PC를 손쉽게 해킹한 후 군대(troop)을 형성하여 차후에 요긴하게 사용하면 되는 것이다.
즉, 똑똑한 관리자에 의해 방어가 잘 되어 있는 서버를 직접 공격하는 것은 어떻게 보면 비효율적이며 위험한 일이다. 과거와는 달리 많은 보안 장비들이 타겟(공격목표가 되는 서버)을 둘러싸고 있고 만일에 있을 피해를 대비한 역추적 방안도 마련하고 있다. 공격지가 뚜렷하다면 최근의 포렌식 기술에서 역추적은 시간문제이다. 따라서 영웅심에 도취하여 과거와 같은 방식으로 "내가 NASA를 한번 해킹해보겠다!"라고 마음먹고 들이된다면 어떻게 될까? 운 나쁘면 맨인블랙에게 끌려가지 않을까? ㅎㅎㅎ(그럴리 없겠지만..)
이리하야 자연스럽게 다른 방법을 간구하게 되는데, 그게 좀비(zombie)라는 넘을 이용하여 간접적으로 공격하는 방법이다. 그리고 공격자들은 좀비를 이용하여 아주 단순하지만 강력한 위력을 발휘할 수 있는 공격기법이 있다는 것을 이미 잘 알고 있다. 바로 분산서비스거부공격(Distributed DoS)이다. 수많은 좀비와 이를 이용한 DDoS야 말로 가장 아름다운(?) 조합이 아닐 수 없다. 결국 이를통해 공격자들은 자동화를 통한 편리성과 익명화를 통한 안전성의 두 마리 토끼를 손에 쥐게 된다.
그럼 공격자가 해야 할 일은 무엇이가? 바로 좀비를 만들어주는 신비의 약을 만들고 이를 바보 PC들이 마실 수 있도록 만 하면 되는 것이다. 마치 시원한 청량음료를 공짜로 나눠주는 것처럼 보이도록 하면 된다. 이게 공격자가 해야 할 일이다. 최근에 발생하는 보안사고의 대부분이 'OO사이트에서 악성코드 유포!' 라는 것은 다들 알고 있을 것이다. 즉 적당하게 사람들이 사용하고 또 적당~하게 취약한 사이트를 골라 해킹을 한 후 이 신비의 약을 배포하는 프로그램을 심어두면 되는 것이다. (물론 이 방법 말고도 전파를 위한 다른 방법들이 존재한다. ex>Spam, p2p.. )
휴... 배경을 길게 설명했는데.. 결국 이런 이유로 최근에 많이 나타나는 악성코드의 형태가 다운로더(Downloader)의 형태를 가지게 된 것이다.
위에서 말한 신비의 약을 배포하는 프로그램이 바로 다운로더 악성코드 인 것이다. 하지만 복잡하게도 다운로더는 스스로 우리 PC를 공격하지 못한다. 이 다운로더가 공격에 잘 이용될 수 있도록 매개역할(medium)을 하는 넘이 바로 공격코드(Exploit Code)이다. PC상에서 공격코드가 정상적으로 동작하면 공격코드는 다운로더를 PC에서 실행하게 되고, 이 다운로더라는 넘이 원격에 위치하고 있는 신비의 약인 악성프로그램--해커가 하고자 하는 일을 하는 프로그램, 좀비만드는 넘--이 PC에 설치가 된다. 그럼 이 PC는 좀비가 되는 것이다.
그럼.. 실제 살짝 살펴본 악성코드가 가지고 있던 다운로더는 어떻게 우리의 PC에 악성프로그램을 다운로드 하는 것일까?
(실은 이야기의 본론은 이거다 -_-;; 앞은 그냥 배경일 뿐)
아래 그림을 한번 보자.

이것은 다운로더의 내부 문자열을 나열한 것이다. 한눈에 들어오는 것이 바로 악성파일의 위치인데.. (혹시나 딴지걸까봐 모자이크처리했다.) 다운로더의 목적은 저 파일을 안전하게 다운로딩 하는 것이다. 그러게 위해서 먼저 Winsock을 설정하고 URLDownloadToFileA함수를 통해 악성파일을 다운로드 할 것이다. 그 후 WinExec함수를 이용하여 프로그램을 실행하면 우리의 비싼 PC는 좀비가 될 것이다.
공격을 위해서는 지금 설명한 것말고도 더 많은 것들이 있으며 스토리가 있다. 하지만 그것은 차차... OTL
다운로드 되는 악성파일인 0.exe를 분석해보면 WinUpack으로 패킹 되어있다. 뭐 언패커로 분 다음에 디버거와 디셈블러로 노가다 뛰면 알 수 있겠지만 차후 하도록 하고 일단 sandbox tool을 통해 간단하게 살펴보면 다음과 같다.

저건 다음에 알아봐야 겠다. 이번은 어디까지나 다운로더 이야기니깐 말이다..
덧1. 앞에서 DDoS라고 했다고 모든 좀비가 다 DDoS를 위해서만 존재하지 않는다. 최근의 좀비는 할 일이 많아 바쁘다. 수시로 스팸도 뿌려야 하고 사용자가 있으면 계정정보도 갈취해서 주인님한테 보내야하고 DDoS도 해야 하고 광고나 스파이웨어도 수시로 깔아야 한다.. 혹사하고 있다.
덧2. 위에서 말한 공격이 모든 PC에 해당되는 것은 아니다. 위에서도 언급했듯이 우매한 PC에만 해당된다. 즉, 한물 간 OS를 사용하거나 보안 패치 안하거나 인터넷에 검증되지도 않은 듯보잡 사이트-주로성인이나 도박사이트-를 주 무대로 돌아다니는 OS만이 해당된다. 뭐.. 이것도 패치가 나오지 않은 취약점을 공격하는 악성코드가 발생한다면 해당되는 얘기는 아닐 것이다... -_-;;
덧3. 위에서 이야기 안했는데 왜 범죄조직은 수많은 좀비가 필요할까? 한번 생각해 봅시다. -_-;;
이글루스 가든 - professional secur...
# by | 2008/04/15 17:17 | 보안 | 트랙백 | 덧글(1)





