본문 바로가기
IT_정보보안/보안관제 프로젝트

20. 악성코드 샘플 수집 및 기초 • 정적분석 (1)

by jys275 2024. 3. 31.

이전에 구성한 Snort 환경을 기반으로 탐지 패턴을 만들어야 하기 때문에 
네트워크 행위를 명확하게 하는 샘플을 찾는 것이 중요하다.
 
하지만 샘플이 HTTPS로 통신을 하게 되면 관련 패킷들이 모두 암호화가 되어있다 보니
네트워크 행위를 하더라도 HTTP로 통신을 하는 샘플을 찾아야 되는 수고로움이 있다.
 
이 샘플을 구하는 것 자체가 생각보다 많은 시간이 소요되며,
실무에서도 동일한 업무를 수행할 때 정말 많은 비중을 차지한다고 한다.
 
탐지 패턴을 하나 만드는 데 보통 3주 정도 기간을 갖고 진행을 한다고 봤을 때,
평균적으로 1주에서 2주 정도를 샘플링을 하는데 시간을 보낸다고 한다.
 
그리고 샘플 분석에 3일, 보고서를 작성하는 데 2~3일을 일반적인 기간으로 본다. 
 
샘플이 네트워크 행위를 정말로 하는지 정확하게 체크를 하기 위해서는
Virustotal의 Relation 탭을 참고하거나, 가상 환경 내에 Wireshark를 통해 좀 더 확실하게 확인할 수 있다.
 
 


 
 
악성코드 샘플 수집
 
 

정보유출형 또는 애드웨어, 스파이웨어가 명백한 네트워크 행위를 갖고 있다.
 
필자는 Any.run 웹 사이트를 통해서 adware 및 spyware를 키워드로 검색하여
'HTTP Requests' 탭의 정보와 Virustotal, Wireshark를 통해 네트워크 행위를 사전에 파악하고 샘플을 다운로드하였다.
 
 


 
 
악성샘플 정보 - feb document 10998
 
 

파일의 속성을 살펴보았을 때, 만든 날짜가 2024년 3월 27일로 나타난다.
 
사실상 해당 날짜는 필자가 샘플을 다운로드한 날짜이기도 하며,
이 만든 날짜라는 것이 정말로 생성된 날짜인지는 여기서 잘 모를 수밖에 없다.
 
즉, 여기서 확인할 수 있는 부분은 해당 샘플 파일은 실행파일로 되어있다는 점과
용량 자체가 그렇게 크지 않다는 점을 알 수 있다.
 
 


 
 
 
기초분석 - Virustotal
 
 
DETAILS

Virustotal DETAILS 탭을 통해 'Creation Time' 생성일을 확인해보았다.
특이한 점으로 위와 같이 2055년 5월 23일로 나타나는 것으로 보아 제작자가 생성일을 변조를 한 것으로 추정할 수 있다.
 
그 외에도 'Signature Date'를 통해 어느 정도 날짜로 추정될 수 있다고
대략적으로 볼 수 있긴 하지만, 사실상 해당 정보가 정확한 날짜인지는 모르는 상황이다.
 
즉, 해당 샘플 파일의 정확한 생성일이 언제인지는 확인하기 어렵다고 볼 수 있다.
 
 
DETECTION

55개의 백신 중 40개의 백신이 해당 파일을 악성코드로 진단하였으며, 공통적으로 ‘trojan’ 진단 카테고리를 제공했다.
해당 샘플은 악성코드에 가까운 것으로 보이며, 트로이목마 성격을 갖고 있을 확률이 높아 보인다.
 
 
DETAILS

Win32 EXE 파일 타입으로 윈도우 운영체제에서 작동되는 것을 확인할 수 있다.
또한 “.NET.executable”와 같이 '.NET' 실행파일은 일반적으로 패킹되어있지 않다.
 
 
RELATION

Relation 탭에서는 해당 샘플이 악성으로 보이는 URLs, Domain, IP와 통신했던 이력들이 많은 것으로 보인다.
만약 해당 샘플 파일이 현재는 정상이라고 하더라도 과거에 악성 행위들이 존재했었다는 것들을 참고할 수 있다.
 
 


 
 
정적분석 - Exeinfo PE, PEID
 
 

Microsoft Visual C#으로 작성되어 패킹이 되어있지 않은 것을 확인할 수 있다.
즉, 별도의 언패킹 과정 없이 파일 내부 문자열을 확인하는 과정으로 넘어갈 수 있다.
 
 
 
정적분석 - bintext
 
 

여러 문자열에서 공통적으로 파일, 레지스트리, 프로세스 등의 작업을 수행하는 것을 알 수 있었다.
 

특이한 점으로는 URL 정보와 더불어 ”SSH, Telnet and Rlogin client” 문자열을 발견할 수 있었다.
이는 해당 샘플 파일은 네트워크 및 원격 접속 동작을 할 수 있다고 추정할 수 있다.
 
위의 URL 정보가 정상인지, 악성인지 확인해보기 위해 Virustotal을 통해 조회를 해본 결과
악성으로 활동한 이력은 확인할 수 없었다.
 

추가로 “.NET Framework 4” 문자열을 통해 네트워크 행위를 할 수 있다는 것을 다시 한번 의심할 수 있다.

닷넷 프레임워크(.NET Framework)는 마이크로소프트에서 출시한 
윈도우 프로그램 개발 및 실행 환경으로, 네트워크 작업과 인터페이스 등 많은 작업을 수행할 수 있다.
 

또한, “meWF.exe” 실행 파일 및 데이터베이스 데이터 삭제 명령어(DELETE FROM, WHERE)를 확인할 수 있다.
이외에도 "SELECT FROM, WHERE" 등 여러 SQL 함수가 존재하였다.
 
즉, 해당 샘플 파일은 SQL 관련 동작을 하는 것으로 보이며,
 
DELETE 같은 경우는 기존에 존재하는 값을 삭제하는 행위다 보니 이 행위가 정상적인 동작에 의해서 삭제되는 건지,
악성 행위에 의해서 삭제를 유도하는 건지 정확하게 추측되지는 않지만 일단 삭제 관련 행위가 일어난다는 점은 볼 수 있다.
 
 
 
정적분석 - PEview
 
 

Virtual Size와 Size of Raw Data 크기 차이가 적은 것으로 보아 
해당 샘플파일은 패킹이 되어있지 않았던 것을 다시 확인할 수 있다.
 

또한, bintext 문자열 중 볼 수 있었던 ”.NET Framwork”와 함께 사용하도록 
작성된 라이브러리 파일 “mscoree.dll”을 다시 한번 확인할 수 있다.
 
 


 
 
다음번에는 Snort를 활용해서 네트워크 탐지 패턴을 만들고, 동적분석 과정을 추가로 진행할 예정이다.
 
 

'IT_정보보안 > 보안관제 프로젝트' 카테고리의 다른 글

22. 악성코드 분석 보고서 (3)  (0) 2024.04.28
21. 악성코드 샘플 동적분석 • Snort (2)  (1) 2024.04.08
19. Snort 환경 구성  (0) 2024.03.24
18. Snort  (1) 2024.03.05
17. 악성코드 분석 보고서  (0) 2024.02.26