改ざん防止を使用して macOS のセキュリティ設定を保護する
適用対象:
- Microsoft Defender XDR
- Microsoft Defender for Endpoint Plan 1
- Microsoft Defender for Endpoint Plan 2
Defender for Endpoint を試す場合は、 無料試用版にサインアップしてください。
macOS の改ざん防止は、承認されていないユーザーがセキュリティ設定に望ましくない変更を加えるのを防ぐのに役立ちます。 改ざん防止は、macOS での Microsoft Defender for Endpoint の承認されていない削除を防ぐのに役立ちます。 この機能は、重要なセキュリティ ファイル、プロセス、および構成設定が改ざんされるのを防ぐのにも役立ちます。
重要
2023 年 3 月以降、macOS 上の Microsoft Defender for Endpoint は、Microsoft Defender ポータル (https://security.microsoft.com) の詳細設定の下にあるグローバル改ざん防止スイッチを介して適用される改ざん防止の選択を尊重します。 Intune や JAMF (推奨) などのモバイル デバイス管理 (MDM) ソリューションを使用して、独自の macOS 改ざん防止設定を適用 (ブロック/監査/無効化) することができます。 MDM 経由で改ざん防止設定が適用されていない場合、ローカル管理者は、次のコマンドを使用して設定を手動で変更し続けることができます: sudo mdatp config tamper-protection enforcement-level --value (chosen mode)
。
改ざん防止は、次のモードで設定できます。
記事 | 説明 |
---|---|
無効 | 改ざん防止は完全にオフです。 |
監査 | 改ざん操作はログに記録されますが、ブロックされません。 このモードは、インストール後の既定値です。 |
ブロック | 改ざん防止が有効です。改ざん操作はブロックされます。 |
改ざん防止が監査モードまたはブロック モードに設定されている場合、次の結果が予想されます。
監査モード:
- Defender for Endpoint エージェントをアンインストールするためのアクションがログに記録されます (監査済み)
- Defender for Endpoint ファイルの編集/変更がログに記録されます (監査済み)
- Defender for Endpoint の場所での新しいファイルの作成がログに記録されます (監査済み)
- Defender for Endpoint ファイルの削除がログに記録されます (監査済み)
- Defender for Endpoint ファイルの名前変更がログに記録されます (監査済み)
ブロック モード:
- Defender for Endpoint エージェントをアンインストールするアクションがブロックされている
- Defender for Endpoint ファイルの編集/変更がブロックされる
- Defender for Endpoint の場所での新しいファイルの作成がブロックされている
- Defender for Endpoint ファイルの削除がブロックされている
- Defender for Endpoint ファイルの名前変更がブロックされている
- エージェントを停止するコマンド (wdavdaemon) が失敗する
ブロックされたアクションに応答するシステム メッセージの例を次に示します。
改ざん防止モードを構成するには、モード名を強制レベルとして指定します。
注:
- モードの変更はすぐに適用されます。
- 初期構成時に JAMF を使用した場合は、JAMF も使用して構成を更新する必要があります。
開始する前に
- サポートされている macOS バージョン: Big Sur (11 以降)
- Defender for Endpoint に必要な最小バージョン:
101.70.19
重要
Microsoft では、アクセス許可が可能な限りで少ないロールを使用することをお勧めします。 これにより、組織のセキュリティが向上します。 グローバル管理者は高い特権を持つロールであり、既存のロールを使用できない場合の緊急時に限定する必要があります。
強くお勧めする設定:
システム整合性保護 (SIP) が有効になっています。 詳細については、「 システム整合性保護の無効化と有効化」を参照してください。
モバイル デバイス管理 (MDM) ツールを使用して、Microsoft Defender for Endpoint を構成します。
Defender for Endpoint に フル ディスク アクセス の承認があることを確認します。
注:
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 for Endpoint 構成プロファイルで改ざん防止モードを構成します。
<?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 for Endpoint の構成プロファイルが既にある場合は、設定を 追加 する必要があります。 2 つ目の構成プロファイルは作成しないでください。
Intune
設定カタログ
新しい設定カタログ プロファイルを作成して改ざん防止構成を追加することも、既存の構成に追加することもできます。 [適用レベル] の設定は、カテゴリ "Microsoft Defender" とサブカテゴリ "改ざん防止" にあります。 その後、目的のレベルを選択します。
カスタムのプロファイル
別の方法として、カスタム プロファイルを使用して改ざん防止を構成することもできます。 詳細については、「 macOS で Microsoft Defender for Endpoint の基本設定を設定する」を参照してください。
注:
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 for Endpoint をアンインストールします。 たとえば、アプリ タイルをごみ箱にドラッグするか、コマンド ラインを使用して改ざん防止をアンインストールします。
Defender for Endpoint プロセス (kill) を停止してみてください。
たとえば、Defender for Endpoint ファイル (悪意のあるユーザーが実行する操作と同様) を削除、名前変更、変更、移動してみてください。
- /Applications/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/Managed Preferences/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 を再起動する必要がある場合があります。 通常、これは、リモート デバイス (または他の MDM ベンダーに対して同様の操作) でスクリプトを実行する JAMF のポリシーを作成して実行することによって行われます。
これらのポリシーによって開始された操作のマーキングを回避するために、Microsoft Defender は JAMF と Intune の MDM ポリシー プロセスを検出し、それらの MDM ポリシー プロセスから改ざん操作を許可します。 同時に、ターミナルからローカルで開始されている場合、改ざん防止によって同じスクリプトが Microsoft Defender の再起動をブロックされます。
ただし、これらのポリシー実行プロセスはベンダー固有です。 Microsoft Defender は JAMF と Intune に組み込みの除外を提供しますが、可能なすべての MDM ベンダーにこれらの除外を提供することはできません。 代わりに、グローバル管理者は、改ざん防止に独自の除外を追加できます。 除外は、ローカル構成ではなく MDM プロファイルを介してのみ実行できます。
そのためには、まず、ポリシーを実行する MDM ヘルパー プロセスへのパスを把握する必要があります。 これを行うには、MDM ベンダーのドキュメントに従います。 テスト ポリシーの改ざんを開始し、セキュリティ ポータルでアラートを取得し、攻撃を開始したプロセスの階層を検査し、MDM ヘルパー候補のように見えるプロセスを選択することもできます。
プロセス パスが特定されたら、除外を構成する方法に関する選択肢はほとんどありません。
- パス自体によって。 これは最も簡単で(このパスを既に持っています)、それを行うための最も安全な方法です。つまり、推奨されていません。
-
codesign -dv --verbose=4 path_to_helper
を実行して、実行可能ファイル (TeamIdentifier または署名識別子) から署名 ID を取得します ([識別子] と [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 など) を除外しても安全ではないことに注意してください。
リスクを最小限に抑えるために、スクリプト インタープリターを使用して特定のスクリプトのみを実行できるように、追加の 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
、オンボーディング後に有効にし、1 時間以上経過した場合でも、改ざん防止が無効になっていると報告する場合は、次のコマンドを実行して適切な構成があるかどうかを確認できます。
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
- 構成されていない場合、既定のモードが使用されます
-
-
feature_enabled_protection
が false の場合、組織に対して改ざん防止が有効になっていません (Defender が "ライセンス済み" と報告しない場合に発生します) -
feature_enabled_portal
が false の場合、セキュリティ ポータルを使用した既定のモードの設定はまだ有効になっていません。 -
configuration_local
configuration_portal
、configuration_default
は、対応する構成チャネルが使用された場合に使用されるモードを示します。 (たとえば、MDM プロファイルを使用して "ブロック" モードに改ざん防止を構成し、audit
configuration_default
通知します。これは、プロファイルを削除し、モードがmdatp config
または Security Portal を使用して設定されていない場合にのみ、既定のモード (audit
) を使用します)。
注:
バージョン 101.98.71 より前の同じ情報を取得するには、Microsoft Defender のログを検査する必要があります。 次に例を示します。
$ sudo grep -F '[{tamperProtection}]: Feature state:' /Library/Logs/Microsoft/mdatp/microsoft_defender_core.log | tail -n 1
ヒント
さらに多くの情報を得るには、 Tech Community 内の Microsoft Security コミュニティ (Microsoft Defender for Endpoint Tech Community) にご参加ください。