
モジュール型マルウェア解析アーティファクト収集・相関フレームワーク
Subparseは、Josh Strochein、Aaron Baker、Odin Bernsteinによって開発されたモジュラーフレームワークです。このフレームワークは、マルウェアファイルを解析してインデックス化し、解析中に発見された情報を検索可能なWebビューアで表示するように設計されています。フレームワークはモジュール方式であり、コア解析エンジン、解析モジュール、およびマルウェアインデックスに追加情報を付加するさまざまなエンリッチャーを利用します。フレームワークの主な入力値はマルウェアファイルのディレクトリであり、コア解析エンジンまたはユーザー指定の解析エンジンが解析を実行した後、ユーザー指定のエンリッチメントエンジンから追加情報を追加し、そのすべてをElasticsearchインデックスにインデックス化します。収集された情報はWebビューアで検索・表示でき、任意のファイルから収集された任意の値でフィルタリングすることも可能です。現在、3つの解析エンジン(デフォルトのPEParser、OLEParser、ELFParser)と2つのエンリッチメントエンジン(ABUSEEnricherとCAPEEnricher)があります。
Subparseを使い始めるには、いくつかの必須/推奨プログラムをインストールし、セットアップする必要があります。
| ソフトウェア | ステータス | リンク |
|---|---|---|
必要な/推奨されるソフトウェアをシステムにインストールした後、Subparseをインストールするためにさらにいくつかの手順を実行する必要があります。
sudo get apt install build-essential pip3 install -r ./requirements.txt
docker-compose up
注意: イメージのダウンロードとSubparseで必要となるコンテナのセットアップには少し時間がかかる場合があります。
subparse/parser/subparse.py で使用可能なコマンドラインオプション:
Subparseのパーサーからの結果を表示するには、localhost:8080 にアクセスしてください。 サイトが表示できない場合は、Dockerでコンテナが起動していること、およびポート8080で実行中の他のプロセスがサイトの利用を妨げていないことを確認してください。
パーサーが実行される前に、基盤となるファイルの種類に関係なく、サンプルに関する一般情報が収集されます。この情報には以下が含まれます。
パーサーは、ファイルの種類が一致するサンプルに対してのみ実行されます。たとえば、PEファイルは、そのファイルの種類がPEParserが解析可能なものに対応しているため、デフォルトでPEParserが実行されます。
これらのモジュールはオプションであり、コマンドラインの -e | --enrichers フラグで指定された場合にのみ実行されます。
SubparseのWebビューはCSSにBootstrapを使用して構築されています。そのため、独自のカスタムパーサー/エンリッチャーVue.jsファイルを開発する際に、BootstrapのCSSをすべて使用できます。また、開発を容易にし、情報表示の標準化を促進するために、各サンプルとカスタムウィジェットをいくつか実装しています。すべてのVue.jsファイルは、カスタムパーサー/エンリッチャーからの情報を動的に表示するために使用され、データのテンプレートとして機能します。
注意: クラス名とファイル名の両方で命名規則に厳密に従う必要があります。これは、カスタムパーサー/エンリッチャーが実行されない問題が発生した場合に最初に確認すべき点です。パーサー/エンリッチャーの命名規則は、すべてのファイルとクラス名で同じ名前を使用する必要があります。
ロガーオブジェクトは、デフォルトのPythonロガーのシングルトン実装です。詳細な使用方法については、公式ドキュメントを参照してください。Subparseでは、出力には以下のログレベルのみを使用することを推奨します。
| Docker |
| 必須 |
| インストールガイド |
| Python3.8.1 | 必須 | インストールガイド |
| Pyenv | 推奨 | インストールガイド |
| 引数 | 別名 | 必須 | 説明 |
|---|
| -h | --help | いいえ | ヘルプメニューを表示 |
| -d SAMPLES_DIR | --directory SAMPLES_DIR | はい | 解析するサンプルのディレクトリ |
| -e ENRICHER_MODULES | --enrichers ENRICHER_MODULES | いいえ | 追加解析に使用するエンリッチャーモジュール |
| -r | --reset | いいえ | 設定されたElasticsearchクラスタ内のすべてのデータをリセット/削除 |
| -v | --verbose | いいえ | 詳細なコマンドライン出力を表示 |
| -s | --service-mode | いいえ | 処理中にSAMPLES_DIRにサンプルを追加できるサービスモードに入る |