共用方式為


反惡意代碼掃描介面 (AMSI) 與 Microsoft Defender 防病毒軟體整合

適用於:

  • Microsoft Defender XDR
  • Microsoft Defender 防毒軟體
  • 適用於端點的 Microsoft Defender P1 & P2
  • 適用於企業的 Microsoft Defender
  • 個人 Microsoft Defender

平臺:

  • Windows 10和更新版本
  • Windows Server 2016 和更新版本

適用於端點的 Microsoft Defender 利用反惡意代碼掃描介面 (AMSI) 來增強對無檔案惡意代碼、動態腳本型攻擊和其他非傳統網路威脅的保護。 本文說明AMSI整合的優點、其支援的腳本語言類型,以及如何啟用AMSI以提升安全性。

什麼是無檔案惡意代碼?

無檔案惡意代碼在現代網路攻擊中扮演重要角色,使用隱形技術來避免偵測。 數個主要勒索軟體攻擊會使用無檔案方法作為其終止鏈結的一部分。

無檔案惡意代碼會使用已存在於遭入侵裝置上的現有工具,例如 PowerShell.exe 或 wmic.exe。 惡意代碼可以滲透進程、在其記憶體空間內執行程序代碼,以及叫用這些內建工具。 攻擊者大幅減少其使用量,並規避傳統的偵測機制。

因為記憶體是變動的,而且無檔案惡意代碼不會將檔案放在磁碟上,所以使用無檔案惡意代碼建立持續性可能會很棘手。 無檔案惡意代碼如何達成持續性的其中一個範例是建立會啟動「單行程式」PowerShell Cmdlet 的登錄執行密鑰。 此命令啟動儲存在登錄 BLOB 中的模糊化 PowerShell 腳本。 模糊化的PowerShell腳本包含一個反映性可攜式可執行檔, (PE) 載入器,從登錄載入Base64編碼的PE。 儲存在登錄中的腳本可確保惡意代碼持續存在。

攻擊者會使用數種無檔案技術,讓惡意代碼竊取和規避。 這些技術包括:

  • 反射 DLL 插入 反射 DLL 插入牽涉到手動將惡意 DLL 載入進程的記憶體,而不需要在磁碟上使用上述 DLL。 惡意 DLL 可以裝載在遠端攻擊者控制的電腦上,並透過分段網路通道傳遞 (例如,傳輸層安全性 (TLS) 通訊協定) ,或內嵌在混淆形式的感染媒介中,例如宏和腳本。 這會導致OS機制的逸出,該機制會監視並追蹤載入可執行檔模組。 使用 Reflective DLL 插入的惡意代碼範例是 HackTool:Win32/Mikatz!dha。

  • 記憶體惡意探索 敵人會使用無檔案記憶體惡意探索,在犧牲者計算機上遠端執行任意程序代碼。 例如,UIWIX 威脅會使用 Petya 和 WannaCry 所使用的 DurableBlue 惡意探索來安裝 DoublePulsar 後端,其完全存在於核心的記憶體 (SMB 分派數據表) 。 不同於 Petya 和 Wannacry,UIWIX 不會在磁碟上卸除任何檔案。

  • 以腳本為基礎的技術 腳本語言提供強大的方法來傳遞僅限記憶體的可執行承載。 腳本檔案可以內嵌可在運行時間即時解密的編碼殼層程式代碼或二進位檔,並透過 .NET 物件或直接使用 API 執行,而不需要將它們寫入磁碟。 腳本本身可以在登錄中隱藏、從網路串流讀取,或由攻擊者手動在命令行中執行,而不需要觸碰磁碟。

注意事項

請勿停用PowerShell作為封鎖無檔案惡意代碼的方法。 PowerShell 是功能強大且安全的管理工具,對於許多系統和IT功能而言都很重要。 攻擊者會使用惡意的PowerShell腳本作為惡意探索後技術,只有在初始入侵已經發生之後才會發生。 誤用是攻擊的徵兆,從軟體惡意探索、社交工程或認證竊取等其他惡意動作開始。 關鍵在於防止攻擊者進入可能誤用PowerShell的位置。

  • WMI 持續性 某些攻擊者會使用 Windows Management Instrumentation (WMI) 存放庫來儲存惡意腳本,然後使用 WMI 系結定期叫用這些腳本。

Microsoft Defender 防病毒軟體會使用一般、啟發學習法和行為型偵測,以及本機和雲端式機器學習模型來封鎖大部分的惡意代碼。 Microsoft Defender 透過下列功能來防範無檔案惡意代碼:

  • 使用AMSI偵測腳本型技術,這可讓您檢查PowerShell和其他腳本類型,即使有多個模糊層也一般
  • 定期掃描 WMI 存放庫,以及觀察到異常行為時,偵測和補救 WMI 持續性技術
  • 透過增強的記憶體掃描技術和行為監視來偵測反射 DLL 插入

為何要使用AMSI?

AMSI 針對在 Windows 內建腳本主機上採用混淆和規避技術的惡意軟體,提供更深入的檢查層級。 藉由整合AMSI,適用於端點的 Microsoft Defender提供額外的保護層,以抵禦進階威脅。

支援的腳本語言

  • PowerShell
  • Jscript
  • VBScript
  • Windows 腳本主機 (wscript.exe 和 cscript.exe)
  • .NET Framework 4.8 或更新版本 (掃描所有元件)
  • Windows Management Instrumentation (WMI)

如果您使用 Microsoft Office 365,AMSI 也支援 JavaScript、VBA 和 XLM。

AMSI 目前不支援 Python 或 Perl。

啟用AMSI

若要啟用 AMSI,您必須啟用文稿掃描。 請參閱設定 Microsoft Defender 防病毒軟體的掃描選項

另請參閱 Defender 原則 CSP - Windows 用戶端管理

AMSI 資源

反惡意代碼掃描介面 (AMSI) API 可供開發人員和防病毒軟體廠商實作。

ExchangeSharepoint 等其他 Microsoft 產品也會使用 AMSI 整合。

更多可用來防範無檔案攻擊的資源

  • Windows Defender 應用程控和 AppLocker。 強制執行強式程式碼完整性原則,並只允許信任的應用程式執行。 在無檔案惡意代碼的內容中,WDAC 會將 PowerShell 鎖定為限制語言模式,這會限制可能導致無法驗證程式代碼執行的擴充語言功能,例如直接 .NET 腳本、透過 Add-Type Cmdlet 叫用 Win32 API,以及與 COM 物件的互動。 這基本上可以減輕以PowerShell為基礎的反射 DLL 插入式攻擊。

  • 受攻擊面縮小 可協助系統管理員防範常見的攻擊媒介。

  • 啟用程式代碼完整性的虛擬化型保護。 透過 Hypervisor 程式代碼完整性 (HVCI) 減輕記憶體記憶體惡意探索,因而難以使用內核模式軟體弱點來插入惡意代碼。