3、Sigma:通用的日志签名格式

来源:https://blog.apnic.net/2021/10/20/sigma-a-generic-log-signature-format/

对IT系统和网络的大多数攻击都表现在事件日志中,这些日志存储在许多组织的SIEM系统或其他日志存储解决方案中。这使得它们成为检测网络中入侵者的好地方。然而,挑战并不多。

第一个挑战是了解和开发攻击技术的特征列表。这通常是一项耗时的任务,因为必须在实验室环境中复制攻击,并且必须在日志背景噪声中识别特定于攻击的日志记录。来自威胁情报界的某人可能已经共享了签名,但其格式与该组织的SIEM不兼容。转换来自不同查询语言并使用不同字段命名的查询是一项容易出错的任务。

另一个挑战是许多组织将日志存储在不同的存储库中。这可能是由于合并和收购,也可能是一个组织的战略。可能还有技术原因或简单的许可原因,这意味着只有特定的日志被摄取到SIEM中,而其余的日志则进入所谓的数据湖。不同的日志存储库意味着需要用不同的查询语言来编写日志签名。

Sigma是一个试图解决这些挑战的开源项目。它由三个部分组成:

(1)通用Sigma规则格式的语言规范。

(2)一个包含超过1000条攻击技术规则的存储库。

(3)将Sigma规则转换为各种查询格式的工具。

它都是开源的,可以在SigmaHQ GitHub组织中找到。可以使用以下命令行在本地克隆它:

git clone https://github.com/SigmaHQ/pySigma.git

一、Sigma规则是什么样的?

让我们以CVE-2020-0688的Sigma规则为例(图2)。这是最近的一个Exchange Server漏洞,被威胁行为者积极利用,以在托管有漏洞的Exchange实例的组织中获得立足之地。在不同的博客文章中描述了对利用企图的检测,这是Sigma规则的基础:



这个Sigma规则有五个组成部分:

1、元数据,包括标题、唯一标识符和一些进一步的信息,这些信息允许分析人员将检测规则上下文化。

2、日志源定义,将签名与某条日志绑定,此处为webserver日志。

3、检测规则本身是在将日志事件字段与特定于利用尝试的值关联起来的定义中定义的。

4、这些检测项与一个条件链接在一起。

5、最后,规则包含一些额外的信息,比如有趣的事件属性,包括规则匹配的事件、已知的误报、严重性级别,以及MITRE ATT&CK战术和技术的链接。

图3显示了针对另一个Exchange Server漏洞CVE-2021-26857的另一个Sigma规则。



构成Sigma规则的元素与第一个例子相同,但是检测逻辑完全不同。该规则描述了由Sysmon或许多端点检测和响应(EDR)产品触发的进程创建事件(1)。Exchange服务器的统一消息工作进程通常不会产生进程,除非在崩溃的情况下,有时会产生Windows错误报告进程,这在检测规则及其条件(2)中定义。

二、规则的转换

下一步,利用Sigma转换工具sigmac将Sigma规则转换为目标查询语言。该工具可以安装pip:

pip install sigmatools

或者在一个虚拟的Python环境中,所有的依赖都可以用Pipenv从克隆的Sigma库中衍生:

pipenv shell

让我们假设结果查询应该在基于elasticsearch的SIEM中使用,该SIEM使用ECS字段命名方案。这可以通过从Sigma库克隆的根目录运行以下命令简单完成:

tools/sigmac -t es-qs -c ecs-proxy   rules/web/web_cve_2020_0688_msexchange.yml

参数-t选择Sigma转换器的后端,该后端负责将规则转换为目标查询语言。后端es-qs转换为Elasticsearch查询字符串,可以粘贴到Kibana中。参数-c选择一个配置。配置ECS -proxy与Sigma转换器一起提供,并为代理日志实现ECS命名方案。结果查询将是:

(http.request.method:"GET" AND url.original.keyword:(*\/ecp\/* OR *\/owa\/*) AND url.original.keyword:*__VIEWSTATE\=*)

现在我们来转换第二条规则。这一次,我们需要一些额外的配置来将通用日志源process_creation映射到特定的日志源。假设我们所处的环境中使用Elasticsearch作为SIEM,使用Sysmon作为日志源,为端点上的进程创建生成事件。转换命令如下:

tools/sigmac -t es-qs -c sysmon -c winlogbeat rules/windows/process_creation/sysmon_cve_2021_26857_msexchange.yml

命令行中提供了两个配置。配置sysmon对应具体的日志源和事件标识符。winlogbeat将Sigma规则中的字段名映射到winlogbeat使用的ECS方案。结果查询是:

((winlog.event_id:"1" AND winlog.channel:"Microsoft\-Windows\-Sysmon\/Operational") AND winlog.event_data.ParentImage.keyword:*UMWorkerProcess.exe AND (NOT (winlog.event_data.Image.keyword:(*wermgr.exe OR *WerFault.exe))))

在使用Windows审计日志记录的环境中,只有更改一些命令行参数才能为Splunk SIEM转换相同的规则:

tools/sigmac -t splunk -c windows-audit -c splunk-windows rules/windows/process_creation/sysmon_cve_2021_26857_msexchange.yml

它会导致这个Splunk查询:

((EventCode="4688" source="WinEventLog:Security") ParentProcessName="*UMWorkerProcess.exe" NOT ((NewProcessName="*wermgr.exe" OR NewProcessName="*WerFault.exe")))

三、为Sigma项目和展望做出贡献

因为Sigma项目是开源的,它依赖于贡献。该项目托管在GitHub上,通过导航到目标目录并添加一个新文件,可以通过web界面贡献新的规则:



Sigma Wiki包含一个规则创建指南和一个可以用来创建新规则的模板。不要犹豫——在合并pull请求之前,规则会被检查,问题会被修复或提出建议。

反馈也很有价值,例如,如果检测规则在某些条件下导致假阳性,那么反馈可以打开一个问题;或者,如果它已经被积极用作检测,并且可以被确认为有用,那么小的拉取请求可以将规则的状态从实验状态改变为稳定状态。目前,大部分规则仍处于实验阶段,还有很大的改进空间。

您可以贡献的另一个领域是转换工具。目前,在pySigma库中开发了一个完整的重写。此外,一个新的CLI正在开发中,但尚未发布。在未来,后台将作为独立的项目来维护,许多来自当前Sigma转换器的后台需要移植到psigma,或者一些目前不再维护的后台需要有人来维护。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容