
YARAマルウェアクエリアクセラレーター(ウェブフロントエンド)
マルウェアサンプルの検索に困ったことはありませんか? Mqueryは、デジタル倉庫を閲覧するためのアナリストフレンドリーなWeb GUIです。
これを利用すれば、テラバイト単位のマルウェアを瞬時に検索できます。

内部では、当社の UrsaDB を使用して、ngramによるyaraクエリを高速化しています。
パブリックインスタンスは近日公開予定です。お楽しみに...
最も簡単な方法は docker compose を使用することです。
git clone https://github.com/CERT-Polska/mquery.git
cd mquery
vim .env # オプション - サンプルとインデックスディレクトリの場所を変更
docker compose up --scale daemon=3 # イメージのビルドには時間がかかります
Webインターフェースは http://localhost で利用できます。

(その他のインストールオプションについては、インストールマニュアル を参照してください。)
SAMPLES_DIR(デフォルトはリポジトリ内の ./samples、.env ファイル内の変数で設定可能)にいくつかのファイルを配置します。
Docker内でursacliを起動します。
docker compose exec ursadb ursacli
[2023-06-14 17:20:24.940] [info] Connecting to tcp://localhost:9281
[2023-06-14 17:20:24.942] [info] Connected to UrsaDB v1.5.1+98421d7 (connection id: 006B8B46B6)
ursadb>
選択したn-gramでサンプルをインデックス化します(時間がかかる場合があります!)
ursadb> index "/mnt/samples" with [gram3, text4, wide8, hash4];
[2023-06-14 17:29:27.672] [info] Working... 1% (109 / 8218)
[2023-06-14 17:29:28.674] [info] Working... 1% (125 / 8218)
...
[2023-06-14 17:37:40.265] [info] Working... 99% (8217 / 8218)
[2023-06-14 17:37:41.266] [info] Working... 99% (8217 / 8218)
{
"result": {
"status": "ok"
},
"type": "ok"
}
これにより、サンプルディレクトリ内のすべての新しいファイルがスキャンされ、インデックス化されます。進行状況は左側の tasks ウィンドウで監視できます。

新しいファイルを追加するたびに、このプロセスを繰り返す必要があります!
インデックス化が完了すると、新しいデータセットが表示されます。

これは開始するための良い簡単な方法ですが、大規模なコレクションをお持ちの場合は、マニュアルの インデックス化ページ を読むことを強くお勧めします。
これでファイルが検索可能になります。任意のYaraルールを検索ウィンドウに挿入し、Query をクリックします。デモンストレーションとして、このアプリケーションのソースコードをインデックス化し、次のYaraルールをテストしました。
rule mquery_exceptions {
strings: $a = "Exception"
condition: all of them
}

詳細については、ドキュメント を参照してください。大規模なデプロイメントを計画している場合には、読んでおくことをお勧めします。
ホスト版はこちらからもお読みいただけます: cert-polska.github.io/mquery/docs.
インストール手順 を参照してください。
貢献をご希望の場合は、専用の 貢献者向けドキュメント をご覧ください。
リリースログ を読んで、プロジェクトの変更点を確認してください。
mqueryに関する問題、バグ、機能リクエストがありましたら、GitHubのIssueを作成してください。
このプロジェクトについてDiscordでチャットできます。
GitHubやDiscordに適さない質問がある場合は、CERT.PL([email protected])に直接メールしてください。