search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

如何正確的利用威脅情報在網路安全運維中的分析和應用

前言

很多企業使用 SIEM 來收集日誌數據,並將安全事件與多類安全設備(如東方網域公司的入侵檢測設備、Web應用防火牆、智能清洗系統等)日誌相關聯,指導網路安全工程師進行風險處置和預防。然而 SIEM 也存在局限,當海量的告警來襲時監控人員往往被淹沒在之中無從下手,主要原因就是對於威脅的告警沒有處理的依據,比如一些經驗尚淺的小公司缺乏有經驗的監控人員,進而很難判定一條安全事件告警是掃描還是針對性攻擊引起的(通常後者需要更多關注)。而通過藉助於威脅情報,可為安全人員在進行日誌分析和攻擊溯源時提供有力幫助,也可為監控人員提供處理依據。

在本文中,來自東方網域新興科技有限公司的安全管理工程師,將基於 Splunk(機器數據的引擎。使用 Splunk 可收集、索引和利用所有應用程序、伺服器和設備生成的快速移動型計算機數據 ),介紹威脅情報在網路安全運維中的分析和應用。

什麼是威脅情報

根據Gartner的定義,威脅情報是指基於一定知識的證據,已經存在或正在形成的潛在威脅,比如,上下文、機制、指標、意義以及可實施的建議,利用這些,可以幫助當事人形成應對這些危險的決策。

針對攻擊者的威脅情報應該包含以下要點:

系統架構

在我們公司,Splunk 主要被用來收集防禦吧產品的各類安全設備、操作系統、應用系統日誌,從而實現安全監控、安全告警、數據分析的需求。

安全設備通過 Syslog 發送,其餘存放於操作系統文件系統中的日誌通過在客戶端操作系統安裝 Splunk Forwarder 實現日誌收集。

初期通過日誌欄位提取后在 Splunk 實現了基本的報表和告警。然而正如前言所述,我們很快就被告警淹沒,無論如何調整告警閾值都無法令人滿意,於是開始尋找解決方案,通過一系列的選型比較,工程師最終決定引入來自微步在線(ThreatBook)的第三方安全情報數據,以API形式與 Splunk 整合。

這裡特別要注意的是——威脅情報數據的用量通常是有限制的(如按月計量),因此我們部署了前置系統作為本地威脅情報庫,用以緩存查詢結果,還順帶實現了專供內部使用的 Web 交互查詢界面,後來又順路實現了威脅歷史信息的記錄,所有產生過告警的威脅都會被記錄,並且可被關聯搜索。如下圖所示:

(威脅情報分析界面圖,威脅情報數據來自微步在線ThreatBook API)

經過一段時間的測試威脅情報數據的應用,我們逐漸信任了數據的準確度,並開始研究威脅IP自動阻斷方案。由於一般在網路建設時並沒有這個需求,由此首要目標是逐個尋找網路中是否有串聯設備支持通過調用 API 的方式來達到 IP 阻斷的目的,最終我們在一台專門抗 DDoS 1000G洪水攻擊的清洗設備中發現了這個功能,並按照API的要求數據格式實現了介面調用。

系統架構示意圖如下:

這裡介紹一下情報威脅相關知識

首先解釋一個詞:指標(Indicator)。指標是一條信息,指向一個確定性的結論,它是威脅情報里的核心組成,完善的威脅情報還可能含有其它參數,如:背景信息、上下文信息、時效性、升級時間、信譽度,等等。

通過威脅情報的指標可以用兩種方法對其進行分類:所產生的作用以及指標的數據類型,對威脅情報進行分類,對分類的討論可以讓大家對威脅情報有更具體、形象的理解。

一、基於用途的分類

基於用途,可以把威脅情報分為4類,分別是:

1、歸屬指標:它可以區分特定的行為或者證據,指向特定的攻擊者,主要回答問題「誰」(如:誰寫的惡意軟體,誰發起的攻擊)。這無疑一個非常困難的問題,指標給出的回答也許模糊不清,但這是情報分析中不可或缺的一環。一般來說,這類情報的收集和分析能力不是大多數私營公司可以建立的,它涉及到大量有關組織的戰略、戰役及戰術相關情報數據,也包括其它傳統來源的情報數據,最後即使有這樣的能力也往往在行為上受到法律的限制。 2、檢測指標:它指向在主機或者網路上可以觀察到的事件,如果命中,就意味者一個安全事件。它嘗試回答的問題是「what」(如:網路中某個木馬聯繫了CnC伺服器;這個Web會話中包含了注入攻擊等)。這個類型的威脅情報形成了市場上可以看到的威脅情報產品的絕大多數,在討論基於數據類型分類時也是側重考慮的這點。 3、指向指標:幫助預測那些用戶、設施或者項目,可能成為定向攻擊的目標。這個類型雖然非常有價值,但是它和特定的行業或者組織關聯更緊密,因此現在還很少看到提供此方面內容的威脅情報廠商。 4、預測指標:通過行為模式來預測其它事件的發生(如:發現某PC下載了一個後門程序也許就可以預測之前這台設備發生過漏洞利用,之後會有連接CnC的網路行為),這個方面的知識安全分析過程中一直在使用,每一個成熟的安全分析師都會關注收集攻擊者行為模式方面的信息。

一個具體指標可以同時屬於不同類型情報,例如CnC地址,可以同時是歸屬指標和檢測指標;而惡意軟體代碼的某些特殊特徵也是如此。

二、數據類型的分類

在威脅情報相關的文章中,David J. Bianco 這位曾經在Mandiant擔任狩獵團隊leader的一篇《The Pyramid of Pain》非常出色。這篇文章對不同類型的威脅情報及其在攻防對抗中的價值有非常清晰的描述。下面這部分的內容主要來源與對這篇文章的理解。

建立這個金字塔模型,就是為了說明你可能用來檢測敵方活動的威脅情報相關的指標類型,以及當你能夠利用這些指標時,會引起的攻擊者的攻擊代價大小或者說痛苦指數。一般來說威脅情報中價值最低的是Hash值、IP地址和域名,其次是網路/主機特徵、攻擊工具特徵,對攻擊者影響最大的是TTP(戰術、技術和行為模式)類型的威脅情報。下面分別闡明道理。

1、HASH值:SHA1或MD5是最常見的例子,對應於入侵相關的特定樣本/文件。任何文件的改變,即使是無關緊要的在未使用資源中修改一個bit或者在結束位置添加一個Null。結果就是一個完全不同也不相關的哈希值。哈希值的改變是那麼容易,在很多情況下,它甚至可能不值得跟蹤。需要指出的是有一類特殊的 fuzzy hashes ,它試圖通過在計算時考慮輸入的相似性來解決問題。換句話說,兩個文件只有輕微或者中度的差異,會造成類似的模糊散列值,使研究者注意到他們之間可能的關係,它們可能適合放在「攻擊工具」類型,因為它們更抗拒改變和操縱,事實上,它們在DFIR(數字取證及事件響應)最常見的用途是識別工具及惡意軟體的變種,以糾正靜態hash值的缺點。

2、IP地址:這可以說是最常見的指標,因為IP數量太大,任何合理的APT攻擊均可以更改IP地址,只需要很小的成本。在某些情況下,如果他們使用Tor或者類似的匿名代理服務,他們可以相當頻繁的改變IP地址。這就是為什麼IP地址是金字塔的綠色部分。如果你利用IP地址進行防禦,他們通常可以轉換,甚至不影響攻擊節奏。

3、域名:域名的改變需要付出一些代價,為了使用,他們必須註冊、支付並且進行託管。但是,有大量的DNS提供商有寬鬆的註冊標準(其中許多是免費的)。所以在實踐中,這不是太難以改變。新域名可能需要1-2天時間在整個互聯網上就隨處可見了,雖然如此,這些相比IP地址是稍微困難的改變。

4、網路或主機特徵:在這個層面上,開始讓對手覺得有些棘手。當你能夠在這個層面上檢測並響應,可以使攻擊者回到他們的實驗室重新配置或編譯他們的工具。一個很好的例子是,當你使用User-Agent特徵字元方式查找攻擊者的HTTP探測工具,你阻止其User-Agent的任何請求時,你強迫他們回去花一些時間搞清楚你如何發現他的探測工具,並解決這個問題。當然修復可能微不足道,但至少他們不得不花費一些精力來識別和解決你設在他們面前的障礙。

5、攻擊工具:在這個層面上,我們有了真正讓攻擊者感到頭痛的能力。很可能發生的情況是,因為我們獲得了檢測他們某個工具的能力,他們必須臨時放棄,去找到或者創建一個用於相同目的的新工具。這是一個大的勝利,因為他們必須花時間研究(查找現有的工具,它具有相同的能力)、發展(如果有能力,創建一個新的工具)和培訓(弄清楚如何使用工具,熟練掌握它)。你使他們真的需要花費時間,特別是你能得到他們幾個工具的時候。

此類指標的實例可以包括AV或者Yara簽名,前提是他們可以發現相同文件的中等程度變化。分析網路通信協議的網路感知工具也屬於這個層面,變更協議需要大量工作重寫原來的工具。此外,如前所述,Fuzzy哈希也應該屬於這個層面。

6、TTPs(Tactics、Techniques & Procedures):最後,在頂點的是TTP。當你在這個層面檢測並響應,你直接針對對手的技能,不再是他們的工具。例如:你檢測重放哈希的攻擊(也許通過分析windows日誌),而不是他們使用的攻擊工具,從效益的角度看,這是最理想的。如果你能足夠快的應對對手的TTP,你強迫他們做了最耗時的事情:學習新的行為。讓我們想想這些,如果你到達頂點,即掌握了不同對手多種不同的TTP時,將會發生什麼?你給他們兩個選項:放棄或者重新塑造自身,如果我是對手,選擇放棄更吸引我。

通過以上對威脅情報相關類型的描述,我們可以看到其內涵已經遠遠超過了早年的信譽庫(IP、域名、文件等)。相應的它們發揮作用的場景也不僅僅是檢測那麼簡單,而更加廣泛,下面我們就討論這個話題。

分析情報威脅的技術要點

日誌欄位提取

日誌欄位的提取是最基礎也是最重要的步驟,後續所有的工作都是基於正確的日誌欄位提取之上。

Splunk 提供了傻瓜式的欄位提取功能,只要展開任意事件,點擊「事件操作」,選擇「提取欄位」即可進行提取,提取完成後可自動生成正則表達式。

對於一些比較複雜的日誌格式,使用 Splunk 的自動化提取可能就力不從心了(又或許你對自動生成的正則表達式嗤之以鼻),我們可以手寫正則表達式,並在「設置-欄位-欄位提取」中保存。

圖:Splunk 的欄位提取

對於臨時使用的需求,也可以在搜索中使用 rex 命令對事件應用正則表達式:

  • ... | rex field=some_field "(?<capture_name>.*)"

對於一些以鍵值對形式輸出的日誌,可通過 extract 命令進行提取,十分方便:

  • ... | extract kvdelim="=" pairdelim=";"

威脅情報庫查詢

威脅情報庫的查詢使用了 Splunk 的 lookup 命令,通過給 lookup 命令傳遞一個查詢值從而獲得對應的查詢結果。

lookup 的典型使用場景之一是根據日誌中的 IP 地址來查找對應的資產:由於日誌中不包含資產信息,而我們又希望通過 IP 地址快速定位到相關資產信息,此時就可以建立一張資產表,上傳至 Splunk,在「設置-查找」完成配置后,即可通過 lookup 命令進行搜索。

  • ... | lookup asset_table ip_addr AS dst_ip OUTPUT asset_info

而在使用 lookup 對威脅情報進行查詢時,則需要用到「外部查找」功能,原理類似於動態生成一個查找表文件。外部查找功能需要調用命令和參數,Splunk 的默認安裝中提供了一個名為「dnslookup」的外部查找,可以用來參考實現自己的外部查找。

威脅情報查詢外部查找腳本的部分實現代碼如下:

威脅情報查詢語句如下:

  • ... | stats count by client_ip server_ip | lookup iplookup ip as client_ip OUTPUT info as _TI | spath input=_TI

此處首先使用了 stats 命令統計事件數據,隨後使用 lookup 命令對統計完成的數據進行威脅情報查詢,這樣的處理方式可避免重複的查詢,降低系統和網路開銷,最後將 lookup 命令查詢返回的 JSON 格式數據使用 spath 命令解析。

威脅情報數據解析

對於 IP 的威脅查詢介面,一個惡意的 IP 通過 API 查詢返回的示例數據如下:

  • {"response_code":0,"hit":{"expired":false"detected":true"info":["zombie""idc""compromised""spam"]},"ip":{"carrier":"1and1.com""ip":"82.165.37.26""location":{"country":"德國""province":"德國""lng":"10.454150""city":"""lat":"51.164181"}}}

欄位說明如下:

有了欄位信息,我們需要把這個 JSON 字元串解析后再進行下一步判斷。Splunk 提供了 spath 命令,可以將此前 lookup 返回的內容作為 spath 的輸入,並最終輸出解析完成的數據。如下圖所示:

防火牆自動阻斷 API 調用

防火牆的 API 調用和觸發通過 Splunk 的「搜索、報表和告警」實現。通過在 Splunk 中創建定時任務,對一定時間窗口內的日誌進行分析,結合威脅情報數據返回判斷結果,以此為依據決定是否觸發阻斷腳本。

應用場景

所有的技術問題都已解決,後續的工作分為兩塊:利用威脅情報數據豐富現有查詢結果,以及使用新的思路來實現原本無法實現的效果。

我們為此前所有與來源有關的告警都添加了威脅情報信息,監控、安全人員在第一時間即可大致評估事件的嚴重性。

優化模型

有了 IP 地址威脅情報數據,可以有助於評估當前面臨的安全威脅的嚴重程度,並以可視化的方式呈現。實現方式為:以一定維度(如時間、IP 地址、類型等)聚合安全事件,對聚合的事件做基於 IP 地址的威脅情報查詢,隨後套用特定的模型並呈現。

自動阻斷

威脅情報也為威脅程度的判斷提供了依據,通過定時任務,當發現高危威脅且威脅來源 IP 地址符合預定義的條件時,即觸髮腳本調用防火牆 API 的方式,實現黑名單 IP 地址的網路層自動阻斷。

DNS

我們也使用了威脅情報提供的域名威脅情報查詢功能,在 DNS 伺服器中開啟了 DNS 調試日誌並轉發至 Splunk,對匹配的惡意域名解析請求可及時告警。同時計劃實現將惡意域名自動解析到本地的功能,以最大限度避免威脅的擴散。

結語

目前我們在威脅情報的應用還處於摸索階段,只發揮了其中一小部分的能力。從威脅情報信息的分類角度,威脅情報除了 IP 地址情報、DNS 情報,還可提供文件哈希情報等信息;從威脅情報的要素來說,我們當前只使用了攻擊者身份、攻擊者位置等基本信息。相信如果更全面地利用這些信息,可以為安全從業者們提供全新的安全視角、更廣的安全視野,甚至會對工作方式、工具產生革命性的提升。

感言:威脅情報來自於數據,又要應用於數據才能發揮其價值要完成威脅感知的拼圖,需要經過發現、處置、取證、回溯、研判、拓展幾個步驟。而在大數據時代,一片「葉子」上的威脅感知,必須要藉助針對整個「森林」的威脅研究。而構建一個企業系統的安全大數據平台,對於採集與使用詳細的第一手安全數據而言是十分重要的。不僅如此,利用大數據技術,不但能夠對安全威脅做到關注發現與阻斷還能夠做到傳統安全防禦方法所無法進行的溯源、取證、研判、拓展與分析能力。更重要的是,很少有企業部署了強大的描述性-預測性-指令性分析功能來整理這些數據,以及支持最高業務層面的決策過程。這些威脅數據並沒有標準模式或者聯繫網路活動到資產或業務操作。因此,並沒有決策支持系統可以支持數據挖掘活動來回答典型的描述性問題,例如「在過去六個月是什麼對企業造成最大的傷害?」或者更成熟的問題,「我們的哪個技術投資具有最高的投資回報率,以及哪些技術投資帶來負面影響,哪些可能會構成威脅?」信息太多企業如何清除這些噪音而獲取真正的價值呢?通過遵循一個簡單的公式即可。還記得我們在學校學過的勾股定理嗎?a2 + b2 = c2?這是幾何的基本定理。還有麥克斯韋方程?熱力學第二定律?傅立葉變換?或者其中最有名的,愛因斯坦的相對論,E=mc2?這些公司幫助我們製造了太多信息,太多數據。這些公式同樣帶領我們到了現在的時代,雷達、電視、噴氣式客機、電子郵件、互聯網以及社交媒體。輸入一個簡單的公式可以幫助獲取有效的網路威脅情報而不只是收集威脅數據:Risk Intelligence = (High-Level Threat Intelligence + Context) * Continuous Data Collection/Intuitive KPIs威脅情報=(高級別威脅情報+背景知識內容)*連續數據採集/直觀的KPI誠然,這並不是「真正的」公式。但它確實提供了同樣強大的功能。換句話說,它可以幫助企業消除數據噪音,讓看似無關的數據帶來真正價值,帶來切實可行的解決方案。在上面的公式中,我們可以將通過從各種來源收集和轉譯的低水平的威脅數據,轉變為到分析師可以理解的高水平語言。通過存儲這些數據並賦予其與你的企業、行業、技術相關的特定背景知識,以及威脅會如何影響你的企業,數據就可以進行分析。從這個公式來看,簡單的分析通常就能夠產生需要的結果。使用傳統的關鍵績效指標(KPI)業務智能結構,企業可以使用這個公式創建簡單而強大的分析。例如,在金融領域,典型的KPI包括利用率、利潤對收益率、現金流、凈乘法器和積壓量。當隨著時間的推移,這個過程會為業務領導產生重要的決策信息。這種kPI的概念還可以用於網路數據。最後,它們也可以產生重要的價值信息,例如,特定安全投資的投資回報率或者企業是否有足夠的安全人員來實現特定的安全目標。應用簡單的威脅情報公式來處理原始威脅情報可以產生有用和有價值的結果。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦