張 福 程 度 鄢 曲 卞建超
(北京升鑫網絡科技有限公司 北京 100085)
網絡安全評估與檢測是網絡安全建設的基礎性工作,只有在正確、全面地了解網絡安全防護能力之后,才能在安全投入、安全措施選擇、安全保障體系建設等工作中作出合理的決策.傳統(tǒng)網絡安全評估與檢測往往基于等保合規(guī)的理念,僅能針對網絡安全產品和網絡安全能力的合規(guī)性進行評估,無法評估現(xiàn)有防御有效性、安全投入效能和安全能力差距等問題.基于傳統(tǒng)網絡安全評估與檢測的安全建設往往也會陷入安全產品堆砌、安全重復建設、安全措施投入大但防護能力不足的怪圈.
隨著網絡攻擊技術的變化,對網絡安全防護能力的要求持續(xù)提升.現(xiàn)有網絡安全評估與檢測方案對網絡安全防護能力的要求均基于低抽象模型和單點檢測方式,無法覆蓋網絡攻擊技術和手段的不斷變化.ATT&CK框架提供了一種用于入侵行為描述的通用語言和知識圖譜,能夠基于現(xiàn)實中發(fā)生的真實攻擊事件,記錄攻擊者在攻擊過程中的戰(zhàn)術和技術,并形成知識庫.本文以ATT&CK框架為“標尺”,提出基于ATT&CK框架的網絡安全評估與檢測技術.該評估與檢測技術可最大程度地避免傳統(tǒng)安全服務效果取決于評測人員安全能力的弊端,幫助組織快速形成安全評估檢測能力,提高組織對于高級威脅檢測的廣度與深度.
ATT&CK框架由MITRE公司于2013年創(chuàng)建[1].該框架隨著新技術、新應用、攻擊行為等的發(fā)展而不斷演變,內容豐富、實戰(zhàn)性強,已得到業(yè)界的廣泛關注,成為業(yè)界了解攻擊者攻擊行為、方法以及相應緩解措施的主要窗口.ATT&CK框架不僅為業(yè)界提供了一個共同的攻擊描述方法,以便業(yè)界討論和合作打擊網絡攻擊[1],還為網絡安全團隊的評估和檢測提供了思路.
1) 評估改進當前組織的檢測防御能力.
通過獲取威脅情報構建檢測分析能力,利用模擬攻擊找出組織應對ATT&CK框架中攻擊技術的防護能力差距,為網絡安全工程師和架構師提供有用數(shù)據,對差距進行整改.通過評估改進工作的不斷重復與迭代,提高組織的檢測和防御能力.評估改進主要包括3個方面:一是評估防御技術能否有效應對ATT&CK框架中的攻擊技術和攻擊者;二是確定當前優(yōu)先級最高的需要彌補的防御缺口;三是修改或者新增技術去彌補當前缺口.
2) 利用ATT&CK框架加強檢測分析能力.
全面有效的威脅檢測需要了解常見的攻擊技術,特別是對組織構成威脅的技戰(zhàn)術,以及如何檢測和緩解這些攻擊.基于ATT&CK框架進行檢測分析與傳統(tǒng)檢測方式不同,前者并不是在識別已知的惡意行為后進行阻斷,而是收集系統(tǒng)上的事件日志和事件數(shù)據,使用這些數(shù)據來識別行為是否是ATT&CK框架中所描述的可疑行為,從而幫助組織快速準確檢測組織內部的攻擊行為.
1) 基于ATT&CK框架的靜態(tài)評估.
基于ATT&CK框架的靜態(tài)評估是指通過專業(yè)人員對組織進行信息收集、數(shù)據分析、人員訪談等,對數(shù)據源覆蓋率、能見度覆蓋率和檢測覆蓋率進行測算,以評估信息系統(tǒng)的防護有效性.靜態(tài)評估主要包括數(shù)據源整理分析和數(shù)據源映射分析.數(shù)據源整理分析包括數(shù)據源收集[2-3]、數(shù)據源質量評分和編制數(shù)據源清單.數(shù)據源映射分析是指將數(shù)據源清單映射至ATT&CK框架,從不同維度進行數(shù)據展示、分析和評估,主要包括:
① 數(shù)據源覆蓋率.即組織已收錄的數(shù)據源對ATT&CK框架中所包含數(shù)據源的覆蓋情況.ATT&CK框架包含30多個不同的數(shù)據源和90多個數(shù)據組件,通過對組織內部數(shù)據源的收集和分析,將數(shù)據源清單映射至ATT&CK框架實現(xiàn)數(shù)據源覆蓋率的分析評估.
② 能見度覆蓋率.能見度是指基于數(shù)據源分析對某項攻擊技術的可檢測程度.能見度覆蓋率是指基于數(shù)據源分析對ATT&CK框架中各攻擊技術的可檢測程度.將數(shù)據源清單映射至ATT&CK框架實現(xiàn)能見度覆蓋率的可視化,即確認具備和缺乏能見度的攻擊技術以及其能見度分數(shù).能見度分數(shù)可取值0,1,2,3,4,分別代表技術不可見、少量可見、部分可見、幾乎全可見、完全可見.可以根據專家知識或基于特定數(shù)據源質量調整每個攻擊技術的能見度分數(shù).
③ 檢測覆蓋率.即組織所能檢測出的攻擊行為對ATT&CK框架中攻擊行為的覆蓋程度.對能檢測出的項目和檢測水平以及無法檢測出的項目進行展示分析,從而發(fā)現(xiàn)組織的攻擊檢測能力和ATT&CK框架中攻擊行為之間的差距,并提出改正方案.
通過靜態(tài)評估,網絡安全團隊可以迅速發(fā)現(xiàn)安全數(shù)據源收集和質量上的不足,明確組織內缺失的安全數(shù)據源及優(yōu)先級.安全團隊可以通過在終端側內置數(shù)據采集組件或者新增安全工具(網絡監(jiān)控、網絡檢測和響應(NDR)、基于主機的IDS/IPS、端點檢測和響應(EDR)等)優(yōu)化安全數(shù)據源收集,提升組織的安全防護能力.
2) 基于ATT&CK框架的動態(tài)評估.
基于ATT&CK框架的動態(tài)評估是指通過紅隊模擬攻擊、藍隊檢測攻擊并響應,從攻擊行為的檢測角度,找到組織檢測能力與應對ATT&CK框架中各類攻擊技術所需檢測能力之間的差距,并整改提升組織的安全防護能力.動態(tài)評估主要包括建立評估團隊、確定目標、收集數(shù)據、過程分析、模擬環(huán)境搭建、執(zhí)行評估、測試反饋和編寫差距報告[4].
動態(tài)評估中往往會使用自動化評估工具,以提升評估過程的工作效率.國內外常見的CALDERA[5],Atomic Red Team[6],Red Team Automation[7],Infection Monkey,METTA等基于ATT&CK框架的自動化評估項目均提供了自動化評估工具.
評估完成后,團隊成員需針對評估結果和攻擊技術進行全面剖析,從數(shù)據源收集的廣度、深度評估組織檢測用例的檢測效果,找到組織目前檢測能力與應對ATT&CK框架中各類攻擊技術所需檢測能力之間的差距.根據差距整改的緊迫性、可行性、難易程度、投入回報率等,給出短期和長期的整改建議以及相應的工作改進計劃.
ATT&CK雖然是攻擊框架,對于防御檢測其意義也十分重大.國內外應用較廣的基于ATT&CK框架的檢測項目有CAR(Cyber Analytics Repository)和EQL(Event Query Language).
1) CAR項目
CAR項目提供了基于ATT&CK框架的威脅檢測和追蹤,還提供了UI可視化子項目CARET,更利于對CAR項目的理解.該項目從攻擊組織使用的攻擊技術出發(fā),分析攻擊者最終造成的影響.CAR項目主要提供5個分析視角:攻擊組織、攻擊技術、技術分析、數(shù)據模型和數(shù)據源探針;開展4項工作:根據ATT&CK框架確認攻擊優(yōu)先級和實際分析方法、根據攻擊者行為確認要收集的數(shù)據以及數(shù)據收集能力[8].
2) EQL項目
EQL項目提供了一種安全事件查詢語言,可以對安全事件進行序列化、歸集及分析.該項目可以進行事件日志的收集,不局限于終端數(shù)據,還包括網絡數(shù)據、Windows下的原生數(shù)據、osquery類型的基本緩存數(shù)據和BRO/Zeek的開源NIDS數(shù)據.組織可以通過EQL項目對基于ATT&CK框架的應用進行持續(xù)優(yōu)化,對數(shù)據質量和分析能力進行評估,找出組織的安全運營能力與應對ATT&CK框架中各類攻擊行為所需安全運營能力之間的差距,在安全防護能力建設中不斷彌補差距,實現(xiàn)安全運營能力的持續(xù)量化提升.
EQL項目語言形式有Shell類型和lib類型,需要輸入類似JSON的文件才可以進行查詢.該項目語言語法比較強大,可以理解為SQL語言和Shell的結合體.既有SQL的條件查詢和聯(lián)合查詢,也有內置函數(shù)和Shell的管道操作方式.該項目在開源領域影響較大,尤其跟ATT&CK框架的結合比較好.該項目除了提供語言能力外,還有很多跟攻擊技戰(zhàn)術結合的分析腳本.
通過對現(xiàn)有基于ATT&CK框架的評估和檢測技術的理解和分析,本文提出基于ATT&CK框架的自動化評估系統(tǒng).通過構建基于ATT&CK框架的入侵與攻擊模擬系統(tǒng),自動化模擬黑客的攻擊行為,評估網絡安全防護體系在阻止攻擊方面的有效性.通過該系統(tǒng),組織能夠使用自動化工具,持續(xù)、一致地模擬針對組織基礎架構的整個攻擊周期(包括內部威脅、橫向移動和數(shù)據泄露)的攻擊行為場景,以有限的風險提供連續(xù)且一致的評估.
自動化評估系統(tǒng)由攻擊庫管理、模擬攻擊服務管理和模擬器實例管理3部分構成,如圖1所示.
圖1 系統(tǒng)總體架構
圖2 設備集成庫攻擊模擬過程
1) 攻擊庫管理
攻擊庫管理由設備集成庫(device integration package, DIP)和攻擊場景模板組成.設備集成庫可以執(zhí)行各類攻擊的模擬器,有自身的類層次結構和執(zhí)行過程抽象.攻擊場景模板提供模式化和參數(shù)化的攻擊服務,具體應用時需要配置與現(xiàn)場相符的內容,如IP地址、端口、郵箱地址等.攻擊庫通過自動化編排腳本調用設備集成庫接口實現(xiàn)基于主機、網絡和命令與控制(command and control, C&C)的攻擊模擬,如圖2所示.如果攻擊庫中的編排腳本不能滿足現(xiàn)場要求,可以修改執(zhí)行邏輯和判斷流程.
2) 模擬攻擊服務管理
模擬攻擊服務管理由配置管理、進度管理、報告管理和運行環(huán)境構成.模擬攻擊時,基于每個攻擊場景的實際要求選取攻擊內容并準備攻擊參數(shù)(即配置管理).在運行環(huán)境中進行攻擊任務的執(zhí)行規(guī)劃和任務分解,將具體任務發(fā)送到模擬器實例管理中的模擬器中執(zhí)行(即進度管理),并輸出相關攻擊報告.
3) 模擬器實例管理
模擬器實例管理由模擬管理器和各類模擬器組成.模擬器是設備集成庫的實例化,運行在有安全配置的傀儡容器中,由模擬管理器負責它們的管理和安全防護工作.傀儡容器是一種遠程代理,可以運行在網絡內的任意主機中,但需要事先由模擬管理器向模擬攻擊服務管理中的運行環(huán)境注冊.模擬器承擔模擬攻擊服務管理中的運行環(huán)境發(fā)出的不同模擬任務.其中,主機模擬器用于對本機實施攻擊,網絡模擬器實施采用各類IP協(xié)議的攻擊,C&C模擬器實施遠程攻擊.每種攻擊通過在主機、網絡、C&C模擬器中執(zhí)行特定的命令序列完成,不同模擬器自身支撐1種或多種運行攻擊的技術.
基于ATT&CK框架的檢測流程如圖3所示.首先選取ATT&CK戰(zhàn)術,研究戰(zhàn)術機理,識別數(shù)據來源,進行數(shù)據源標準化;然后通過建立分析規(guī)則,收集數(shù)據并檢測,并針對檢測的漏報率和誤報率優(yōu)化檢測規(guī)則,實現(xiàn)攻擊分析;最后根據多項攻擊檢測結果,建立攻擊知識圖譜和網絡知識圖譜,進行攻擊鏈的溯源分析.
圖3 基于ATT&CK框架的檢測流程
基于ATT&CK框架實現(xiàn)攻擊檢測首先要考慮如何規(guī)劃數(shù)據源的問題,標準化地從數(shù)據源收集數(shù)據可為后續(xù)標準化地檢測攻擊提供良好的基礎.實現(xiàn)數(shù)據源標準化需先從ATT&CK框架中選取所需檢測的各項攻擊戰(zhàn)術,研究各項戰(zhàn)術機理,明確檢測各項攻擊戰(zhàn)術所需的具體數(shù)據組件及數(shù)據源.然后,采用標準化的數(shù)據格式表示這些數(shù)據源和數(shù)據組件,并按照標準化數(shù)據格式盡可能地全面采集檢測這些攻擊戰(zhàn)術所需的數(shù)據,以支撐這些攻擊戰(zhàn)術的檢測.
以檢測Windows可疑計劃任務或服務項目為例,需掌握進程啟動日志,以分析進程路徑和啟動方式,從而定位可疑的計劃任務或服務項目.因此,需針對“進程”(Process)數(shù)據源進行數(shù)據格式標準化和數(shù)據收集工作.MITRE公司提供的“Process”標準化數(shù)據格式如表1所示:
表1 MITRE“Process”標準化數(shù)據格式
此外,結構化威脅情報標準(Structured Threat Information Expression, STIX)中也提供了標準化數(shù)據格式,但更多是描述數(shù)據性質,主要包括對象、類型和屬性,如表2所示:
表2 STIX“Process”標準化數(shù)據格式
Splunk公司的BOTS(Boss of the SOC)項目提供的數(shù)據格式如表3所示.該數(shù)據格式適用于大數(shù)據平臺的查詢,依賴于數(shù)據源探針工具收集數(shù)據的初始方式,數(shù)據以Key-Value的形式進行組織.表3中,列“_raw”指代采集的原始數(shù)據.其中,等號左邊內容為Key,等號右邊內容為Value.
表3 Splunk數(shù)據源格式
為了精簡所需收集的數(shù)據,本文在MITRE,STIX和Splunk數(shù)據格式的基礎上,刪減了非分析字段,優(yōu)化了數(shù)據格式,設計了利于檢測分析的標準化數(shù)據格式.表4是利用本文設計的數(shù)據格式表示的“Process”數(shù)據源:
表4 本文“Process”標準化數(shù)據格式
傳統(tǒng)網絡安全防護方案往往難以檢測新型攻擊,如高級持續(xù)性威脅(advanced persistent threat, APT).一方面,新型攻擊工具往往已針對各種安全防護產品進行免殺測試,或采用了逃避惡意軟件檢測的混淆技術,大多數(shù)殺毒軟件無法有效檢測此類工具;另一方面,攻擊者也會在系統(tǒng)中使用合法操作進行滲透,大多數(shù)防護工具沒有足夠的數(shù)據來檢測此類惡意行為[9].
為應對傳統(tǒng)安全檢測方案的不足,MITRE公司發(fā)布了基于ATT&CK框架的攻擊分析方案,主要包括后滲透行為分析、威脅分析、持續(xù)迭代和真實環(huán)境驗證[10].通過對ATT&CK框架中各攻擊技術進行研究并建立規(guī)則,結合采集的數(shù)據進行攻擊分析檢測[11].
根據上述思路,本文設計了基于ATT&CK框架的攻擊分析框架,該框架包括采集端和服務端,如圖4所示.采集端包括數(shù)據源、Agent和連接層,提供多種數(shù)據源采集、預處理和數(shù)據交互能力,為攻擊分析提供標準化數(shù)據.服務端包括綜合管理節(jié)點和存儲節(jié)點.其中,存儲節(jié)點負責所采集日志的存儲;綜合管理節(jié)點負責數(shù)據源的查詢處理、語法解釋以及分析工作的進程調度、狀態(tài)監(jiān)控和前端展示,實現(xiàn)檢測規(guī)則管理和攻擊分析檢測.
圖4 基于ATT&CK框架的攻擊分析框架
基于ATT&CK框架的攻擊分析步驟為:
1) 建立分析規(guī)則.針對ATT&CK框架的各項攻擊技術以及子技術進行分析,利用腳本或攻擊工具復現(xiàn)各項攻擊技術,從而得到相關攻擊過程和結果的樣本數(shù)據,以此建立各項攻擊技術的檢測規(guī)則,以便進行檢測分析.
2) 收集數(shù)據并分析檢測.基于數(shù)據源標準化格式進行事件和日志的收集,利用檢測規(guī)則對比樣本數(shù)據和實際采集的數(shù)據,實現(xiàn)攻擊技術的分析檢測.由于后滲透行為多圍繞主機展開,需重點針對主機產生的相關數(shù)據進行收集整理.
3) 對檢測規(guī)則持續(xù)優(yōu)化,降低漏報率和誤報率.對于漏報和誤報較高的檢測,需借助統(tǒng)計和機器學習算法加強檢測能力,持續(xù)優(yōu)化檢測規(guī)則.不同類型的數(shù)據匹配不同的分析思路和分析算法,并設計相關的分析語言進行歸一化分析.
新型攻擊的復雜性導致對其檢測和溯源的困難性,單項攻擊技術分析無法有效溯源整個攻擊鏈,更無法全面評估攻擊影響并進行響應.在單點分析的基礎上要進行關聯(lián)分析,才能溯源完整的攻擊鏈.ATT&CK框架(版本10)將攻擊鏈抽象為偵察、資源開發(fā)、初始訪問、執(zhí)行、持久化、權限提升、防御繞過、憑據訪問、發(fā)現(xiàn)、橫向移動、收集、命令與控制、數(shù)據竊取和危害14個戰(zhàn)術階段,這有利于組織進行各項攻擊戰(zhàn)術的關聯(lián)分析并溯源整個攻擊鏈.
攻擊鏈的檢測分析需基于系統(tǒng)監(jiān)控等日志數(shù)據,通過構造抽象表達的溯源圖進行因果關系分析,并映射至ATT&CK框架,從而實現(xiàn)高效、準確的攻擊鏈識別和取證分析[12].攻擊鏈的檢測分析需關聯(lián)復雜的角色、行為關系,通過知識圖譜可大大簡化復雜關系的分析和描述,實現(xiàn)可視化的攻擊鏈關聯(lián)分析[13].
基于知識圖譜的可視化分析能力,本文提出如圖5所示的攻擊鏈分析框架.框架分為數(shù)據源、數(shù)據解析、圖數(shù)據存儲、圖分析引擎和UI展示5層.數(shù)據解析層對數(shù)據源進行解析,構建攻擊知識圖譜和網絡知識圖譜,提交給圖數(shù)據存儲層建立索引,便于圖分析引擎層進行處理分析并構建網絡攻擊鏈,最后通過UI展示層對攻擊鏈、圖數(shù)據、告警信息進行展示.利用圖5進行攻擊鏈溯源分析的過程是:
首先,利用知識圖譜的相關技術,對整個攻擊過程進行還原,逐步建立攻擊知識圖譜(attack knowledge graph, AKG)和網絡知識圖譜(network knowledge graph, NKG).
攻擊知識圖譜如圖6所示,該圖譜是針對單臺主機受攻擊情況作全面的分析和描述.根據ATT&CK框架梳理攻擊組織常用的攻擊工具、惡意軟件以及相應的攻擊技術和攻擊鏈戰(zhàn)術階段,建立攻擊組織、攻擊工具、攻擊技術、戰(zhàn)術階段之間的映射關系.此外,還可以將特定的攻擊技術序列定義為不同的攻擊場景,如挖礦和勒索.
圖6 攻擊知識圖譜
網絡知識圖譜如圖7所示,該圖譜針對跨主機的橫向移動做關聯(lián)分析.通過描述網絡中主機和進程間的連接狀態(tài),實時反映網絡實體之間的聯(lián)系和相互作用.網絡知識圖譜具有實時性,表示某一時間點的連接關系.
圖7 網絡知識圖譜
然后,結合攻擊知識圖譜和網絡知識圖譜溯源形成網絡攻擊鏈.根據實際采集數(shù)據,從攻擊知識圖譜中抽取主機內的相關進程行為,如進程創(chuàng)建文件、管道和其他進程以及進程訪問注冊表等;從網絡知識圖譜中抽取進程關聯(lián)關系(如進程間調用)以及主機間的網絡連接關系;基于進程行為、進程關聯(lián)關系和網絡連接關系,構建網絡攻擊鏈,實現(xiàn)整個攻擊鏈的溯源,還原真實攻擊情況.
ATT&CK框架作為廣泛使用的攻擊框架,在安全領域有著重要價值.本文重點研究了基于ATT&CK框架的評估和檢測技術,提出了基于ATT&CK框架的自動化評估系統(tǒng)以及基于ATT&CK框架的檢測所需的數(shù)據源標準化方法、攻擊分析框架和基于知識圖譜的攻擊鏈分析框架.為ATT&CK框架在評估和檢測中的應用實踐提供了具體思路和實施方案.未來將進一步研究ATT&CK框架在威脅情報和攻擊模擬中的應用,具體包括:
1) 威脅情報歸一化和共享.利用自然語言處理,參照ATT&CK框架進行威脅情報內容的標準化,以便機讀和共享.
2) 攻擊實戰(zhàn)模擬.基于ATT&CK框架,通過對多個攻擊技術的串聯(lián)實現(xiàn)攻擊鏈的模擬,提升模擬仿真度.