在 Linux 上使用 eBPF 型感測器 適用於端點的 Microsoft Defender
注意事項
從 Linux 上的適用於端點的 Defender 開始,版本 101.2408.0000
不再支援 AuditD 作為補充事件提供者。 如需詳細資訊,請參閱本文結尾的常見問題。
Linux 上適用於 適用於端點的 Microsoft Defender 的 eBPF (eBPF) 擴充的 Packet Filter 提供 Linux 操作系統的補充事件數據。 eBPF 有助於解決 AuditD 事件提供者所見的數種問題類別,而且有助於效能和系統穩定性的領域。
主要優點包括:
- 減少全系統的 AuditD 相關記錄雜訊
- 優化的全系統事件規則,否則會導致應用程式之間的衝突
- 減少檔案事件 (檔案讀取/開啟) 監視的額外負荷
- 改善事件速率輸送量和減少記憶體使用量
- 針對特定組態優化效能
eBPF 的運作方式
使用 eBPF 時,先前從 AuditD 事件提供者取得的事件現在會從 eBPF 感測器傳送。 這有助於系統穩定性、改善CPU和記憶體使用率,並減少磁碟使用量。 eBPF 有助於降低應用程式之間發生衝突的可能性,因為不需要自定義規則。 與 eBPF 相關的數據會登入 /var/log/microsoft/mdatp/microsoft_defender_core.log 檔案。
此外,eBPF 感測器會使用 Linux 核心的功能,而不需要使用有助於提高系統穩定性的核心模組。
系統必要條件
下列最低散發和核心版本支援適用於Linux上 適用於端點的 Microsoft Defender的 eBPF 感測器:
Linux 散發套件 | 散發版本 | 核心版本 |
---|---|---|
Ubuntu | 16.04 | 4.15.0 |
Fedora | 33 | 5.8.15 |
CentOS | 7.6 | 3.10.0-957.10 |
SLES | 15 | 5.3.18-18.47 |
RHEL | 7.6 | 3.10.0-957.10 |
Debian | 9.0 | 4.19.0 |
Oracle Linux RHCK | 7.9 | 3.10.0-1160 |
Oracle Linux UEK | 7.9 | 5.4 |
Amazon Linux 2 | 2 | 5.4.261-174.360 |
Linux 8 | 8.7 | 4.18.0-425 |
Linux 9 | 9.2 | 5.14.0-284 |
Alma Linux 8 | 8.4 | 4.18.0-305 |
Alma Linux 9 | 9.2 | 5.14.0-284 |
注意事項
具有核心版本 5.15.0-0.30.20.el8uek.x86_64、5.15.0-0.30.20.1.el8uek.x86_64 的 Oracle Linux 8.8,將會在 eBPF 啟用為增補子系統提供者時造成核心停止回應。 此核心版本不應用於 eBPF 模式。 如需風險降低步驟,請參閱疑難解答和診斷一節。
使用 eBPF
根據預設,代理程式版本和更新版本 101.23082.0006
會自動為所有客戶啟用 eBPF 感測器。 客戶必須更新為支援的版本,才能體驗此功能。 在端點上啟用 eBPF 感測器時,適用於 Linux 上的適用於端點的 Defender 會supplementary_events_subsystem更新為 ebpf。
如果您要手動停用 eBPF,則可以執行下列命令:
sudo mdatp config ebpf-supplementary-event-provider --value [enabled/disabled]
您也可以更新mdatp_managed.json檔案:
{
"features": {
"ebpfSupplementaryEventProvider": "disabled"
}
}
請參閱連結以取得詳細的範例 json 檔案 - 設定 Linux 上 適用於端點的 Microsoft Defender 的喜好設定。
重要事項
如果您停用 eBPF,或在任何特定核心不支援 eBPF 的情況下,補充事件提供者會切換至 Netlink。 所有處理作業都會繼續順暢地流動,但您可能會錯過 eBPF 會擷取的特定檔案和套接字相關事件。
您也可以使用 Microsoft Defender 入口網站中的進階搜捕,檢查 linux 端點上已啟用/停用) 的 eBPF (狀態。 步驟如下:
移至 Microsoft Defender 入口網站並登入。
在瀏覽窗格中,移至 [搜捕進階搜捕>]。
在 [進階搜捕] 下,移至 [Defender 弱點管理]。
執行下列查詢:
DeviceTvmInfoGathering
。在輸出的 [ 其他欄位] 資料行中,選取 [ 顯示更多],然後尋找 [EBPF 狀態:true]。
AuditD 的不可變模式
對於在不可變模式中使用 AuditD 的客戶,需要在 eBPF 啟用後重新啟動,才能清除 適用於端點的 Microsoft Defender 所新增的稽核規則。 這項需求是 AuditD 不可變模式的限制,這會凍結規則檔案並禁止編輯/覆寫。 此問題已透過重新啟動來解決。
重新啟動后,執行下列命令以檢查是否已清除稽核規則:
% sudo auditctl -l
上一個命令的輸出應該不會顯示任何規則或任何使用者新增的規則。 如果未移除規則,請執行下列步驟來清除稽核規則檔案:
- 切換至 ebpf 模式。
- 移除 檔案
/etc/audit/rules.d/mdatp.rules
。 - 重新啟動電腦。
疑難解答和診斷
您可以執行 health 命令來檢查代理程式健康情況狀態 mdatp
。 使用下列命令行檢查目前的核心版本,以確定 Linux 上適用於端點的 Defender 的 eBPF 感測器受到支援:
uname -a
已知問題
使用 SAP 在 RHEL 8.1 版本上啟用 eBPF 可能會導致核心異常。 若要減輕此問題,您可以採取下列其中一個步驟:
- 使用高於 RHEL 8.1 的散發版本。
- 如果您需要使用 RHEL 8.1 版本,請切換至 AuditD 模式。
使用 Oracle Linux 8.8 與核心版本 5.15.0-0.30.20.el8uek.x86_64,5.15.0-0.30.20.1.el8uek.x86_64 可能會導致核心異常。 若要減輕此問題,您可以採取下列其中一個步驟:
- 如果您想要使用 eBPF 作為增補子系統提供者,請在 Oracle Linux 8.8 上使用高於或低於 5.15.0-0.30.20.el8uek.x86_64、5.15.0-0.30.20.1.el8uek.x86_64 的核心版本。 Oracle Linux 的最小核心版本為 RHCK 3.10.0,Oracle Linux UEK 為 5.4。
- 如果您需要使用相同的核心版本,請切換至 AuditD 模式
sudo mdatp config ebpf-supplementary-event-provider --value disabled
下列兩組數據有助於分析潛在問題,並判斷最有效的解決選項。
使用下列指示從用戶端分析器工具收集診斷套件:針對 Linux 上的 適用於端點的 Microsoft Defender 效能問題進行疑難解答。
當適用於端點的 Defender 使用高資源時,請使用下列指示收集偵錯診斷套件:在 Linux 資源上 適用於端點的 Microsoft Defender。
針對效能問題進行疑難解答
如果您看到端點上 Microsoft Defender 增加資源耗用量,請務必找出造成大部分 CPU/記憶體使用率的進程/裝入點/檔案。 然後,您可以套用必要的排除專案。 套用可能的防病毒軟體排除項目之後,如果 wdavdaemon
父進程 () 仍在取用資源,請使用 ebpf-statistics 命令來取得最高的系統呼叫計數:
sudo mdatp diagnostic ebpf-statistics
Output
Monitor 20 seconds
Top file paths:
/var/log/microsoft/mdatp/microsoft_defender.log : 10
/var/log/microsoft/mdatp/rotated/microsoft_defender.log00001 : 2
/var/log/microsoft/mdatp/rotated/microsoft_defender.log : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374993 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374991 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374989 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374987 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374985 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374983 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374981 : 1
Top initiator paths:
/usr/bin/stress-ng : 50000
/opt/microsoft/mdatp/sbin/wdavdaemon : 13
Top syscall ids:
82 : 1699333
90 : 10
87 : 3
在先前的輸出中,您可以看到 stress-ng 是產生大量事件的最上層程式,而且可能會導致效能問題。 最有可能的 stress-ng 會產生標識碼為 82 的系統呼叫。 您可以使用Microsoft建立票證,以排除此程式。 在未來的增強功能中,您會有更多控制權可在結尾套用這類排除專案。
套用至 AuditD 的排除項目無法移轉或複製到 eBPF。 eBPF 已在內部處理常見問題,例如雜訊記錄、核心異常、雜訊 Syscalls。 如果您想要新增任何進一步的排除專案,請連絡Microsoft以套用必要的排除專案。
常見問題 - 轉換至 eBPF
1.為什麼您應該考慮移至 eBPF?
Linux 上適用於 適用於端點的 Microsoft Defender的擴充的 Packet Filter (eBPF) 可作為 AuditD 的有效替代方案,並解決與 AuditD 事件提供者相關聯的各種挑戰,同時在效能和系統穩定性方面提供顯著的優點。 其中一些主要優點包括 -
效能:相較於 AuditD,eBPF 可藉由減少系統資源的額外負荷,大幅改善效能。
資源效率:eBPF 使用的資源較少,即使在負載過重的情況下,也有助於維護系統穩定性。
延展性:eBPF 的架構更可調整,因此對於具有成長或複雜工作負載的環境而言,這是更好的選擇。
新式技術:eBPF 代表現代化、前向的技術,可與未來的Linux核心發展一致,確保更好的長期支援。
2.如何繼續使用 AuditD?
如果您要繼續使用 AuditD:
支援的版本:您可以在Linux 101.24072.0000版上保留適用於端點的Defender,這會在組建有效期間支援 AuditD,大約9個月。 這會提供足夠的轉換期間來規劃移至 eBPF。 您可以在 Linux 伺服器上執行 命令
mdatp health
來檢查到期日。Long-Term 計劃:雖然繼續
101.24072.0000
建置是一個選項,但建議您在此時間範圍內規劃轉換至 eBPF,以確保您受益於最新的安全性和效能改善,並獲得持續支援。
也就是說,我們的建議是規劃使用 eBPF 作為主要事件提供者。
3.如果在某些情況下不支援 eBPF,會發生什麼事?
在不支援 eBPF 的情況下:
Netlink 後援:系統會回復為使用 Netlink 事件提供者。 雖然 Netlink 會繼續擷取處理事件 (例如
exec
、exit
、fork
、gid
或tid
) ,但不支援檔案系統相關事件 (例如rename
、unlink
) 或套接字事件。影響:您的工作負載不會中斷,但您可能會遺漏 eBPF 會擷取的特定檔案和套接字相關事件。
4. 如何使用更新的版本管理排除專案?
以下是將 AuditD 排除的一些常見原因:
某些 Syscall 或進程產生大量雜訊時的效能
核心異常,有時候有許多 Syscalls 特別是網路/文件系統呼叫導致核心異常。
雜訊記錄,稽核記錄會用盡磁碟空間。 客戶放置了雜訊處理程式的排除專案,以減少記錄檔大小。
使用 eBPF 時,前兩個使用案例是移轉的候選專案。 記錄不再是 eBPF 的問題。 針對前兩個使用案例,您可以從下列選項中選擇:
連絡支持人員:連絡Microsoft,以套用後端的排除專案。
全域排除:在Linux上適用於端點的Defender更新版本中,可以使用全域排除來管理排除專案。 全域排除專案同時適用於防病毒軟體和 EDR,目前可透過 Managed json 進行設定。 如需詳細資訊,請參閱設定及驗證 Linux 上適用於端點的 Microsoft Defender 排除項目。
5.如果發生問題,我該怎麼做?
連絡支援:如果您在轉換為 eBPF 期間或之後遇到任何問題,請連絡技術支持人員以尋求協助。 我們致力於確保轉換順暢,並可協助解決您可能遇到的任何挑戰。
支援通道:您可以透過 Microsoft Defender 入口網站連絡支持人員。 此外,我們的 知識庫 和社群論壇是疑難解答常見問題的寶貴資源。