微軟研究院開發了一個雲計算安全分析引擎Freta,可掃描Linux系統的內存快照,找出傳感器和作業系統遭破壞的證據,自動對雲計算Linux虛擬機進行指紋識別並審核內存快照,以發現新形態的Rootkit和高端的惡意程序。現在Freta分析引擎以門戶網站的形式,公開雛形給大眾使用。
Freta具備處理大規模虛擬機的能力,能以低成本的方式,同時對超過1萬臺Azure虛擬機,進行自動內存鑑識審核,微軟提到,Freta使數字鑑識從原屬高價的顧問諮詢服務,轉變為內置在雲計算平臺的自動化服務。
以快照為基礎的內存鑑識領域已經發展超過十年,但微軟提到,目前尚無可用於商業雲計算,在無侵入式捕捉機制以及事先鑑識準備的情況下,對數千臺虛擬機進行全內存審核的功能,而Freta項目的目標則是要讓虛擬機鑑識自動化與普及化。
虛擬機鑑識普及化可以將雲計算惡意軟體的開發成本,提高至理論的最高值,微軟表示,由於在信息安全的領域,是以證據來驅動防禦方法,但這造成了倖存者偏誤現象,當攻擊者摸透安全偵測器模型,並且設計出避開觸發偵測器的方法時,系統便不會發出攻擊警報,而人們也會因為沒有攻擊報告,誤以為系統是安全的。另外,當攻擊者直接針對安全偵測器、安全代理和特權作業系統組件發動攻擊,就可能關閉攻擊警報系統,因此也不會留下任何攻擊的痕跡。
Freta項目設計的概念是以倖存者偏誤為核心,極大程度提高攻擊者逃避偵測器的成本,並且在技術上,儘可能讓攻擊者無法逃避偵測。微軟提到,事實上的確有辦法讓攻擊者無法觸碰安全偵測器,就像是零售商店將監視錄像機設置在搶匪觸碰不到的地方一樣,但是之所以沒有在雲計算中應用,為的是要能夠向後兼容,無法像是行動裝置經過重新設計,分離計算平面和安全平面。
在雲計算,計算平面和安全平面分離的情況,主要出現在虛擬機管理程序上,租戶工作負載能以虛擬機管理程序屏障,和供應者工作負載分離,但微軟提到,現有研究證明,系統管理程序屏障可能不夠強健,攻擊者仍可穿透屏障並且規避安全偵測器,他們認為,要結束與惡意程序的軍備競賽,以漸進式的方法改變端點技術是不夠的,因為只要攻擊者和防禦者共享一個微基礎架構,無論防禦者以什麼方式防禦,攻擊者總是可以破解。
微軟提到,要對所有用戶提供即時鑑識服務是一件困難的事,挑戰包括生成攻擊者無法取用的鑑識成像(Forensic Imaging),由於不少現存的鑑識方法都需要執行像是複製KASLR密鑰等明確的指令,而這就足以讓惡意軟體捕捉到相關的事件,使惡意程序能抹除自己的足跡。
而Freta支持4,000多種Linux核心版本,可在沒有密鑰或是上下文的情況,對經安全機制擾亂的內存進行解碼。由於支持Linux核心較為困難,因此微軟先實例了Linux版本,Windows將會在後續更新支持。
Freta還必需要能以雲計算規模執行,微軟設置分析引擎的能力,要能在短時間且低成本的情況下,最少可對10萬臺機器進行程序化審核,也就是說,Freta的基礎架構設計採用批處理的概念,而且Freta還需要能支持具有100 GB以上內存的高性能虛擬機。
而考慮到Freta可能本身成為攻擊目標,為了避免攻擊者利用內存漏洞來攻擊Freta,微軟以內存安全程序語言Rust,在不使用任何現有軟體的情況下,從頭打造整個項目,微軟提到,Freta是一個高性能的分析引擎,可以存儲任何大小的內存成像,並且內置內存安全性。
目前這個版本的Freta分析引擎,以整個Linux系統的揮發性內存快照作為輸入,並且能夠截取系統對象枚舉,Freta能夠自動識別部分核心掛鈎(Kernel Hooking),可檢測新形態的Rootkit,而且Freta支持各類型的快照,包括使用Hyper-V檢查點生成的VMRS文件,或是轉換VMWare快照產生CORE文件等。當快照經過Freta分析之後,用戶可以使用REST和Python API取用報告資料。
Freta的第二個重要組件是Azure偵測器,可讓用戶在不中斷執行的同時,即時搬遷揮發性內存資料到脫機分析環境,微軟提到,這個傳感器與Freta分析引擎結合,可以對上萬虛擬機進行低成本的內存鑑識審核。