3.1 網絡安全數據采集的問題背景
在網絡安全態勢感知中,分析師需要對防護的目標系統有一個清晰直觀的了解,例如需要知道當前網絡的拓撲狀態、不同用戶運行的任務等;需要知道當前目標系統存在哪些漏洞,哪些漏洞已經安裝補丁進行了修復等;需要知道當前系統是否受到了各種類型的攻擊,這些攻擊造成了什么影響等。采集網絡安全相關的數據在技術上已經不是一個難點,通過各種各樣的流量采集工具、日志采集工具、終端采集工具等能獲取多種類型的網絡安全數據。為了幫助分析師掌握所防護目標系統的狀態,網絡安全數據的采集工作需要具有針對性,即進行靶向數據采集。在形成針對目標系統的網絡安全態勢感知過程中,需要采集的數據可以分為三個維度的數據。第一個是資產維度數據,即目標系統包含的與各類軟件和硬件、運行任務相關的資產數據;第二個是漏洞維度數據,即與目前系統中可能存在的與各種漏洞相關的信息;第三個是威脅維度數據,攻擊者對系統進行攻擊時留下的與威脅行為相關的數據。通過采集資產維度數據,分析師可以對目標系統的資產狀況、工作任務運行狀況有清晰的了解;通過采集漏洞維度數據,分析師可以發現目標系統可能存在的漏洞,并使用相應的補丁進行修復;通過采集威脅維度數據,分析師可以獲知正在發生或已經發生的攻擊事件,進一步判斷攻擊事件可能造成的后果,并及時制定相應的防范措施。
3.1.1 網絡安全數據的特點及數據采集難點
網絡安全數據屬于典型的大數據,具有5V(Volumn,Variety,Velocity,Value,Veracity)特點:
(1)Volumn:網絡流量、系統產生的日志等數據體量龐大。如果對所有的數據都進行采集,那么需要存儲和計算的數據太多,因此需要從海量的數據中提取關鍵和敏感的數據。
(2)Variety:網絡安全相關的數據種類多,來源廣。例如通過傳感器、網絡爬蟲、日志收集系統等均能采集不同類型的數據,數據類型從來源上可以分為環境業務數據、網絡層面數據、日志層面數據、告警數據等,在形成網絡空間安全態勢感知的過程中需要對不同來源的數據進行有效融合。
(3)Velocity:數據增長速度快,時效性要求高。從數據增長速度來看,無論是流量數據還是日志數據、告警數據等,每天都會產生很多新的數據,對這些新產生的數據進行分析是十分迫切的需求,而且由于網絡攻擊事件的時效性要求高,以前的防御往往是在事后才進行復現和分析的,因此網絡安全態勢感知的目的是在事前和事中能及時發現潛在的網絡攻擊,并有效制止所發現的攻擊。
(4)Value:數據價值密度低。雖然網絡安全數據多,但是很多都是正常用戶的操作數據,與攻擊者進行攻擊事件相關的數據占比很小,卻對網絡攻擊的分析非常有利,因此需要準確篩選出相關有價值的數據,以利于進行數據分析,并通過大量的數據分析,找出真正的攻擊事件,有效阻擊潛在的攻擊。
(5)Veracity:數據質量不高。網絡安全數據包含許多告警數據。這些告警數據來源于很多與網絡安全相關企業研發的防御系統,例如防火墻、IDS(Intrusion Detection System,入侵檢測系統)、IPS(Intrusion Prevention System,入侵防御系統)等。這類防御系統能對部分數據進行初步分析,并對存在的隱患發出告警信息,如IDS告警數據。但是目前IDS大多采用基于規則的方法,告警數據存在很多誤報情況,即很多正常用戶的數據可能被IDS識別為威脅,而真正有危害的數據可能無法被IDS準確識別。因此,需要從大量的數據中甄別數據的真實性和有效性,減少無用的數據,讓分析師能使用更高質量的數據進行態勢理解和分析。
由于網絡安全數據具有5V特性,采集網絡安全數據形成態勢感知的過程和傳統態勢感知中數據采集完全不一樣。傳統戰場上進行態勢感知采集數據,通常是通過物理傳感器獲取環境信息、通過人體感官觀察敵方動向、通過偵察平臺采集信息等方式。傳統戰場一般處于物理狀態下,大部分數據是不易發生改變的。例如,戰場環境中的道路、建筑物等,敵我雙方能觀察到的是同一物理戰場上的各種狀態,敵我雙方能獲得很相似的態勢數據。而網絡安全態勢感知采集數據的過程完全不同,網絡安全數據具有大數據的5V特性,數據采集難度很大。網絡安全態勢感知數據采集與傳統戰場態勢感知數據采集的主要區別體現在以下4點。
(1)采集要素的特點不同。傳統戰場態勢感知需要采集的要素主要是作戰過程中的物理環境、敵方的兵力部署等數據;網絡安全態勢感知需要采集的要素是網絡空間中的數據,包括計算機等硬件設備所產生的數據、通過網絡傳播和交換的數據等。傳統態勢感知采集的要素大多是物理世界真實存在的;網絡安全態勢感知采集的要素主要是數字化的數據,其中不僅包括軟件和硬件等資產維度數據、與系統漏洞相關的數據,還包括由大量攻擊行為所導致的威脅維度數據。
(2)數據采集的難點不同。傳統態勢感知往往通過傳感器、人眼觀察、情報系統等獲取敵方數據,數據采集方式比較單一,獲取情報信息數據的難度很大,這是傳統態勢感知數據采集的主要難點。網絡安全態勢感知數據采集的方法多種多樣,可用于數據采集的工具種類繁多,有傳感器、流量探針、網絡爬蟲、日志采集系統、協議采集系統、數據庫采集系統等。相比傳統態勢感知,其采集方法、采集工具已經不是數據采集的難點。正是由于采集方法多樣、工具繁多,分析師在采集網絡數據時需要掌握的專業技能更多,要求更高。另外,數據采集方式的多樣化,使得能用于網絡安全態勢提取的數據過多,需要解決數據過載問題,以便從大量的數據中采集到與態勢感知密切相關的數據。
(3)數據采集過程中敵我雙方的地位不同。傳統態勢感知的雙方處于一個比較對等的狀態,雙方采集的數據差別不會太大;而在網絡安全態勢感知中,攻擊者比防御者具有更明顯的優勢,攻擊者只需要找到某一個環節的漏洞,例如在webshell攻擊中找到一個SQL(Structured Query Language,結構化查詢語言)注入點,在獲取管理員賬號和密碼后,便可上傳webshell對后臺服務器進行控制,而防御者必須對己方所有的系統進行數據采集,才能保護所有的資產不被損壞。在網絡安全態勢感知中,攻擊者在采集數據時可以聚焦于獲取的某一個點數據,如可以通過社會工程學的方法、掃描系統漏洞等方法實施攻擊,而防御者則需要對全局數據進行采集。
(4)數據體量、更新速度不同。在傳統態勢感知過程中,數據量并不大,數據的更新速度也較低,例如當兵力部署發生變化、物理狀態發生變化(橋梁被毀、道路被毀等)時,雙方才會更新采集的數據;而在網絡安全態勢感知過程中,數據體量大,與網絡空間相關的數據更新速度極快,需要及時對數據進行更新。
從防御者角度而言,進行網絡安全態勢感知具有十分重要的作用和意義。網絡安全態勢感知不僅能對當前目標系統的資產狀態進行有效評估,還能通過采集的數據發現潛在的網絡攻擊,以便在網絡攻擊事件發生之前或發生之時進行有效的處理。傳統態勢感知局限性大,采集的數據種類少,數據體量小,采集方法簡單,數據更新慢;而網絡安全態勢感知需要采集的數據體量大、種類多、更新速度快、采集方法繁多。有效、有目標地采集網絡安全數據是完成網絡安全態勢感知的重要基礎,也是數據采集過程中的難點。
3.1.2 面向不同崗位角色、不同分析師的靶向數據采集
與網絡安全態勢感知相關的數據量大,應該采集什么樣的數據,針對哪些關鍵要素進行數據采集呢?本節將通過介紹不同崗位角色、不同層次分析師一般會關注什么樣的數據,講解面向不同需求的靶向數據采集方式。
本書第1章曾介紹了網絡安全態勢感知過程中五種不同的崗位角色,包括首席安全官、安全分析師、安全工程師、安全管理員、安全顧問/專家。其中,首席安全官負責制定安全策略或安全框架,安全顧問/專家也可以從頂層制定相關策略或提出建議。對于首席安全官和安全顧問/專家,他們更關注整體系統的安全情況和安全策略,可能不會關注直接涉及數據采集的相關工作,不會關注資產維度數據,不會關注對軟件和硬件資產的維護等。
安全分析師主要分析和評估網絡基礎設施中存在的漏洞及相關的應對措施。因此,安全分析師更關注漏洞維度數據及與目標系統軟件和硬件資產等相關的漏洞,可以通過分析資產維度和漏洞維度的關聯情況來采集相關的數據。
安全工程師負責執行安全監控、安全分析、數據分析、日志分析及取證分析等,能檢測發現安全事件,并對安全事件進行響應。因此,安全工程師關注的是威脅維度數據,需要從安全防御設備中采集各類告警數據,從日志數據中發現異常,從流量數據中采集與攻擊行為相關的異常流量數據等。
安全管理員負責安裝和管理安全系統,是執行安全信息采集、安全管理措施、安全響應方案實施等的實際工作人員,會根據安全分析師、安全工程師的實際需求采集相關的數據。
一般而言,安全分析師、安全工程師會執行相應的分析任務,根據采集的網絡安全數據進行綜合分析,從中了解資產運行狀況、系統漏洞情況、攻擊行為等。因此,可以將安全分析師和安全工程師看作是使用態勢感知系統的分析師。借助態勢感知系統,分析師可以更加便捷地理解當前網絡安全態勢。對于分析師,Splunk公司介紹了三個層次分析師的職責[1],如圖3-1所示。

圖3-1 三個層次分析師的職責
安全行動中心(Security Operations Center,SOC)在檢測到安全事件以后,會采取相應的流程。首先,當安全告警信息發出以后,第一級分析師一般會試圖去迅速消除其中的誤報信息,并對真實的網絡攻擊嘗試實施緩解措施,由于第一級分析師一般是技能掌握程度較低的分析師,因此當他們無法補救或很難理解面臨的威脅警告時,會將該事件遞交給第二級分析師處理。在這個過程中,第一級分析師主要采集的數據是來自防御設備最直接的告警信息及資產被攻擊的事件信息,如IDS告警、文件或系統出現安全事件等。第一級分析師根據這些最直接的數據進行處理,基于自身的知識試圖去消除誤報、理解威脅、嘗試補救。第二級分析師掌握的技能更多,技術更為熟練,會通過使用更高級的工具來研究安全事件。例如,他們會采用數據包捕獲工具分析流量中的異常,并綜合多個防御設備的告警數據、流量數據等分析安全事件的威脅程度,嘗試各種緩解和補救措施,盡量將安全事件的影響程度降低。第三級分析師的技能最為熟練,是專門解決最困難和最關鍵的安全事件的。第三級分析師一般使用的數據更多,會綜合判斷安全事件造成的危害,包括對文件系統、軟件和硬件等造成的危害,結合防御設備的信息、流量異常信息,對攻擊事件進行分析和溯源,并制定相應的措施防止以后出現類似的攻擊事件。一般而言,第三級分析師可以根據發生的攻擊設計規則,與防御設備進行聯動,以便防止后續發生類似的攻擊事件。計算機安全事件響應團隊(Computer Security Incident Response Team,CSIRT)的第二級和第三級分析師往往位于安全行動中心(SOC)內部,處理發生的網絡安全事件。
不同層次分析師所關注的安全要素和需要采集的數據并不一樣:第一級分析師可能更關注來自資產遇到攻擊的后果數據及比較直接的告警數據;第二級分析師關注分析層面的安全要素和數據,通過融合多個防御設備的數據進行綜合分析;第三級分析師關注全局,包括對安全要素的融合分析,對安全事件進行分析和溯源,進行威脅狩獵、主動取證,并盡可能在攻擊事件發生之前或發生時采取措施保護關鍵資產。網絡空間的數據種類繁多,數據體量大,分析師的時間和精力有限,無法對所有的數據都進行采集和分析,因此需要針對不同的崗位角色、不同層次的分析師設計具有靶向的數據采集方式,更好地幫助分析師有效地分析網絡攻擊事件。
3.1.3 網絡安全數據采集示例
以webshell攻擊為例,攻擊者在入侵企業網站時,通過各種方式獲取webshell,進而獲得對企業網站的控制權。常見的攻擊方式包括利用后臺數據庫備份及恢復的功能來獲取webshell、SQL注入、直接上傳獲取webshell、使用跨站腳本攻擊(Cross Site Scripting,XSS)[1]等。webshell攻擊能導致很嚴重的后果,例如攻擊者通過webshell入侵企業系統,并通過系統的本地漏洞來提升權限,對網站服務器進行長期持續的控制等。下面舉一個簡單的例子,攻擊者會先尋找web漏洞,通過一些高危的漏洞實現對webshell的獲取,例如找到一個SQL注入點,在獲取網站后臺的管理員賬號和密碼后,在后臺上傳一個webshell,在服務器上留下腳本文件。針對這個例子,下面將講解如何檢測并發現此類攻擊,需要采集什么樣的數據才能檢測出此類攻擊。
從資產維度數據采集而言,應該采集服務器運行狀態、服務器權限數據、服務器數據庫異常數據等,從而及時發現服務器資產中存在的異常;從漏洞維度數據采集而言,應該采集服務器漏洞,如與SQL注入相關的漏洞等,根據已公開的漏洞數據庫進行關聯分析,分析目標系統中存在此類漏洞的服務器;從威脅維度數據采集而言,需要采集與webshell攻擊行為相關的數據。一般而言,可以通過基于webshell特征、基于流量、基于webshell行為特征等方法進行檢測。當使用基于webshell特征進行檢測時,需要了解webshell常用的函數,如系統調用命令執行函數(eval/system/cmd_shell等)、文件操作函數(fopen/fwrite等)、數據庫操作函數等。因此,需要通過采集數據,檢測是否有對系統調用、數據庫、文件的操作動作,需要對數據庫、文件等重要資產采集相關的數據,關注其變化情況。具體而言,可以通過grep命令搜索常見webshell木馬中可能使用的危險函數,找到webshell。基于流量的檢測主要是通過匹配數據流的特征進行檢測,可以通過Wireshark、WeBaCoo等工具進行抓包測試,采集流量數據并對其中的流量特征進行分析。基于webshell行為特征的檢測首先考慮攻擊者的攻擊意圖是什么,攻擊者上傳webshell會進行什么操作,然后檢測系統中關鍵資產的變化及敏感的操作,如收集服務器信息、配置文件信息等,采集此類數據可以進行有效檢測。此外,可以通過日志信息追溯攻擊路徑,例如分析師通過grep命令找到webshell以后,通過日志數據找出關于webshell的記錄,進而找到攻擊者的IP地址,并搜索攻擊者的訪問記錄,從而實現對整個攻擊路徑的溯源和復現。