利用Sigma相关改进威胁检测

来源:https://blog.sekoia.io/improving-threat-detection-with-sigma-correlations/

https://github.com/D0d3cah3dr0n/Dagger/tree/main/rules/sigma

http://kth.diva-portal.org/smash/get/diva2:1589698/FULLTEXT01.pdf

https://maciejszymczyk.medium.com/ksqldb-real-time-sql-magic-in-the-cybersecurity-scenario-part-1-3232fa711442

https://github.com/D0d3cah3dr0n/Dagger/blob/main/sigma-transf/main.py

https://bradleyjkemp.dev/sigmadoc/rules/proxy/proxy_ursnif_malware_c2_url.yml/

今天,我们将Sigma关联性( Correlations)支持到SEKOIA-IO威胁检测能力!在这篇文章中,我们将讨论如何使用它,以及为什么需要它。

一、STIX和STIX模式的局限性

当我们第一次创建威胁检测引擎时,我们查看了现有的数据格式,以确定是否可以使用其中一种。由于我们的愿景是网络威胁情报对威胁检测至关重要,我们转向STIX,发现它是一个很好的候选者:

1、观察数据对象可用于描述事件

2、STIX模式可以描述检测规则

但是随着我们的产品和用例的发展,我们不得不面对一些限制。

首先,我们用来表示事件的观察数据对象远非理想。我们面临着正确索引事件和STIX模型不适合搜索的问题。出于这些原因,我们决定改用Elastic公共模式(ECS)。

然后,我们尝试基于多个事件设计复杂的检测场景。例如,假设我们想要快速连续地检测几个侦察命令的使用。单独的每一个命令都不可疑,但放在一起可能表明有侦察活动:

([process:command_line LIKE ‘quser%’] AND [process:command_line LIKE ‘dir%’] AND [process:command_line LIKE ‘net%’]) WITHIN 30 SECONDS

乍一看,这个模式似乎正在做我们想要的事情。但是有一个主要的问题:STIX Patterning没有办法限制此检测逻辑适用的事件范围。当我们监控整个周边时,这真正的意思是:“quser”anywhere和“dir”anywhere和“net”anywhere在30秒内。我们真正想要的是将此逻辑应用于相同的主机名和可能相同的用户。

不要误解我们,我们仍然认为STIX是模拟威胁情报的最好方法,我们的威胁情报平台正在密集使用它。但为了强大的检测,我们还需要别的东西。

二、Sigma来拯救我们!

在那时候,似乎没有明显的替代者能够提供我们所设想的所有功能,直到这款游戏出现:

Sigma已经是检测规则中最常用的格式,所以这些相关特征的添加使其成为我们寻找的完整选项。这开启了将我们的检测逻辑转换为Sigma的漫长过程,随着SEKOIA.IO中原生Sigma相关性支持的发布,这个过程在本周结束。与STIX模式相比,Sigma相关性的主要改进是增加了“分组”功能。我们前面的例子可以用以下规则修复:

name:quser_recon

detection:

selection:

  process.command_line|startswith:quser

condition:selection

–––

name:dir_recon

detection:

selection:

  process.command_line|startswith:dir

condition:selection

–––

name:net_recon

detection:

selection:

  process.command_line|startswith:net

condition:selection

–––

action:correlation

type:temporal

rule:

-quser_recon

-dir_recon

-net_recon

group-by:

-user.name

-log.hostname

timespan:30s

ordered:false


这依赖于匹配事件序列的“时间”相关规则。下面是我们实验室中由该规则生成的一个警报示例。如您所见,警报是在几秒钟内创建的。



Sigma correlation还支持“event_count”类型来匹配几个类似的事件。以“user.name”在5分钟内登录失败超过5次为例:


最后,“value_count”关联类型可用于根据字段中唯一值的数量创建检测规则。例如,这里有一个规则来检测当一个“user.name”登录失败超过5个不同的“日志”。在5分钟内输入主机名:

三、显著的差异

我们很高兴现在支持SEKOIA.IO中的Sigma和Sigma相关。也就是说,有几点使我们的实现与典型的Sigma支持不同,值得一提:

我们直接在规则中使用来自ECS格式的规范化字段。

Sigma相关规范还没有包含在Sigma的当前版本中。据我们所知,我们是第一个支持它的。

我们添加了一个“aliases”属性来覆盖更复杂的用例。

虽然Sigma通常用于将规则转换为查询语言,但我们的实时检测引擎中就建立了对Sigma的支持。这意味着更快的检测,使您能够对网络攻击作出快速反应。

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

推荐阅读更多精彩内容