macOS 中的竄改防護有助於防止未經授權的使用者對安全性設定進行不必要的變更。 竄改保護有助於防止未經授權移除 macOS 上的適用於端點的 Microsoft Defender。 此功能也有助於重要的安全性檔案、進程和組態設定免遭竄改。
重要事項
從 2023 年 3 月開始,macOS 上的適用於端點的 Microsoft Defender會遵循透過 Microsoft Defender 入口網站 (https://security.microsoft.com) 進階設定下的全域竄改保護開關套用的竄改保護選擇。 您可以選擇使用行動 裝置管理 (MDM) 解決方案 (例如 Intune 或 JAMF)) 建議) ,強制執行 (封鎖/稽核/停用您自己的 macOS 竄改保護設定 (建議。 如果未透過 MDM 強制執行竄改防護設定,本機系統管理員可以繼續使用下列命令手動變更設定: sudo mdatp config tamper-protection enforcement-level --value (chosen mode)。
您可以在以下模式下設定「竄改保護」設定:
| 文章 | 描述 |
|---|---|
| 已停用 | 篡改保護完全關閉。 |
| 稽核 | 竄改作業會記錄,但不會封鎖。 此模式是安裝後的預設模式。 |
| 封鎖 | 篡改保護已開啟;竄改作業會遭到封鎖。 |
當竄改保護設定為稽核或封鎖模式時,您可以預期下列結果:
稽核模式:
- 解除安裝適用於端點的 Defender 代理程式的動作會記錄 (稽核)
- 適用於端點的 Defender 檔案的編輯/修改會記錄 (稽核)
- 在適用於端點的 Defender 位置下建立新檔案會記錄 (稽核)
- 刪除適用於端點的 Defender 檔案會記錄 (稽核)
- 重新命名適用於端點的 Defender 檔案會記錄 (稽核)
封鎖模式:
- 解除安裝適用於端點的 Defender 代理程式的動作遭到封鎖
- 封鎖編輯/修改適用於端點的 Defender 檔案
- 封鎖在適用於端點的 Defender 位置下建立新檔案
- 已封鎖刪除適用於端點的 Defender 檔案
- 已封鎖重新命名適用於端點的 Defender 檔案
- 停止代理程式 (wdavdaemon) 失敗的指令
以下是回應封鎖動作的系統訊息範例:
您可以透過提供模式名稱作為強制執行層級來設定「竄改保護」模式。
注意事項
- 模式變更會立即套用。
- 如果您在初始組態期間使用 JAMF,則也需要使用 JAMF 更新組態。
開始之前
請確定符合下列需求:
- 支援的 macOS 版本:Big Sur (11) 或更高版本
- 適用於端點的 Defender 所需的最低版本:
101.70.19 - 您已指派適當的角色 (請參閱建立和管理角色型存取控制的角色)
重要事項
Microsoft 建議您使用權限最少的角色。 這有助於改善貴組織的安全性。 全域系統管理員是高度特殊權限角色,應僅在無法使用現有角色的緊急案例下使用。
強烈推薦的設置:
系統完整性保護 (SIP) 啟用。 如需詳細資訊,請參閱停用 和啟用系統完整性保護。
使用行動裝置管理 (MDM) 工具來設定適用於端點的 Microsoft Defender。
請確定適用於端點的 Defender 具有 完整磁碟存取 授權。
注意事項
啟用 SIP 和透過 MDM 完成的所有設定都不是強制性的,但對於完全安全的裝置來說是必需的。 否則,本機管理員可以進行 macOS 管理的竄改變更。 例如,透過 Intune 等行動裝置管理解決方案啟用 TCC (透明度、同意 & 控制) ,可消除安全性系統管理員撤銷本機系統管理員撤銷完整磁碟存取授權的風險。
在 macOS 裝置上設定竄改保護
Microsoft Defender 會依下列順序評估這些設定。 如果配置了較高的優先順序設定,則會忽略其餘的設定:
受管理的設定檔 (tamperProtection/enforcementLevel 設定) :
手動配置 ( 與
mdatp config tamper-protection enforcement-level --value { disabled|audit|block })如果在Microsoft Defender入口網站中啟用竄改保護,則在預覽中 (會使用「封鎖」模式;並非所有客戶) 都可用。
- 如果裝置已獲得許可,則預設會使用「稽核」模式。
- 如果裝置未獲得授權,則竄改保護會處於「封鎖」模式。
開始之前
請確定您的裝置已獲得授權,且狀況良好 (對應的值報告 true) :
mdatp health
healthy : true
health_issues : []
licensed : true
...
tamper_protection : "audit"
tamper_protection 報告有效執行等級。
手動設定
- 使用下列指令切換至最嚴格的模式:
sudo mdatp config tamper-protection enforcement-level --value block
注意事項
您必須在生產裝置上使用透過 MDM) 部署的受管理配置檔 (。 如果本機管理員透過手動設定變更竄改保護模式,他們也可以隨時將其變更為限制較少的模式。 如果竄改防護模式是透過受管理設定檔設定的,則只有安全管理員才能復原它。
- 驗證結果。
healthy : true
health_issues : []
licensed : true
engine_version : "1.1.19300.3"
app_version : "101.70.19"
org_id : "..."
log_level : "info"
machine_guid : "..."
release_ring : "InsiderFast"
product_expiration : Dec 29, 2022 at 09:48:37 PM
cloud_enabled : true
cloud_automatic_sample_submission_consent : "safe"
cloud_diagnostic_enabled : false
passive_mode_enabled : false
real_time_protection_enabled : true
real_time_protection_available : true
real_time_protection_subsystem : "endpoint_security_extension"
network_events_subsystem : "network_filter_extension"
device_control_enforcement_level : "audit"
tamper_protection : "block"
automatic_definition_update_enabled : true
definitions_updated : Jul 06, 2022 at 01:57:03 PM
definitions_updated_minutes_ago : 5
definitions_version : "1.369.896.0"
definitions_status : "up_to_date"
edr_early_preview_enabled : "disabled"
edr_device_tags : []
edr_group_ids : ""
edr_configuration_version : "20.199999.main.2022.07.05.02-ac10b0623fd381e28133debe14b39bb2dc5b61af"
edr_machine_id : "..."
conflicting_applications : []
network_protection_status : "stopped"
data_loss_prevention_status : "disabled"
full_disk_access_enabled : true
請注意,現在已將 設定 tamper_protection 為 block。
JAMF
新增下列設定,在適用於端點的 Microsoft Defender 組態配置檔中設定竄改保護模式:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>tamperProtection</key>
<dict>
<key>enforcementLevel</key>
<string>block</string>
</dict>
</dict>
</plist>
注意事項
如果您已經有適用於端點的 Microsoft Defender 的組態配置檔,則必須將設定新增至其中。 您不應建立第二個組態設定檔。
Intune
設定目錄
您可以建立新的設定目錄設定檔來新增竄改保護組態,也可以將其新增至現有的設定。 「強制執行層級」設定可在類別「Microsoft Defender」和子類別「竄改保護」下找到。 然後,選擇所需的級別。
自訂設定檔
或者,您也可以透過自訂設定檔設定竄改防護。 如需詳細資訊,請參閱 在 macOS 上設定適用於端點的 適用於端點的 Microsoft Defender 喜好設定。
注意事項
針對 Intune 設定,您可以建立新的配置檔組態檔來新增竄改防護組態,也可以將這些參數新增至現有的參數。 選擇所需的級別。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1">
<dict>
<key>PayloadUUID</key>
<string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadOrganization</key>
<string>Microsoft</string>
<key>PayloadIdentifier</key>
<string>com.microsoft.wdav</string>
<key>PayloadDisplayName</key>
<string>Microsoft Defender for Endpoint settings</string>
<key>PayloadDescription</key>
<string>Microsoft Defender for Endpoint configuration settings</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadUUID</key>
<string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
<key>PayloadType</key>
<string>com.microsoft.wdav</string>
<key>PayloadOrganization</key>
<string>Microsoft</string>
<key>PayloadIdentifier</key>
<string>com.microsoft.wdav</string>
<key>PayloadDisplayName</key>
<string>Microsoft Defender for Endpoint configuration settings</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>tamperProtection</key>
<dict>
<key>enforcementLevel</key>
<string>block</string>
</dict>
</dict>
</array>
</dict>
</plist>
檢查狀態
執行下列命令來檢查竄改保護狀態:
mdatp health --field tamper_protection
如果竄改保護已開啟,則結果會顯示「封鎖」:
您也可以滿載 mdatp health 並在輸出中尋找「tamper_protection」。
如需竄改保護狀態的延伸資訊,請執行 mdatp health --details tamper_protection。
驗證防竄改功能
您可以透過各種方式驗證竄改保護是否已開啟。
驗證封鎖模式
竄改警示會在 Microsoft Defender 入口網站中引發
驗證區塊模式和稽核模式
- 使用進階搜捕,您會看到竄改警示出現
- 竄改事件可以在本機裝置日誌中找到:
sudo grep -F '[{tamperProtection}]' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log
DIY場景
將竄改保護設定為 [封鎖] 時,請嘗試不同的方法來卸載適用於端點的 Defender。 例如,將應用程式磚拖曳到垃圾桶中,或使用命令列解除安裝竄改保護。
嘗試停止適用於端點的 Defender 程式 (終止) 。
嘗試刪除、重新命名、修改、移動適用於端點的 Defender 檔案 (類似惡意使用者執行的動作) ,例如:
- /應用/Microsoft Defender.app/
- /Library/LaunchDaemons/com.microsoft.fresno.plist
- /Library/LaunchDaemons/com.microsoft.fresno.uninstall.plist
- /Library/LaunchAgents/com.microsoft.wdav.tray.plist
- /Library/Managed Preferences/com.microsoft.wdav.ext.plist
- /Library/受管理偏好設定/mdatp_managed.json
- /Library/Managed Preferences/com.microsoft.wdav.atp.plist
- /Library/Managed Preferences/com.microsoft.wdav.atp.offboarding.plist
- /usr/local/bin/mdatp
關閉竄改保護
您可以使用下列任一方法關閉竄改防護。
手動設定
使用下列指令:
sudo mdatp config tamper-protection enforcement-level --value disabled
JAMF
將設定描述檔中的值變更enforcementLevel為「已停用」,然後將其推送至裝置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>tamperProtection</key>
<dict>
<key>enforcementLevel</key>
<string>disabled</string>
</dict>
</dict>
</plist>
Intune
在您的 Intune 配置檔中新增下列設定:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1">
<dict>
<key>PayloadUUID</key>
<string>C4E6A782-0C8D-44AB-A025-EB893987A295</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadOrganization</key>
<string>Microsoft</string>
<key>PayloadIdentifier</key>
<string>com.microsoft.wdav</string>
<key>PayloadDisplayName</key>
<string>Microsoft Defender for Endpoint settings</string>
<key>PayloadDescription</key>
<string>Microsoft Defender for Endpoint configuration settings</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadUUID</key>
<string>99DBC2BC-3B3A-46A2-A413-C8F9BB9A7295</string>
<key>PayloadType</key>
<string>com.microsoft.wdav</string>
<key>PayloadOrganization</key>
<string>Microsoft</string>
<key>PayloadIdentifier</key>
<string>com.microsoft.wdav</string>
<key>PayloadDisplayName</key>
<string>Microsoft Defender for Endpoint configuration settings</string>
<key>PayloadDescription</key>
<string/>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadEnabled</key>
<true/>
<key>tamperProtection</key>
<dict>
<key>enforcementLevel</key>
<string>disabled</string>
</dict>
</dict>
</array>
</dict>
</plist>
排除項目
注意事項
提供版本 101.98.71 或更新版本。
竄改防護可防止任何 macOS 進程變更 Microsoft Defender 的資產或停止 Microsoft Defender 的進程。 受保護的資產包括安裝和組態檔。
在某些情況下,Microsoft Defender 會在內部對某些 macOS 進程進行例外處理。 例如,如果竄改保護驗證套件的真實性,macOS 可以升級 Defender 的套件。 還有其他排除情況。 例如,macOS MDM 進程可以取代 Microsoft Defender 的託管配置文件。
在某些情況下,安全性管理員需要在所有或部分受管理裝置上重新啟動 Defender。 通常,這是透過建立和執行 JAMF 的原則來完成的,該原則會在遠端裝置上執行指令碼, (或其他 MDM 廠商的類似作業 ) 。
為了避免標示這些原則起始的作業,Microsoft Defender 會偵測 JAMF 和 Intune 的那些 MDM 原則程式,並允許從中竄改作業。 同時,竄改防護會封鎖相同的腳本重新啟動 Microsoft Defender,如果它是從本機終端機啟動。
不過,這些原則執行程式是廠商特定的。 雖然 Microsoft Defender 提供 JAMF 和 Intune 的內建排除專案,但它無法為所有可能的 MDM 廠商提供這些排除專案。 相反地,安全管理員可以將自己的排除項目新增至竄改保護。 排除只能透過 MDM 設定檔完成,而不能透過本機設定來完成。
為此,您需要先找出運行策略的 MDM 幫助程序進程的路徑。 您可以按照 MDM 供應商的文檔進行操作。 您也可以起始竄改測試原則、在安全性入口網站中取得警示、檢查起始攻擊的進程階層,以及挑選看起來像 MDM 協助程式候選的進程。
識別處理程序路徑後,您幾乎沒有選擇來設定排除項目:
- 通過路徑本身。 這是您已經擁有此路徑的最簡單 () 也是最不安全的方法,換句話說,不建議這樣做。
- 透過從可執行檔(TeamIdentifier 或簽署 Identifier)取得簽署 ID,然後執行
codesign -dv --verbose=4 path_to_helper(尋找 Identifier 和 TeamIdentifier,後者不適用於 Apple 自己的工具 ) - 或透過使用這些屬性的組合。
例如:
codesign -dv --verbose=4 /usr/bin/ruby
Executable=/usr/bin/ruby
Identifier=com.apple.ruby
Format=Mach-O universal (x86_64 arm64e)
CodeDirectory v=20400 size=583 flags=0x0(none) hashes=13+2 location=embedded
Platform identifier=14
VersionPlatform=1
VersionMin=852992
VersionSDK=852992
Hash type=sha256 size=32
CandidateCDHash sha256=335c10d40db9417d80db87f658f6565018a4c3d6
CandidateCDHashFull sha256=335c10d40db9417d80db87f658f6565018a4c3d65ea3b850fc76c59e0e137e20
Hash choices=sha256
CMSDigest=335c10d40db9417d80db87f658f6565018a4c3d65ea3b850fc76c59e0e137e20
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=16384
Executable Segment flags=0x1
Page size=4096
Launch Constraints:
None
CDHash=335c10d40db9417d80db87f658f6565018a4c3d6
Signature size=4442
Authority=Software Signing
Authority=Apple Code Signing Certification Authority
Authority=Apple Root CA
Signed Time=Apr 15, 2023 at 4:45:52 AM
Info.plist=not bound
TeamIdentifier=not set
Sealed Resources=none
Internal requirements count=1 size=64
設定 偏好設定,例如 JAMF:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>tamperProtection</key>
<dict>
<key>enforcementLevel</key>
<string>block</string>
<key>exclusions</key>
<array>
<dict>
<key>path</key>
<string>/usr/bin/ruby</string>
<key>teamId</key>
<string/>
<key>signingId</key>
<string>com.apple.ruby</string>
<key>args</key>
<array>
<string>/usr/local/bin/global_mdatp_restarted.rb</string>
</array>
</dict>
</array>
</dict>
</dict>
</plist>
請注意,從上述範例中排除腳本解釋器 (,例如 Ruby,而不是編譯的可執行檔) 並不安全,因為它可以運行 任何腳本,而不僅僅是安全管理員使用的腳本。
為了將風險降到最低,我們建議使用 extra args 只允許特定指令碼與指令碼解譯器一起執行。
在上述範例中,只 /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb 允許重新啟動 Defender。
但是,例如, /usr/bin/ruby /Library/Application Support/Global Manager/global_mdatp_restarted.rb 甚至 /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb $USER 不允許。
警告
始終使用最嚴格的標準來防止意外攻擊!
疑難排解組態問題
問題:竄改防護報告為已停用
如果執行命令 mdatp health 報告竄改保護已停用,即使您啟用了它,並且自上線以來已經過去了一個多小時,則您可以執行以下命令來檢查您是否具有正確的配置:
mdatp health --details tamper_protection
tamper_protection : "audit"
exclusions : [{"path":"/usr/bin/ruby","team_id":"","signing_id":"com.apple.ruby","args":["/usr/local/bin/global_mdatp_restarted.rb"]}] [managed]
feature_enabled_protection : true
feature_enabled_portal : true
configuration_source : "local"
configuration_local : "audit"
configuration_portal : "block"
configuration_default : "audit"
configuration_is_managed : false
-
tamper_protection是 有效 模式。 如果此模式是您打算使用的模式,那麼您就一切就緒。 -
configuration_source指出竄改保護強制執行層級的設定方式。 它必須符合您設定竄改保護的方式。 (如果您透過受管理設定檔設定其模式,並configuration_source顯示不同的內容,則很可能是配置錯誤的設定檔 ) 。-
mdm- 它是透過受管理設定檔進行設定的。 只有安全管理員才能透過更新設定檔來變更它! -
local- 它已設定mdatp config命令 -
portal- 在安全入口網站中設定的預設強制執行層級 -
defaults- 未配置,則使用預設模式
-
- 如果為 false,則
feature_enabled_protection不會為您的組織啟用竄改保護, (如果 Defender 未報告「授權」,就會發生這種情況 ) - 如果為 false,則
feature_enabled_portal尚未為您啟用透過安全入口網站設定預設模式。 -
configuration_local,,configuration_portalconfiguration_default告知將使用的模式(如果使用了相應的配置通道)。 (例如,您可以透過 MDM 設定檔將竄改保護設定為「封鎖」模式,並configuration_default告訴您audit。這僅表示 ,如果您移除 設定檔,且模式不是透過 Security Portal 或透過 Security Portal 設定mdatp config,則會使用預設模式,即audit.)
注意事項
您必須檢查 Microsoft Defender 的記錄,才能取得 101.98.71 版之前的相同資訊。 以下為範例。
$ sudo grep -F '[{tamperProtection}]: Feature state:' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log | tail -n 1
提示
想要深入了解? 在我們的技術社區中與Microsoft安全社區Engage:適用於端點的 Microsoft Defender技術社區。