작성 순서
1. 개요 및 공격 시나리오
2. 동적 악성코드 분석
3. 악성코드 유포지 추적을 위한 정보수집 단계 #1
4. 악성코드 유포지 추적을 위한 정보수집 단계 #2
5. 공개툴을 통한 스크립트 제작
6. 완성된 스크립트를 통한 악성코드 분석 및 유포지 추적
도메인 만료기간이 다 되어가는데 도루묵은 신세한탄만 하고 있고, 저도 다른 일 해보겠다고 이직하는 바람에 이것저것 정신없다는 핑계로 안들어온지 꽤 되었네요; 다녀가신 분들은 좀 있는 것 같은데 코멘트는 없고, 가끔 물어보는 메일만 날라오네요
신년도 되었고 시간의 여유가 있을 때 마다 글을 조금 써보려고 합니다.(이건 작년에도 마음먹었던 일인데 말이죠;)
음.. 이렇게 시작하죠
DDoS가 발생했습니다. 공격이 발생했으면
첫째, DDoS 공격을 수행한 공격자가 존재하고
둘째, DDoS 공격을 받은 대상자가 존재하고(사이트 담당자 어쩔..ㅠ)
셋째, 공격을 차단하기 위해 즉각적인 분석을 수행할 CERT팀이 존재하고
넷째, 해당 바이러스의 패턴을 백신 엔진에 올리실 분들이 존재합니다.
네트워크 모니터링 장비(IPS/IDS, 뭐 A사의 Peak어쩌구, N사의 DD어쩌구등등)을 통해 DDoS 공격확인시 대상 사이트 담당자는 급당황을 하거나 내부적인 프로세스에 의해 DDoS 방어 업무 프로세스를 수행하고 상위 업체인 ISP에서는 Dst IP의 트래픽을 우회하거나 null0 routing을 수행하는 등의 활동을 수행합니다.
또한 ISP 보안관제 Cert팀에서는 해당 공격의 Src IP를 조사하여 가입자와의 통화를 시도하게 되죠. "해당 PC가 악성코드가 감염이 된 것 같다. 분석에 협조해달라" 협조에 의한 가입자의 PC를 원격분석 시도하고 C&C Domain이나 IP가 있으면, KISA등의 상급기관에 보고하거나 내부적으로 차단을 수행하게 됩니다.
여기서 모든 것들이 바로바로 이루어져야 하지만, C&C Domain이나 IP등을 찾기 위해 원격분석에 걸리는 시간은 여러가지 주변요인에 의해 시간이 많이 지체되곤 합니다(여러가지 주변 요인 : 컨텍한 가입자의 PC가 엄청난양의 트래픽을 발생시키고 있거나 PC성능에 따른 latency, 가입자의 분석요청 거절, 분석자의 기술력 등) 또한, 무한의 시간을 가지고 좀비PC를 원격으로 분석할 수 있는 것도 아니죠…. 컨텍한 사람이 "아놔 스타해야함" or "밖에 나가야함"등 시간은 한정되어 있습니다.
위에서 잠깐 언급하였지만 C&C를 통해서 이루어지는 공격이라면 ISP단에서 C&C IP를 차단하거나 Domain을 차단하는 방법이 "그나마" 빠른 DDoS 대응이라고 할 수 있겠습니다. 악성코드가 퍼진건 어쩔 수 없는 부분이지만 당장 공격은 안일어나게 할 수 있으니까요;
또한 분석시간도 좀비PC에 원격으로 붙어서 netstat 명령어랑 wireshark로 트래픽 좀 떠 보고 iceSword로 프로세스 좀 보면 악성코드 추출과 C&C 확인은 설치시간 빼고 5분도 안걸리죠.. 찾은거 바로 차단하면 됩니다. 엄~청 빠르죠
하지만 '09년 7월 7일에도 그랬듯이 C&C가 없는 공격이거나… '10년 2분기부터 달리기 시작했던 다음의 DDoS 시나리오의 공격은 ISP에서의 차단을 우회하게 됩니다.
* C&C 차단이 애매한(?) 공격 시나리오
① Attacker가 웹디스크나 p2p에 Self-Extract(이하 SFX) 기능으로 동영상과 악성코드를 묶어 exe파일 형태로 업로드합니다.
요즘에 저작권이다 뭐다 해서 exe파일로 압축파일을 올리는 경우가 많이 있습니다.(성인물로 배포되는 형태가 더 많습니다) malware.exe, 동영상.avi파일 두개에 대해서 SFX압축을 한다고 가정시 옵션에서 더블클릭이라는 마우스 이벤트가 일어남과 동시에 malware.exe가 실행되도록 조정을 해놓습니다.
당연히 디자인된 malware.exe는 압축이 풀리고 실행되더라도 사용자의 눈에서 안보이도록 바로 삭제되도록 디자인되어 실 사용자는 해당 SFX압축을 해제하였을 경우 동영상.avi만 보게 됩니다.
또한, 사람을 속여서 해당 파일을 다운받도록 해야하는데 해당 파일을 선택하여도 다음과 같이 파일이름을 길게 하면 끝의 확장자가 안보이는 경우도 많고, 아예 폴더로 올려서 "목록보기"를 클릭해야만 파일 내역들을 확인할 수 있게도 합니다.
② 우선 사용자들은 해당 파일을 다운로드 할 경우 "어 이거 왜 확장자가 exe야" 하면서 마우스 우 클릭해서 내부에 파일이 뭐가 있지 확인하는 사람이 몇이나 있을까요? 믿고서 압축을 해제하거나… 조금 이상하다 싶지만 받은 포인트가 아까워서 실행하게 됩니다.
Victim들이 해당 파일을 다운로드하여 클릭하는 순간 압축이 풀리게 되며 SFX 옵션에서 연결된 악성코드가 자동 실행되고 삭제되어 정상적으로 동영상 파일만 남는 것처럼 보여줍니다.
③ 악성코드에 감염된 Victim들이 Attacker C&C 서버 Domain을 DNS 서버에 질의하게 되며 약 5분간은 Local에 설정된 DNS Server(자신이 사용하고 있는 ISP의 DNS서버등)으로 질의하게 되며, 결과값에 상관없이 국내,해외 DNS 서버군으로 질의를 하게됩니다.
해외 DNS Server에게 C&C Domain을 질의하게 해놓았으니… 국내 ISP에서 차단해봐야 다른 곳으로 질의하기 때문에 C&C 차단효과를 볼 수 없습니다.
또한 분석자들을 낚는 효과(?)도 얻는데 wireshark등을 통해 DNS 질의하는 것을 볼 때 도메인과 IP만 보지 어떤 DNS Server로 질의하는지 확인하지 않는 경우가 많지요;
④ 감염된 Victim Group들이 DNS 서버로 질의했을 때 받은 IP로 접속을 시도합니다. 그러나 Attacker는 차단을 우회하기 위해 해외의 DDNS 서비스를 사용합니다. C&C 서버가 구동전에는 DDNS 서비스 업체에 따라 평상시에는 192.168.0.1를 response하거나 IP Addr 값을 주지 않다가 Attacker가 DDNS 서비스에 로그인하여 구동하면 실제 IP로 변경되어 접속하게 됩니다.
그러면 여기서 "그럼 C&C Domain을 막지말고 IP를 막으면 되겠네요"라고 할 수 있지만, C&C IP는 순간순간 바뀌어 구동되며, Tor Proxy 같은 툴들을 통해서 자신의 아이피가 아닌 다른 아이피로 계속 변경이 가능하여 이것도 확실한 답은 아닐 수 있습니다.
⑤ 이제 Attacker는 자신의 C&C서버를 통해 명령을 내리게 됩니다. 이때 Victim Group이 공격할 Target서버를 지정할 수 있으며, Victim들의 접속하는 C&C 서버를 변경하기 위해 다른 C&C 서버 Domain을 내포하는 악성코드를 다운로드하는 지령을 전달할 수 있습니다
⑥ 악성코드에 감염되어 형성된 Zombie군들이 Attacker가 전달한 Target 서버로 DDoS 공격을 수행합니다. 이때 공격 유형은 공격자가 원하는대로 Open Tear, UDP Flooding , ICMP Tear Drop등 다양한 패턴으로 공격을 수행할 수 있습니다.
위의 경우처럼 공격을 하는 경우 Cert팀에서 분석을 수행하더라도 난감합니다 C&C가 계속 변하고 차단할 수 없으니 이를 어쩐다…
백신 업체에서 시그니처 업데이트 한다 하여도 모든 좀비PC들에 백신이 설치되어있지 않은 이상 DDoS는 계속 발생되겠죠.
그래서 생각한 것이 유포지를 추적해서 공격을 수행한 사람에 최대한 가깝게 다가가서 공권력 있는 기관에 신고하면 어케든 되겠지 했는데…;; 이것도 신고했는데 몇달간 계속 DDoS 는 엄청난 트래픽으로 발생되고 분석만 해보면 같은건이고;; ISP들은 다들 난리고.. 참 그랬던 경험이 있습니다. '09년 7.7 DDoS 대란도 '09년 7월 5일 해외쪽 공격했던 사실이 있어 6일날 보고했다가 "우리쪽 아니니까 문제 없자나" 소리도 들었었죠;; (아..그래서 퇴사한건 아니에요 ㅋ)
따라서 이번 블로그의 "뻘"글은 정상적인 PC가 좀비PC가 될 수 밖에 없었던 이유.. 즉, 어디서 악성코드를 다운받았고 어떤식으로 전파되어 PC가 감염되었는지 등에 대해 수집해야할 정보들과 정보를 추출하는 방법.. 최종적으로는 원격지에서 스크립트를 실행하여 수집된 로그를 바탕으로 분석하는 내용에 대해서 논하고자 합니다.
별 도움이 되지 않을 수 있지만 저만의 노하우니까~ 가볍게 정보라도 가져가실 수 있다면 좋겠습니다.