安全的進化論(二):來說說態勢感知 | Sec

這是一篇讀書筆記。

前陣子有幸在亞馬遜上找到一本關於網路空間態勢感知的國外論文集(當然,是中文版本)。雖然啃專業論文不是我的強項,我也無意成為一名態勢感知專家(主要是個人技術爛),但是這本論文集中的很多研究成果,我還是想分享一下。當然,還會有一些夾雜我個人理解的延伸。歡迎討論。

一、態勢感知的定義

國內安全界關注和研究態勢感知,我估算應該是從10年左右開始的,而且基本都是基於M.Endsley在1995年發表的那篇著名的論文《Toward a theory of situation awareness in dynamic systems》(《動態系統中的態勢感知理論》)。在這篇論文里,Endsley博士認為動態環境中的「態勢感知是認知大量的時間和空間中的環境要素,理解它們的意義,並預測它們在不久將來的狀態」,並將態勢感知(或態勢認知)和態勢評估在概念上做出了區分。前者代表認識的程度,後者代表實現、獲得或維持這一認識程度的過程。

D.S.Alberts在2001年另一篇著名論文《Understanding information age warfare》(《理解信息時代戰爭》)中也對態勢感知做出了如下描述:「態勢感知這個術語描述的是對特定時間點、整個戰鬥空間或其中一部分狀態的感知。在某些情況下,已發生事件的發展軌跡信息和對當前態勢的發展預測是關注的重點。態勢由任務和任務約束條件(如交戰規則)、相關力量的能力和意圖、關鍵的環境特性等部分(組件)構成」。

Endsley傾向於將態勢理解(預測)作為感知的一部分。而Alberts傾向於將感知與理解分開。實際運用於網路安全領域時,Alberts更貼近於通過計算機自動化實現態勢感知能力的現實設定。因為計算機無法做到Endsley所認為的主要存在於人腦中的態勢認知,而只能做到態勢評估,而Alberts將態勢分析作為一個認知過程,並強調了任務機制(在網路安全領域,任務可以簡單理解為事件)。

綜合兩方觀點,實際我們可以將態勢感知定義得更貼合網路安全領域的一些共識和期望。

態勢感知就是「認知一定時間和空間內的環境要素,理解其意義,並預測它們即將呈現的狀態,以實現決策優勢」。

因此,態勢感知可以分為三個組成部分:態勢認知、態勢理解和態勢預測。

態勢認知是了解當前的狀態,包括狀態識別與確認(攻擊發現),以及對態勢認知所需信息來源和素材的質量評價。

態勢理解則包括了解攻擊的影響、攻擊者(對手)的行為和當前態勢發生的原因及方式。簡單可概括為:損害評估、行為分析(攻擊行為的趨勢與意圖分析)和因果分析(包括溯源分析和取證分析)。

態勢預測則是對態勢發展情況的預測評估。主要包括態勢演化(態勢跟蹤)和影響評估(情境推演)。

二、態勢認知

先來看狀態識別和確認。簡單來說,在網路安全領域,狀態識別就是意識到有攻擊發生(攻擊發現)。狀態確認則是確認攻擊的類型、來源、屬性和攻擊目標等(攻擊確認)。

就這個部分,有幾個坑想和大家討論討論。

第一個坑:事件不等於攻擊,事件不等於攻擊,事件不等於攻擊。重要的事情說三遍。

無論是入侵檢測,還是防病毒軟體,都能提供和判別事件的發生(簡言之就是告警)。但是,事件(告警)只是各種感測器的自動化處理機制中對接收到的數據信息的處理結果,並不能代表真的就有攻擊發生了。因此,從可觀測的角度而言,可確認的事件這個集合是大於可確認的攻擊這個集合的。此外,基於事件(告警)得到的信息相對於狀態確認所需要的攻擊信息而言是不全的,所以事件信息這個集合是小於攻擊信息這個集合的。

這表明了兩個困境:一是我們需要在感測器反饋的海量事件中找到真實存在的攻擊,需要想辦法去掉無效事件的噪音干擾。二是我們為了掌握和確認攻擊,就需要想辦法更大量的,更多緯度的信息去支撐這個狀態確認。

然而,現實情況是,海量的事件,如何通過分析發現攻擊,已是一大難題。而發現攻擊後,往往我們又發現支撐對攻擊進行確認分析的數據不足,無法勾勒攻擊全貌。當想辦法獲取了更多的數據來做確認分析時,卻發現這麼多數據又產生更多的事件,攻擊發現又成問題了。

第二個坑:態勢認知不是態勢感知,喊專有名詞要慎重。

從Endsley和Alberts的論文和定義中,應該可以看到,態勢認知只是態勢感知的一個組成部分,或者說是態勢感知的第一步。然而,目前國內大部分態勢感知產品實際都只是一個態勢認知產品,還是不那麼好用的態勢認知產品,不提最難的態勢預測,就連態勢感知的第二個組成部分:態勢理解,許多產品都不具備這一能力。這樣做的結果,就是大多數態勢感知產品還達不到真正的預期效果,態勢感知這個概念就像當年的SOC一樣,快速泡沫化,然後快速爛大街,最終導致好東西沒人做也沒人要。

舉個簡單的例子,態勢感知產品裡面BiuBiu圖的泛濫,說好聽是可視化,說不好聽就是糊弄人。裡面biu來biu去的所謂攻擊,有多少是基於感測器上報的事件直接分析得出的,有多少是經得住推敲的,有多少是能詳細並準確地描述其來源、目標、類型、攻擊路徑等屬性信息的,又有多少可以確認的攻擊是不用人工分析就可以判斷得出的?

第三個坑,怎麼做好態勢認知。

個人以為,首先,要明確一點:在理想的態勢感知系統中,IDS等感測器就是感測器,就是採集數據用的,它們的核心就是提供數據。態勢感知系統需要自己建立攻擊發現和攻擊分析能力,而不能依賴於IDS等感測器的事件告警來做分析。這個問題,在我碰到的國內一些所謂態勢感知產品中特別突出。所以,基於事件分析和基於數據分析是一個分水嶺,也是傳統事件分析與態勢認知分析的區別所在。

其次,從觀測的角度而言,日誌大多是基於一定閥值的記錄,只是狀態信息的一個組成部分。因此,要做狀態識別和確認,就需要擴充你的狀態信息來源,例如對流量協議還原後的數據,或是用戶行為數據等。單純依據日誌來做分析,只能觀測到一部分已知的攻擊行為。

再次,在初期,數據越多越好,因為你不知道什麼數據有用,什麼數據沒用。只有當你積累了對大量攻擊行為的認知後,通過質量評價和優化,才能逐步減少和補全數據採集的數量和來源。

然後,就是合理運用大數據分析工具,構建攻擊發現和分析模型,並可以藉助機器學習等技術逐步實現對相關演算法模型的持續改進。沒有合適的大數據平台和分析工具,再多、再有價值的數據也是一堆「廢料」。

還有,就是充分發揮威脅情報的作用,用其他人觀測到的外部攻擊信息來幫助自己進行觀測,這是一個事半功倍的事情,除了提供自己的分析精度和速度,還能從中發現自己在數據來源、分析模型等方面的不足,查缺補漏。

最後,就是數據描述標準和數據結構的問題。現在國內大部分態勢感知產品的數據描述和數據結構都是不統一的,對攻擊的描述各不相同,有長有短,有對有錯,沒有統一的標準。個人的建議,可以好好研究下STIX,用這個標準來統一下你的數據結構,明確怎麼完整地描述一個攻擊,確保在數據對接時不會打架或者產生困擾。

再來看態勢認知裡面的信息質量評價。

對態勢認知信息素材的質量評價(或者說是質量度量),不但關乎到信息本身的質量和可信度,還關乎由此形成的知識-情報-決策的質量和可信度,如真實性、完整性和時效性等。所以,可以看到態勢認知的質量評價實際是以結果為導向的一套評價體系,即包括對系統整體效果的考量,也包括對單類信息素材來源的考量。因此,信息質量評價(或者說態勢感知系統的質量評價)不但支撐著態勢認知,還會延伸到態勢理解和態勢預測,貫穿於整個態勢感知體系的始終。

個人理解,單類信息素材的考量類似於現在威脅情報領域常被提到的信譽度和情報質量的概念。例如:

完整性:以STIX標準來衡量的話,八要素齊全的威脅情報比單一的IDS事件告警的質量更高。

真實性:外部威脅情報在與內部數據做命中後所得到的攻擊相關信息,質量比IDS告警的真實性要高。

時效性:當天首次發現的威脅信息比多次發現的威脅情報、之前發現的威脅信息時效性更強。需要說明的是,一個能快速指導防護者進行決策的威脅信息,比一個你看到也無所適從的威脅信息更具時效性。因此,時效性即是性能標準,也是一個有效性的衡量標準。

而對系統整體效果而言,質量評價就複雜很多。我們常說的態勢度量體系中很大的一部分就是針對信息素材的質量評價。這部分的質量評價(既有性能評價,也有效能評價)包括了系統的置信度(查全率、查准率、碎片率、錯誤關聯率等)、純度(不正確率、證據查全率)、費效比(優先順序排序、攻擊分值)、時效性(防護時間、檢測時間、響應時間)、有效性(MoE)等多個衡量指標,是對以所有信息素材為一個整體的信息質量的度量,也是對系統運用這些信息素材的能力度量。這也是目前國內進行態勢感知度量相關研究的重點所在,我個人覺得可以考慮結合STIX的一些標準化思想和概念來配合進行度量。(很難說做得好還是不好,也希望有大牛來普及下這方面的知識)。

三、態勢理解與態勢預測:態勢感知參考概念模型

這裡我推薦大家可以了解下美國國防部數據融合聯合指揮實驗室提出JDL數據融合模型、Endsley博士提出的Endsley態勢感知模型。將兩個模型融合到一起,我們可以得到一個態勢感知參考概念模型和一個態勢感知過程模型。

這個態勢感知參考概念模型完善了JDL的第1和第2層,並將JDL第2和第3層與Endsley模型結合,並用第4層實現態勢感知和數據融合系統的彈性和動態需求。

實體:獨立、獨特存在的某個事物,包括物理實體和非物理實體。電話、財務交易、某台交換機、某個人都可以認作是一個實體。一個實體可以用一個具體的對象和一個對這個對象的抽象概念來描述。

組:相互之間有某種聯繫的若干事物。例如特定的人群、組織團體、一組存在交互的設備等。

事件:發生的事情。實體和組都可以和特定或多個事件關聯。事件可分為三類:簡單事件(僅涉及單個實體,且與其他實體無相互作用的事件)、空間事件(在空間中發生的、包括位置因素的事件,例如對DMZ區的攻擊,或者對外網Web伺服器的批量掃描)、傳遞性事件(涉及兩個或多個相互作用且關聯的實體的事件,例如利用VPN登錄某台防火牆,或是藉助某台伺服器做跳板攻擊其他伺服器)。

活動:通過行動或運動的方式完成的事情。活動由多個實體/組構成,各構成部分通過時間、空間上的一個或多個事件關聯(例如:某黑客團伙利用Web掃描、VPN登錄、社工釣魚等多種方式嘗試攻擊某企業網路,可視為一項活動)。

態勢:可以將某個時間點的活動的集合即為我們所說的態勢。

因此,在第一層,態勢感知系統,或者說態勢認知模塊需要建立能夠確認對象、組和活動的模型和先驗知識(即相互關係與聯繫)。而先驗知識的獲取一是依靠自下而上的採用知識發現技術,並由操作者驗證其結果,二是直接由操作員提供先驗知識。第一種方法只能學習到統計相關的事件,而無法創造新的想法,第二種方法則依賴於人力的作用和人的經驗與直覺(這就是所謂的「人在迴路」)。

JDL模型和Endsley模型都認為,計算機系統能根據先驗知識認知到活動的發生,或建立多個對象/事件之間的聯繫,卻不能形成或提供態勢感知。只有人(決策者)才具備感知能力,即理解、預測的能力。然而,由於所處情境的不同,人的經驗、知識、直覺作用的不同,不同人得出的態勢或看法各不相同。這就需要綜合多個人的看法。共有態勢感知(許多人對某個或某一組特定活動的看法中的共同點)和共有行動計劃(一個組在聯合觀察到的信息或數據簡化過程的基礎上共同做出的決策)的理念在近20年得到了廣泛支持。

這也是後續的威脅情報概念、情報交換機制、雲聯動等新技術和概念為何會誕生的基礎指導思想。

模型中將第2層的理解和第3層的預測合為態勢評估,基本可定義為:理解當前狀態及其給「我方」帶來的損害/好處,預測當前態勢的發展(即對未來的一系列的合理預期),以及這些合理預期可能造成的影響/威脅。

可見,在第2層的態勢理解中,最重要的是了解自己和對當前的損害評估。損害評估是對攻擊或者活動在當下的影響評估,是基於事實的評估。這不但需要了解當前已知的攻擊和活動,還要弄清楚這些行為對「我方」的意義,即影響了哪些資產或能力,以及這些資產或能力對我方的重要性。簡單理解,損害評估就是對現實風險的理解和評估。

而第3層的態勢預測中,則關注於影響評估(也包括威脅評估)。影響評估與損害評估不同,它是一種情境推演,即當攻擊或者活動繼續開展,會造成怎樣的影響,會不會和其他的攻擊活動關聯,會不會影響到其他的資產,以及如果我們採取了措施,會造成怎樣的後果等等。這是一種基於觀點的評估(觀點與事實的差別,這裡就不再贅述)。簡單理解,影響評估就是對潛在風險的理解和評估。

根據RFD認知決策模型(G.Klein)理論,目前國內的風險評估,大多停留在損害評估層面,即簡單的資產、威脅、脆弱性的關聯,在影響評估層面只適用於進行「特徵匹配」式假設推理(即所有條件都已知,且所得線索與過往經歷的相似性程度較高)。而從態勢預測對影響評估的定義(情境的推演)來看,影響評估除了採用「特徵匹配」外,還需要做「情境構建」(原文為「情節構建」),通過分析和推斷對方意圖、時機、能力等對手信息,以及漏洞能否組合利用,或是是否存在未知漏洞等其他己方信息,探索其他潛在的假設,並持續進行態勢跟蹤,驗證和推演構建的多個情境到底哪個是準確的。

因此,簡單運用風險評估理論來進行態勢評估,尤其是態勢預測,基本上不可能達到理想效果(更何況現在國內大部分的風險評估產品、工具或項目,連做損害評估都不盡如人意)。

對於模型的第4層,強調的是反饋。在控制論、系統論等諸多理論中,反饋的作用都非常突出。因此,過程完善對於整個態勢感知模型或系統而言,是一個持續進化和完善的保障機制,也是必要的驗證機制。

反饋分為兩個方向:一是作用於第1層,根據系統預測的結果,向指定的感測器發出數據請求,以獲取相關的數據,來執行對象跟蹤或預測結果驗證工作,確保不會出現數據不足或數據錯誤的情況,或是去掉不必要的數據噪音。另一個方向則是作用於第2和3層,進行內部監測,當所採集的數據導致系統理解和預測的結果與現實態勢不符時,需要有及時、有效的反饋機制去更新理解和預測的模型,或是直接人工介入。

個人猜測,自適應理論、自動化響應技術和機器學習的運用等,大多也脫胎於這種反饋機制的設計。

四、態勢理解與態勢預測:態勢感知過程模型

對於態勢感知的過程模型,有一個基本的前提就是所有可觀測量(包括各個過程輸入的基本環境要素,形成的認識和看法等)的屬性都已經做了標準化和純化,並轉化成在後續過程中可用的形式。當然,現實情況中,大多沒有做標準化和純化,這也是為什麼會有日誌歸一化、威脅情報的STIX、TAXII等標準化工作的原因。(這裡我再次強烈建議,態勢感知系統需要引入STIX等數據標準,缺少這些標準的支撐,整個體系連前提條件都無法滿足,又如何去實現。)

在引入可觀測量後,我們所關注的活動就可分為三種情況:1)與現有的、正在進行的某個活動中的新階段或步驟相關;2)與現有活動無關,是新活動的開始;3)觸發現有活動出現組合、合併或移除的因素。這對應了參考概念模型的第1層。

而對應參考概念模型第2層的,則是基於對我方認識的損害評估,是之前第1層確認的各類活動的延伸。在先驗知識的支撐下,系統需要進行高效的損害判定,獲得我方資產或任務的當前狀態,並與之前狀態進行對比,確定損害程度。

因此,在這一過程中,很重要的一個前置工作就是資產發現。

到了第3層,也就是最複雜的預測層面,不但需要對我方的認識,還需要進入對手的OODA(觀察、判斷、決策和行動)環,簡言之就是需要對對方的認識,也是需要先驗知識支撐的。同時,作為前置過程,我們還需要根據配置數據規定預測的步驟和範圍,從而將基於模型與經驗,特徵匹配與情境構建所得到的各種「可能的前景」(與第1層觀測到的活動對應)處理成「合理的前景」,並能支撐對潛在的影響/威脅的評估。

而可視化組件的作用,就是為了讓這些處理過程更直觀,以方便人工進行監督和介入處理。可視化面臨的挑戰主要有三塊:如何將海量信息進行可視化展現,如何讓時間因素及其影響得以呈現,如何讓呈現的態勢更好地支撐決策。相比國外對可視化在整個模型中的作用有著清晰的認識,國內似乎已將可視化與態勢感知做了對等,基本可以說是本末倒置。

四、關於態勢感知的一些認識(吐槽)

最後來談談一些對態勢感知的認識誤區。

態勢認知和態勢理解常常被經驗主義者認為是一體的。實際上是有區別的。

我記得去年某公司提出的口號是「看見」。簡單來說,「看見」只是認知,即提供環境內相關要素的狀態、屬性和動態等信息,並將信息歸入各種可理解的表現方式的過程,就是數據採集、數據存儲、數據分類和初步的數據分析。

而「理解」可以認為是「看懂」,從技術實現來看,就是模仿人的大腦組合、解讀、存儲、保留和過濾信息的過程。這要以「看見」為基礎,但比「看見」高一個層次。

因此,態勢理解不僅要做數據的整合,還要做數據的深度挖掘和關聯分析。一方面認識或注意到信息,整合這些信息,另一方面還要決定這些信息與實體、活動乃至態勢的相關度,並可依此推斷或推導出一系列結論。

關於態勢理解,還有一個誤區是認為通過機器學習、人工智慧等技術最終能替代人,甚至超越人,去發現和理解全部的攻擊,從而掌握整個態勢。

事實上,機器學習、人工智慧以目前技術發展趨勢來看,最多也就只能做到替代人腦第二系統(思維)的作用,實現基於邏輯、知識、記憶的抽象化推理(文字、數學與理性的作用)。而第一系統(反射)帶來的潛意識直覺判斷,或者說「從不明顯的證據直接得出結論」(丹尼爾.卡尼曼),卻是不被抽象後的機器語言所理解的。而人對態勢的理解,對攻擊的感知,卻有很多時候需要依賴看似不太靠譜的直覺。因為,大部分時候,我們的對手也是人,他們的很多舉動行為也是潛意識的,甚至是病態的(病態行為在醫學上被認為很多都是不可以邏輯來解釋的),而這種行為的發現,大多只能靠有經驗的防護者的直覺。所以,即使我們的數據採集得再多,分析能力再強,「未知攻焉知防」的觀點會一直有效。

因此,態勢理解必需有人參與在其中,且佔據主導作用。計算機自動化技術構建的態勢理解系統只是人工分析的輔助系統,而非替代作用。而分析者除了依賴系統提供的數據和結果外,還要適當發揮自己的直覺(當然,還要再用事實和數據去驗證直覺),並根據最終結果對態勢理解的諸多模型進行調整。

如果從循證現象學來說,機器做的是循證研究,人做的是現象研究或者經驗研究(個人理解,如果錯了歡迎糾正)。

第三個誤區是,態勢感知系統被認為是一個產品,實際上它只是一個專家系統。

態勢感知系統從其定義上就可以看出,是個非常純粹的專家系統,它需要大量的投入(感測器、外部情報、分析平台、可視化等),限定了一定的使用條件(時間、空間,還有數據瓶頸),還需要許多專家來實施許多關鍵部分的分析工作(例如先驗知識方面的演算法模型、後續的人工驗證調整)。這也是為什麼國外正在建設和使用的很多態勢感知系統都是以項目形式,並結合專家團隊賣人頭,來為國家政府和一些財大氣粗的企業提供服務的。準確的說,態勢感知系統本身不是一個很好產品化的東西。

態勢感知系統不能那麼容易產品化,那麼它的價值在哪呢?它的價值就在於,它是一個價值輸送平台。通過對態勢感知系統各種分析結果的提取,帶動其他產品(如TI、EDR、NGFW、WAF、IDS等)的落地,提高其他產品的價值附加值,才是其關鍵價值所在。我們可以將態勢感知系統看作是幫助用戶構建更符合自己需要的安全體系的敲門磚和感應石,是安全項目的發起點。

當然,前面也說過,不做態勢感知,只做態勢認知,產品化並不難,也有用戶需求。但是,缺少了後面的理解、預測和反饋,沒有了完整的過程模型,單純的認知系統又能發揮多大的效果,我個人保留意見。同樣,總有牛人能把真正的態勢感知系統做成真正的產品,我個人樂見其成。

以上只是一家之見,歡迎探討。至於態勢預測的具體技術,演算法模型我不在行,就不班門弄斧了。

  • 本文固定鏈接: https://www.sec-un.org/安全的進化論(二):來說說態勢感知/
  • 轉載請註明: archer 於 Sec-UN 安全圈 發表
  • 最後編輯:作者:archer

    這個作者貌似有點懶,什麼都沒有留下。 站內專欄
    推薦閱讀:

    【地球演義】綠之巨人傳2:藤葛
    太極拳架進化論
    (十九) 生物的變異與進化
    第七集 異向進化
    對「人猿同祖」進化論的駁正

    TAG:安全 | 進化論 | 進化 | 感知 | 說說 |