如何利用Windows Defender ATP檢測反射型DLL載入
當前,黑客在實施攻擊的時候最為關注的事情是,最好不要留下司法證據,如果做不到這一點的話,那麼留下的證據越少越好,以便盡最大可能實現隱身和持久性。為了達到這個目的,攻擊者會設法讓exploit永久駐留在被利用的進程中,或者遷移到一個長使用期的進程中,這樣一來,他們就不用創建或依賴磁碟上的文件了。在最近的博客中,我們描述了攻擊者如何使用簡單的跨進程遷移或者像Atom Bombing和Process Hollowing這樣的高級注入技術來繞過安全檢測。
攻擊者常用的另一種注入方法是反射式動態鏈接庫(DLL)載入技術,該技術能夠在不使用Windows載入程序的情況下將DLL載入到進程內存中。
2004年,Skape和JT首次公開了in-memory型DLL載入技術,向人們展示了如何通過修改Windows載入程序,實現直接從內存而非從磁碟中載入DLL。到了2008年,Harmony Security的Stephen Fewer提出了反射型DLL載入方法,它可以在無需註冊的情況下將DLL載入到進程中。眼下,許多現代攻擊活動都是通過這種技術來繞過安全檢測的。
實際上,實施反射式DLL載入並非易事——需要將DLL寫入內存,然後解析其導出函數和/或對其進行重定位。要想實現反射型DLL載入,需要編寫自己的專用載入程序。雖然大多數合法的應用程序都是使用Windows載入程序進行載入,但是攻擊者卻不願意這樣做,原因有兩個:
1. 與使用Windows載入程序(通過調用LoadLibrary函數引用)不同,反射型DLL載入不要求將DLL保存在硬碟上。 因此,攻擊者可以利用一個進程,直接將DLL映射到內存中,然後通過反射方式載入DLL,這樣就不用把它保存到硬碟上了。
2. 由於沒有保存在硬碟上,所以,如果不進行專業的取證分析(例如,檢查可執行內存中是否具有類似於可執行代碼的內容)的話,以這種方式載入的庫很難被發現。
插樁技術與檢測方法
反射型DLL載入技術的關鍵在於為DLL代碼提供可執行的內存上面。為此,可以通過獲取現有內存並修改其保護標誌,或分配新的可執行內存來滿足這一要求。 為DLL代碼提供內存是我們識別反射型DLL載入的主要信號。
在Windows 10 Creators Update中,我們對兩個與獲取可執行內存相關的函數調用即VirtualAlloc和VirtualProtect,進行了插樁處理,以便可以為Windows Defender Advanced Threat Protection(Windows Defender ATP)生成相應的信號。基於此,我們建立了一個安全模型,可以在各種的高風險進程(例如瀏覽器和辦公軟體)中檢測反射型DLL載入。
該模型採取雙管齊下的方法,具體如圖1所示:
1. 首先,該模型能夠掌握進程正常的內存分配行為。例如,我們注意到,像Winword.exe這樣的進程會分配4,000個對齊的可執行內存頁,並設置特定的執行特性。在Winword進程中只有少數幾個線程以這種方式分配內存。
2. 其次,我們發現進程在從事惡意活動(例如,執行惡意宏或利用漏洞)期間的可執行內存分配行為與正常情況下的行為相去甚遠。
這個模型表明,我們可以將內存事件作為檢測反射型DLL載入的主要信號。在實際模型中,還包含了一系列其他的特性,例如分配大小、分配歷史、線程信息、分配標誌,等等。同時,我們也注意到,應用程序的行為會受到諸如插件之類的其他因素的影響而出現較大的差異,所以我們添加了其他方面的行為信號,如網路連接行為等,以提高檢測的有效性。
檢測反射型DLL載入
下面,讓我們來看看Windows Defender ATP是如何檢測與社交工程配合使用的反射型DLL載入的。在這種攻擊中,目標受害者通常會從文件共享中打開Microsoft Word文檔。然後,攻擊者會誘騙受害者運行一個宏代碼,具體代碼如圖2所示。(注意:當用戶中招時,仍有許多安全保護機制會盡量減輕這種攻擊所帶來的危害;此外,Office即將發布幾項安全特性也能夠針對這種攻擊提供進一步的防護。)
當宏代碼運行時,Microsoft Word進程會與攻擊者指定的C&C伺服器建立連接,並接收與將要通過反射方式載入的DLL相關的內容。一旦這個DLL通過反射方式載入成功,它就會連接到C&C,並提供針對受害者機器的命令行訪問許可權。
請注意,這個DLL並不是原始文檔的組成部分,也不會存放到磁碟。 除了帶有一小段宏代碼的原始文檔會保存到硬碟之外,其餘的攻擊活動都是在內存中進行的。通過進行內存取證分析,我們發現有幾個較大的RWX內存區域被映射到了Microsoft Word進程中,但是沒有相應的DLL,如圖3所示。這裡展示的是通過反射方式載入的DLL所在的內存區域。
如圖4所示,Windows Defender ATP將這些內存分配行為視為異常,並會發出相應的警報。從圖中還可以看出,Windows Defender ATP還提供了這個文檔的上下文以及與命令和控制伺服器的通信信息,以供安全運維人員通過這些信息來評估攻擊範圍,並採取相應的防禦措施。
hreat Protection能夠利用動態行為匹配技術來保護客戶免受類似攻擊的影響。在遇到這種攻擊的時候,SecOps人員會在Office 365的「威脅資源管理器」頁面中看到如圖5所示的Office 365 ATP行為檢測報告。
小結
Windows 10會一如既往地加強針對現代攻擊的全面防禦能力。在這篇文章中,我們演示了Windows Defender ATP如何檢測反射型DLL載入技術。安全運維人員可以通過Windows Defender ATP提供的警報快速識別並響應企業網路中面臨的各種攻擊。
Windows Defender Advanced ATP是一種入侵後解決方案,可向SecOps人員發出有關攻擊活動的警告。 Windows Defender ATP能夠利用豐富的安全數據、高級行為分析和機器學習來檢測攻擊中不會變化的各種技術。Windows Defender ATP提供的插樁和檢測功能可以更好地揭露各種隱蔽的攻擊活動。
Windows Defender ATP還提供了詳細的事件時間表和其他上下文信息,以便SecOps團隊可以用來了解攻擊活動並快速做出響應。Windows Defender ATP不斷提升的功能使它們能夠隔離受害機器並保護網路的其他部分。
本文翻譯自: https://blogs.technet.microsoft.com/mmpc/2017/11/13/detecting-reflective-dll-loading-with-windows-defender-atp/ ,如若轉載,請註明原文地址: http://www.4hou.com/system/8483.html 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※利用API NtQueryInformationThread和I_QueryTagInformation實現對Windows日誌監控的繞過
※國內研究人員發現GMR-2漏洞,可實時解密衛星電話通訊
※Appleby 被黑,世界級財富大鱷財務信息泄露
※銀行木馬Retefe變種通過「永恆之藍」漏洞感染多國銀行網站
※如何在IE/Edge瀏覽器中巧妙地傳輸HTA文件?
TAG:信息安全 |