mandiant/stringsifter

A machine learning tool that ranks strings based on their relevance for malware analysis.

何を解決するか

StringSifter は、バイナリから抽出された文字列を自動的にランク付けすることで、マルウェア分析を高速化するためのツールです。strings や FLOSS などのツールから得られる数千行に及ぶ出力を手動で確認するのではなく、マルウェアの機能を特定する上で最も関連性の高い文字列に集中できます。

動作方法

このツールは、勾配ブースティング決定木(特に LightGBM)に基づく機械学習モデルを使用しており、学習の目的関数としてランキング学習(learning-to-rank)を採用しています。EMBER データセットに含まれるマルウェアバイナリからの文字列を用いて、弱い教師信号(weak supervision)を用いてラベルを生成し、学習を行いました。rank_strings コマンドラインツールで処理でき、flarestrings や FLOSS などの文字列抽出ツールからのパイプ入力を受け付けます。

対象ユーザー

バイナリ、メモリダンプ、またはサンドボックス実行環境において、高価値な文字列を迅速に特定する必要があるマルウェアアナリストやリバースエンジニア向けです。

特徴

  • 既存ツールとの統合: flarestrings および FLOSS とシームレスに連携し、抽出された文字列を処理できます。
  • バッチ処理: --batch オプションにより、フォルダ内の複数ファイルを一度に処理できます。
  • 柔軟なフィルタリング: 上位ランクの文字列や、最小スコア閾値を満たす文字列に限定した出力を可能にします。
  • Docker 対応: インストールが簡単で、プラットフォーム間で一貫した実行が可能なコンテナとして提供されています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト