基于SIGMA規則的威脅檢測

來源:https://www.loginsoft.com/blog/2020/06/17/threat-detection-with-sigma-rules/

sigma轉換工具

https://uncoder.io/#

事件響應是您為恢復交付組織業務服務的能力而采取的操作。它也被稱為IT事件,計算機事件,或安全事件。事故響應的主要目標是以一種限制損害和減少恢復時間和成本的方式處理這種情況。一個組織使用事件響應來響應和管理網絡攻擊。


Source: researchgate.net

安全團隊實時檢測這些威脅,管理事件響應,并在網絡上的不同點執行法醫調查。

像ArcSight和Splunk這樣的SIEM解決方案使分析師能夠對其環境中的威脅有更廣泛的了解。這使他們能夠優化分類和補救。還可以加速檢測,從而減少事件響應時間。

SIGMA是一個定義檢測的開放標準平臺。它支持在不同的組織之間重用和共享分析。

一、SIGMA

SIGMA是一種通用的開放簽名格式,允許您以簡單的方式描述SIEM系統中的相關日志事件。這種格式非常靈活,易于編寫,適用于任何類型的日志文件。

Source: owasp.org

二、為什么SIGMA:

支持多個SIEM工具,如Elasticsearch, IBM QRadar和Splunk。它用于處理與Snort類似的日志文件,Snort用于處理網絡流量,YARA用于處理文件。

(1)它使分析能夠在組織之間重用和共享。

(2)用于分析的高級通用語言

(3)最可靠的方法如解決日志簽名問題

(4)純文本YAML文件

(5)簡單的模式

三、支持的格式

Splunk

QRadar

ArcSight

Elasticsearch (Elastalert, Query strings, DSL, Watcher, & Kibana)

Logpoint

四、規則的格式:

這些規則指定檢測簽名,它以一般形式描述對日志數據的搜索。每個規則指定滿足檢測條件所需的一組條件。


五、組件:

下面的部分解釋組件屬性。

標題(屬性:Title):標題描述檢測規則。

規則標識(屬性:id,相關):基于id屬性中唯一標識符的全局定義的SIGMA規則。

描述(可選)(屬性:Description):此部分,描述規則和惡意活動。

引用(可選)(屬性:reference):提供用于派生規則的信息源。

Author(可選)(屬性:Author):規則的作者。

日志源(屬性:logsource):本節描述sigma規則中的日志源定義。

它進一步包含下面部分討論的3種類型的屬性。

產品Product:描述匹配所有規則的產品。

服務Service:它應該限制為字段名被設置為產品日志的事件。

類別Category:此屬性允許您選擇屬于產品組的所有日志文件。

檢測(屬性:detection):在本節中,在選擇中列出日志數據特定字段的搜索值。

條件(屬性:condition):這些選擇在一個條件有關。

Level(屬性:Level):描述匹配的嚴重程度,可用于過濾規則。

六、生成CVE-2009-3898的SIGMA規則

脆弱性分析:

Nginx容易受到“對受限目錄的路徑名的不當限制(路徑遍歷)”的攻擊。Nginx是一個web服務器,它還可以用作反向代理、負載均衡器、郵件代理和HTTP緩存。Nginx在0.7.63之前和0.8.17之前的0.8.x,允許目錄遍歷,并且沒有正確驗證目錄遍歷字符(../),攻擊者可以使用這些字符移動或復制文件到不同的目標。Nginx允許WebDAV組件使用復制和移動方法。這種攻擊需要WebDAV的“上傳”權限。

我們已經從這里下載了所需的版本。

現在讓我們通過日志分析回到檢測上來,下面是來自0.7.16漏洞版本的訪問日志。

127.0.0.1 - - [20/May/2020:10:03:54 +0530] "COPY /index.html HTTP/1.1" 204 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"

127.0.0.1 - - [20/May/2020:11:59:16 +0530] "MOVE /index.html HTTP/1.1" 204 0 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0"

以及0.7.17固定版本的錯誤日志

2020/05/20 13:51:31 [error] 18762#0: *5 client sent invalid "Destination" header:

"http://localhost/../var/www/abc.html", client: 127.0.0.1, server: localhost, request: "COPY /index.html HTTP/1.1", host: "localhost"

2020/05/20 13:52:59 [error] 18762#0: *6 client sent invalid "Destination" header: "http://localhost/../var/www/abc.html", client: 127.0.0.1, server: localhost, request: "MOVE /index.html HTTP/1.1", host: "localhost"

從上面的固定日志和漏洞日志中,我們可以得出以下檢測模式。

在這個漏洞的部分,請求包含“復制”或“移動”方法,有204個響應代碼。

在此固定部分中,錯誤日志包含以下消息。‘客戶端發送了無效的‘目的地’頭部’

這是一個關鍵的階段,分析人員會發現很難為任何SIEM工具定義定制的規則。每個SIEM產品包含不同的簽名,因此需要為任何SIEM工具編寫通用的簽名作為通用規則。在這種情況下,我們可以使用Sigma來定義固定和脆弱檢測的規則作為一個單一的模式。

基于上述檢測,我們已經編寫了sigma規則。在這里,在我們的研究中,我們將使用Sigma格式來描述YAML文件中的檢測。

Sigma Rule for CVE-2009-3898

title: CVE-2009-3898 Exploitation Attempt

id: cf98b0cf-0b0c-4af6-bd28-6cefabd58cf8

status: experimental

description: Detects the exploit attempt for Path Traversal Vulnerability

references:

? - https://www.exploit-db.com/exploits/9829

author: Loginsoft Research unit

date: 2020/05/27

logsource:

? product: nginx

? category: webserver

detection:

? selection:

? ? sc-status: 204

??? cs-method:

? ? ? - 'COPY'

? ? ? - 'MOVE'

? ? c-uri: '*index.html'

? keywords:

? ? - 'client sent invalid "Destination" header'

? condition: selection or keywords

falsepositives:

? - Unknown

level: medium

寫完sigma規則后,我們可以使用uncoder或Sigmac將sigma規則轉換為任何其他SIEM工具格式。

uncoder是一個用于SIEM搜索查詢語言轉換的開源工具。

Sigmac是一個python命令行工具,它執行從sigma規則到目標SIEM格式的轉換。

在這個部分,我們已經使用uncoder工具和轉換規則從sigma到Splunk查詢如下。

Splunk Query for CVE-2009-3898?

((sourcetype="nginx:plus:access" uri_path="*index.html" status="204" (http_method="COPY" OR http_method="MOVE")) OR (sourcetype="nginx:plus:error" "client sent invalid \"Destination\" header"))?

執行上述查詢后,我們將得到以下結果。

規則轉換中的挑戰:

不同字段名稱的使用

從sigma規則到SIEM特定名稱的字段名稱映射。

規則引用特定于環境的值子集

占位符

SIGMA在事件響應中有什么用?

目前,由于存在多個異構環境,還缺乏一種標準化的描述格式來定義日志格式。sigma將規則轉換為查詢,這些查詢可以轉換為Splunk、ArcSight和許多其它公司的等效規則。

規則格式非常靈活,易于編寫,適用于任何類型的日志文件。sigma的主要目標是提供一種自由結構的形式,在這種形式中開發人員或分析人員可以描述他們的檢測方法,并使其可共享。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,748評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,165評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,595評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,633評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,435評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,943評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,035評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,175評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,713評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,599評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,788評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,303評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,034評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,412評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,664評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,408評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,747評論 2 370