改ざん防止を使用して macOS のセキュリティ設定を保護する

適用対象:

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。

強くお勧めする設定:

  • システム整合性保護 (SIP) が有効になっています。 詳細については、「 システム整合性保護の無効化と有効化」を参照してください。

  • モバイル デバイス管理 (MDM) ツールを使用して、Microsoft Defender for Endpointを構成します。

  • Defender for Endpoint に フル ディスク アクセス の承認があることを確認します。

    注:

    SIP を有効にし、MDM を介して行われるすべての構成は必須ではありませんが、完全にセキュリティで保護されたマシンには必要です。そうしないと、ローカル管理者は macOS が管理する改ざんの変更を行うことができます。 たとえば、Intuneなどのモバイル デバイス管理 ソリューションを使用して TCC (透明性、同意 & 制御) を有効にすると、グローバル管理者がローカル管理者によるフル ディスク アクセス承認を取り消すリスクがなくなります。

macOS デバイスで改ざん防止を構成する

Microsoft Defenderは、これらの設定を次の順序で評価します。 優先度の高い設定が構成されている場合、残りの設定は無視されます。

  1. マネージド構成プロファイル (tamperProtection/enforcementLevel 設定):
  2. 手動構成 (を使用 mdatp config tamper-protection enforcement-level --value { disabled|audit|block })
  3. セキュリティ ポータルで改ざん防止フラグが設定されている場合、"ブロック" モードが使用されます (プレビューでは、一部のお客様は使用できません)
  4. マシンがライセンスされている場合は、既定で "監査" モードが使用されます
  5. マシンがライセンスされていない場合、改ざん防止は "ブロック" モードになります

はじめに

マシンのライセンスが付与され、正常であることを確認します (対応する値レポート true)。

mdatp health
healthy                                     : true
health_issues                               : []
licensed                                    : true
...
tamper_protection                           : "audit"

tamper_protection は、有効な適用レベルを報告します。

手動構成

  1. 次のコマンドを使用して、最も制限の厳しいモードに切り替えます。
sudo mdatp config tamper-protection enforcement-level --value block

手動構成コマンドの画像

注:

運用マシンでマネージド構成プロファイル (MDM 経由でデプロイ) を使用する必要があります。 ローカル管理者が手動構成を使用して改ざん防止モードを変更した場合は、いつでも制限の厳しいモードに変更できます。 マネージド プロファイルを介して改ざん防止モードが設定されている場合は、グローバル管理者のみが元に戻すことができます。

  1. 結果を確認します。
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" が "ブロック" に設定されていることに注意してください。

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 ポータルで改ざんアラートが発生する

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 ATP.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値を "disabled" に変更し、マシンにプッシュします。

<?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 ポリシー プロセスを検出し、それらの MDM ポリシー プロセスから改ざん操作を許可します。 同時に、Microsoft Defenderをターミナルからローカルで起動した場合、改ざん防止によって同じスクリプトの再起動がブロックされます。

ただし、これらのポリシー実行プロセスはベンダー固有です。 Microsoft Defenderは JAMF とIntuneに組み込みの除外を提供しますが、可能なすべての MDM ベンダーにこれらの除外を提供することはできません。 代わりに、グローバル管理者は、改ざん防止に独自の除外を追加できます。 除外は、ローカル構成ではなく MDM プロファイルを介してのみ実行できます。

そのためには、まず、ポリシーを実行する MDM ヘルパー プロセスへのパスを把握する必要があります。 これを行うには、MDM ベンダーのドキュメントに従います。 テスト ポリシーの改ざんを開始し、セキュリティ ポータルでアラートを取得し、"攻撃" を開始したプロセスの階層を検査し、MDM ヘルパー候補のように見えるプロセスを選択することもできます。

プロセス パスが特定されたら、除外を構成する方法に関する選択肢はほとんどありません。

  • パス自体によって。 これは最も簡単で(このパスを既に持っています)、それを行うための最も安全な方法です。つまり、推奨されていません。
  • 実行して、実行可能ファイル (TeamIdentifier または署名識別子) から署名 ID を取得します codesign -dv --verbose=4 path_to_helper ([識別子] と [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 を使用することをお勧めします。 上の例では、Defender の再起動のみが /usr/bin/ruby /usr/local/bin/global_mdatp_restarted.rb 許可されています。 ただし、たとえば、 /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 - 構成されていない場合、既定のモードが使用されます
  • が false の場合feature_enabled_protection、Organizationに対して改ざん防止が有効になっていません (Defender が "ライセンス済み" と報告しない場合に発生します)
  • が false の場合 feature_enabled_portal 、セキュリティ ポータルを使用した既定のモードの設定はまだ有効になっていません。
  • configuration_localconfiguration_portalconfiguration_default対応する構成チャネルが使用された場合に使用されるモードを示します。 (たとえば、MDM プロファイルを使用して "ブロック" モードに改ざん防止を構成し configuration_default 、 に指示します audit。これは、プロファイル を削除し 、セキュリティ ポータルで mdatp config または を使用してモードが設定されていない場合にのみ、既定のモード (.) を 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) にご参加ください。