是否曾为搜索恶意软件样本而烦恼?Mquery 是一个对分析人员友好的 Web GUI,可用于检索你的数字仓库。
它能在眨眼间搜索数 TB 的恶意软件:

底层我们使用了 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 时遇到任何问题、Bug 或功能请求,欢迎创建 GitHub Issue。
你可以在 Discord 上讨论这个项目:
如果有不适合在 Github 或 Discord 上提问的问题,可以直接发送邮件至 CERT.PL ([email protected])。