
= 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]
.Project health // Travis Build Status image:https://img.shields.io/travis/GoSecure/malboxes/master.svg[Build Status (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
注意:Windows 10以降、Hyper-Vは常にオペレーティングシステムの下で動作しています。VT-Xは1つのハイパーバイザーによってのみ排他的に操作される必要があるため、https://github.com/GoSecure/malboxes/issues/39[これによりVirtualBox(およびmalboxes)が失敗します]。Hyper-Vを無効にしてVirtualBoxを実行できるようにするには、管理者コマンドプロンプトで次のコマンドを実行してから再起動してください:`bcdedit /set hypervisorlaunchtype off`
==== Chocolateyを使用する
以下の手順は、https://chocolatey.org/[Chocolatey]がインストールされていることを前提としています。それ以外の場合は、<<手動,手動インストール手順>>に従ってください。
==== 手動
=== AWSにデプロイする場合(オプション) 通常のインストール後に次のコマンドを実行:
vagrant plugin install vagrant-aws
注意:AWS機能は現時点ではLinuxでのみテストされており、EC2はWindows 10の32ビットデスクトップ版をサポートしていません。
== 使用方法
=== Boxの作成
これにより、VagrantにインポートされるベースBoxが作成されます。その後、同じBoxをサンプル解析ごとに何度でも再利用できます。
実行:
malboxes build <template>
また、サポートされているすべてのテンプレートを次のコマンドで一覧表示できます:
malboxes list
これにより、マルウェア調査用のVagrant Boxが構築され、後で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はAmazon Web Services上のVMにアップロードして操作できます。そのためには、以下の手順に従ってください:
. Malboxesは、VMをAMI(Amazon Machine Image)に変換する前にアップロードするためのAWSのS3バケットが必要です。まだ持っていない場合は、link:https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html[今すぐ作成してください。]
. インスタンスには、WinRMのインバウンド接続を許可するルール(タイプ: WinRM-HTTP、プロトコル: TCP、ポート範囲: 5985、ソース: ホストのパブリックIP)を含むlink:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups[セキュリティグループ]も必要です。
. 次に、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に関するすべてのオプションを追加してください。
. 最後に、<<Boxの作成>>および<<解析インスタンスごと>>のセクションで説明したのと同じ手順に従ってインスタンスを起動できます!
注意:AMIのインポートには非常に長い時間(約1時間)かかる場合がありますが、<<AMIインポートステータス,こちら>>でタスクのステータスを確認できます。現時点では、テンプレートごとに1つのAMIのみビルドできます。
==== AMIインポートステータス pipを使用してawscliをインストール:
pip install awscli
link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration[設定] awscliを以下のコマンドで:
aws configure
次に実行:
aws ec2 describe-import-image-tasks
==== RDP
RDPを使用してクラウド上のインスタンスに接続するには、Vagrantfileと同じ場所で次のコマンドを実行:
vagrant rdp -- /cert-ignore
これを機能させるには、インスタンスにRDPインバウンド接続を許可するセキュリティグループ(タイプ: RDP、プロトコル: TCP、ポート範囲: 3389、ソース: ホストのパブリックIP)が必要です。
注意: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サポートに必要な手順]についての注意事項があります。セットアップは人それぞれ少し異なるため、問題が発生した場合やプルリクエストによるドキュメントの改善をためらわずにIssueを開いてください。
=== プロファイル
私たちは、設定とは別に保存され、ファイルの作成、レジストリの変更、追加パッケージのインストールに使用できる_プロファイル_の概念を検討しています。サンプル設定については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を参照してください。ドキュメントとプレゼンテーション資料はCreative Commons Attribution-ShareAlike 4.0の下でライセンスされています。詳細はdocs/LICENSEを参照してください。
== クレジット
改善されたマルウェア分析ワークフローというアイデアを思いついた後、Linuxサーバーでの開発に使用していたもの(Vagrant)に基づいて、誰かが既にその点で何かをやっていないかすぐにGoogleで検索しました。
私はMark Andrew Dwyerによるhttps://github.com/m-dwyer/packer-malware[packer-malware]リポジトリをGitHubで見つけました。Malboxesは彼の仕事のおかげで立ち上げられました。特に`Autounattend.xml`ファイルの周辺で役立ちました。