崔書方,付德志,徐 佳,郭著松
(武漢問道信息技術有限公司,湖北 武漢 430040)
近年來,網(wǎng)絡安全越來越重要,企業(yè)網(wǎng)絡安全運營面臨著巨大的壓力,一方面存在安全人員不足的問題,另一方面對安全運營的專業(yè)能力要求越來越高,亟需自動化系統(tǒng)來提升安全運營能力。
安全編排自動化與響應(Security Orchestration and Automation Response,SOAR)技術可以通過對安全事件進行智能分析、自動編排、有效聯(lián)動整合安全工具的方式,實現(xiàn)快速預警和自動化響應,可以降低修復平均時間(Mean Time To Repair,MTTR),提高安全運營生產力,指導企業(yè)建設安全防護體系[1]。
當前SOAR技術的研究側重于安全攻擊的封鎖阻斷、預警響應與處置過程管控等,對管控接口和消息傳輸總線研究尚少[2-4]。OHMORI M提出依據(jù)專用運維事件庫對接收的運維事件進行分類與存儲,然后由SOAR引擎實現(xiàn)事件研判與自動化響應[5]。NETZER G 提出入侵和攻擊模擬(Breach and Attack Simulation,BAS)與安全信息與事件管理(Security Information Event Management,SIEM)、SOAR的集成,安全運營中心(Security Operations Center,SOC)團隊能夠不斷評估其安全控制的有效性,并通過實時、準確的指標來改善企業(yè)的安全狀況[6]。歐陽達誠提出通過SOAR、威脅情報、機器學習等技術實現(xiàn)安全事件的自動閉環(huán)與持續(xù)威脅對抗,實現(xiàn)安全運營中心自動響應閉環(huán)、持續(xù)安全運營的目標[7]。王妍等人提出通過SOAR構建多源數(shù)據(jù)融合管理能力和生態(tài)內產品間協(xié)同能力,解決長期以來運維所面臨的數(shù)據(jù)碎片化、事件處置效率低下等問題,實現(xiàn)網(wǎng)絡內安全事件的綜合分析和快速高效的自動化響應、處置,提升國產產品生態(tài)的網(wǎng)絡安全運維能力[8]。許暖等人提出結合SOAR技術與分級分類管理的思想,共同打造自動化、智能化的網(wǎng)絡安全應急響應能力[9]。
隨著數(shù)字化轉型的加速,云計算、邊緣計算和工控智能終端得到廣泛應用,工業(yè)互聯(lián)網(wǎng)安全架構的改變和新技術的應用不斷引入新的安全風險,工業(yè)控制系統(tǒng)(Industrial Control Systems,ICS)面臨著更加嚴峻的安全威脅。SOAR技術在工業(yè)領域面向異構企業(yè)、異構安全設備,通過構建統(tǒng)一化、標準化的安全接口體系,打破各個安全企業(yè)、安全設備的孤島形態(tài),建立可信任的安全聯(lián)動體系[10,11]。SOAR作為一個全新的安全運營工具部署到網(wǎng)絡安全體系時,需要兼容系統(tǒng)中已經(jīng)部署的海量安全設備、網(wǎng)絡設備、終端檢測響應(Endpoint Dextection and Response,EDR)系統(tǒng),同時與客戶的業(yè)務系統(tǒng)對接,實現(xiàn)對客戶業(yè)務的管控響應閉環(huán)[12]。趙粵征等人提出構建圍繞SOAR為主體的安全運營生態(tài)體系,使用OpenC2作為設備管控接口標準來提供一套標準化安全控制的通信指令,以便和周邊安全設備建立合作生態(tài)體系[13]。采用OpenC2接口規(guī)范實現(xiàn)面向各類安全設備在管控層面上的互聯(lián)互通,但海量改造已經(jīng)部署在邊緣計算和工廠控制現(xiàn)場安全設備的標準接口不太現(xiàn)實,為了實現(xiàn)存量安全設備的管控接口,需要確保SOAR解決方案支持面向不同設備的兼容性接口擴展能力。
對于煙草行業(yè),建設工業(yè)控制系統(tǒng)的安全保障體系時,可以將煙草行業(yè)工業(yè)控制網(wǎng)分為管理協(xié)同層、生產執(zhí)行層和工業(yè)控制層,形成云計算、邊緣計算以及控制端3層架構[14]。網(wǎng)絡安全工作煩瑣,不同設備事件告警信息存在差異,響應處置策略格式不盡相同,對跨云、邊緣以及智能終端的網(wǎng)絡通信消息總線要求較高。面向工業(yè)企業(yè)復雜網(wǎng)絡,建設一套新型防御響應體系和貫穿云-邊-端(Cloud-Edge-Device,CED)的安全消息總線,實現(xiàn)網(wǎng)絡安全消息傳遞服務和安全數(shù)據(jù)平臺化管理,以滿足高效自適應SOAR安全策略的需求,達到安全事件編排自動化、應急響應自動化的目的。
建設滿足等級保護2.0要求的安全管理中心通常需要通過接入多源日志關聯(lián)威脅知識庫,接入安全分析模型精確識別攻擊事件,使用多種預判和研判相結合的方式明確安全事件,進一步實現(xiàn)確定性事件的自動處置和可疑事件的人工運維,從而快速準確地處置安全事件,實現(xiàn)安全運營的閉環(huán)管理[15]。使用SOAR技術采集來源不同的日志數(shù)據(jù),需要一條滿足安全快速響應和協(xié)同多種網(wǎng)絡資源的消息總線。工業(yè)企業(yè)中經(jīng)常涉及到云計算、邊緣計算以及現(xiàn)場終端等安全資源,需要建設貫穿云邊端的安全消息總線,通過安全消息總線來構建插件化的安全工具集,深度結合安全業(yè)務流,通過自動化編排進行安全事件發(fā)現(xiàn)、研判、響應及處置等閉環(huán)管理。
在工業(yè)企業(yè)中,往往需要使用CED協(xié)同的系統(tǒng)架構,將高計算量的任務放到整個企業(yè)的云平臺上執(zhí)行,利用云上豐富的計算、網(wǎng)絡和存儲資源對邊緣控制器進行彈性拓展。高實時性的工控任務在工廠車間的邊緣側本地執(zhí)行,避免通信過程的高時延問題,提高智能工廠服務響應的快速性和資源利用率。在各生產線上,需要利用終端上位機和硬件設備接口(Hardware Device Interface,HDI)實現(xiàn)現(xiàn)場控制。針對CED應用場景,設計安全消息總線,提供一套標準化安全控制的通信指令,形成標準化接口與協(xié)議,方便SOAR安全策略的統(tǒng)一發(fā)布和管理,達到對安全風險進行持續(xù)不間斷的監(jiān)測、預警、響應及處置。
安全消息總線是各個安全功能模塊的數(shù)據(jù)鏈路,能夠采集來源不同的日志數(shù)據(jù)。SOAR根據(jù)實際情況自定義行動劇本,下發(fā)給相應安全功能模塊進行執(zhí)行。安全消息總線可以基于平行關系劃分出若干個獨立運行的總線,又可以基于主從關系建立由點到面的不同網(wǎng)絡區(qū)域總線架構,如圖1所示。安全消息總線既傳遞安全日志信息、安全事件告警信息等全部類型安全數(shù)據(jù),也傳遞控制指令和SOAR腳本。

圖1 安全消息總線架構
在CED場景協(xié)同模式下,網(wǎng)絡安全管控將涉及到本地設備、邊緣設備和云上平臺的通信過程?,F(xiàn)場設備的安全信息需要定時上報至云端,管理中心和各節(jié)點需要保持長連接狀態(tài),以減少建立連接過程的資源消耗。受限于現(xiàn)場環(huán)境,各個節(jié)點所處的網(wǎng)絡環(huán)境可能相差較大,需要滿足弱網(wǎng)絡或不穩(wěn)定網(wǎng)絡環(huán)境的通信需求。
目前,業(yè)界常用的通信協(xié)議主要有超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)、受限應用協(xié)議(Constrained Application Protocol,CoAP)、消息隊列遙測傳輸(Message Queuing Telemetry Transport,MQTT)以及可擴展通信和表示協(xié)議(Extensible Messaging and Presence Protocol,XMPP)等,各協(xié)議的特性如表1所示。

表1 不同通信協(xié)議的特性
HTTP不支持訂閱控制,在CED1對多或多對多場景下無法直接區(qū)分來自不同設備的請求,只能通過服務端后臺程序實現(xiàn),帶來額外的傳輸、計算和維護開銷。CoAP協(xié)議是基于用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)設計,在網(wǎng)絡地址轉換(Network Address Translation,NAT)環(huán)境下每次數(shù)據(jù)傳輸過程都需要采用額外的穿透手段。XMPP協(xié)議傳輸時,其數(shù)據(jù)包內容實際上是1個XML文件。MQTT協(xié)議層級主題訂閱方式與CED架構中的通信特性契合,安全消息總線選用MQTT作為通信協(xié)議。在安全消息總線中,MQTT以主-從模式運行,主棧是1個代理服務器Broker,從棧是各個安全設備節(jié)點Client,各個點Client僅與管理服務器Broker進行通信。MQTT協(xié)議在消息推送場景被廣泛應用,但在許多即時消息場景下需要大量復雜的拓展和開發(fā)[16]。
安全消息總線通過管理服務器Broker和節(jié)點Client將整個安全管理中心和CED節(jié)點連接起來,負責對所有節(jié)點的接入進行生命周期管理,對SIEM的安全數(shù)據(jù)進行匯集上報傳輸和對SOAR下發(fā)的腳本指令進行實時性優(yōu)先通信下達。
為防止惡意冒充CED節(jié)點Client接入安全消息總線對SOAR信息安全和功能造成威脅,設計了一種具有設備級身份認證的安全接入機制。CED節(jié)點Client接入安全消息總線時的流程如圖2所示。

圖2 節(jié)點Client接入流程
第1步,在安全管理中心為即將接入的云邊端節(jié)點設備進行注冊,為云邊端設備生成1個唯一標識符Client Key;第2步,將Client Key復制到CED節(jié)點設備,修改節(jié)點Client配置文件;第3步,各節(jié)點Client啟動連接,嘗試登陸管理Broker時會發(fā)送1條確認消息,其中包括自身的硬件信息,管理Broker收到該確認消息后便認為邊緣節(jié)點接入成功。
CED通信過程中,管理Broker將定時校驗各節(jié)點Client的節(jié)點名稱、Client Key以及硬件地址的綁定關系。一旦其中某一項與數(shù)據(jù)庫中的記錄不符,則認為有惡意節(jié)點利用此節(jié)點的用戶名和密碼登錄Broker,管理Broker隨即主動斷開此節(jié)點Client的連接。
在CED協(xié)同場景下,各個節(jié)點計算資源、網(wǎng)絡環(huán)境相差可能較大,部分邊緣和終端節(jié)點會存在于弱網(wǎng)絡或不穩(wěn)定網(wǎng)絡環(huán)境中,其安全通信任務會在MQTT客戶端Client的緩存中不斷累積,極端情況下可能會導致任務丟失。為此,在節(jié)點Client之間需設置心跳管理。各個節(jié)點接入管理節(jié)點后,周期性發(fā)送心跳信息,管理節(jié)點根據(jù)一定時間內各個節(jié)點的心跳情況判斷其連接狀態(tài),記錄節(jié)點存活時間,對節(jié)點上下線狀態(tài)進行管理。若節(jié)點出現(xiàn)意外斷開,如斷電、斷網(wǎng)等情況,通過MQTT協(xié)議的遺囑模式,由管理中心與云邊端節(jié)點Client2側約定遺囑內容,及時獲取節(jié)點意外下線信息并發(fā)出警報。
在工業(yè)企業(yè),邊緣和終端節(jié)點設備部署環(huán)境相對復雜,會出現(xiàn)與云端網(wǎng)絡失去連接的可能。針對臨時斷網(wǎng)的情況,需要設計數(shù)據(jù)傳輸暫存策略,以便后續(xù)將數(shù)據(jù)補傳至云端。上報數(shù)據(jù)緩存過程如圖3所示。

圖3 上報數(shù)據(jù)緩存過程
上報進程啟動后,檢查網(wǎng)絡是否可用。如果不可用,等待6 s后繼續(xù)檢查網(wǎng)絡是否可用。一旦網(wǎng)絡可用,就從數(shù)據(jù)庫中提取數(shù)據(jù)進行上報。為了節(jié)省邊緣和終端節(jié)點的資源,將待上報數(shù)據(jù)暫存在輕量級的SQLite數(shù)據(jù)庫中。上報進程在收到管理節(jié)點發(fā)來的確認應答后,將該條數(shù)據(jù)從緩存中刪除。如果連續(xù)等待3次未收到管理節(jié)點的確認消息,則認為本次上報失敗,數(shù)據(jù)繼續(xù)暫存。
SOAR執(zhí)行playbook劇本時,多個步驟間的任務往往需要協(xié)同執(zhí)行,要對全局安全通信任務進行調度。制造企業(yè)CED節(jié)點和管理節(jié)點往往距離較遠,通信調度存在時延大、時間代價大等問題。基于此,設計1種CED半?yún)f(xié)同決策算法,合理分配云邊端側各節(jié)點的運算、存儲及通信資源,對全局所有的執(zhí)行任務進行安全調度,以降低各項安全任務的平均執(zhí)行時長。
云邊端側節(jié)點對安全任務逐一評估任務執(zhí)行時長,根據(jù)管理節(jié)點評估的執(zhí)行時間,選取更優(yōu)的協(xié)同策略。首先對待分配安全任務隊列中的各項安全任務預估執(zhí)行時間;其次對任務在本地執(zhí)行和退回執(zhí)行時所需要的預估執(zhí)行時間進行比較,以便確定對應安全任務的退回策略;最后,若不退回則置0,若退回則置1,從而得到安全任務局部退回策略。
管理節(jié)點在SOAR執(zhí)行playbook劇本時需要對安全任務逐一評估任務執(zhí)行時長,選取更優(yōu)的協(xié)同策略,生成各節(jié)點待分配任務隊列。
面向SOAR的云邊端安全消息總線采取MQTT協(xié)議,通過Apache ActiveMQ Artemis搭建MQTT服務器,使用Python的Paho-MQTT庫開發(fā)客戶端。云邊端安全消息總線部署如圖4所示。

圖4 云邊端安全消息總線部署
為了測試云邊端安全消息總線架構下從管理節(jié)點發(fā)起和從云邊端節(jié)點發(fā)起的安全事件與響應時間是否能滿足SOAR的實時性要求,設計如下測試方案。首先,云邊端節(jié)點與管理節(jié)點服務器按照長連接方式保持協(xié)同;其次,從管理節(jié)點根據(jù)安全事件發(fā)送SOAR響應劇本,記錄發(fā)出的時間T1和云邊端節(jié)點收到的時間T2;再次,執(zhí)行SOAR響應劇本,記錄劇本任務執(zhí)行的時間T3;最后,每隔0.1~10 s的隨機時長重新執(zhí)行以上步驟,模擬1天內SOAR響應執(zhí)行情況。
以SOAR響應時間的平均值作為MQTT消息總線的評價指標。經(jīng)過統(tǒng)計,在24 h內共下發(fā)了2 317個腳本,總用時1 728 s,腳本平均傳輸響應時間為0.745 s,滿足云邊端安全消息總線在1 s內完成SOAR腳本傳輸?shù)脑O計要求。
安全管理中心可以借助人工智能、多源數(shù)據(jù)的融合技術提升安全感知,智能化輔助決策,利用SOAR進行安全協(xié)同響應處置。面向工業(yè)企業(yè)的復雜網(wǎng)絡,在分析云、邊緣計算與終端設備協(xié)同控制傳輸特性的基礎上設計了一種貫穿云邊端的安全消息總線,能夠實現(xiàn)網(wǎng)絡安全消息傳遞服務。經(jīng)過實際測試,安全消息總線可以滿足云邊端SOAR實時性優(yōu)先傳輸?shù)脑O計要求,可以達到安全事件編排自動化、應急響應自動化的目的。