美國DARPA“配置安全”專案分析
美國DARPA“配置安全”專案分析
作者:齊義勝
2017年11月,美國防部高階研究計劃局(DARPA)資訊創新辦公室(I2O)釋出“配置安全”(Configuration Security, ConSec)專案公告,尋求能夠對複雜系統的配置進行自動分析和改善的創新研發方案。2018年11月,美國DARPA與美國Perspecta公司的研究部門Perspecta實驗室簽署ConSec專案首份合同,該專案為期三年半的研發由此正式開始。本文概述ConSec專案背景,探討其技術內容,跟蹤其進展情況,並給出其帶來的啟示。
一、專案背景
隨著軟硬體技術的發展,專用硬體正逐漸被通用元件所取代。現在很多複雜系統都是利用商用現貨(COTS)產品(例如路由器、可程式設計控制器)組合而成的(稱之為“組合式系統”),價格低廉的商用現貨裝置正在取代用途單一的專用裝置。由於物聯網的發展和接入網路的組合式系統(包括飛機、關鍵基礎設施等)日益增多,人類面臨前所未有的技術多樣性。從在設計時很少考慮安全問題的消費級物聯網裝置,到很容易被遠端控制的工控系統,可接入網路、可通過網路監控的功能日益多樣,範圍越來越大,這些新接入網路的組合式系統帶來了網路攻擊面的擴張。與此同時,受規模經濟的影響,平臺的通用型越來越強,多樣性在不斷下降。例如,CPU市場現已主要由ARM處理器、x86處理器和流處理器所佔據。事實上,規模經濟不僅影響消費級市場,也影響著各種工業平臺和軍事平臺——這些平臺中原本使用的定製專用元件已經在很大程度上被廉價的通用可程式設計元件所取代。
可程式設計元件的普及使配置安全問題日益凸顯。可程式設計元件的行為由軟體和配置所決定,因此帶來了新的攻擊維度,這是以前使用專用硬體時不曾有過的新問題。為了擴大適用範圍,提供這些商用現貨元件的廠商總是希望其產品更靈活、更通用。但這種靈活性實際上把安全責任推給了系統所有者。許多產品在開啟包裝時採用的是預設配置,要根據實際情況更改某些配置項後才能投入使用。系統所有者必須對各個元件進行恰當配置,避免因某些實際上不需要的功能而招致攻擊。換言之,必須通過恰當配置把通用性強的商用現貨裝置調整為恰如實際所需的裝置。這種配置工作通常技術性強,對系統安裝和運維提出了較高的要求。系統越複雜,整個系統的配置難度越大,稍有不慎就可能為攻擊者留下可乘之機。
在這樣的時代背景下,美國DARPA於2017年11月釋出公告,為“配置安全”(ConSec)專案徵求創新研究方案,希望研發能對軍事平臺各元件或子系統自動生成、部署和執行安全配置的系統。這些安全配置應充分考慮系統中可能存在的安全漏洞,在確保系統正常執行的同時最大限度地縮減攻擊面。ConSec系統將把每個元件的配置都作為組合式系統的行為與安全要素,自動生成並部署更安全的配置,在無需開發新軟體或大幅度更換硬體的情況下增強組合式系統的安全性。由於負責提供控制輸入,人也是這些組合式系統的有機組成部分。可由人識讀的標準操作規程(例如飛行員在排查故障時用的對照檢查表)闡明瞭操作人員應遵循怎樣的操作順序。ConSec系統必須能夠理解這些人機互動,並代替操作人員進行互動。
二、技術內容
ConSec專案包括4個技術域(technical area, TA),分別是理解組合式系統(編號為TA1)、生成安全配置(TA2)、攻擊測試(TA3)和系統整合與評估(TA4)。為便於討論,下文把所針對的組合式系統稱為“目標系統”,用“元件”來指稱目標系統中可進行配置的部分。圖1是ConSec系統示意圖。
圖1 ConSec系統示意圖
(一)理解組合式系統
TA1需能推匯出目標系統的語義,並針對目標系統必須經歷的每種操作上下文建立功能模型,每個元件的配置引數必須對應到語義功能描述。這裡所稱的操作上下文是指目標系統必須支援的執行模式。TA1必須根據所提供的文件而推匯出所有可能的操作上下文。例如,對於軍艦,必須考慮其在海上航行、在港口停泊、在船廠維修等各種操作上下文。為此,TA1承包方需根據目標系統的使用者手冊、操作說明書等文件,或通過分析待配置元件的軟體/韌體,生成可由機器識讀的、對應於各操作上下文的功能需求,並建立操作人員與系統進行互動的模型。這意味著TA1系統至少應能識讀非結構化的普通文字,或許還需要具備識讀圖表(例如網路拓撲圖)的能力。DARPA要求TA1系統至少應能分析x86、ARM和MIPS架構的軟體/韌體,並要求關注如何以自動化方式完成這些任務,儘量減少人工操作。
TA1系統把所生成的可由機器識讀的描述和模型提交給TA2,由TA2根據這些資訊生成目標系統在各個具體操作上下文中的安全配置。TA1還要負責把TA2生成的安全配置引數部署到目標系統,並採取措施確保這些設定是可審計的、可防止篡改的,由執行時監控子系統對各元件的配置進行監控,以及時發現可能出現的變更。這些變更可能是因系統遭受惡意攻擊而引起的,也可能是因系統從一個操作上下文轉換到另一個操作上下文而引發的。如果需要由人工對自動生成的模型進行審查和優化,TA1應該對這些必要的人機互動做出描述闡明將為不精通安全或配置的使用者提供哪些支援。TA1系統必須運用其對配置引數的語義理解,儘可能減小所生成模型的規模。
TA1的技術難點包括:(1)如何從由人工識讀的系統文件中抽取出語義,以生成關於配置引數如何影響系統行為的可由機器識讀的模型;(2)縮減每個元件的配置空間,以滿足關注安全和效能的需要;(3)根據系統文件,在儘可能減少人工參與的情況下找出目標系統的各種操作上下文並進行建模;(4)對元件的韌體/軟體進行二進位制或原始碼分析,根據其配置自動生成每個元件的功能描述;(5)以協作方式創建出通用資料表示,用於和TA2系統交流所形成的模型和表述,能對不同廠商的配置習慣進行正則化處理;(6)開發出能訪問、更改和監控某個大型或複雜系統/平臺所有不同裝置配置引數的系統。
(二)生成安全配置
在配置時,TA2系統基於TA1提供的配置與功能的對應關係,生成用於整個系統的若干個安全配置集合(每種操作上下文對應於一個安全配置集合)。如果需要由人工稽核並增加TA1系統未能自動提供的某些約束,TA2應開發出某種操作介面,使操作人員能夠更好地理解該如何對系統進行配置。TA2提供的配置必須確保組合式系統的正常功能(包括滿足一些非功能需求,例如確保時序的正確),同時刪除一些不必要的功能,通過調整一些設定項而縮減攻擊面。
在組合成一個整體時,必須對各元件進行深入分析,以防止某個元件的行為給其它元件帶來消極影響。例如,交換機的最大傳輸單位(maximum transmission unit, MTU)通常設定為1518,如果某臺交換機的該引數被設定為大於1518,大多數新產品仍可正常執行,一些老裝置則可能因不能接收大資料包而無法正常執行。因此,TA2系統應能從整體上進行分析,從而發現和解決這種涉及多個元件的問題。
TA2系統須能生成若干支撐性證據,以說明為什麼要採用某種配置設定。這些證據應能使合作伙伴相信新的配置能在確保系統正常執行的同時顯著改善系統的賽博安全狀況。TA2需要把所生成的配置集合提交給TA1,由TA1進行部署。每個配置集合都應包括可由人識讀的描述,說明都有哪些操作上下文、這些操作上下文之間會有怎樣的變遷。在執行時的操作介面上,要把這些操作上下文以及為什麼要對某個可疑配置做進一步調查等情況都告知操作人員。
TA2的技術難點包括:(1)對TA1提供的系統模型和描述進行組合式分析(包括從不同層面上進行多項分析,也包括對整個系統進行綜合分析),以確定出每種操作上下文的最優配置;(2)自動生成可由人識讀的證據,說明為什麼選用某個配置集合;(3)在配置時和執行時與操作人員進行溝通,從而優化模型或對執行時行為做出解釋。
(三)攻擊測試
TA3需要開發多種工具、技術和規程,以挖掘複雜組合式系統中基於配置的典型漏洞。TA3將在“白盒”模式下操作,能獲取TA1和TA2的所有輸出資料,也能獲得所有原本由人識讀的文件。對每個用以測試的目標系統,TA3首先審查其標準配置設定,並在必要時進行更改,以形成所需要的攻擊面。這些基於配置的漏洞將成為對TA1和TA2配置集合進行評估的基線。在測試評估結束時,TA3必須把被測試的目標系統恢復到測試前的“已知良好”狀態。
TA3要進行的攻擊測試不同於傳統的滲透測試,因為TA3的攻擊測試要求必須僅利用TA1和TA2配置集合中的安全漏洞而實施攻擊。在對目標系統進行這種攻擊測試時,禁止實施造成記憶體錯誤、面向返回語句的攻擊及其它軟體層級的攻擊。
TA3還負責對ConSec軟體本身進行架構評審,並與TA1和TA2協作,防止攻擊者利用ConSec系統破壞目標系統的安全性。對TA3的評價主要考查其在上述條件下自動生成攻擊路徑的能力,以及TA3能給TA1和TA2帶來哪些改善。
TA3至少要解決如下技術難點:(1)開發僅藉助與配置/組合相關的漏洞而對目標系統實施攻擊的工具、技術和規程;(2)評估利用ConSec系統對目標系統實施攻擊的可能性;(3)生成帶有設定漏洞的初始配置集合,並在TA1和TA2部署了新的配置集合後評估在安全方面有哪些改善;(4)自動完成用於第一階段的技術、戰術和規程,以增強TA3為第二、三階段更大規模目標系統提供支撐的能力,最大限度減少人工參與。
(四)系統整合與評估
TA4負責按照ConSec既定指標對TA1和TA2系統進行評估,並對TA1和TA2兩種系統進行整合,從而形成配置時子系統和執行時子系統。ConSec專案將以自動化方式完成目前通常由人工完成的操作,對TA1和TA2系統的及時評估將有助於實現這種從人工到自動化的轉換。TA4需要研究用哪些客觀指標來評估整個ConSec系統在安全方面帶來的改善,還需要研究用哪些方法確保即使在部署某個錯誤的配置集合時系統的必要功能也不會被誤刪或更改。
TA4必須提供一個簡單的模擬/模擬測試環境,並需要在本專案正式開始後3個月內投入使用。該測試環境應能隨本專案的推進而不斷完善,為自動化迴歸測試與評估提供支撐。TA4應充分考慮TA1和TA2提供的容器化軟體,這些軟體採用得到共同認可的通用資料格式,經恰當組合後可形成配置時子系統和執行時子系統。TA4負責完成該整合過程,並假定來自TA1和TA2的各個軟體都足夠成熟,不需要由TA4花費大量時間挖掘其中的安全漏洞。
TA4負責協調對由DARPA選定的目標系統進行能力演示和演練評估,並把TA1和TA2的各個軟體整合為配置時子系統和執行時子系統。在Consec專案的各個階段,TA4都需要與美軍和試驗環境所有者進行各種協調,確保對Consec系統的功能、效果及使用者體驗進行高效的測度和評估,並負責稽核TA3是否在每次演練結束時把測試環境恢復為“已知良好”狀態。
TA4還負責協調TA1和TA2,就具體介面規範和系統總體設計達成一致。從第一階段中期開始,TA4負責把來自TA1和TA2的各個軟體整合為配置時子系統和執行時子系統,並在每兩個月提交程式碼時進行自動化測試。
TA4至少應解決如下難點:(1)促使TA1和TA2就通用資料格式達成一致,這些格式應能遮蔽廠商設定的引數名稱及語義;(2)協調組織在有限的物理目標系統上開展演練,並迅速確認試驗環境是否已被恢復為“已知良好”狀態;(3)開發新的指標及系統分析框架,用以評估ConSec系統的研發進展及生存能力;(4)建立簡單的測試環境,支援對TA1和TA2的成果進行自動化迴歸測試;(5)把TA1和TA2的各種工具有機整合起來,形成順暢的工作流,支援未來的轉換。三、進展情況
DARPA資訊創新辦公室(I2O)於2017年11月釋出“配置安全”(ConSec)專案公告,稱計劃總共用42個月,分三個階段完成,見圖2。
圖2 ConSec的進度安排
其中,第一階段和第二階段是在民用系統(例如車聯網系統、工控系統)上進行驗證,第三階段則是在國防部的涉密系統上進行驗證。整個專案計劃安排6次能力演示,並經受5次演練的檢驗。該專案提出的各階段指標見表1。
表1 ConSec專案的指標
第一階段(搭架築臺) | 第二階段(初始部署) | 第三階段(高複雜系統) | |
TA1:模型逼真度 | 狀態空間的80% | 狀態空間的80% | 狀態空間的90% |
TA1:文件攝入 | 速度10倍於人工,準確度達60% | 速度10倍於人工,準確度達70% | 速度10倍於人工,準確度達80% |
TA1:部署時間 | 速度達人工的1.5倍 | 速度達人工的5倍 | 速度達人工的30倍 |
TA2:配置空間覆蓋度 | 覆蓋60% | 覆蓋75% | 覆蓋90% |
TA2:風險消減 | 消減85% | 消減85% | 消減85% |
TA3:正確性保證 | 無 | 基本保證(40%) | 形式化保證(80%) |
該專案原計劃在2018年7月簽署首份合同。實際上到2018年11月,美國DARPA才與美國Perspecta公司的研究部門Perspecta實驗室簽署ConSec專案首份合同。作為該專案的總承包方,Perspecta實驗室負責“實現攻擊面最小化的上下文優化配置”(OCCAM)系統的設計、開發、演示、測試和交付。OCCAM系統將能自動生成正確且安全的配置,同時生成可由人類識讀的相關證據,以便於把整個平臺升級到新的配置。
四、啟示
啟示1. 配置不當是導致安全漏洞的重要原因,必須高度重視。
正確的配置對於系統的高效、安全至關重要。事實上,系統或元件的各種配置日益複雜,已成為安全漏洞的重要來源。2016年的一份研究報告分析了在對若干種真實系統的滲透測試中發現的1500個漏洞,發現有27%是完全因配置不當而造成的,另有40%在一定程度上是因為配置不當而造成的。換言之,共有67%的安全漏洞與配置不當有關。安全漏洞是網路攻防活動能夠發生的前提,是系統不安全的根源。為確保系統安全和儘可能避免安全漏洞,必須高度重視配置問題,美軍的ConSec專案為藉助自動化手段克服人類的認知侷限性提供了新思路。
啟示2:進行恰當配置對使用者要求較高,配置自動化難度很大。
隨著技術的發展,所部署的系統日益複雜,如何對這樣的系統及其元件進行恰當配置,是系統所有者或使用者面臨的嚴峻挑戰。很多情況下,不得不借助廠家的技術力量,即由裝置生產廠家派專業人員到現場進行技術保障。當某個系統集成了多個廠家的產品時,還需要多個廠家同時派人到現場保障。實現配置自動化是減輕這種配置保障壓力的有效途徑。但分析ConSec專案可以看出,配置自動化涉及到自然語言處理、機器學習、行為建模、測試評估等諸多技術挑戰,難度相當大。美國在上述多個領域有多年的積累,但對該專案的開展仍相當謹慎,這種謹慎正是技術難度大的體現。
啟示3:為確保新研系統取得預期效果,必須加強測試評估。
美軍已經建立了比較完善的對新研系統或新採辦系統進行測試評估的機制。其常態化的測試評估包括研製測試和作戰測試兩大階段,近年來還呈現出一體化的趨勢;測試內容既包括可用性、可靠性、互操作性等傳統專案,也包括以網路安全為代表的新內容。雖然已經積累了比較豐富的經驗,但在某些方面仍有較大的改善空間。例如,美國防部把安全測試加入裝備研製和採辦流程已有近10年曆史,但近兩年的作戰測試年度報告仍連續強調“所有被測系統均存在對遂行任務具有重要影響的網路安全漏洞”。對於ConSec這樣的創新研發專案,以較多的演示和演練進行測試評估,正是美軍“基於試驗,結果驅動”理念的生動體現,值得我們借鑑。
宣告:本文來自網信防務,版權歸作者所有。文章內容僅代表作者獨立觀點,不代表安全內參立場,轉載目的在於傳遞更多資訊。如需轉載,請聯絡原作者獲取授權。