來(lái)源: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關(guān)聯(lián)性( Correlations)支持到SEKOIA-IO威脅檢測(cè)能力!在這篇文章中,我們將討論如何使用它,以及為什么需要它。
一、STIX和STIX模式的局限性
當(dāng)我們第一次創(chuàng)建威脅檢測(cè)引擎時(shí),我們查看了現(xiàn)有的數(shù)據(jù)格式,以確定是否可以使用其中一種。由于我們的愿景是網(wǎng)絡(luò)威脅情報(bào)對(duì)威脅檢測(cè)至關(guān)重要,我們轉(zhuǎn)向STIX,發(fā)現(xiàn)它是一個(gè)很好的候選者:
1、觀察數(shù)據(jù)對(duì)象可用于描述事件
2、STIX模式可以描述檢測(cè)規(guī)則
但是隨著我們的產(chǎn)品和用例的發(fā)展,我們不得不面對(duì)一些限制。
首先,我們用來(lái)表示事件的觀察數(shù)據(jù)對(duì)象遠(yuǎn)非理想。我們面臨著正確索引事件和STIX模型不適合搜索的問(wèn)題。出于這些原因,我們決定改用Elastic公共模式(ECS)。
然后,我們嘗試基于多個(gè)事件設(shè)計(jì)復(fù)雜的檢測(cè)場(chǎng)景。例如,假設(shè)我們想要快速連續(xù)地檢測(cè)幾個(gè)偵察命令的使用。單獨(dú)的每一個(gè)命令都不可疑,但放在一起可能表明有偵察活動(dòng):
([process:command_line LIKE ‘quser%’] AND [process:command_line LIKE ‘dir%’] AND [process:command_line LIKE ‘net%’]) WITHIN 30 SECONDS
乍一看,這個(gè)模式似乎正在做我們想要的事情。但是有一個(gè)主要的問(wèn)題:STIX Patterning沒(méi)有辦法限制此檢測(cè)邏輯適用的事件范圍。當(dāng)我們監(jiān)控整個(gè)周邊時(shí),這真正的意思是:“quser”anywhere和“dir”anywhere和“net”anywhere在30秒內(nèi)。我們真正想要的是將此邏輯應(yīng)用于相同的主機(jī)名和可能相同的用戶(hù)。
不要誤解我們,我們?nèi)匀徽J(rèn)為STIX是模擬威脅情報(bào)的最好方法,我們的威脅情報(bào)平臺(tái)正在密集使用它。但為了強(qiáng)大的檢測(cè),我們還需要?jiǎng)e的東西。
二、Sigma來(lái)拯救我們!
在那時(shí)候,似乎沒(méi)有明顯的替代者能夠提供我們所設(shè)想的所有功能,直到這款游戲出現(xiàn):
Sigma已經(jīng)是檢測(cè)規(guī)則中最常用的格式,所以這些相關(guān)特征的添加使其成為我們尋找的完整選項(xiàng)。這開(kāi)啟了將我們的檢測(cè)邏輯轉(zhuǎn)換為Sigma的漫長(zhǎng)過(guò)程,隨著SEKOIA.IO中原生Sigma相關(guān)性支持的發(fā)布,這個(gè)過(guò)程在本周結(jié)束。與STIX模式相比,Sigma相關(guān)性的主要改進(jìn)是增加了“分組”功能。我們前面的例子可以用以下規(guī)則修復(fù):
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
這依賴(lài)于匹配事件序列的“時(shí)間”相關(guān)規(guī)則。下面是我們實(shí)驗(yàn)室中由該規(guī)則生成的一個(gè)警報(bào)示例。如您所見(jiàn),警報(bào)是在幾秒鐘內(nèi)創(chuàng)建的。
Sigma correlation還支持“event_count”類(lèi)型來(lái)匹配幾個(gè)類(lèi)似的事件。以“user.name”在5分鐘內(nèi)登錄失敗超過(guò)5次為例:
最后,“value_count”關(guān)聯(lián)類(lèi)型可用于根據(jù)字段中唯一值的數(shù)量創(chuàng)建檢測(cè)規(guī)則。例如,這里有一個(gè)規(guī)則來(lái)檢測(cè)當(dāng)一個(gè)“user.name”登錄失敗超過(guò)5個(gè)不同的“日志”。在5分鐘內(nèi)輸入主機(jī)名:
三、顯著的差異
我們很高興現(xiàn)在支持SEKOIA.IO中的Sigma和Sigma相關(guān)。也就是說(shuō),有幾點(diǎn)使我們的實(shí)現(xiàn)與典型的Sigma支持不同,值得一提:
我們直接在規(guī)則中使用來(lái)自ECS格式的規(guī)范化字段。
Sigma相關(guān)規(guī)范還沒(méi)有包含在Sigma的當(dāng)前版本中。據(jù)我們所知,我們是第一個(gè)支持它的。
我們添加了一個(gè)“aliases”屬性來(lái)覆蓋更復(fù)雜的用例。
雖然Sigma通常用于將規(guī)則轉(zhuǎn)換為查詢(xún)語(yǔ)言,但我們的實(shí)時(shí)檢測(cè)引擎中就建立了對(duì)Sigma的支持。這意味著更快的檢測(cè),使您能夠?qū)W(wǎng)絡(luò)攻擊作出快速反應(yīng)。