在網(wǎng)絡(luò)威脅無(wú)處不在,且對(duì)于數(shù)據(jù)中心的攻擊日益猖獗的時(shí)代,安全保障已成為每臺(tái)機(jī)器保護(hù)用戶數(shù)據(jù)的必要條件。但是,許多安全產(chǎn)品無(wú)法有效地防御惡意軟件。此外,基于軟件的安全保障會(huì)消耗本應(yīng)分配給用戶業(yè)務(wù)的計(jì)算和內(nèi)存資源。
NVIDIA BlueField 智能網(wǎng)卡是一個(gè)先進(jìn)的、可編程的以太網(wǎng)智能網(wǎng)卡,配備一系列 Arm 處理器核并集成了 NVIDIA ConnectX-5 網(wǎng)絡(luò)控制器。它解決了數(shù)據(jù)中心的安全保障,同時(shí)讓用戶獲得了應(yīng)得的計(jì)算資源。
BlueField SoC 是智能網(wǎng)卡的核心,它在與潛在惡意軟件不同且隔離的可信域中運(yùn)行帶外安全軟件。由于安全軟件運(yùn)行在智能網(wǎng)卡的 Arm 核上,因此所有主機(jī)的計(jì)算資源均可留給用戶。在這個(gè)隔離環(huán)境中,智能網(wǎng)卡可以安全地訪問(wèn)應(yīng)用程序的數(shù)據(jù)來(lái)進(jìn)行自檢,同時(shí)避免惡意軟件篡改數(shù)據(jù),不會(huì)保留關(guān)于訪問(wèn)時(shí)間和訪問(wèn)數(shù)據(jù)的足跡。這項(xiàng)創(chuàng)新設(shè)計(jì)助力 BlueField 成為惡意軟件檢測(cè)和取證調(diào)查的出色解決方案。
惡意軟件是惡性、隱蔽的。它可以使用隱藏技術(shù),避免被傳統(tǒng)軟件安全解決方案檢測(cè)到。這是因?yàn)橥ǔS糜跈z測(cè)惡意軟件的數(shù)據(jù)本身就有問(wèn)題。通常情況下,安全解決方案有數(shù)據(jù)采集階段,在此階段數(shù)據(jù)用于了解惡意軟件的活動(dòng)。在傳統(tǒng)方法中,用于數(shù)據(jù)采集的軟件運(yùn)行在同一臺(tái)被檢查的機(jī)器上。如果惡意軟件篡改了將要用于檢測(cè)的數(shù)據(jù),則可能無(wú)法確定是否入侵。躲避觀察工具(例如,用于發(fā)現(xiàn)異常現(xiàn)象 [IOC – Indications Of Compromise] 的檢測(cè)軟件)的技術(shù)稱為反取證技術(shù)。惡意軟件可以使用相同的技術(shù)避開(kāi)入侵檢測(cè)系統(tǒng) (IDS) 和入侵防御系統(tǒng) (IPS) 的檢測(cè)。
對(duì)于惡意行為的檢測(cè)失敗,可能發(fā)生在整個(gè)流程的任意一步。獲取數(shù)據(jù)是非常關(guān)鍵的一步。如果用于檢查的數(shù)據(jù)不可靠,則檢測(cè)系統(tǒng)可能找不到任何 IOC,因?yàn)樗械?IOC 標(biāo)志都被惡意軟件隱藏了。從數(shù)據(jù)的獲取方法到定義信任的級(jí)別,都有許多待解答的問(wèn)題:如安全 IDS/IPS 應(yīng)用程序如何獲取數(shù)據(jù)?惡意軟件能否篡改 IDS 獲取的數(shù)據(jù)?
用于獲取數(shù)據(jù)的技術(shù)有很多,而且用于分析的數(shù)據(jù)也有多種類(lèi)型。在本文中,我將簡(jiǎn)單介紹一些常見(jiàn)的數(shù)據(jù)獲取方法和數(shù)據(jù)類(lèi)型,以及它們之間的關(guān)系及其缺點(diǎn)。
反惡意軟件掃描工具
反惡意軟件用于我們要長(zhǎng)久存儲(chǔ)的文件,也稱為靜態(tài)數(shù)據(jù)。我們可以在同一臺(tái)計(jì)算機(jī)上運(yùn)行反惡意軟件來(lái)對(duì)磁盤(pán)進(jìn)行分析,或從外部在另一臺(tái)不相關(guān)的機(jī)器上進(jìn)行分析。當(dāng)從外部對(duì)未加密的磁盤(pán)進(jìn)行分析時(shí),有可能來(lái)構(gòu)建文件系統(tǒng)樹(shù)并掃描磁盤(pán)以尋找已知的 IOC。例如,通過(guò)掃描磁盤(pán)中的某個(gè)文件,可以對(duì)這個(gè)文件進(jìn)行重構(gòu),并計(jì)算出一個(gè)哈希值。接著,利用不同的在線資源幫助我們來(lái)根據(jù)哈希值判斷其相關(guān)的文件是否惡意。但是,如果惡意軟件沒(méi)有存在硬盤(pán)上,則它在文件系統(tǒng)上可能沒(méi)有任何痕跡,導(dǎo)致反惡意軟件掃描技術(shù)無(wú)法檢測(cè)到受攻擊系統(tǒng)。
網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)
大多數(shù)攻擊都會(huì)在網(wǎng)絡(luò)上留下一些痕跡。例如,從主機(jī)中竊取機(jī)密并將其發(fā)送給遠(yuǎn)程攻擊者的場(chǎng)景。檢測(cè)此類(lèi)事件可以判斷出哪個(gè) IP 地址可能執(zhí)行了攻擊及其攻擊目標(biāo)。如今,大多數(shù) IDS 和 IPS 解決方案通過(guò)觀察網(wǎng)絡(luò)來(lái)發(fā)現(xiàn)惡意行為。網(wǎng)絡(luò)數(shù)據(jù)可以通過(guò)本機(jī)在本地收集,也可以從外部(例如,使用智能網(wǎng)卡或交換機(jī))收集。
內(nèi)存分析
運(yùn)行時(shí)數(shù)據(jù)為您提供了更好的關(guān)于系統(tǒng)的可見(jiàn)性。通常通過(guò)兩種方法來(lái)獲取數(shù)據(jù):侵入操作系統(tǒng)和不侵入操作系統(tǒng)。侵入方式是指一個(gè)授權(quán)的軟件可以關(guān)聯(lián)的操作系統(tǒng)中相關(guān)功能的事件和開(kāi)關(guān)。例如,打開(kāi)或關(guān)閉文件/ Socket 的事件將觸發(fā)收集關(guān)于哪個(gè)文件或Socket被打開(kāi)或關(guān)閉,以及何時(shí)被打開(kāi)和關(guān)閉的數(shù)據(jù)。
另一個(gè)例子是派生一個(gè)新進(jìn)程。偵測(cè)軟件使用派生進(jìn)程開(kāi)關(guān)和執(zhí)行新進(jìn)程的方法來(lái)檢測(cè)惡意行為。例如,它可以幫助解答新進(jìn)程是否為惡意軟件。正在運(yùn)行的進(jìn)程應(yīng)該會(huì)派生新進(jìn)程嗎?高級(jí)的惡意軟件有可能操控這些關(guān)聯(lián)機(jī)制。
惡意軟件檢測(cè)
理想情況下,您想要從磁盤(pán)、網(wǎng)絡(luò)和內(nèi)存三個(gè)地方來(lái)收集能反映系統(tǒng)狀態(tài)和行為狀態(tài)的數(shù)據(jù)。
大多數(shù)檢測(cè)技術(shù)都從網(wǎng)絡(luò)或磁盤(pán)來(lái)檢測(cè) IOC。遺憾的是,此方法不足以應(yīng)對(duì)現(xiàn)代惡意軟件的挑戰(zhàn)。研究人員指出,現(xiàn)代惡意軟件“詭計(jì)多端”,并且攻擊手段變得越來(lái)越高明。
例如,一些惡意軟件可以在攻擊系統(tǒng)而不再磁盤(pán)上留下任何痕跡,從而防止那些基于磁盤(pán)的檢測(cè)技術(shù)發(fā)現(xiàn)其蹤跡和惡意行為。通過(guò)網(wǎng)絡(luò)進(jìn)行攻擊的惡意軟件就無(wú)法完全隱藏。但是,雖然網(wǎng)絡(luò)流量中可能包含許多受攻擊標(biāo)志,但在很多時(shí)候,這些網(wǎng)絡(luò)流量是無(wú)狀態(tài)的、而且數(shù)量龐大、隨機(jī)性強(qiáng)且復(fù)雜難分析。即使發(fā)現(xiàn)了 IOC,也很難分析出惡意軟件影響到了哪些行為。要了解惡意軟件的行為和網(wǎng)絡(luò)流量包含的正確信息,您需要更深入地分析運(yùn)行時(shí)環(huán)境。
要獲得惡意軟件活動(dòng)的 “X 光”視圖,您需要在執(zhí)行過(guò)程中采集數(shù)據(jù)。通過(guò)運(yùn)行時(shí)數(shù)據(jù),可以更好地洞察事件和操作,例如正在運(yùn)行的進(jìn)程、網(wǎng)絡(luò)連接以及操作系統(tǒng)提供的各種初始值。透過(guò)運(yùn)行時(shí)數(shù)據(jù),可以更好地了解惡意軟件的行為;因此,檢測(cè)軟件可以更準(zhǔn)確地識(shí)別惡意活動(dòng)。
采集此類(lèi)數(shù)據(jù)具有挑戰(zhàn)性。基于軟件的解決方案會(huì)產(chǎn)生觀察者效應(yīng),因?yàn)閻阂廛浖?IDS 均在同一域運(yùn)行并共享相同的資源。惡意軟件就可能操控 IDS 用于獲取數(shù)據(jù)的Hook和函數(shù),從而導(dǎo)致數(shù)據(jù)的不可靠和受損。與其使用可能會(huì)被惡意軟件更改的Hook和函數(shù),不如使用安全的方法從主機(jī)的物理內(nèi)存(即系統(tǒng)的運(yùn)行時(shí)執(zhí)行的地方)中獲取裸數(shù)據(jù)(Raw Data)。假設(shè)存在一種防篡改方法,可從主機(jī)的物理內(nèi)存采集裸數(shù)據(jù)(Raw Data),則可以重建系統(tǒng)狀態(tài)。這包括內(nèi)核內(nèi)存、代碼和用戶態(tài)環(huán)境。
從原始內(nèi)存(Raw Memory )的Dump中構(gòu)建的數(shù)據(jù)可以提供一個(gè)抽象來(lái)檢查和檢測(cè)攻擊。如果發(fā)生攻擊,無(wú)論是注入代碼、操控進(jìn)程內(nèi)存、派生新進(jìn)程,還是為遠(yuǎn)程攻擊者打開(kāi)一個(gè)新網(wǎng)絡(luò)連接,都會(huì)表現(xiàn)為物理內(nèi)存的變更。影響越大,內(nèi)存中的失真現(xiàn)象越嚴(yán)重。
大部分的取證調(diào)查信息既包括網(wǎng)絡(luò)數(shù)據(jù),也包括主機(jī)物理內(nèi)存中的數(shù)據(jù)。這種組合可以構(gòu)建準(zhǔn)確的系統(tǒng)狀態(tài)副本。本文討論一種新穎提案,就是對(duì)于主機(jī)物理內(nèi)存的可靠數(shù)據(jù)獲取。
帶外惡意軟件檢測(cè)
為檢測(cè)和分析惡意軟件,帶外設(shè)備會(huì)不定時(shí)地訪問(wèn)和采集數(shù)據(jù)。得益于現(xiàn)代計(jì)算機(jī)架構(gòu)以及 PCI Express (PCIe) 設(shè)備訪問(wèn)主機(jī)物理內(nèi)存的方式,基于硬件的數(shù)據(jù)采集方法被視為更加可靠且值得信賴的惡意軟件檢測(cè)方法。在大多數(shù)情況下,通過(guò) PCIe 協(xié)議時(shí),外圍設(shè)備可以直接訪問(wèn)內(nèi)存 (DMA) ,并對(duì)主機(jī)物理內(nèi)存進(jìn)行讀寫(xiě)操作,而不會(huì)對(duì)主機(jī)上運(yùn)行的軟件(包括惡意軟件)產(chǎn)生副作用。在一張PCIe卡上通過(guò) PCIe 接口,能以每通道 8 Gbps (Gen3) 或 16 Gbps (Gen4) 的速度向主機(jī)物理內(nèi)存進(jìn)行讀寫(xiě)操作。
圖 1.入侵檢測(cè)系統(tǒng)使用 PCIe 接口從主機(jī)物理內(nèi)存讀取數(shù)據(jù)。
主機(jī)物理內(nèi)存被分割為多個(gè)區(qū)域,在啟動(dòng)時(shí)被映射到系統(tǒng) RAM、IO 空間和 ROM等。大多數(shù)情況下,惡意軟件攻擊的數(shù)據(jù)和位置在系統(tǒng)的 RAM區(qū)域,這正是內(nèi)核和惡意軟件的活動(dòng)的地方。在數(shù)據(jù)采集時(shí),采集設(shè)備會(huì)通過(guò)讀內(nèi)存指令來(lái)獲得 RAM 區(qū)域的物理頁(yè)面。圖 2 顯示的是運(yùn)行在 Linux Ubuntu 16.04 上的計(jì)算機(jī)的內(nèi)存映射
圖 2.IDS 所用的基于Ubuntu的主機(jī)內(nèi)存映射。
該操作從 PCIe 卡上通過(guò) PCIe 鏈路到達(dá)內(nèi)存控制器,進(jìn)而訪問(wèn)物理內(nèi)存的權(quán)限。如圖 1 所示,該操作不涉及主機(jī)上運(yùn)行的軟件,而是通過(guò)了一條惡意軟件中不知道的路徑。與基于軟件的解決方案不同,這個(gè)方案不會(huì)在受檢查的主機(jī)上運(yùn)行任何新軟件,因此不會(huì)違反取證要求。
下一步就是要確保可以分析常數(shù)。例如,訪問(wèn)主機(jī)物理內(nèi)存中的兩個(gè)頁(yè)面,其中一個(gè)頁(yè)面指向另一個(gè)頁(yè)面。如果被指向的頁(yè)面改變了它的物理地址,那么數(shù)據(jù)采集工具會(huì)讀到內(nèi)存中的錯(cuò)誤頁(yè)面。這是對(duì)于任何采集物理內(nèi)存的工具(無(wú)論是基于硬件的還是基于軟件的采集工具)都存在的風(fēng)險(xiǎn)。采集內(nèi)存的時(shí)間越長(zhǎng),存在不一致性的可能性就越高。采集時(shí)間越短,可能發(fā)生的變化就越少,獲得可靠數(shù)據(jù)的可能性就越高。
再次,基于硬件的方法以其超快的速度和更高的效率超越了相應(yīng)的軟件實(shí)現(xiàn)。例如,使用軟件工具從RAM采集 64GB的數(shù)據(jù)可能需要數(shù)分鐘的時(shí)間。當(dāng)使用 Gen4 速率的PCIe 卡時(shí),數(shù)據(jù)采集速度可達(dá)每通道 16 Gbps。如果設(shè)備通過(guò) 16 個(gè) PCIe 通道連接到主機(jī),在 Gen4速度下,數(shù)據(jù)采集速度就達(dá)到了 32 GB/s。
用于惡意軟件檢測(cè)的 BlueField 智能網(wǎng)卡
我的團(tuán)隊(duì)調(diào)研了 BlueField 智能網(wǎng)卡是否適用于實(shí)時(shí)內(nèi)存取證。在研究中,我們使用了一種八個(gè)PCIe通道的 BlueField 智能網(wǎng)卡。采用了 Volatility 內(nèi)存(Volatility Memory)取證框架,并將其擴(kuò)展為支持通過(guò) BlueField 智能網(wǎng)卡進(jìn)行實(shí)時(shí)內(nèi)存取證。Volatility 內(nèi)存取證框架是一個(gè)惡意軟件研究人員、取證調(diào)查人員和事件響應(yīng)人員常用的知名開(kāi)源框架,可以操作內(nèi)存鏡像文件。
Volatility 使用 Python 應(yīng)用程序 (vol.py),提取進(jìn)程列表、網(wǎng)絡(luò)連接和內(nèi)核模塊等信息,以幫助取證人員了解惡意軟件的痕跡及其行為。該框架允許開(kāi)發(fā)人員和調(diào)查人員通過(guò)查看內(nèi)存的Dump文件對(duì)主機(jī)進(jìn)行分析。我的團(tuán)隊(duì)將其擴(kuò)展到了使用 BlueField 智能網(wǎng)卡的 Arm 處理器來(lái)運(yùn)行該 Volatility 框架,對(duì)主機(jī)物理內(nèi)存中的惡意軟件進(jìn)行分析。這樣一來(lái),可以按需采集物理內(nèi)存分段,進(jìn)行實(shí)時(shí)內(nèi)存分析。Volatility 在正常情況下處理內(nèi)存文件時(shí),有時(shí)可達(dá) 64 GB 和 128 GB。擴(kuò)展程序允許采集特定用途(例如構(gòu)建進(jìn)程列表)所需的精選數(shù)據(jù)。
新 Volatility 插件連接到內(nèi)存訪問(wèn) SDK,允許使用 BlueField的 DMA 功能。該 SDK 提供不同的內(nèi)存訪問(wèn)方式,允許快速訪問(wèn)內(nèi)存并降低數(shù)據(jù)采集時(shí)的延遲。BlueField 智能網(wǎng)卡板載內(nèi)存允許從主機(jī)物理內(nèi)存復(fù)制數(shù)據(jù),然后使用 Arm 核進(jìn)行本地分析,而無(wú)需擔(dān)心主機(jī)是否會(huì)修改這些數(shù)據(jù)。以下視頻展示了 BlueField Arm 處理器運(yùn)行的 Volatility 框架。
總結(jié)
攻擊變得越來(lái)越隱蔽、復(fù)雜,而當(dāng)前的檢測(cè)和預(yù)防技術(shù)難以與之抗衡。硬件輔助的數(shù)據(jù)采集被視為采集數(shù)據(jù)以進(jìn)行分析的最可靠、最值得信賴的方法。BlueField 支持硬件輔助的內(nèi)存采集,可以您的服務(wù)器更安全。它支持帶外入侵檢測(cè)和取證調(diào)查。獲得授權(quán)后,它可以快速訪問(wèn)主機(jī)物理內(nèi)存,并將安全應(yīng)用程序(例如 IDS)保護(hù)在一個(gè)隔離的環(huán)境中。BlueField 對(duì)取證調(diào)查、事件響應(yīng)、惡意軟件檢測(cè)和入侵檢測(cè)系統(tǒng)頗有助益。
審核編輯:郭婷
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9029瀏覽量
85207 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4700瀏覽量
71971 -
SDK
+關(guān)注
關(guān)注
3文章
1029瀏覽量
45782
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論