[Security] 샘플 분석 환경 구성
악성코드를 분석하기 위해선 악성코드의 기능, 동작 방식, 목적을 파악하기 위해 환경 구성이 필요합니다. 해당 문서에서는 악성 코드 분석 환경을 구성하는 가이드 방법을 작성했습니다
개요
악성코드를 분석하기 위해선 악성코드의 기능, 동작 방식, 목적을 파악하기 위해 환경 구성이 필요합니다. 해당 문서에서는 악성 코드 분석 환경을 구성하는 가이드 방법을 작성했습니다
환경을 구성 뿐만 아니라 필수적인 악성 샘플 수집 사이트를 정리했습니다.
샘플분석 환경 구성(Cloud)
소개
샘플 분석을 위한 환경은 가상화가 아니더라도 클라우드 환경을 사용할 수 있습니다.
AWS Penetration Testing에서는 AWS 침투 및 보안 테스트 환경을 구성 가능합니다. 기본적으로 허용되는 서비스와 금지되는 활동은 아래 이미지와 같습니다.

그 외에도 다양한 테스트가 가능한데 저는 Malware 환경 구성하는게 목적입니다.
따라서 Malware Testing 항목을 정리했습니다

이벤트 제출

AWS에서 Malware 테스트를 하기 위해선 몇 가지 제출 항목들이 존재합니다.
준수해야할 항목은 다음과 같습니다.
| 원문 | 번역 |
|---|---|
| Any abuse report or negative impact on AWS IP reputation that is a result of this activity is cause to disallow its continuance. | 이 활동으로 인해 악용 신고가 접수되거나 AWS IP 평판에 부정적 영향이 발생할 경우, 활동 중단 사유가 됩니다. |
| The activity will not impact any AWS service, such as through malware automatically sending denial of service traffic. Any impact that is a result of this activity is cause to disallow its continuance. | 이 활동은 악성코드가 자동으로 서비스 거부 트래픽을 전송하는 등 AWS 서비스에 영향을 주어서는 안 됩니다. 이 활동으로 인한 영향 발생 시 활동 중단 사유가 됩니다. |
| The activity will be conducted using a prescribed architecture and security model. The customer will continuously monitor and assess their assets for any issues that may result. | 이 활동은 규정된 아키텍처 및 보안 모델을 사용하여 수행되어야 합니다. 고객은 발생할 수 있는 문제에 대해 자산을 지속적으로 모니터링하고 평가해야 합니다. |
| We also reserve the right to disallow this activity should we determine any negative impact or violation of these terms. | AWS는 부정적 영향이나 본 약관 위반이 확인될 경우 이 활동을 불허할 권리를 보유합니다. |
| You will reply to any third-party abuse complaint in a timely manner. | 고객은 제3자의 악용 신고에 적시에 응답해야 합니다. |
| You will indemnify and hold harmless Amazon for any legal claim against, or other harm to Amazon related to your Security Research. | 고객은 보안 연구와 관련하여 Amazon에 대한 법적 청구 또는 기타 피해에 대해 Amazon을 면책하고 손해를 배상해야 합니다. |
- 수행할 악성코드 분석에 대한 세부사항
- 테스트 환경 내 인스턴스 보안에 대한 세부사항
- 활동이 환경 내 문제를 일으키거나 외부 유출 방지를 위한 보안 조치 세부사항
- 테스트 환경 운영 기간
가이드
항목들을 작성하기 위한 간단한 Setup 가이드입니다.


샘플분석 환경 구성(VMWare)
설치
환경 검토까지 승인이 걸려 우선은 VMWare Fusion(Apple Silicon Mac)으로 구성했습니다.

환경은 Windows 11기반이며 VM 환경은 다음과 같습니다.

Window 기반 환경설정 구성시 최소 사양 미달로 인해 터미널을 열어 아래 명령어를 입력하는 것이 좋습니다.
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassTPMCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassSecureBootCheck /t REG_DWORD /d 1 /f
reg add HKLM\SYSTEM\Setup\LabConfig /v BypassRAMCheck /t REG_DWORD /d 1 /f
도구 설치
정적 분석 & 동적 분석에 필요한 도구들을 설치합니다.
제가 설치한 도구들은 다음과 같습니다.
| 도구 | 설명 | 다운로드 |
|---|---|---|
| PE Studio | Windows 실행 파일(PE) 정적 분석 도구. 악성코드 징후, 임포트 함수, 문자열 등 검사 | https://www.winitor.com/download |
| Process Monitor | 실시간 파일 시스템, 레지스트리, 프로세스/스레드 활동 모니터링 (Sysinternals) | https://learn.microsoft.com/sysinternals/downloads/procmon |
| Process Explorer | 고급 작업 관리자. 프로세스 트리, DLL, 핸들 정보 상세 확인 (Sysinternals) | https://learn.microsoft.com/sysinternals/downloads/process-explorer |
| Autoruns | 자동 시작 프로그램 관리. 시작 위치별 등록된 항목 확인/비활성화 (Sysinternals) | https://learn.microsoft.com/sysinternals/downloads/autoruns |
| Wireshark | 네트워크 패킷 캡처 및 분석 도구. 프로토콜 분석, 트래픽 모니터링 | https://www.wireshark.org/download.html |
| Regshot | 레지스트리 스냅샷 비교 도구. 프로그램 설치 전/후 레지스트리 변경사항 추적 | https://sourceforge.net/projects/regshot/ |

샘플 수집
악성코드 수집을 위한 도구를 설치했다면 악성 코드 샘플까지 같이 저장해야합니다. 악성 코드 샘플 행위 자체는 쉽지만 케이스에 맞는 코드를 구해야합니다.
대표적으로 악성코드를 수행하면서 https 통신을 하지 않는 악성코드로 악성코드 탐지 패턴을 만들 때 네트워크 파악이 안되어 불확실한 구성이 될 수 있습니다.
따라서 여러 개의 샘플을 수집하며 케이스에 맞는 항목을 확인해야하며 악성코드를 수집하기 위한 사이트는 다음과 같습니다.
샘플 수집이 가능한 사이트
무료 / 회원가입 불필요
| 사이트 | 특징 | 링크 |
|---|---|---|
| MalwareBazaar | 최신 샘플, 태그 검색, API 제공 | https://bazaar.abuse.ch |
| theZoo | GitHub, 교육용, 유명 샘플 | https://github.com/ytisf/theZoo |
| VX-Underground | 대규모 아카이브, 논문/자료도 있음 | https://vx-underground.org |
| URLhaus | 악성 URL/페이로드 | https://urlhaus.abuse.ch |
무료 / 회원가입 필요
| 사이트 | 특징 | 링크 |
|---|---|---|
| Hybrid Analysis | 샌드박스 분석 + 다운로드 | https://hybrid-analysis.com |
| ANY.RUN | 인터랙티브 샌드박스 | https://any.run |
| Triage | 샌드박스 + 샘플 | https://tria.ge |
| InQuest Labs | 문서 기반 악성코드 | https://labs.inquest.net |
유료 / 기업용
| 사이트 | 특징 | 링크 |
|---|---|---|
| VirusTotal | 샘플 다운로드 (유료) | https://virustotal.com |
| Malshare | API 기반 | https://malshare.com |
특수 목적
| 사이트 | 특징 | 링크 |
|---|---|---|
| PhishTank | 피싱 URL | https://phishtank.org |
| Exploit-DB | 익스플로잇 코드 | https://exploit-db.com |
| PacketTotal | PCAP 파일 | https://packettotal.com |
그 외에도 다양한 사이트가 존재합니다.

저는 최신 악성 코드 샘플을 다운받을 수 있는 Malware bazaar를 사용했습니다.
가장 최신 악성코드 2개를 설치했습니다.

분석 환경 구성
이렇게 도구와 샘플 수집까지 끝났다면 환경 실행을 위해선 네트워크 차단과 스냅샷을 통한 백업을 구성해야합니다. 이는 VMWare에서 Snapshots을 통해 손쉽게 구성할 수 있습니다.

네트워크 환경은 외부와 차단되어야 합니다. VMWare 기본 설정이 NAT 모드로 되어있어 Network Adapter를 차단하여 격리된 환경을 구성했습니다.


