Azure Defenderを使ってAWS EC2インスタンスの脆弱性診断をやってみた

2021.06.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

Azure には Azure Security Center という セキュリティ管理システムがあります。
そして、Azure Security Center には "Azure Defender" という クラウドリソースのセキュリティ保護を行う機能があります。

Azure Defender には様々な機能がありますが、それらの機能はハイブリッドクラウド環境へ拡張することが可能です。
本日はAWS仮想マシン(EC2)を Azure Defender で保護・脆弱性診断を行ってみました。

Azure Arc を使い、AWSリソースを管理する

まず、Azure Defender のハイブリッドクラウド保護機能を使うためには、Azure 管理下へ他社クラウドリソースをおきます。
Azure では Azure Arc という技術を使い、 AWS や GCP のクラウドリソースを管理することが可能です。

先日、EKS を Azure Arc へ追加するブログ記事を作成しました。
こちらで Azure Arc とは何か、少し触れていますので良ければご参照ください。

Azure Arc へAWSリソースを追加するには、2つ方法があります。
ひとつは、AWSアカウントとAzureアカウントをIAMロールとマルチクラウドコネクターで連携させる方法です。
これを行うと複数仮想マシンにかけて透過的な自動セットアップが可能になります。

アカウント連携に興味のある方は以下をご参照ください。

今回は個別にエージェント手動インストールしてみたいと思います。
Azure 上で案内される手順に従ってEC2上にエージェントをインストールします。
あとは Azure Arc へのアウトバウンド通信を許可するだけで Azure Arc サーバーとして扱われます。
Azure Arc エージェントが正常に機能するためには、ポート 443 の以下送信 URL への アウトバウンド通信を許可する必要があります。
プロキシ環境下においてはホワイトリストへの登録を行いましょう。

  • management.azure.com
  • login.windows.net
  • dc.services.visualstudio.com
  • agentserviceapi.azure-automation.net
  • -agentservice-prod-1.azure-automation.net .guestconfiguration.azure.com
  • *.his.arc.azure.com

やってみる

Azureポータルで Azure Arc リソースの作成準備

Azure Arc からインフラストラクチャの追加 -> サーバーの追加 を行います。

今回は単一サーバーの追加となります。

作成したい Azure Arc サーバーのリージョンやリソースグループを指定していきます。

スクリプトが表示されます。
これが Azure Arc エージェントのセットアップスクリプトになり、管理化に置きたい仮想マシン上で実行する形となります。

ダウンロードでもコピペでも良いです。

AWSマネジメントコンソールとリモートアクセスで Azure Arc エージェントのセットアップ

Azure Arc サーバー用のEC2インスタンスを作成し、リモートデスクトップ接続します。

先程のスクリプトを PowerShell で実行します。
そうするとモジュールのダウンロードとインストールが行われます。

AzureConnectedMachineAgent のダウンロードとインストールが自動実行されます。
このエージェントが Azure のエンドポイントに対してアウトバウンド通信しています。
エージェントを使ってアウトバウンド通信のみで仮想マシンの管理をするのって AWS Systems Manager に似ていますよね。

さて、セットアップ中にAzureへのサインインが求められますので認証を行ってください。

Azureポータルでオンボード確認

Azure Arc エージェントをセットアップしました。
早速、 Azure Arc でサーバー一覧を見てみましょう。

あれ!ない!

セットアップ直後は一覧に出てこないです。
どうやら Azure Arc へ通信するまでに少し時間がかかるみたいです。

20分ほど待っていたら一覧に表示されていました。

これで Azure Arc への登録が完了しました。
このEC2インスタンスは Azure Arc サーバーとなりました。

Azure Defender で セキュリティ推奨事項の対応を行う

ここからが本題のセキュリティ対策の部分となります。

まずは セキュリティセンター から Azure Defender を有効化しましょう。
デフォルトは Free が設定されています。
メニューの「価格と設定」から有料の Defender に変更が可能です。

今回はAzure Defender Serversを有効化しました。
1時間ごとの従量課金となります。

Azure Defender の料金については以下をご参照ください。

Azure Arc サーバーのオンボード直後は推奨事項に表示されません。少し時間がかかります。
1時間ほど待っていたら一覧に表示されました。

Azure Arc サーバーへの推奨事項が表示されています。
「脆弱性評価ソリューションを仮想マシンで有効にする必要があります」

この推奨事項をまずは有効化します。
ここでいう脆弱性評価ソリューションには、"Qualys"が使われます。

Qualys のライセンスやアカウントは不要で、 Azure Defender に含まれています。
ここで有効を行うと、対象マシン上へ Qualys 拡張機能がデプロイされ、情報が収集されます。
その後 対象リージョンの Qualys クラウドサービス上で分析されます。
分析・脆弱性評価が実施されると、その結果はセキュリティセンターへ送信されます。

セットアップ時に Qualysデータセンターと通信する必要があるため、以下とHTTPアウトバウンド通信出来る必要があります。

  • 64.39.104.113 - Qualys の米国のデータ センター
  • 154.59.121.74 - Qualys の欧州のデータ センター

プライバシー、機密性、セキュリティを確保するために、利用者の詳細情報は Qualysに共有されないとのことです。
Azure上のプライバシー基準の詳細については以下をご参照ください。

では、脆弱性評価ソリューションの有効化から行いたいと思います。

推奨事項を選択し、 Unhealthy resources で対象の Azure Arc サーバーを選択し、 Fix を選択します。

続けて、"Recommended: Deploy ASC integrated vulnerability scanner powered by Qualys (included with Azure Defender for servers)"を選択します。

サードパーティの脆弱性評価ソリューションをデプロイすることも出来ますが Azure Arc サーバーは対象外となっています。
利用したい場合は以下をご参照ください。

有効にするまで5分くらいかかります。

そこから更に脆弱性のスキャン結果が出るまで数時間かかります。
私は寝ました。

そして翌日。

新たな推奨事項があがってきました。

各項目の対応を行う場合は詳細を開き、修復内容に従って個別に対応を判断します。

AWSマネジメントコンソールでパッチマネージャーからWindowsパッチを当ててみます。

脆弱性の推奨事項から表示が消えました。

リソース正常性がグリーンになり、セキュアスコアも向上しています。

まとめ

AWS, Azure, GCP, オンプレミス などハイブリッドかつマルチクラウド環境でセキュリティを一元管理する際に良さそうですね。
AWS と Azure を連携するだけであれば、 Inspector と AWS Security Hub を統合し、 AWS Security Hub と Azure Security Center の連携を行うことでも管理自体は可能です。
この連携は以前以下の記事で少し触っていますので見てみてください。