
Amazon Linux 2023 の Microsoft Defender for Endpoint の手動オフボードを試してみる
Amazon Linux 2023 にインストールされた Microsoft Defender for Endpoint を手動でオフボーディングしてみました。オフボードにより、Microsoft Defender による監視が中止されます。
手動のオフボード手順は次の Microsoft Learn ドキュメントに記載があります。
本ブログでは下記ブログでオンボーディングした Amazon Linux 2023 に対して、オフボーディングしてみます。
オフボードの流れです。
- Microsoft Defender からオフボードパッケージを入手
- Amazon Linux 2023 からオフボード
- Microsoft Defender ポータルから対象マシンを除外
1. Microsoft Defender からオフボードパッケージを入手
始めに、Microsoft Defender ポータルからオフボードパッケージをダウンロードします。
Microsoft Defender ポータルにおける「システム」の「設定」から「エンドポイント」を選択します。
「デバイス管理」内の「オフボーディング」を選択します。オペレーションシステムは今回の対象である「Linux サーバー」を選択して、「パッケージをダウンロード」からダウンロードします。
オフボードパッケージのファイル名は WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
でした。オフボードパッケージには次のとおり、有効期限があることの注意書きがありました。7 日以内に対応する必要があります。
セキュリティ上の理由から、オフボーディング パッケージは作成されてから 7 日以内に有効期限が切れます。
ダウンロードしたオフボードパッケージを Microsoft Defender for Endpoint をインストールしているサーバにアップロードする必要があります。今回の検証の対象となる EC2 インスタンス(Amazon Linux 2023)が存在する AWS アカウント内の S3 バケットに事前にアップロードしておきます。後ほど、EC2 インスタンスからダウンロードして利用します。
なお、今回オフボードする Amazon Linux 2023 は Microsoft Defeder ポータルにおける次のデバイスです。
以降は、オフボーディングする Aamzon Linux 2023 上での操作です。
2. Amazon Linux 2023 からオフボード
Microsoft Defender for Endpoint がインストールされ、オンボード済みの Amazon Linux 2023 に SSM のセッションマネージャーで接続して作業します。
オフボーディング
始めに、下記コマンドで事前に S3 バケットにアップロードしておいたオフボードパッケージをダウンロードします。<S3_BUCKET_NAME>
には S3 バケット名を指定します。
aws s3api get-object --bucket <S3_BUCKET_NAME> --key WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
実行結果例です。S3 バケット名はマスキングしています。
$ aws s3api get-object --bucket <S3_BUCKET_NAME> --key WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
{
"AcceptRanges": "bytes",
"LastModified": "2025-08-03T16:04:22+00:00",
"ContentLength": 5507,
"ETag": "\"25e428ee4808a4b54fe35afa47cc1a00\"",
"ChecksumCRC64NVME": "55n+McS2N8k=",
"ChecksumType": "FULL_OBJECT",
"ContentType": "application/zip",
"ServerSideEncryption": "AES256",
"Metadata": {}
}
ダウンロードできていることを確認します。
$ ls -l
total 8
-rw-rw-r--. 1 ssm-user ssm-user 5507 Aug 4 07:55 WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
下記コマンドで zip を解凍します。
unzip WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
実行結果例です。
$ unzip WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
Archive: WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
inflating: MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2025-08-10.py
$ ls -l
total 20
-rw-r--r--. 1 ssm-user ssm-user 8758 Aug 3 16:03 MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2025-08-10.py
-rw-rw-r--. 1 ssm-user ssm-user 5507 Aug 4 07:55 WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
オフボーディングする前の状態を確認しておきます。org_id
が登録されており、helathy
は true
状態です。
$ mdatp health --field org_id
"0a04cde7-58ed-4181-959exampleexample"
$ mdatp health --field healthy
true
下記コマンドでオフボードパッケージを実行します。
sudo python3 MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2025-08-10.py
実行結果例です。
$ sudo python3 MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2025-08-10.py
Generating /etc/opt/microsoft/mdatp/mdatp_offboard.json ...
実行後は org_id
は空になり、helathy
も false
状態になりました。
$ mdatp health --field org_id
ATTENTION: No license found. Contact your administrator for help.
""
$ mdatp health --field healthy
ATTENTION: No license found. Contact your administrator for help.
false
mdatp のアンインストール
Microsoft Defender との関連付けが解除された mdatp をアンインストールします。アンインストール方法は次の Microsoft Learn ドキュメントに記載があります。
- Linux 用 Microsoft Defender for Endpoint を手動で展開する - Microsoft Defender for Endpoint | Microsoft Learn
冒頭で紹介したブログでは上記のドキュメントを参考に mdatp をインストールしたため、アンインストールは同じページにある次のコマンドで実施することにします。
sudo yum remove mdatp
アンインストール前の list です。新しいバージョンがありましたが、このまま remove します。Microsoft のリポジトリを参照しようとして出力が途中で止まる場合は、一度 yum list
を実行してから下記コマンド実行するとうまく表示されると思います。
$ yum list | grep mdatp
mdatp.x86_64 101.25052.0007-1 @packages-microsoft-com-prod
mdatp.aarch64 101.25062.0003-1 packages-microsoft-com-prod
mdatp.x86_64 101.25062.0003-1 packages-microsoft-com-prod
アンインストールの実行結果例です。
$ sudo yum remove mdatp
Dependencies resolved.
==================================================================================================
Package Architecture Version Repository Size
==================================================================================================
Removing:
mdatp x86_64 101.25052.0007-1 @packages-microsoft-com-prod 507 M
Transaction Summary
==================================================================================================
Remove 1 Package
Freed space: 507 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: mdatp-101.25052.0007-1.x86_64 1/1
Erasing : mdatp-101.25052.0007-1.x86_64 1/1
Running scriptlet: mdatp-101.25052.0007-1.x86_64 1/1
Verifying : mdatp-101.25052.0007-1.x86_64 1/1
Removed:
mdatp-101.25052.0007-1.x86_64
Complete!
アンインストール後の list です。mdatp.x86_64
がインストールされていない状態となりました。
$ yum list | grep mdatp
mdatp.aarch64 101.25062.0003-1 packages-microsoft-com-prod
mdatp.x86_64 101.25062.0003-1 packages-microsoft-com-prod
Microsoft リポジトリの削除
次に、インストール時に利用した Microsoft リポジトリを無効化してみます。今回の環境では Production のリポジトリが利用していました。
$ yum repolist
repo id repo name
amazonlinux Amazon Linux 2023 repository
kernel-livepatch Amazon Linux 2023 Kernel Livepatch repository
packages-microsoft-com-prod Microsoft Production
下記コマンドでリポジトリを無効化できます。
sudo yum-config-manager --disable packages-microsoft-com-prod
実行結果例です。
$ sudo yum-config-manager --disable packages-microsoft-com-prod
$
リポジトリのリストから削除されていることを確認できました。
$ yum repolist
repo id repo name
amazonlinux Amazon Linux 2023 repository
kernel-livepatch Amazon Linux 2023 Kernel Livepatch repository
Microsoft の GPG 公開鍵の削除
最後に、下記ブログの手順でインストールする際にインポートした Microsoft の GPG 公開鍵を削除します。
下記コマンドで Microsoft の GPG 公開鍵を確認できます。
sudo rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep -i microsoft
下記コマンドで鍵を削除できます。
sudo rpm -e <PUBLIC_KEY>
一連の実行結果例です。3 つ目の公開鍵の確認コマンドでは、削除済みのため出力内容がない状態です。
$ sudo rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep -i microsoft
gpg-pubkey-be1229cf-5631588c Microsoft (Release signing) <gpgsecurity@microsoft.com> public key
$ sudo rpm -e gpg-pubkey-be1229cf-5631588c
$ sudo rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep -i microsoft
オフボードパッケージの削除
必要に応じて、S3 からダウンロードして利用していたオフボードパッケージを削除します。
$ ls -l
total 20
-rw-r--r--. 1 ssm-user ssm-user 8758 Aug 3 16:03 MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2025-08-10.py
-rw-rw-r--. 1 ssm-user ssm-user 5507 Aug 4 01:52 WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
$ rm MicrosoftDefenderATPOffboardingLinuxServer_valid_until_2025-08-10.py
$ rm WindowsDefenderATPOffboardingPackage_valid_until_2025-08-10.zip
$ ls -l
total 0
3. Microsoft Defender ポータルから対象マシンを除外
オフボードパッケージを実行した後は、Microsoft Defender ポータルから対象サーバを除外してみます。オフボードした仮想マシンを選択して「除外する」を実行します。
「理由」は「非アクティブなデバイス」を選択して進めてみます。
最後の確認をして除外します。
次の案内があり、除外が完了しました。なお、除外しても「除外状態」のフィルターを変更すれば表示されます。
デバイスが脆弱性管理ビューとデータから完全に除外されるまでに最大 10 時間かかる場合があります。
さいごに
Amazon Linux 2023 にインストールされている Microsoft Defender for Enspoint を手動でオフボーディングしてみました。オフボードパッケージをダウンロードする画面においても説明されているのですが、手動でスクリプトを実行するのは、1 台から 10 台までの限られた数のデバイスで使用する場合が利用シーンとなるとのことです。他の方法については下記の Microsoft Learn のドキュメントに記載されていました。
以上、このブログがどなたかのご参考になれば幸いです。