2024. 1. 21. 06:36ㆍ보안관제
목차
- 분석 개요
- VirusTotal
- Exeinfo
- Peinfo
- PEview
- Bintext
- Process Explorer
- Process Monitor
- cport
- wireshark
- snort
- autoruns
- system explorer
- 악성코드 분석 보고서
분석 개요
2009년 11월 6일에 제작되었다. 해당 악성코드는 사용자가 웹사이트 이용시 키워드 검색 광고 및 새로운 탭 창에 광고를 노출시키는 것을 주목적으로 삼고 있다. 해당 악성코드를 샘플로 선정한 이유는 다음과 같다. Adware 및 downloader, spyware 와 같은 특성을 가진 샘플들이 네트워크 통신 행위가 뚜렷하다. IPS Signature Pattern을 제작하기 위해서 앞선 특성이 있어야 하기에 해당 샘플을 선택하였다.
File name | 72f528f9a6bb7e6ccf45d9e25e77badb6e9fd8533c0fd8dac26a087347ff8592 |
MD5 | d8e9c7825c9f7c3828ff4a579a965a8a |
SHA-1 | 8db1c5dcd2d583a6644f7e7d613837309b0092a5 |
SHA-256 | 72f528f9a6bb7e6ccf45d9e25e77badb6e9fd8533c0fd8dac26a087347ff8592 |
File size | 818.46 KB (838104 bytes) |
Filename Extension | .exe |
V3 Diagnosis | PUPWin32.MicroLab.R12009(Adware) |
Sample Source | Dasmalwerk |
기초분석(VirusTotal)
해당 악성코드 프로그램 분석의 방향성을 잡기위한 목적으로 바이러스 토탈에 조회해보았다. 72개의 백신 엔진 중 총 55개의 백신 엔진에서 악성코드라 진단하였다. 나아가 진단 키워드는 Adware, Trojan, virus라고 진단하였다. Adware로 대부분 진단되는 상황이다.
* adware: 특정 소프트웨어를 실행할 때 또는 설치 후 자동적으로 광고가 표시되는 프로그램
*Trojan: 정상적인 기능을 할 것처럼 보이나 실제로 다른 기능을 하는 프로그램으로 시스템의 불법적인 침입을 위한 백도어로 사용되기도함.
*Virus: 다른 프로그램 혹은 실행 코드를 숙주로 삼아 스스로를 복제함으로써 컴퓨터를 감염시키기나 퍼지는 악성 프로그램 혹은 코드
해당 자료는 VirusTotal에서 분석한 기본 정보이다. 해쉬값은 추후 무결성 검증시 활용해보도록한다. 무결성 검증을 하는 이유는 VirusTotal에서 당시 분석한 해당 프로그램과 지금 시점에서 분석한 해당 프로그램이 서로 다를 수도 있기때문이다. 만약 그렇게되면, 기초분석에서 잡은 방향성이 정적 및 동적 분석에서 틀어질 수 있다. 그러므로 해당 해시값은 정적분석시 도출한 해시값과 비교하여 같은지 확인해보도록 하겠다.
*무결성: 프로그램 변경 여부를 확인해보는 속성. 변경되면 무결성이 훼손되었다고 한다.
*무결성 검증: 무결성 훼손되었는지를 확인해보는 검사 과정이다. 이때 주로 해시값을 활용해본다. 해시값을 활용하는 이유는 해시값 자체가 해당 프로그램의 고유값을 나타내기때문이다. 그래서 해당 프로그램이 조금이라도 변경되면 이에 해당하는 고유 해시값도 변하게된다. 따라서 해시값 비교를 통해 프로그램 변경 여부 즉, 무결성 검증을 할 수 있게된다.
통신하는 사이트들이 거의 대부분 http 프로토콜을 활용하며, 220.73 대역 IP를 사용한다. 추후 네트워크 통신 분석시 참고할만한 요소이다.
위 사진은 악성코드에 감염된 호스트가 주로 이용하는 DNS 서버 주소로 확인된다. 이 또한 네트워크 분석시 참고할만 요소이다. 오른쪽 사진은 네트워크 통신 관련 항목에 해당하는 개수 들이다. 즉, HTTP 통신을 한 대상 서버 대수가 111대이고, DNS 서버는 27대, 일반 IP 통신 대상은 41개로 보인다.
실행시킨 함수 및 파일 목록들을 보면, 위와 같다. MalwareDownloader.dll 함수는 말 그대로 악성코드 다운로더라는 것으로 보아 지금 분석하고 있는 본 파일 외 추가적인 악성코드 파일을 다운로드할 것으로 보인다.
MalwareDownloader.dll의 virustoal 조회 결과, 68개의 백신 엔진 중 6개가 trojan 특성을 가진다고 진단했다.
DeadlyNightshadelll.iso 파일은 또한 57개의 백신 엔진 중 28개의 백신엔진에서 trojan 이라고 진단 받았다.
주로 http get 메소드를 보낸 것이 확인된다. 특정 사이트들에게서 압축 및 실행 파일을 다운 받기위해 해당 서버에게 GET 메소드를 사용하여 요청한 것으로 파악된다.
*GET Method: Http 프로토콜의 Method 중 하나이며, 대상의 자원을 취득 및 조회할 때 쓰이는 명령어이다.
정적 분석
- 파일 속성(무결성 검증)
파일 해시값 도출 결과, 기초 분석에서 봤던 MD5 및 SHA-1 해시값이 위 사진에 나온 MD5 및 SHA-1 값이 같은 것을 확인하였다. 왼쪽 파일 속성안 해시값이 전체적으로 안나와서 오른쪽 메모장에 옮겨 넣었다. 이를 통해 해시값을 통해 무결성 검증을 통과시켰다.
- Exeinfo
패킹처리 되어있지 않다고 나온다.
- PEinfo
교차 검증을 위해 PEID 에서 교차 검증한 결과, 이 또한 패킹되어 있지 않았다.
*패킹: 코드 제작자가 자신의 코드를 타인에게 노출시키지 않기위해 코드를 난독화처리하는 행위를 말한다. 그래서 보통 언패킹 툴을 이용하여 패킹을 푸는 것이 일반적이며, 이를 위해 먼저 패킹 처리가 되어있는지 확인해보기 위해 사용하는 툴이 Exeinfo 혹은 PEinfo이다.
- PEView
MZ를 통해 실행파일임을, This program cannot be run in DOS mode 라는 것을 통해 윈도우 파일임을 확인할 수 있다.
2009년 11월 6일 19시 53분 27초에 만들어졌으며, 32bit 파일이다.
- Bintext
위 문구를 통해 윈도우 파일임을 교차검증하였다.
thawte는 인증서 발급 기관 회사명이다. 그리고 박스친 URL들은 악성코드 사이트 접속시 필요한 인증서 파일을 다운 받기위한 것들이다. Seoul1 Guro-gu1 한국 관련 지명을 언급한 것으로 보아, 한국 PC를 피해자에 포함시켜 악성코드를 제작했거나, 한국에서 해당 악성코드를 제작한 것으로 추정된다.
hebogo.com는 지금도 운영되는 한국 사이트이다. 돈을 주면 넷상 사용자들에게 광고를 노출시켜주는 회사로 보인다. 해당 악성코드 유형이 adware라는 것으로 고려해볼 때, 감염된 로컬 호스트가 브라우저에 검색을 할 때마다 악성 코드가 hebogo 사이트의 파일을 통해 악성코드가 의도한 광고를 노출시킬 것으로 파악된다. 추후 동적 분석시 살펴보도록하겠다.
Bintext에서 보았던 위 URL을 크롬 브라우저로 접속해보았다. 현재는 조치된 것인지 해당 경로에 파일이 존재하지 않는다.
netapi32 모듈을 사용하는 것으로 보아 네트워크 행위를 할 가능성이 더 농후해졌다.
*netapi32.dll: 응용 프로그램이 Microsoft 네트워크에 액세스하는 데 사용하는 Windows 모듈
동적 분석
- 프로세스(Process Explorer)
실행시키자마자 svchost process 하위단에 winPvcSE.exe 프로세스가 실행되었다.
시간이 지난 뒤, winctrCon이라는 프로세스도 생성되었다.
또 시간이 한참 흐른 뒤, DtrMainProc.exe라는 프로세스도 나타났다 나아가 해당 프로세스의 TCP 연결을 확인해보면 앞서 기초분석에서 봐왔던 IP가 보인다. 그리고 virustotal 탭을 보면, 78개의 백신 엔진 중 51개의 백신 엔진이 악성코드가 진단하였다.
확인 결과, adware 및 tojan이라는 악성코드 특성이 확인됐다.
계속 이어서 DtsMainCon 이라는 프로세스가 DtsMainProc라는 프로세스 하단에 자식 프로세스로 생성된 것으로 보아 DtsMainProc 프로그램이 앞에서 보았던 220.73.162.52 서버에 TCP 연결을 하여 DtsMainCon 프로그램을 로컬 호스트에 다운로드한 다음, 실행시킨 것으로 보인다. 해당 프로세스는 75개의 백신 엔진 중 47개가 악성코드로 진단하였다. 나아가 winCtrCon 프로세스도 새로 생겨났으며, 75개의 백신 엔진 중 55개의 백신 엔진이 악성코드라 진단하였다. 이 모두, 악성코드 실행과 동시에 자동적으로 백그라운드 상에서 앞선 프로그램들이 로컬 호스트의 의지와 상관없이 암묵적으로 설치가 진행되었다.
이또한 adware 및 trojan 유형이다.
- 프로세스(Process Monitor)
앞서 본 WinCtrProc 만을 보도록 조건을 걸어서 확인해보도록 하였다.
그런 다음, 네트워크 통신관련 조건들만을 추가하였다.
49, 50, 59 서버와의 HTTP 통신이 비교적 높다. 수신(Receive) 로그가 눈에 띄게 많기에 해당 서버들은 추후 네트워크 분석시 더 주의 깊게 살펴보도록 한다.
- 네트워크(Cport)
winCtrProc 프로세스가 220.73.162.49 라는 IP와 통신 연결이 확립됐다는 것을 볼 수 있다. 이때, 쓰이는 프로토콜은 http이다.
- 네트워크(Wireshark)
http 통신을 기준으로 패킷 흐름을 살펴본다. 해당 프로토콜을 기준으로 살펴보는 이유는 앞서 악성코드에 감염된 로컬호스트가 주로 통신하는데 쓰이는 프로토콜이 http이었기때문이다. 이때, 악성코드 통신과 관계가 있을 것으로 보이는 초기 통신을 살펴 보면, thawte가 보인다.이는 앞서 보았던 인증서 발급 회사라고 언급했었다.(10page 참고) 해당 IP는 152.195.38.76이다. 그러면 해당 IP와 관련된 통신들은 모두 유해사이트 관련 인증서 발급과 관련된 통신이라고 예상된다.
그림1에서의 URL을 복사하여 그림2에서 보듯 크롬 브라우저에 접속하였더니 그림 3과 같이 파일을 다운받았고, 열어봤더니 그림 4와 같이 인증서 파일임을 확인할 수 있다. 해당 인증서 파일은 악성코드에 감염된 호스트가 특정 서버에 접속하기위한 파일로 보인다.
다음 패킷은 로컬 호스트가 악성코드 관련 서버에게 서버리스트를 묻는 패킷을 보낸다.
그 다음, 악성코드 관련 서버 리스트가 텍스트 형식으로 답변이 왔다. 해당 IP들 중 몇몇은 앞서 기초 및 정적분석에서 살펴봤던 IP들이다.
다음 패킷은 로컬호스트가 IP 끝자리가 52인 서버를 방문한 패킷이다. 해당 URL에 접속하면 아래와 같다.
URL들이 나열되어있고, 각 URL들의 IP를 보면 앞서 분석에서 파악한 IP들로 보인다. 특히, 220.73.162.49 및 50 서버는 Process Monitor에서 상당히 많은 TCP 수신 로그를 기록했던 서버들이다. 경로 마지막에 Download라는 것으로 보아 해당 서버로 들어가 파일을 다운로드 해야했기에 저렇게 많은 수신로그를 기록했을 것으로 보인다.
앞서 봐온 220.73.162.48서버에게 요청을 보내는 패킷에 들어가 URL에 접속하였더니 위와 같은 파일을 다운받았다.
두번째 접속 사이트는 위와 같으며, DtsManProc.exe이다.
세번째 접속 사이트는 220.73.162.50이며, 해당 URL에 접속하였더니 마지막 파일인 RetainPt 라는 파일을 다운로드하였다. 결국 모두 3개의 파일들을 다운 받은 것으로 확인 됐다. 2번째 파일까지는 실행시켜도 큰 반응은 나타나지 않았다. 그러나 3번째 파일인 RetainPt.exe을 실행시키자 다음 아래와 같은 상황이 나타났다.
그림 5를 보면, 호스트 OS의 Ahnlab safe transaction 프로그램에서 악성 유해 사이트라며, 차단 당한 것을 확인해 볼 수 있다. RetainPt.exe는 220.73.162.49 라는 사이트와 통신을 돕기위한 통신 프로그램으로 보인다. 더 자세히 알아보기위해 그림 6과 같이, safe transaction 프로그램의 차단 로그 기록을 확인하였다.
알고보니 타 IP에서도 비슷한 형식의 차단 로그가 남아있었으며 모두, 그림 7과 같이 Download/Uninstaller.exe 라는 키워드가 220.73.163.48과 49과 50의 하위 경로 아래에 각각 포함되어 있었다.
해당 IP들은 모두 방금 설치한 프로그램들의 서버 IP들이다. Uninstaller 라는 것은 특정 프로그램을 삭제해주는 프로그램으로 추정된다. 앞선 사실들을 종합해볼 때 220.73.163.48, 49, 50 서버에서 설치하였던 프로그램들이 악성코드에 필요한 역할을 다하게되면, Uninstaller.exe 프로그램을 로컬 호스트에 다운받아 실행시켜 기존에 설치했던 파일을 삭제시키는 것으로 파악된다. 악성코드 제작자가 다운로드 했던 프로그램의 흔적을 남기지 않기위해 위 경로에 해당 파일을 남겨둔 것으로 보인다.
나아가 한국을 대상으로 한 것으로 보이는 패킷을 열어 패킷 안 URL에 접속해보았더니,
한국, 일본, 영국 독일 등 각 나라의 사이트들로 보이는 URL이 수십 개가 나열되어 있다. 앞에서 봐왔던 hebogo 사이트는 돈을 받으면 사용자가 검색시 광고주의 광고를 새탭에서 열어 사용자에게 노출시켜주는 사이트이다. (11page 참고)이때, 검색할 때 쓰이는 URL이 위 사진에 해당하는 리스트에 해당한다고 본다. 그리고 위 URL에 접속하면, 광고가 새창에서 뜰 것이라고 예상하였다. 그러나 지금은 해당 URL 중 아무 곳에 접속해보았으니 아무런 반응이 없었다. 앞서 정적분석의 Bintext에서 hebogo 사이트의 파일이 있는 URL에 접속해보았을 때 404에러가 뜬 적이 있었다.(11page 참고) 해당 URL에 있는 파일이 광고를 띄울 수 있게 도와주는 파일인 것으로 보이며, 현재 해당 파일이 없기에 의도된 광고가 안나오는 것으로 추정된다.
- 네트워크(Snort)
sid 10000003~10000015에서 보고 있는 IP들은 로컬 호스트가 220.73.162.52 서버에게 서버리스트를 요청했을 때 나온 IP들이다.(21page 참고) 그래서 각 탐지 패턴에서 출발지에 해당하는 IP가 52 서버에게 요청했던 서버리스트의 IP들이다.
sid 10000016는 출발지 목적지 IP 및 포트 상관없이 패킷 내에 Download 라는 키워드가 있으면 탐지하라는 패턴이다.
그 결과, 현재 시각 1월 6일 08시 39분 기준으로 220.73.162.58 서버가 주로 탐지되는 것을 확인할 수 있었다. 이때, Signature tab에 Malware Detection만이 써져있으면, sid 10000013에 의해 탐지된 것이고, 만약 Malware Detection content: “Download” 이면, sid 10000016에 의해 탐지된 것이다.
- 파일 및 레지스트리(autoruns)
앞서 본 프로그램들이 시작 레지스트리에 등록되어 있다. 앞으로 로컬 호스트가 전원이 켜질 때마다 자동으로 해당 프로그램이 실행될 것이다. 네트워크 분석에서 본 Uninstaller.exe에 의해 삭제됐을 것이라고 추정하였던 프로그램들이 계속 남아있는 것을 보면, 호스트 OS에서의 차단에 의해 Uninstaller.exe 프로그램을 못받아와서 삭제되지 않고, 계속 남아있는 것이다.(23~24Page 참고)
- 파일 및 레지스트리(system explorer)
네트워크 관련 변경값들을 악성코드를 실행 전과 후를 비교해볼 때, TCP IP 인터페이스에 들어갈 인자값, 쿠키값 변경 및 네트워크 지속 상태 변경, 각종 네트워크 활동 크기등이 변경 된 것을 확인해볼 수 있다. 이는 악성코드가 실행되고나서부터 해당 악성코드에 감염된 로컬호스트가 네트워크 활동을 활발히 했던 것에 의한 변화이다.
악성코드에 감염된 로컬호스트가 설치하였던 프로그램들의 통신 로그다. 앞서 유해 사이트라고 추론했던 IP들과 지속적으로 통신하고 있었다.
결론
기초 분석 결론 |
virustotal에서는 Adware 유형의 악성코드라고 대부분의 백신엔진에서 진단이 나왔다. 주로 통신하는 서버 IP 대역은 주로 220.73.162이다. 나아가 HTTP 통신을 한 대상 서버 대수가 111대이고, DNS 서버는 27대, 일반 IP 통신 대상은 41개이다. 주로 사용한 프로토콜은 HTTP이며, 220.73.162 대역의 서버들에게 주로 GET Method 요청을 한 것으로 보인다. |
정적 분석 결론 |
파일 속성 속 해시값과 virustotal에서 본 해시값 비교하여 무결성이 보장되었음을 확인하였고, Exeinfo 및 PEinfo 결과, 언패킹 상태이며, PEView를 통해 2009년 11월 6일 19시 53분 27초에 만들어진 윈도우 32bit 실행파일임을 확인하였다. 나아가 Bintext 통해 미국 인증서 발급회사인 thawte, 광고 회사 사이트인 hebogo를 알아냈다. hebogo 사이트의 특정 경로안 엤는 파일을 이용하여 피해자의 PC에 광고를 띄울려고 제작한 것 같으나, 해당 경로에 파일이 사라진 것으로 인해 의도된 결과는 안나오는 듯했다. 그리고 netapi32 모듈을 사용하는 것으로 보아 네트워크 행위를 할 가능성이 높은 것도 확인하였다. |
동적 분석 결론 |
Process Explorer를 통해 시간이 지남에 따라 프로그램들이 추가적으로 계속 설치되었다. 추가적으로 설치된 프로그램들은 주로 trojan 및 adware의 특성을 지녔다. Process Monitor에서는 네트워크 조건만을 보도록 설정하여 추가적으로 설치된 프로그램들이 주로 220.73.162.49, 50, 59 서버쪽에서 다수의 수신로그가 있다는 것을 확인하였다. 와이어 샤크에서는, 로컬호스트가 220.73.162.52 서버에게 악성코드 관련 서버리스트를 요청하였고, 해당 서버리스트에 나온 서버들과 지속적으로 통신하는 이력을 확인했다. 이 중 220.73.162.48, 49, 50에서 adware 및 trojan 특성을 지닌 프로그램을 다운 받은 이력도 있었다. autoruns에서는 앞에서 언급한 프로그램들이 시작 레지스트리에 등록되어 있었고, system explorer에서는 악성코드 실행 전과 후를 비교해보니 네트워크 관련 값이 크게 변동되었으며, 나아가 지속적으로 220.73.162 대역 서버들과 통신을 하고 있다는 것도 확인되었다. |
총 결론 |
진단명: trojan + adware 유형의 악성코드 기초분석시 몇몇 엔진들에게서 바이러스라는 키워드도 나왔지만, 시스템 자체에 부하가 갈만한 눈에 띄는 요소는 없었다. 해당 악성코드 프로그램은 사용자가 본인도 모르게 의도치 않는 프로그램들을 다운로드받게 하였다. 나아가 관련 사이트가 키워드 광고 검색 사이트 것으로 보아 악성코드의 본의도는 hebogo 사이트의 파일을 이용하여 악성코드 제작자가 홍보하고자 하는 것을 감염된 로컬 호스트에게 노출시키고자 하였다. 이때 광고가 노출되는 원리는 피해자가 악성코드 제작자가 나열한 URL들 중 하나라도 접속한다면(25page 참고), 브라우저에 새탭을 열고 그 안에 해당 광고를 넣어 노출시키는 것으로 추정된다. |
악성코드 유형별 대응책
종류 | 내용 |
adware | 검출 - 데이터 사용이 급증하거나, 사용자의 웹 브라우저에 새로도구모음이 표시되거나 사용자의 인터넷 리다이렉션이 광고성 웹사이트를 검색하거나 잘꺼지지도 않는, 원하지 않는 팝업 광고들이 나타나거나 장치의 속도 평소보다 느려지면, 사용자의 장치에 악의적인 애드웨어에 감염된 것일 수도 있다. 대응 - 온라인으로 다운로드를 하는 소프트웨어 유형을 파악해야하며, 소프트웨어 사용자가 장치에서 정보 수집을 수행하고 있는지 여부를 확인하기 전에 최종 사용자 라이센스 계약을 읽어야 하고 광고 차단 기능을 사용하여 원하지 않는 창들이 열리는 것을 막아야 하며 만약 믿을 수 있는 사이트를 재생하는 광고가 아닌 경우 광고를 클릭하는 것을 피해야한다. |
trojan | 검출 - 현재 프로세스를 확인하여 백도어가 아닌 기본적인 정상 프로세스는 알아두고 있도록 한다. 외부와 통신을 하려고 서비스 포트 생성 여부도 확인해야한다. 시스템에서는 netstat 명령으로 열린 포트를 확인할 수 있는데, 일반 시스템에서 사용하는 포트가 그리 많지 않아 주의해서 살펴보면 백도어가 사용하는 포트를 쉽게 확인이 가능하다. setUID파일 중에 추가되거나 변경된 것은 없는지 주기적으로 살펴보는 것이 요구된다.( Linux 기준) 무결성 검사에는 MD5 해시 기법을 많이 이용한다.파일 내용이 조금만 바뀌어도 해시 결과 값이 다르기 때문에 관리자는 주요 파일의 MD5값을 주기적으로 수집하고 검사하여 변경되는 파일 내역을 확인해본다. 관리자가 변경하지 않았거나 시스템 운영상 변할 일이 없다면 변경된 파일 조치 금지하는 것이 좋다. 대응 - 소프트웨어를 주기적으로 업데이트 하며, 토렌트 사이트를 최대한 자제하며, 의심스러운 사이트 접속또한 자제하도록한다. 백신 업데이트도 주기적으로 해주며, 부팅화면 및 윈도우 시스템의 비밀번호를 설정하며, 네트워크 공유시 비밀번호를 설정한다음, 읽기 기능만을 공유하도록 한다. 자료를 다운 받을 시 백신으로 먼저 확인해보고, 불법 파일 및 프로그램, 영상 등을 다운받지 않도록 한다. |
악성코드 분석 보고서
'보안관제' 카테고리의 다른 글
Snort 환경 구축 (2) | 2024.01.14 |
---|---|
Snort (0) | 2023.11.18 |
악성 코드 샘플 분석 2 (0) | 2023.11.04 |
악성코드 샘플 분석 1 (0) | 2023.10.15 |
정적, 동적 Tool 실습 (0) | 2023.09.18 |