악성코드분석 랩 (Malware analysis LAB) 구축기
악성코드 분석을 처음 접할 때에는, 일상에서 사용하는 개인 PC에서 분석을 했던 기억이 난다.
하지만 개인 PC에서 악성코드를 분석하다 보면, 샘플을 하나둘 다루는 과정에서 악성코드가 시스템의 예상보다 훨씬 넓은 범위까지 영향을 줄 수 있다는 점을 깨닫게 된다. 그때부터 분석 전용 환경을 따로 구축해서 사용하게 되었다.
처음 분석 랩을 만들었을 때는 Windows XP, Windows 7, BackTrack R3 같은 오래되고 취약한 운영체제를 기반으로 했었다. 그런데 요즘 유포되는 악성코드들은 Windows Defender, UAC, KPP 같은 고급 보안 기능을 우회하려 하거나, 심지어 가상 환경 너머의 호스트까지 침범하려는 시도를 하기도 한다. 분석을 방해하는 다양한 전략들로 무장한 채 유포되고 있어서, 겉으로는 평범해 보여도 실제로는 훨씬 더 위험할 수 있다.
이런 환경 속에서 악성코드를 분석하려면, 분석자가 완전히 통제할 수 있는 통합된 시스템을 구축하는 게 당연하다는 생각이 들었다. 요즘 악성코드의 동향을 보면, 그런 결심은 자연스러운 흐름이라고 본다.
따라서 앞으로 총 5가지 종류의 가상환경 기반 악성코드 분석 랩을 구축하고자 마음먹었다.
- Windows 10 기반 악성코드 분석 랩
- Ubuntu 24.04 LTS (또는 CentOS) 기반 악성코드 분석 랩
- OpenBSD (또는 HPUnix) 기반 악성코드 분석 랩
- macOS 기반 악성코드 분석 랩
- NAS 전용OS의 악성코드 분석 랩 (시놀로지는 구현이 불가함으로 혜놀로지 사용 예정)
가능하면 자주 사용하는 Ubuntu 계열과 OpenBSD 계열로 해당 시스템을 구축하고 싶지만, 실제로 한국 사회에서는 앞선 2개 OS보다는 CentOS와 HPUnix가 더욱 활발하게 활용되어 왔기 때문에 OS 선정에서 고민 중이긴 하다.
추가로, 악성코드 분석랩을 보조할 시스템도 구상해보았다.
- C2서버 역활을 수행할 DNS 서버 (메일서버, DNS, DHCP, C2 서버의 역활 수행)
- 독립된 동일 분석 망에서 실행될 별개의 네트워크 패킷 모니터링 서버
현재, Windows 10 기반 악성코드 분석 랩만 구축에 성공하였다.
해당 분석 랩은 모든 보안 설정이 해제되지 않고, 일반 사용자 PC와 동일한 수준으로 유지되어 있다.
수집되는 샘플들이 가장 높게 설정된 Windows10 OS의 보안 토폴로지에서 탐지되지 않는 경우도 더러 있을 뿐더러, 보안소프트웨어의 우회를 시도하는 악성코드 샘플들의 경우, 이에 해당하는 기술적 정보들을 알아낼 수 있을 것이라는 생각 때문이다.
구현된 악성코드 분석 랩에서는 기본적인 역공학도구인 x64dbg, olydbg, ida, ghidra, binnavi를 설치했다.
정적분석도구로서는 HxD, 010Editor, PEID, peviewer와 같은 간단한 도구들과 bintext, loadpe, pe detective, exeinfope, hashmyfiles, depends, cldfs_viewer 과 같은 고급 정보 수집 도구, 그리고 패킹 여부를 확인하기 위한 die, pestudio, 이미지 분석을 위한 jpegViewer 등을 설치했다.
동적분석도구들은 Process hacker, Procmon, Task explorer, ntfs_log_tracker, cff explorer 등 일반적인 프로세스 뷰어와, wireshark, tcpmon 등을 설치했다.
이와같은 기본적인 설정이 끝난 후, restore 이라는 명칭의 스냅샷을 작성하여 언제던지 현재 화면과 같은 시스템 환경으로 role-back할 수 있도록 설정했다.
앞으로도 위와 같은 형태로서 linux계열, mac계열 등 남은 4가지 유형의 악성코드 분석 랩을 구축하고자 한다.