
Androidマルウェアから"実用的な"データ(C&C、電話番号など)を抽出するシンプルなフレームワーク
Androidマルウェアから"実用的な"データ(C&Cs、電話番号など)を抽出するシンプルなフレームワーク
このプロジェクトを使い始める前に、以下のパッケージをインストールする必要があります:
git clone https://github.com/androguard/androguard; cd androguard; sudo python setup.py install)easy_install pycrypto)easy_install pyelftools)easy_install yara)アイデアは非常にシンプルでモジュール化されています。このプロジェクトにはいくつかのディレクトリがあり、静的解析や出力処理のための場所を提供します:
plugins - ここはマルウェアの識別とデータ抽出を担当するコードを置く場所です。すべてのクラスは templates の Plugin クラスを継承する必要があります。recon はマルウェアを識別します。データを確実に抽出できるようにするために必要なコードをすべてここに置いてください。extract は通常の抽出を行います。抽出されたデータに特定のフォーマットはありませんが、出力プロセッサが統一された方法で読み取れるように、Pythonの辞書形式で保持することをお勧めします。processing - ここには OutputProcessor クラスを継承するクラスを置きます。これらはデータ抽出後に呼び出され、抽出された情報を取得します。process メソッドはデータを受け取り、何らかの結果を生成します(例: ファイルやC&Cをデータベースに追加する、C&Cが稼働中かどうかを確認するなど)。貢献したい場合は、新しいマルウェアファミリーをデコードするプラグインを書いてください。既存のプラグインを見るだけですぐに書けます。
APKサンプルを持っているが、それが何なのか、C&Cがどこにあるのか分からない場合は、次のように入力します:
python maldrolyzer.py [sample_path]
maldrolyzerがマルウェアファミリーを認識すると、以下のような有用な情報を表示します:
{'c2': ['http://esaphapss.net/bn/save_message.php'],
'malware': 'xbot007',
'md5': 'ce17e4b04536deac4672b98fbee905e0',
'sha1': 'a48a2b8a5e1cae168ea42bd271f5b5a0c65f59a9',
'sha256': 'c3a24d1df11baf2614d7b934afba897ce282f961e2988ac7fa85e270e3b3ea7d',
'sha512': 'a47f3db765bff9a8d794031632a3cf98bffb3e833f90639b18be7e4642845da2ee106a8947338b9244f50b918a32f1a6a952bb18a1f86f8c176e81c2cb4862b9'}
また、http://amtrckr.info を使用すると、複数のマルウェアファミリーのC&Cを追跡できます。