freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

基于Sigma的独立检测工具-Zircolite
2022-07-22 18:08:11
所属地 北京

基于Sigma的独立检测工具-Zircolite

在之前的文章《深入了解Sigma规则以及如何编写自己的威胁检测规则》中,介绍过如何编写属于自己的Sigma规则。本文将讲述如何利用开源工具Zircolite结合Sigma规则集在端点进行检测。

0x01 简介

Zircolite是一个用于Python3编写的独立工具,它允许在MS Windows EVTX(EVTX和JSONL格式)、Linux Audit日志和Sysmon日志上使用Sigma规则。

  • Zircolite可直接用于端点调查;

  • Zircolite相对较快,可以在几秒钟内解析大型数据集;

  • Zircolite基于Sigma后端(SQLite),不使用内部Sigma转换;

Zircolite可以直接在Python中使用,也可以使用发行版中提供的二进制文件(仅限Microsoft Windows和Linux)。参考文档在这里

0x02 安装

使用以下命令来安装依赖项:pip3 install -r requirements.txt

0x03 基本用法

可以使用zircolite.py -h来查看帮助

对于EVTX文件,扩展名为".evtx"

python3 zircolite.py --evtx <EVTX_FOLDER> --ruleset <Converted Sigma rules>
python3 zircolite.py --evtx ../Logs --ruleset rules/rules_windows_sysmon.json

默认情况下:

  • --ruleset不是强制性的,但默认规则集将是rules/rules_windows_generic.json

  • 结果写在detected_events.json中,与Zircolite在同一目录;

  • 将在当前工作目录中创建一个zircolite.log日志文件;

Audit日志

python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json --auditd

使用--events--evtx是一样的,但--events更适合用于非EVTX日志。

SysmonForLinux日志

SysmonForLinux已于2021年10月发布。它以文本格式输出XML,每行一个事件。从2.6.0版开始,Zircolite初步支持SysmonForLinu日志文件。要测试它,只需给你命令行添加-S参数。

python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json --sysmon4linux

由于日志来自Linux,默认文件扩展名是.log,使用时需要使用-S参数指定。

JSONL/NDJSON

可以直接在JSONL/NDJSON文件(NXLog文件)上使用Zircolite--jsononly或者-j

python3 zircolite.py --events <EVTX_FOLDER> --ruleset <CONVERTED_SIGMA_RULES> --jsononly

SQLite数据库文件

由于Zircolite中的所有内容都存储在内存中的SQlite数据库中,因此可以选择将数据库保存在磁盘上以备后用。可以使用--dbfile <db_filename>参数。

python3 zircolite.py --evtx <EVTX_FOLDER> --ruleset <CONVERTED_SIGMA_RULES> --dbfile output.db

如果需要重新执行Zircolite,可以直接使用SQLite数据库作为EVTX源(带有--evtx <SAVED_SQLITE_DB_PATH>--dbonly) 并避免转换EVTX,对EVTX进行处理后并将数据插入数据库。使用这种方法可以节省大量时间...但是将无法使用--forwardall选项。

0x04 生成自己的规则集

默认规则集已在rules目录。Zircolite提供了这些开箱即用的规则集,这些规则集只是位于Sigma存储库中的rules/windows,因此你应该生成适合自己的规则集。

使用sigmatools

Zircolite使用JSON格式的Sigma规则。要生成规则集,需要使用官方Sigmatools(最低0.21版):

git clone https://github.com/SigmaHQ/sigma.git
cd sigma

安装Sigma依赖项,请在此处查看

Sysmon规则集(当终端有Sysmon日志时)

tools/sigmac \
 -t sqlite \
 -c tools/config/generic/sysmon.yml \
 -c tools/config/generic/powershell.yml \
 -c tools/config/zircolite.yml \
 -d rules/windows/ \
 --output-fields title,id,description,author,tags,level,falsepositives,filename,status \
 --output-format json \
 -r \
 -o rules_sysmon.json \
 --backend-option table=logs

解释说明:

-t 是后端类型(SQlite)
-c 是来自官方存储库的后端配置
-r 选项用于转换整个目录(如果是单个规则转换不要忘记删除)
-o 选项用于提供输出文件名
--backend-option用于指定SQLite表名(保持原样)

通用规则集(当终端没有Sysmon日志时)

tools/sigmac \
 -t sqlite \
 -c tools/config/generic/windows-audit.yml \
 -c tools/config/generic/powershell.yml \
 -c tools/config/zircolite.yml \
 -d rules/windows/ \
 --output-fields title,id,description,author,tags,level,falsepositives,filename,status \
 --output-format json \
 -r \
 -o rules_generic.json \
 --backend-option table=logs

即时规则转换

从Zircolite 2.2.0开始,如果你的sigmatools版本>= 0.21,如果你提供Sigma配置文件和sigmac路径。非常方便测试,但你应该避免它,因为它比较慢:

python3 zircolite.py --evtx ../Samples/EVTX-ATTACK-SAMPLES/ \
                     --ruleset <DIRECTORY>/sigma/rules/windows/ \
                     --sigma <DIRECTORY>/sysmon.yml \
                     --sigmac <DIRECTORY>/sigmac

为什么要建立属于自己的规则集

你应该考虑到提供的默认规则是位于Sigma规则库中的rules/Windows规则集,可能会面临以下问题:

  • 某些规则会产生大量的误报;

  • 某些规则可能会非常慢;

例如:

  • "Suspicious Eventlog Clear or Configuration Using Wevtutil" 通常会产生大量的误报;

  • "Notepad Making Network Connection" 非常明显的减慢了Zircolite的执行速度;

0x05 实际测试

获取Zircolite并安装依赖项

sudo git clone https://github.com/wagga40/Zircolite.git
cd Zircolite/
sudo pip install -r requirements.txt
python3 zircolite.py  -h

规则转换

获取Sigma规则库

sudo git clone https://github.com/SigmaHQ/sigma.git

转换规则

python3 sigmac
sudo python3 sigmac -t sqlite -d /hacker/sigma/rules/windows/  --output-fields title,id,description,author,tags,level,falsepositives,filename,status --output-format json -c /hacker/sigma/tools/config/zircolite.yml -r -o rules_test.json --backend-option table=logs

下载样例日志

样例日志下载地址

测试

执行以下命令进行测试:

sudo python3 zircolite.py --evtx dicovery_4661_net_group_domain_admins_target.evtx --ruleset /hacker/Zircolite/rules/rules_test.json

image

022-07-21 23:35:44 INFO     [+] Checking prerequisites
2022-07-21 23:35:44 INFO     [+] Extracting EVTX Using 'tmp-UWUJGOBA' directory 
2022-07-21 23:35:44 INFO     [+] Processing EVTX
2022-07-21 23:35:44 INFO     [+] Creating model
2022-07-21 23:35:44 INFO     [+] Inserting data
2022-07-21 23:35:44 INFO     [+] Cleaning unused objects
2022-07-21 23:35:44 INFO     [+] Loading ruleset from : /hacker/Zircolite/rules/rules_test.json
2022-07-21 23:35:44 INFO     [+] Executing ruleset - 1569 rules
2022-07-21 23:35:44 DEBUG        - Security Eventlog Cleared [high] : 1 events
2022-07-21 23:35:44 DEBUG        - Reconnaissance Activity [high] : 6 events
2022-07-21 23:35:44 DEBUG        - AD Privileged Users or Groups Reconnaissance [high] : 6 events
2022-07-21 23:35:44 DEBUG        - Security Event Log Cleared [medium] : 1 events
2022-07-21 23:35:44 INFO     [+] Results written in : detected_events.json
2022-07-21 23:35:44 INFO     [+] Cleaning
2022-07-21 23:35:44 INFO

从输出内容可以看到总共执行了1569个规则,发现安全事件日志删除事件1个(日志),级别为高;侦查活动事件6个(日志),级别为高;AD特权用户或组枚举事件6个(日志),级别为高;安全事件日志删除1个(日志),级别为中。结果输出写入detected_events.json文件中(与Zircolite在同一目录)。

image

由于我们下载的日志是AD特权用户或组枚举日志,所以重点关注AD特权用户或组枚举事件结果

image
image
image
可以看到成功分析提取出了AD特权用户或组枚举事件。

你可能会疑惑为什么安全事件日志清除告警级别会出现两种情况,这与Sigma规则有关,查看输出结果,在detected_events.json文件中。你会发现规则部分规则内容是重复的,但这些规则的创建者把它们划分成了不同的严重级别。

image
image

0x06 总结

在实际测试过程中,可以看出Zircolite作为一款基于Sigma的独立检测工具,总体效果来看还是不错的,但想要在实战中发挥作用,还会有一段很长路的要走。目前来看将会面临以下问题:

  • 1.国内多数端点未配置审核策略,日志质量不高,很难进行分析;

  • 2.受限于Sigma规则质量影响,可能会出现重复告警、误报等情况。

0x07 参考

Zircolite 官方手册

https://github.com/wagga40/Zircolite/blob/master/docs/Usage.md#usage

Windows EVTX 日志样例下载地址

https://github.com/sbousseaden/EVTX-ATTACK-SAMPLES

Sigma官网Github库

https://github.com/SigmaHQ/sigma

# 安全分析 # sigma
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录