淺析安全威脅情報共享框架OpenIOC
Outline:
1. Instruduction 2. IOC & OpenIOC 3. IOC Functionality 4. OpenIOC對行為的描述 5. IOCs in the Investigative Lifecycle 6. OpenIOC Tools
一、OpenIOC背景介紹
在當今的安全威脅環境下,為了應對更加復雜的攻擊(如APT),如何便捷地分享、交流安全情報成為針對特定目標攻擊檢測、響應和防止的關鍵問題。傳統地解決方案是先從主機或者網絡中收集威脅情報信息,然后采用特定的技術規范描述,形成書面的報告分發共享給其它相關人員。這種做法最明顯的問題是時間延遲非常高。因為即使在一個組織內部,情報共享的效率完全依賴于員工閱讀和分發報告的能力,每次消息的傳遞都在增加安全事件的響應延遲。因此常見的情況是,當組織開始對事件響應時,所依據的信息往往已經過時,而且攻擊早已在網絡中蔓延造成了損失。
基于此,MANDIANT公司基于多年的數字取證技術的積累,將使用多年的情報規范開源后形成OpenIOC(Open Indicator of Compromise)框架,作為現實可用的安全情報共享規范。OpenIOC本身是一個記錄、定義以及共享安全情報的格式,它可以幫助你借助機器可讀的形式實現不同類型威脅情報的快速共享。OpenIOC本身是開放、靈活的框架,因此你隨時可以根據發現添加新的情報,完善你的IOC(Indicator of Compromise)。
【關于MANDIANT】
該公司被眾人所知是從其發布報告稱中國RPC針對美國進行APT攻擊開始。其具有以下幾個特點:
1. MANDIANT創始人系特工出身:Kevin Mandia于2004年創立該公司,目的是幫助企業偵測、快速反應可能存在的網絡入侵。Kevin有20年的信息安全從業經歷,曾工作與五角大樓第七通信部任計算機安全官員,之后又加入了美國空軍特別調查辦公室(AFOSI);
2. MANDIANT公司開在中情局附近,而大多數安全公司都是扎堆在西海岸;
3. MANDIANT是獲得FBI承認的“具備參與執法資格”的公司;
4. MANDIANT的業務主要是安全事件響應,現已被FireEye收購;
二、IOC與OpenIOC
IOC(Indicator of Compromise)是MANDIANT在長期的數字取證實踐中定義的可以反映主機或網絡行為的技術指示器;而OpenIOC是一套威脅情報共享的標準,通過遵循該標準,我們可以建立IOC的邏輯分組,實現威脅情報的交流共享,比如事件響應團隊可以使用OpenIOC的規范編寫多個IOCs來描述一個威脅的技術共性。
OpenIOC主要使用XML(Extensible Markup Language)來實現,XML語言提供了豐富、靈活的格式來將數據表示成可機讀的形式。通常在使用OpenIOC時會定義自己的指示器屬性表(Indicator Term Documens),里面列出了要使用的諸多屬性,當然也可以根據自己的需要添加新的屬性描述。
三、OpenIOC規范描述
OpenIOC通過XML來實現,每個IOC實質都是一個復合指示器,通常我們會將多個Indicator組合到一起作為一個IOC(Indicator of Compromise),最終在形式上IOC就是一個復合表達式,當表達式值為真時的,則該IOC命中(如作為攻擊IOC,命中時表示該機器存在Compromise可能)。具體來說,我們需要明確一下幾個術語:
表達式(Expression):定義了一個條件,當為真值時,表明存在一個入侵行為;
簡單表達式(Simple Expression):沒有使用AND或OR兩種邏輯運算符的表達式;
復雜表達式(Complex Expression):多個簡單表達式通過AND或OR連接;
攻擊指示器(IOC):多個表達式的連接,可以是簡單表達式、復雜表達式;
如圖1-IOC Structure:
頂級邏輯為OR運算,下層的每個邏輯運算符AND或OR只作用于其子元素,如第一個AND運算只作用于Registry Path: version和Registry Text: 5, 1, 3802, 0;
我們通過圖2和圖3來說明IOC表達式的實際含義:
圖2-Logic branch example:
每個表達式的條件有contains|contains not|is|is not四種;圖2從文件名、大小、編譯時間以及網絡DNS和服務名、DLL等方面對行為進行了刻畫。
圖3-Indicator Expression:
上述IOC實際存儲在一個XML文件中,類型名為ioc,IOC的XML標簽并不多,刻畫的細度主要通過設置不同的屬性(IndicatoreItem)來實現,通過模塊化的邏輯結構,可以隨時根據獲得的信息和知識進行IOC優化調整。IOC用到的基本XML標簽如下:
< ioc>:用于標識一個IOC對象;
< definition>:用于定義具體的Indicator:
< Indicator>:用于包含多個IndicatorItem;
< IndicatorItem>:用于描述一個具體的屬性,其id值標識該屬性,condition表明該表達式成立條件;
< Context>:用于定義屬性的大類和子類,標記屬性名,如document="FileItem" search="FileItem/SizeInBytes", 最后的“mir”是MANDIANT Intelligence Response的縮寫;
< Content>:用于定義屬性值的類型以及屬性值,如type="int" ,大小為35343;
OpenIOC定義的XML標簽主要就是以上幾種,其對行為的刻畫主要通過復雜豐富的IndicatorItem來體現,如圖5所示:
四、OpenIOC對行為的刻畫
OpenIOC對于行為的刻畫主要依靠其IndicatorItem來實現,基于其在數字取證領域的多年實踐,OpenIOC為我們提供了豐富、細化的行為描述屬性。
OpenIOC一共提供了27類屬性,分別是:
ArpEntryItem
CookieHistoryItem
DiskItem
DnsEntryItem
DriverItem
Email
EventLogItem
FileDownloadHistoryItem
FileItem
FormHistoryItem
HiveItem
HookItem
ModuleItem
Network
PortItem
PrefetchItem
ProcessItem
RegistryItem
SerivceItem
Snort
SystemInfoItem
SystemRestoreItem
TaskItem
UrlHistoryItem
UserItem
VolumItem
針對上述每個大類,又可以細分出諸多小屬性,比如以DiskItem為例,又細分為:
Disk Name
Disk Partition Length
Disk Partition Number
Disk Partition Offset
Disk Partition Type
Disk Size
更多詳細的屬性說明在其官方文檔中,除了列表中列出的屬性,OpenIOC還支持自定義該格式的屬性:
CommonIOCterms:http://openioc.org/terms/Common.iocterms
CurrentIOCterms:http://openioc.org/terms/Current.iocterms
五、IOC工作流程
MANDIANT主要在事件響應與數字取證領域使用IOCs,主要分為以下幾個步驟:
獲取初始證據:根據主機或網絡的異常行為獲取最初的數據;
建立主機或網絡的IOCs:分析初步獲得的數據,根據可能的技術特征建立IOCs;
在企業中部署IOCs:在企業的其它機器或網絡中部署IOCs,開始檢測;
發現更多的可疑主機;
IOCs優化:通過初步檢測可獲取的新證據,并進行分析,優化已有的IOCs;
六、OpenIOC工具
MANDIANT已經為OpenIOC開發了免費的使用工具,主要是IOCeditor和Redline兩個工具。其中IOCeditor用來建立IOCs,而Redline負責將IOCs部署到HOST上收集信息后進行分析。主要過程如下:
運行Mandiant IOCe.exe,打開IOCeditor編輯器窗口,選擇要編輯的IOC文件或新建IOC文件;
為現有的IOC添加IndicatorItem;
設定表達式條件;
設定AND或OR運算符;
保存成為.ioc文件;
接下來,需要將已經保存的.ioc文件生成collector部署到目標Host上,主要依靠Redline提供的IOCs部署功能:
首先運行Redline.exe選擇“Create an IOC Search Collector”:
其次選擇已經保存好的IOC文件,設定collector生成位置:
最后將生成的collector部署到目標機器上,運行腳本RunRedlineAudit.bat,完成后會在Sessions目錄中保存收集的數據,可以在Redline中打開中進行分析;
七、小結
OpenIOC是一個開放靈活的安全情報共享框架,利用OpenIOC,重要的安全情報可以在多個組織間迅速傳遞,從而極大縮短檢測到響應的時間延遲,提升緊急安全事件響應與安全防范的能力。但是由于其發展自數字取證領域,因此分析基本基于硬盤鏡像的思想,即就系統的某一個時刻的狀態進行分析
主要內容才考OpenIOC的官方文檔:
AnIntroductiontoOpenIOC.pdf
IOCeUserGuide.pdf
ReadlinUserGuider.pdf
【資源列表】:
官方主頁:http://openioc.org/
開源的IOCWriter:https://github.com/mandiant/ioc_writer
IOCEditor Tool下載:https://www.fireeye.com/services/freeware/ioc-editor.html
Redline下載:https://www.fireeye.com/services/freeware/redline.html





































