
악성코드 분석용 Windows VM을 구축해 주므로 직접 구축할 필요가 없습니다.
= Malboxes :toc: preamble :toclevels: 2 :twob: https://twitter.com/obilodeau :twhg: https://twitter.com/hugospns // github stuff ifdef::env-github[:github:]
ifndef::github[] // local logo image::docs/logos/main.svg[Malboxes Logo] endif::[]
ifdef::github[] // logo on github image::https://raw.githubusercontent.com/GoSecure/malboxes/master/docs/logos/main.svg?sanitize=true[Malboxes Logo]
.프로젝트 상태 // Travis Build Status image:https://img.shields.io/travis/GoSecure/malboxes/master.svg[빌드 상태 (Travis CI), link=https://travis-ci.org/GoSecure/malboxes] // BlackHat Arsenal 2017 image:https://raw.githubusercontent.com/toolswatch/badges/master/arsenal/usa/2017.svg?sanitize=true[Black Hat Arsenal, link=https://www.toolswatch.org/2017/06/the-black-hat-arsenal-usa-2017-phenomenal-line-up-announced/] // Gitter Chat image:https://badges.gitter.im/malboxes_/Lobby.svg[link="https://gitter.im/malboxes_/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] endif::[]
악성코드 분석을 위한 Windows 가상 머신을 직접 빌드하지 않아도 되도록 만들어줍니다.
https://github.com/gosecure/malboxes
== 요구 사항
=== 빌드 머신 최소 사양
=== Fedora
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
=== Debian
apt install vagrant git python3-pip
=== Ubuntu
apt install git python3-pip
=== ArchLinux
pacman -Sy vagrant packer python-pip git
== 설치
=== Linux/Unix
pip install malboxes:=== Windows
NOTE: Windows 10부터 Hyper-V가 운영 체제 아래에서 항상 실행됩니다. VT-X는 하나의 하이퍼바이저만 독점적으로 사용해야 하므로
https://github.com/GoSecure/malboxes/issues/39[VirtualBox(및 malboxes)가 실패합니다]. Hyper-V를 비활성화하고
VirtualBox가 실행되도록 하려면 관리자 명령 프롬프트에서 다음 명령을 실행한 후 재부팅하십시오: bcdedit /set hypervisorlaunchtype off
==== Chocolatey 사용
다음 단계는 https://chocolatey.org/[Chocolatey]가 설치되어 있다고 가정합니다. 그렇지 않은 경우 <<수동,수동 설치 절차>>를 따르십시오.
==== 수동
C:\Windows\System32\)에 넣습니다.=== AWS 배포 (선택사항) 일반 설치 후 다음 명령을 실행합니다:
vagrant plugin install vagrant-aws
NOTE: AWS 기능은 현재 Linux에서만 테스트되었으며, EC2는 32비트 데스크톱 버전의 Windows 10을 지원하지 않습니다.
== 사용법
=== 박스 생성
이것은 Vagrant에 가져올 기본 박스를 생성합니다. 이후 샘플 분석마다 동일한 박스를 여러 번 재사용할 수 있습니다.
실행:
malboxes build <template>
지원되는 모든 템플릿을 보려면:
malboxes list
이것은 악성코드 조사에 사용할 수 있는 Vagrant 박스를 빌드하며, 나중에 Vagrantfile에 포함시킬 수 있습니다.
예:
malboxes build win10_x64_analyst
<<_configuration,구성 섹션>>에는 malboxes로 구성할 수 있는 내용에 대한 추가 정보가 있습니다.
=== 분석 인스턴스별
malboxes spin win10_x64_analyst <name>
이 명령은 악성코드 분석에 사용할 준비가 된 Vagrantfile을 생성합니다. 원하는 디렉토리로 이동하여 다음을 실행하십시오:
vagrant up
기본적으로 로컬 디렉토리는 VM의 데스크탑에 공유됩니다. 이는 Vagrantfile의 관련 부분을 주석 처리하여 변경할 수 있습니다.
예:
malboxes spin win7_x86_analyst 20160519.cryptolocker.xyz
=== AWS 배포 (선택사항)
Malboxes는 AWS(Amazon Web Services)에 VM을 업로드하고 상호 작용할 수 있습니다. 다음 단계를 따르십시오:
. Malboxes는 VM을 AMI(Amazon Machine Image)로 변환하기 전에 업로드할 S3 버킷이 필요합니다. 버킷이 없는 경우 link:https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html[지금 생성하십시오.]
. 인스턴스에는 WinRM에 대한 인바운드 연결을 허용하는 규칙이 포함된 link:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups[보안 그룹]도 필요합니다 (유형: WinRM-HTTP, 프로토콜: TCP, 포트 범위: 5985, 소스: 호스트의 공인 IP).
. 다음으로 vmimport 서비스 역할을 구성해야 합니다.
https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html[이 가이드]의 VM Import Service Role 섹션을 따르십시오.
이 단계는 iam:CreateRole 및 iam:PutRolePolicy 권한이 있는 계정으로 수행해야 합니다.
. <<_configuration,기본 구성>>을 사용하는 경우 하이퍼바이저를 aws로 변경하고 관련 필수 옵션을 입력하십시오. 그렇지 않으면 AWS 관련 모든 옵션을 사용자 지정 구성에 추가해야 합니다.
. 마지막으로 <<박스 생성>> 및 <<분석 인스턴스별>> 섹션에 설명된 동일한 단계에 따라 인스턴스를 시작할 수 있습니다!
NOTE: AMI 가져오기는 매우 오래 걸릴 수 있지만(약 1시간), <<AMI 가져오기 상태,여기>>에서 작업 상태를 확인할 수 있습니다. 현재 템플릿당 하나의 AMI만 빌드할 수 있습니다.
==== AMI 가져오기 상태 pip를 사용하여 awscli를 설치합니다:
pip install awscli
다음 명령으로 awscli를 link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration[구성]합니다:
aws configure
그런 다음 실행:
aws ec2 describe-import-image-tasks
==== RDP
RDP를 사용하여 클라우드의 인스턴스에 연결하려면 Vagrantfile이 있는 동일한 위치에서 다음 명령을 실행합니다:
vagrant rdp -- /cert-ignore
이 기능이 작동하려면 인스턴스에 RDP 인바운드 연결을 허용하는 보안 그룹이 필요합니다 (유형: RDP, 프로토콜: TCP, 포트 범위: 3389, 소스: 호스트의 공인 IP).
NOTE: rsync가 아직 구현되지 않았기 때문에 다음 오류는 무시해도 됩니다: No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
==== 인스턴스 중지
클라우드의 인스턴스를 중지하려면 Vagrantfile이 있는 동일한 위치에서 다음 명령을 실행합니다:
vagrant halt
== 구성
Malboxes의 구성은 일반적인 운영 체제 규칙을 따르는 디렉토리에 있습니다:
~/.config/malboxes/~/Library/Application Support/malboxes/C:\Users\<username>\AppData\Local\malboxes\malboxes\파일 이름은 config.js이며, 첫 실행 시 예제 파일에서 복사됩니다.
link:malboxes/config-example.js[예제 구성]은 문서화되어 있습니다.
=== ESXi / vSphere 지원
Malboxes는 기본적으로 virtualbox를 백엔드로 사용하지만 버전 0.3.0부터 ESXi / vSphere 지원이 추가되었습니다. link:docs/esx-setup.adoc[ESXi / vSphere 지원에 필요한 단계에 대한 참고 사항이 있습니다]. 각 설정이 조금씩 다르므로 문제가 발생하면 이슈를 열거나 풀 리퀘스트를 통해 문서를 개선해 주십시오.
=== 프로파일
우리는 프로파일 개념을 탐색하고 있습니다. 프로파일은 구성과 별도로 저장되며 파일 생성, 레지스트리 변경 또는 추가 패키지 설치에 사용할 수 있습니다. 예제 구성은 link:malboxes/profile-example.js[profile-example.js]를 참조하십시오. 이 새로운 기능은 실험적이며, 우리가 더 실험함에 따라 변경될 수 있습니다.
=== AWS 보안 그룹
현재 Malboxes는 보안 그룹의 자동 생성을 지원하지 않으므로 AWS 콘솔을 사용하여 직접 생성해야 합니다. 그러나 link:https://boto3.amazonaws.com/v1/documentation/api/latest/index.html[Boto3] 라이브러리를 사용하면 이를 구현할 수 있는 방법이 있을 것입니다.
== 추가 정보
=== 동영상
소개 동영상
image::https://img.youtube.com/vi/oq6N3WLAoe8/0.jpg[link="https://www.youtube.com/watch?v=oq6N3WLAoe8"]
=== 블로그 게시물
=== 발표 자료
malboxes는 https://www.nsec.io/2016/01/applying-devops-principles-for-better-malware-analysis/[NorthSec 2016]에서 _Applying DevOps Principles for Better Malware Analysis_라는 제목의 발표에서 소개되었습니다. 발표자: link:{twob}[Olivier Bilodeau] 및 link:{twhg}[Hugo Genesse]
== 라이선스
코드는 GPLv3+에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE를 참조하십시오. 문서 및 발표 자료는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 4.0에 따라 라이선스가 부여됩니다. 자세한 내용은 docs/LICENSE를 참조하십시오.
== 크레딧
개선된 악성코드 분석가 워크플로에 대한 아이디어를 낸 후, 리눅스 서버(Vagrant) 개발에 사용해온 것을 기반으로, 누군가 이미 이와 관련된 작업을 하고 있는지 빠르게 검색해 보았습니다.
GitHub에서 Mark Andrew Dwyer의 https://github.com/m-dwyer/packer-malware[packer-malware] 저장소를 발견했습니다. Malboxes는 그의 작업 덕분에 부트스트랩되었으며, 특히 Autounattend.xml 파일 관련 부분에서 많은 도움을 받았습니다.