域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過
前言
很多企業(yè)使用 SIEM 來收集日志數(shù)據(jù),并將安全事件與多類安全設(shè)備(入侵檢測(cè)設(shè)備、Web應(yīng)用防火墻等)日志相關(guān)聯(lián),指導(dǎo)安全人員進(jìn)行風(fēng)險(xiǎn)處置。然而 SIEM 也存在局限,監(jiān)控人員往往被淹沒在海量的告警之中無從下手,原因之一就是對(duì)于威脅的告警沒有處理的依據(jù),例如缺乏經(jīng)驗(yàn)的監(jiān)控人員很難判定一條安全事件告警是掃描還是針對(duì)性攻擊引起的(通常后者需要更多關(guān)注)。而通過借助于威脅情報(bào),可為監(jiān)控人員提供處理依據(jù),也可為安全人員在進(jìn)行日志分析和攻擊溯源時(shí)提供有力幫助。
本文將基于 Splunk,介紹威脅情報(bào)在甲方安全運(yùn)維中的應(yīng)用。
什么是威脅情報(bào)
根據(jù)Gartner的定義,威脅情報(bào)是指基于一定知識(shí)的證據(jù),已經(jīng)存在或正在形成的潛在威脅,比如,上下文、機(jī)制、指標(biāo)、意義以及可實(shí)施的建議,利用這些,可以幫助當(dāng)事人形成應(yīng)對(duì)這些危險(xiǎn)的決策。
針對(duì)攻擊者的威脅情報(bào)應(yīng)該包含以下要點(diǎn):
系統(tǒng)架構(gòu)
在我們公司,Splunk 主要被用來收集各類安全設(shè)備、操作系統(tǒng)、應(yīng)用系統(tǒng)日志,從而實(shí)現(xiàn)安全監(jiān)控、安全告警、數(shù)據(jù)分析的需求。
安全設(shè)備通過 Syslog 發(fā)送,其余存放于操作系統(tǒng)文件系統(tǒng)中的日志通過在客戶端操作系統(tǒng)安裝 Splunk Forwarder 實(shí)現(xiàn)日志收集。
初期通過日志字段提取后在 Splunk 實(shí)現(xiàn)了基本的報(bào)表和告警。然而正如前言所述,我們很快就被告警淹沒,無論如何調(diào)整告警閾值都無法令人滿意,于是開始尋找解決方案,通過一系列的選型比較,我們最終決定引入來自微步在線(ThreatBook)的第三方安全情報(bào)數(shù)據(jù),以API形式與 Splunk 整合。
需要注意的是——威脅情報(bào)數(shù)據(jù)的用量通常是有限制的(如按月計(jì)量),因此我們部署了前置系統(tǒng)作為本地威脅情報(bào)庫(kù),用以緩存查詢結(jié)果,還順帶實(shí)現(xiàn)了專供內(nèi)部使用的 Web 交互查詢界面,后來又順路實(shí)現(xiàn)了威脅歷史信息的記錄,所有產(chǎn)生過告警的威脅都會(huì)被記錄,并且可被關(guān)聯(lián)搜索。如下圖所示:
(威脅情報(bào)分析界面圖,威脅情報(bào)數(shù)據(jù)來自微步在線ThreatBook TIP API)
隨著威脅情報(bào)數(shù)據(jù)的應(yīng)用,我們逐漸信任了數(shù)據(jù)的準(zhǔn)確度,并開始研究威脅IP自動(dòng)阻斷方案。由于在網(wǎng)絡(luò)建設(shè)時(shí)并沒有這個(gè)需求,因此我們的首要目標(biāo)是逐個(gè)尋找網(wǎng)絡(luò)中是否有串聯(lián)設(shè)備支持通過調(diào)用 API 的方式來達(dá)到 IP 阻斷的目的,最終我們?cè)谝慌_(tái)抗 DDoS 設(shè)備中發(fā)現(xiàn)了這個(gè)功能,并按照手冊(cè)要求的數(shù)據(jù)格式實(shí)現(xiàn)了接口調(diào)用。
系統(tǒng)架構(gòu)示意圖如下:
技術(shù)要點(diǎn)
日志字段提取
日志字段的提取是最基礎(chǔ)也是最重要的步驟,后續(xù)所有的工作都是基于正確的日志字段提取之上。
Splunk 提供了傻瓜式的字段提取功能,只要展開任意事件,點(diǎn)擊“事件操作”,選擇“提取字段”即可進(jìn)行提取,提取完成后可自動(dòng)生成正則表達(dá)式。
對(duì)于一些比較復(fù)雜的日志格式,使用 Splunk 的自動(dòng)化提取可能就力不從心了(又或許你對(duì)自動(dòng)生成的正則表達(dá)式嗤之以鼻),我們可以手寫正則表達(dá)式,并在“設(shè)置-字段-字段提取”中保存。
圖:Splunk 的字段提取
對(duì)于臨時(shí)使用的需求,也可以在搜索中使用 rex 命令對(duì)事件應(yīng)用正則表達(dá)式:
... | rex field=some_field "(?.*)"
對(duì)于一些以鍵值對(duì)形式輸出的日志,可通過 extract 命令進(jìn)行提取,十分方便:
... | extract kvdelim="=" pairdelim=";"
威脅情報(bào)庫(kù)查詢
威脅情報(bào)庫(kù)的查詢使用了 Splunk 的 lookup 命令,通過給 lookup 命令傳遞一個(gè)查詢值從而獲得對(duì)應(yīng)的查詢結(jié)果。
lookup 的典型使用場(chǎng)景之一是根據(jù)日志中的 IP 地址來查找對(duì)應(yīng)的資產(chǎn):由于日志中不包含資產(chǎn)信息,而我們又希望通過 IP 地址快速定位到相關(guān)資產(chǎn)信息,此時(shí)就可以建立一張資產(chǎn)表,上傳至 Splunk,在“設(shè)置-查找”完成配置后,即可通過 lookup 命令進(jìn)行搜索。
... | lookup asset_table ip_addr AS dst_ip OUTPUT asset_info
而在使用 lookup 對(duì)威脅情報(bào)進(jìn)行查詢時(shí),則需要用到“外部查找”功能,原理類似于動(dòng)態(tài)生成一個(gè)查找表文件。外部查找功能需要調(diào)用命令和參數(shù),Splunk 的默認(rèn)安裝中提供了一個(gè)名為“dnslookup”的外部查找,可以用來參考實(shí)現(xiàn)自己的外部查找。
威脅情報(bào)查詢外部查找腳本的部分實(shí)現(xiàn)代碼如下:
威脅情報(bào)查詢語句如下:
... | stats count by client_ip server_ip | lookup iplookup ip as client_ip OUTPUT info as _TI | spath input=_TI
此處首先使用了 stats 命令統(tǒng)計(jì)事件數(shù)據(jù),隨后使用 lookup 命令對(duì)統(tǒng)計(jì)完成的數(shù)據(jù)進(jìn)行威脅情報(bào)查詢,這樣的處理方式可避免重復(fù)的查詢,降低系統(tǒng)和網(wǎng)絡(luò)開銷,最后將 lookup 命令查詢返回的 JSON 格式數(shù)據(jù)使用 spath 命令解析。
威脅情報(bào)數(shù)據(jù)解析
對(duì)于 IP 的威脅查詢接口,一個(gè)惡意的 IP 通過 API 查詢返回的示例數(shù)據(jù)如下:
{"response_code":0,"hit":{"expired":false,"detected":true,"info":["zombie","idc","compromised","spam"]},"ip":{"carrier":"1and1.com","ip":"82.165.37.26","location":{"country":"德國(guó)","province":"德國(guó)","lng":"10.454150","city":"","lat":"51.164181"}}}
字段說明如下:
有了字段信息,我們需要把這個(gè) JSON 字符串解析后再進(jìn)行下一步判斷。Splunk 提供了 spath 命令,可以將此前 lookup 返回的內(nèi)容作為 spath 的輸入,并最終輸出解析完成的數(shù)據(jù)。如下圖所示:
防火墻自動(dòng)阻斷 API 調(diào)用
防火墻的 API 調(diào)用和觸發(fā)通過 Splunk 的“搜索、報(bào)表和告警”實(shí)現(xiàn)。通過在 Splunk 中創(chuàng)建定時(shí)任務(wù),對(duì)一定時(shí)間窗口內(nèi)的日志進(jìn)行分析,結(jié)合威脅情報(bào)數(shù)據(jù)返回判斷結(jié)果,以此為依據(jù)決定是否觸發(fā)阻斷腳本。
應(yīng)用場(chǎng)景
所有的技術(shù)問題都已解決,后續(xù)的工作分為兩塊:利用威脅情報(bào)數(shù)據(jù)豐富現(xiàn)有查詢結(jié)果,以及使用新的思路來實(shí)現(xiàn)原本無法實(shí)現(xiàn)的效果。
我們?yōu)榇饲八信c來源有關(guān)的告警都添加了威脅情報(bào)信息,監(jiān)控、安全人員在第一時(shí)間即可大致評(píng)估事件的嚴(yán)重性。
優(yōu)化模型
有了 IP 地址威脅情報(bào)數(shù)據(jù),可以有助于評(píng)估當(dāng)前面臨的安全威脅的嚴(yán)重程度,并以可視化的方式呈現(xiàn)。實(shí)現(xiàn)方式為:以一定維度(如時(shí)間、IP 地址、類型等)聚合安全事件,對(duì)聚合的事件做基于 IP 地址的威脅情報(bào)查詢,隨后套用特定的模型并呈現(xiàn)。
自動(dòng)阻斷
威脅情報(bào)也為威脅程度的判斷提供了依據(jù),通過定時(shí)任務(wù),當(dāng)發(fā)現(xiàn)高危威脅且威脅來源 IP 地址符合預(yù)定義的條件時(shí),即觸發(fā)腳本調(diào)用防火墻 API 的方式,實(shí)現(xiàn)黑名單 IP 地址的網(wǎng)絡(luò)層自動(dòng)阻斷。
DNS
我們也使用了威脅情報(bào)提供的域名威脅情報(bào)查詢功能,在 DNS 服務(wù)器中開啟了 DNS 調(diào)試日志并轉(zhuǎn)發(fā)至 Splunk,對(duì)匹配的惡意域名解析請(qǐng)求可及時(shí)告警。同時(shí)計(jì)劃實(shí)現(xiàn)將惡意域名自動(dòng)解析到本地的功能,以最大限度避免威脅的擴(kuò)散。
結(jié)語
目前我們?cè)谕{情報(bào)的應(yīng)用還處于摸索階段,只發(fā)揮了其中一小部分的能力。從威脅情報(bào)信息的分類角度,威脅情報(bào)除了 IP 地址情報(bào)、DNS 情報(bào),還可提供文件哈希情報(bào)等信息;從威脅情報(bào)的要素來說,我們當(dāng)前只使用了攻擊者身份、攻擊者位置等基本信息。相信如果更全面地利用這些信息,可以為安全從業(yè)者們提供全新的安全視角、更廣的安全視野,甚至?xí)?duì)工作方式、工具產(chǎn)生革命性的提升。
本文作者
證通股份有限公司 證通白帽子
安全管理團(tuán)隊(duì)自喻為證通白帽子,保持著安全人一貫的低調(diào)風(fēng)格和神秘感。團(tuán)隊(duì)主要負(fù)責(zé)信息安全體系建設(shè)和運(yùn)營(yíng),包括網(wǎng)絡(luò)安全、安全測(cè)試、攻防應(yīng)急、訪問控制、安全檢查等,在每一個(gè)安全控制環(huán)節(jié)默默付出,確保公司的信息系統(tǒng)安全運(yùn)行。
證通股份有限公司是由國(guó)內(nèi)多家證券機(jī)構(gòu)、互聯(lián)網(wǎng)企業(yè)和金融服務(wù)機(jī)構(gòu)以市場(chǎng)化方式共同發(fā)起成立的金融綜合服務(wù)企業(yè)。公司定位于市場(chǎng)化、專業(yè)化的金融綜合服務(wù)機(jī)構(gòu),面向以證券業(yè)機(jī)構(gòu)為主的各類金融機(jī)構(gòu)和互聯(lián)網(wǎng)企業(yè),提供金融綜合服務(wù)解決方案,積極打造金融科技服務(wù)優(yōu)勢(shì)。公司愿與廣大金融機(jī)構(gòu)、互聯(lián)網(wǎng)企業(yè)及個(gè)人客戶攜手并進(jìn),共創(chuàng)中國(guó)金融綜合服務(wù)業(yè)的美好明天。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!