高效漏洞管理的六個錦囊
對于資產擁有者而言,漏洞是讓人厭惡的東西。但對于黑客而言,漏洞則是他們最喜歡的“高價值資產”,它們可以為黑客帶去源源不斷的收益價值。舉個簡單例子,黑客通過系統(tǒng)漏洞進入服務器內部,一方面可以通過非法盜取數(shù)據(jù)信息在黑市上變現(xiàn)來獲得經濟收益,另一方面也可以將那些被控制的“肉雞”作為攻擊其它網(wǎng)絡平臺“灘頭陣地”的武器。
層出不窮的漏洞讓安全人員的工作不堪重負。但是,想要將所有漏洞一次性消除又幾乎不可能。如果安全人員將注意力放在一些“無傷大雅”的小漏洞而長時間忽略嚴重的漏洞,這就猶如在粉刷一個隨時會坍塌的屋頂一樣滑稽。由于各個企業(yè)都有其自身的特點,因此需要對漏洞響應順序進行優(yōu)先級排序,需要了解每個漏洞對企業(yè)關鍵資產或業(yè)務造成威脅的嚴重程度。
正所謂,千里之堤,潰于蟻穴。一個小小的漏洞,也可能引發(fā)致命的危害。因此如何快速確定漏洞修復優(yōu)先級,并以最快的速度修復關鍵漏洞成為了所有安全人員的頭等大事。為此,根據(jù)我在網(wǎng)絡安全服務領域多年來的從業(yè)經驗,總結出了一個漏洞管理的關鍵策略:知己知彼,百戰(zhàn)不殆。
一、知己:資產管理是風險評估的前提
當運行良好、風平浪靜的時候,資產管理往往顯得不那么重要,但是當遇到攻擊時,就會讓安全運營人員明白誰才是安全防護的先決條件。例如,爆發(fā)高危漏洞時,如果安全人員無法確定有哪些資產受到該漏洞的影響,想要確定漏洞修復優(yōu)先級就猶如盲人摸象,無從下手。
因此,安全人員一定需要擁有一個完整的資產視圖,并且能夠做到實時了解其動態(tài)變化,此為“知己”,亦是漏洞管理的前提。畢竟任何人都無法對未知的資產進行風險評估,而它們也會成為黑客手中可以隨時引爆的“隱形炸彈”。
資產管理的重要性不言而喻,但是99%企業(yè)IT人員都不知道自己擁有哪些IT資產。據(jù)全球權威IT咨詢機構Gartner調查分析,在數(shù)據(jù)中心內有近28%的物理服務器是幽靈服務器或者是僵尸服務器。對于這些處于休眠狀態(tài)的服務器,日常沒有任何補丁更新。在這種情況下,如果需要啟動服務器,比如查看網(wǎng)站的舊版本時,該服務器將會成為企業(yè)IT環(huán)境中風險最高且最易受攻擊的服務器。攻擊者完全可以利用這些老舊系統(tǒng)的漏洞為跳板,通過橫向滲透攻擊技術進入內網(wǎng)來訪問其它主機,獲取包括郵箱、共享文件或憑證信息在內的敏感資源。在此基礎上,進一步控制其它系統(tǒng)、提升權限或竊取更多有價值的數(shù)據(jù)。這對于企業(yè)的安全人員來說,簡直就是一場噩夢。
因此,我認為,資產管理是安全的前提,但良好資產管理方案需具備以下二個方面的能力,包括資產清點的能力和資產關聯(lián)的能力。
1. 理得清:資產的全面清點
企業(yè)必須清楚自己的所有資產(包括硬件和軟件),比如自己企業(yè)中有哪些服務器,分別運行什么軟件,它們是如何打補丁的?如果你不知道自己擁有什么,就很難回答上述這些基本問題。
之前,一位甲方企業(yè)安全人員就跟我抱怨每天都過得“提心吊膽”。每當網(wǎng)上爆出一個0Day漏洞,安全團隊想要盡快確認受該漏洞影響的服務器范圍,以便在最短時間內做出應對。但是,公司業(yè)務復雜,安全管理人員甚至不知道企業(yè)有多少服務器,在服務器上運行的應用更是數(shù)不勝數(shù)。因此,只能通過公司發(fā)文,要求各業(yè)務線提交自身業(yè)務系統(tǒng)的部署情況。接下來就是漫長的等待,等待廠商漏洞通告,編寫檢測腳本查找存在漏洞的主機,等待廠商的漏洞修復方法,編寫修復腳本,最后一臺一臺修復問題主機。
在整個事件響應過程中,安全人員不知道業(yè)務部門上報的資產全不全,也不知道檢測腳本是否掃描到所有包含漏洞的主機,更不知道在此期間是否有黑客已經入侵到企業(yè)內部。這個漫長的等待過程,那些脆弱的主機資產就猶如砧板上的“魚肉”任黑客宰割,安全人員卻如同局外人一般,束手無策。
2. 看得透:資產的深度關聯(lián)
資產的全面清點是資產管理的第一步,有助于企業(yè)生成完整的、不斷更新的資產視圖。但是如果針對資產收集的每條數(shù)據(jù)都很淺顯,那么即使擁有完整的資產列表所能發(fā)揮的價值也是非常有限的。以主機資產為例,信息安全團隊除了需要深入了解主機資產包括硬件規(guī)格、已安裝的軟件、已批準的賬戶、root權限和安裝包等各方面信息,還需要了解這些資產之間的關聯(lián)程度以及每類資產的重要性。
此時,如果擁有良好的資產管理,能夠將資產數(shù)據(jù)通過API方式導入風險發(fā)現(xiàn)或入侵檢測等其它系統(tǒng)并進行深度關聯(lián),這將會為安全人員采取安全防范措施提供極大幫助。例如,漏洞風險關聯(lián)對應的軟件應用狀態(tài),賬號風險關聯(lián)到對應的系統(tǒng)賬號,反彈Shell關聯(lián)對應的端口、進程等。只有這樣,一旦現(xiàn)有資產存在對應風險或者被黑客入侵了,才能進行實時報警和提醒。
二、知彼:持續(xù)監(jiān)控是漏洞響應的關鍵
除了對企業(yè)IT資產要有清晰而深入的了解,企業(yè)安全負責人還需要對外部漏洞風險情況有所了解才行,此為“知彼”。這包括行業(yè)協(xié)會、政府機構、學術研究人員、技術分析師和安全供應商等機構最新的漏洞披露情況。尤其是對那些可被利用的“零日”漏洞、可“橫向移動”漏洞等外部風險狀況需要格外注意。一旦發(fā)現(xiàn)新爆發(fā)的漏洞,應該立刻將漏洞規(guī)則包導入掃描系統(tǒng),以便盡快對該漏洞進行檢測。
雖然,黑客不會針對已發(fā)布的所有漏洞展開攻擊,但他們會不斷地掃描系統(tǒng)、軟件中的關鍵漏洞。密歇根大學的一項研究表明,一臺有開放端口或漏洞的服務器連網(wǎng)后,在23分鐘內就會被攻擊者掃描到,在56分鐘內開始被漏洞探測,第一次被徹底入侵平均時間是19小時。
當然,掃描的頻率決定了持續(xù)監(jiān)控的可行性。如果每月掃描一次,甚至每個季度掃描一次,就很難為實時監(jiān)控提供最新的數(shù)據(jù)信息。鑒于漏洞不斷變化,因此,建議每天持續(xù)地掃描重要的、優(yōu)先級高的核心資產。
基于Agent的持續(xù)監(jiān)控掃描
新的漏洞每天都會出現(xiàn)、系統(tǒng)配置每分鐘都在變化。同時,黑客通過對新技術的利用,攻擊速度和能力都得到大幅提升。這些變化決定企業(yè)安全狀態(tài)一直處于動態(tài)變化過程中,因此持續(xù)安全監(jiān)控顯得尤為重要。因此,安全人員需要通過專業(yè)的風險評估工具,對漏洞進行持續(xù)檢測、移除和控制,來縮小攻擊面。
當下漏洞掃描工具類型包括主動和被動兩種,即基于Agent和Agentless。盡管Agentless監(jiān)控解決方案和幾年前相比,功能更加強大,但與基于Agent的解決方案相比,Agentless解決方案的應用往往極為有限?;贏gent監(jiān)控的解決方案是通過監(jiān)控操作系統(tǒng)內部運行的進程實現(xiàn)的,與Agentless解決方案相比,基于Agent的監(jiān)控通常可以更深入地了解操作系統(tǒng)的運行狀況。
基于Agent監(jiān)控的解決方案如此強大的原因之一是因為它們可以監(jiān)控終端多個層面的內容。當然,并非所有產品都會檢查各個方面,但通常情況下,與Agentless產品相比,基于Agent解決方案的產品能夠提供更細粒度的主機運行狀況。
基于Agent的監(jiān)控
雖然很難否認Agentless監(jiān)控的便利性,但是Agentless解決方案依賴于通過網(wǎng)絡段“嗅探”或查詢從網(wǎng)絡端點獲取的數(shù)據(jù),這些方法獲得的監(jiān)控數(shù)據(jù)類型有限。基于Agent的解決方案可以直接訪問受監(jiān)控的端點,因此能夠獲取非常細粒度的監(jiān)控數(shù)據(jù)。
據(jù)研究表明,Agentless和基于Agent的IT系統(tǒng)管理解決方案的性能下降基本相同。但是,基于Agent的解決方案提供了固有的可用性和安全性優(yōu)勢,包括在網(wǎng)絡中斷期間管理系統(tǒng)的能力以及無需額外配置即可管理防火墻周圍系統(tǒng)的能力。
由于基于Agent的解決方案和Agentless解決方案各有優(yōu)缺點,因此一些供應商使用混合監(jiān)控的解決方案,使用多種監(jiān)控技術而不是依賴于單一方法。目的是為了既可以使用Agentless監(jiān)控,又可以基于Agent實現(xiàn)更細粒度的監(jiān)控。因此,建議盡可能采用Agent監(jiān)控方式,尤其是對于那些需要深入監(jiān)控的、復雜的關鍵環(huán)境,基于Agent的方法更為合適。
三、百戰(zhàn)不殆:自動化為漏洞修復“減壓”
漏洞修復是漏洞管理最重要的步驟之一,一旦出錯將會對企業(yè)產生重要影響。因此,盡快根據(jù)漏洞優(yōu)先級進行修復,并將系統(tǒng)風險降到最低,這一點尤為重要。但是傳統(tǒng)人工排查漏洞、提供修復建議以及打補丁的過程費時費力,而且出錯率高。眾所周知,復雜的修復過程會導致企業(yè)組織選擇延遲修復,這些積累的“技術債務”對于企業(yè)而言就是一個定時炸彈。
為簡化補丁處理過程以及將成本降到最低,建議采用自動化的補丁管理解決方案。畢竟,安全專家作為稀缺資源,不應該被束縛在那些可以通過自動化解決的簡單重復工作任務中。他們應該去解決那些自動化工具解決不了的問題,例如,確定補丁的優(yōu)先級并對這些補丁的應用提供指導建議等。
在漏洞修復時,自動化的漏洞管理解決方案能夠以可視化方式全面展示風險狀況并輸出對應安全報告,讓安全人員對于風險概況、整體趨勢等有一個詳細的了解。當然,對于一線操作人員而言,最有用的報告功能是了解需要修復哪些漏洞,以及如何完成該任務。因此,報告應該介紹風險的嚴重性、漏洞的檢測細節(jié)和修復步驟,幫助安全人員盡快完成漏洞修復任務。同時,為滿足不同職位人員的需求,自動化的漏洞管理解決方案應該支持根據(jù)需求定制風險信息的類型和展現(xiàn)形式。
此外,掃描報告應該全面、具體、易于理解、無漏報和誤報。誤報會占用IT人員大量的精力和時間進行排查,而漏報則會導致因為存在未修補漏洞而被黑客利用的嚴重風險。通常情況下,漏洞報告至少包括以下4塊內容:
漏洞報告主要內容:
- 風險概覽,提供一個“一目了然”的風險評級及各風險點概況和趨勢。
- 風險匯總,按優(yōu)先級列出所有風險點。
- 風險分析,詳細描述資產面臨的具體威脅,并允許對具體問題進行深入審查。
- 補丁報告,顯示補丁的狀態(tài)以及負責人。
實踐案例:Struts2漏洞爆發(fā)后,與黑客的一次正面交鋒
下面通過我親身經歷的一個故事,跟大家分享下在Struts2爆發(fā)后,我們的響應過程。
某天半夜凌晨,接到公司打來的一個緊急求助電話。
我趕緊打開電腦查看報警郵件,提示存在一個反彈Shell的攻擊行為。
深更半夜,服務器居然正在主動嘗試連接外部其它服務器。在那個瞬間,我都能想象得出來,服務器另一端那個穿著“黑衣服”的人,面對“冒著新鮮熱氣兒”的Shell唾手可得的那種狂喜。顯然,黑客正在瘋狂攻擊,情況甚是緊急,需要在黑客造成真正破壞之前阻止他們。
做技術的人都知道,反彈Shell一般是外網(wǎng)滲透的最后一步,也是內網(wǎng)滲透的第一步。反彈Shell對服務器安全乃至內網(wǎng)安全的危害不必多說。
多年的一線拼殺經驗告訴我,黑客一般是利用遠程命令執(zhí)行、遠程代碼執(zhí)行、Webshell、Redis未授權訪問可執(zhí)行系統(tǒng)命令等漏洞,執(zhí)行反彈命令,使目標服務器發(fā)出主動連接請求,從而繞過防火墻的入站訪問控制規(guī)則。
① 初試無果
雖然我們記錄了展示每臺服務器系統(tǒng)交互的Shell命令,包括操作者IP、操作終端、操作用戶、操作詳情等關鍵信息,但是出乎意料的是,在反彈Shell這十幾分鐘時間內,日志上居然沒發(fā)現(xiàn)任何黑客執(zhí)行反彈Shell操作等相關的異常操作行為。
② 改變思路
顯然,黑客不是通過在服務器端執(zhí)行命令的常規(guī)方式進行反彈,但一定是有其它資產存在漏洞,被黑客利用了。為了找到根本原因,我全面清點了一下該主機上運行的資產(如虛擬機、web站點、web服務、web框架等),發(fā)現(xiàn)該服務器上存在Struts 2的Web框架,湊巧的是該版本正好存在S2-045漏洞。
要說著名的RCE(遠程代碼執(zhí)行)漏洞,Struts2框架漏洞最為“經典”,一經爆發(fā)就被各安全廠商作為高危緊急漏洞處理。S2-045漏洞是由報錯信息包含OGNL表達式,并且被帶入了buildErrorMessage這個方法運行,造成遠程代碼執(zhí)行。S2-045只有一種觸發(fā)形式,就是將OGNL表達式注入到HTTP頭的Content-Type中。
③ 柳暗花明
為確認真正攻擊源,通過查看Tomcat日志發(fā)現(xiàn)存在反彈Shell行為的惡意IP,正在通過post請求方式訪問客戶服務器上一個Struts2頁面。至此,基本可以判斷攻擊者正是通過Struts2的反序列化漏洞進行攻擊,從而完成反彈Shell的操作。值得慶幸,因為及時發(fā)現(xiàn)和快速響應,黑客的攻擊行為未對服務器造成任何傷害。
④ 進行反擊
首先通過防火墻立即封堵該IP,同時在WAF上設置規(guī)則,攔截該請求,進一步對Struts2漏洞立馬打補丁。
攻防的較量從未停止,黑客與白帽子間的斗爭也越演越烈。在Struts2框架漏洞這個戰(zhàn)場上,需要持續(xù)深入地研究,才能占有主動權。雖然從過去出現(xiàn)的Struts漏洞看,惡意OGNL表達式的注入點無處不在,但隨著Struts2框架版本不停迭代,很多漏洞都被修補。
在這里,也提醒各位安全人員,一定要及時打補丁并使用最新版的Struts框架,避免被不法分子利用而造成損失。同時,對request請求的參數(shù)名、參數(shù)值、cookie參數(shù)名、action的名稱、Content-Type內容、filename內容、請求體內容(反序列化漏洞)進行驗證,降低后期被黑客利用的可能性。
安全錦囊
大多數(shù)企業(yè)的安全部門并不具備充足的人力對所有漏洞進行實時響應。因此,為了最有效地利用有限的人力、物力資源,需要對漏洞響應進行優(yōu)先級排序。當然只有準確地對漏洞進行風險評估,才能真正地改善漏洞管理。對此,建議從以下六個方面,提高漏洞響應優(yōu)先級排序的效率。
- 對關鍵資產清單進行及時更新。精確掌握哪些資產有風險以及攻擊者最有可能對哪里進行攻擊。
- 引入威脅情報,為漏洞修復提供支持。情報能讓用戶及時了解新發(fā)生的重大漏洞,繼而對漏洞修復給出更有效的建議。
- 建立相關的安全合規(guī)基線。包括操作系統(tǒng)補丁更新、相關配置需要滿足安全規(guī)范的要求,杜絕新設備“帶病”入網(wǎng)。
- 使用持續(xù)的安全評估??梢酝ㄟ^基于Agent持續(xù)監(jiān)控、安全日志、流量分析、CMDB等多種方式全面掌握資產變化帶來的風險。
- 建立漏洞修復優(yōu)先級排序。綜合資產的暴露位置、資產重要性、是否有防護手段、漏洞有無POC、漏洞利用熱度等指標,對資產漏洞修復工作進行排序。
- 自動化漏洞修復方案。盡量采用自動化補丁修復方案,減少安全運維人員工作量。
【本文是51CTO專欄作者“安全牛”的原創(chuàng)文章,轉載請通過安全牛(微信公眾號id:gooann-sectv)獲取授權】