YARA样本查询平台:mquery
2023-3-1 15:37:26 Author: 红队蓝军(查看原文) 阅读量:22 收藏

mquery简介

Mquery是一个Web的YARA样本查询平台,由波兰CERT开源。项目地址:https://github.com/CERT-Polska/mquery

mquery架构

可见mquery的组件是比较简单的,由4个部分组成:

  • Web前

  • Daemons (也叫mquery agents或workers)

  • UrsaDB (后端数据库)

  • Redis

安装mquery
1.准备1台Linux服务器,安装docker和docker-compose
2.构建、启动mquery容器
git clone --recurse-submodules https://github.com/CERT-Polska/mquery.gitcd mquerymkdir samplesvim .env #设置样本路径,比如SAMPLES_DIR=/root/mquery/samples INDEX_DIR=/root/mquery/indexdocker-compose up -d --scale daemon=3

3.在项目的sample路径下放置样本(.env中配置的挂载路径)

4.构建ursadb索引

docker-compose exec ursadb ursacliindex "/mnt/samples" with taints ["white"]
使用mquery
测试样本是否正常导入数据库
rule mquery_exceptions {    strings: $a = "Exception"    condition: all of them}
在平台创建一条YARA进行检测,这里选用Elastic开源的Mirai检测规则查询:
https://github.com/elastic/protections-artifacts/blob/main/yara/rules/Linux_Trojan_Mirai.yar
可以看到成功检出了很多Mirai的样本。也可以选定YARA搜索的范围,比如建立一个白名单文件索引。通过检测YARA是否匹配白名单索引,减少出现误报。
此外,mquery的一个优点是YARA查询快。
测试样本数量:28398

测试方式

耗费时间

mquery

35s

yara(Linux)

48s

Q:为什么mquery的YARA检索速度更快?
A:主要原因是做了预过滤,实现的方式就是Ursadb,该数据库专门针对二进制文件检索做了优化。

mquery流程图

那么Ursadb的优化具体是什么原理?例如,一个YARA如下:
rule example{    strings:        $test = "abcd"    condition:        $test}
这时,mquery只在同时包含“abc”和“bcd”子字符串的文件上运行YARA, 而非在每个文件上运行YARA。也正因如此,有些YARA规则是无法被mquery优化查询速度的。
如果希望继续深入了解Ursadb,可以阅读以下文档:
https://cert-polska.github.io/ursadb/
高级使用
前文介绍了基础的YARA查询,除此之外,mquery还有很多高级功能。比如用户认证、API、插件,那么理论上就可以通过API实现自动化,这部分需要各位看官自行摸索了。

网空引擎语句
网空引擎语句:
hunter:web.icon="37013ee35e340a9f0bdf65ec56b21f18"fofa:icon_hash="1706076547"
       

开源C2 Sliver的安装及配置

Cobaltstrike威胁狩猎总结

容器安全事件排查

云原生安全:编排文件


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NDY2MTQ1OQ==&mid=2247506943&idx=1&sn=5cfa00dc5b61142cf00cdcf6e88935e3&chksm=ce676143f910e855977c4601d768d334eadfe992969aeb6fd9dd74c2aa48bf50192bccb7623f#rd
如有侵权请联系:admin#unsafe.sh