LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

Amazon EC2 IMDSv1に起因した情報流出を防ぐ - Prisma® Cloudから考えるセキュリティ(1)

クラウドサービス部の新山です。

ラックでは、Prisma® Cloud(プリズマクラウド)を用いたクラウドセキュリティ統制支援サービスを提供しています。Prisma® Cloudは、パロアルトネットワークス社が展開する、マルチクラウドやハイブリッドクラウド環境におけるクラウドリソースの設定上の脆弱性や不審な挙動を、業界標準の各種コンプライアンス基準や独自の基準に従い、継続的に監視・可視化するSaaS型のサービスです。

機能の1つとして、Prisma® Cloud側で事前定義されたアラートポリシーに基づいて不適切な設定や不審な挙動を検知・アラートすることができます。非常に多くのアラートポリシーが定義されておりますので、そのなかでも特に注意していただきたいものを連載という形でお届けしていきます。

本記事では、「Potential indication of data exfiltration activity through a publicly exposed and vulnerable AWS EC2 instance with s3:GetObject and s3:ListBucket permissions and not configured with Metadata Service v2(以下、IMDSv2)」という重要度が高いアラートポリシーを参考に、Amazon EC2の設定不備に起因したS3にある情報の流出を防ぐ方法を紹介します。

アラートの内容

このアラートは、S3への参照権限をもつEC2の認証情報が窃取可能な状態にあることを検知するものです。これは、S3に存在する機密情報が流出するリスクがあることを意味します。詳細なアラートの条件についてですが、以下の全てを満たしたEC2を検知します。

IMDSv1が使用されている

IMDS(Instance Metadata Service)は、Amazon EC2インスタンス内からメタデータにアクセスするためのサービスになります。これにより、インスタンスは自身の設定情報やその他のデータを取得できます。

IMDSv1は最初に導入されたバージョンであり、「シンプルなHTTP GETリクエストによって認証なしでアクセスできる」というセキュリティ観点での問題があります。これにより、インスタンスに侵入成功した攻撃者はメタデータに含まれる認証情報を取得でき、インスタンスに割り充てられた権限の範囲で、S3上にある情報を参照されることが想定されます。

このようにセキュリティ的なリスクがあるため、IMDSv1の使用は推奨されていません。現在はIMDSv2が利用可能です。こちらはセッションベースの認証を使用してアクセス制御を行うため、IMDSv1よりもセキュリティが強化されており、IMDSv2の利用が推奨されています。

パブリックアクセスが可能

IMDSv1を悪用した攻撃は、攻撃者がEC2インスタンスに到達できることで、リスクが表層化します。

そのため本アラートは、セキュリティグループやネットワークACL、ELBなどを総合的に判断してインターネット上のあらゆる場所からのアクセスが可能であるということも、検知条件に含まれています。

EC2インスタンスがS3参照権限を持っている

IMDSv1を悪用した攻撃は、EC2インスタンスにアタッチされたIAMロールの範囲で、情報の参照を行います。

そのため本アラートは、EC2インスタンスにアタッチされたIAMロールに、s3:GetObjectおよびs3:ListBucketが含まれているかを、検知条件に含みます。

対処方法

アラートの条件としては、先に述べた3つの条件を満たしたときになりますが、特にIMDSv1の使用には注意が必要です。ここからは、最初に記載している条件である、IMDSv1に焦点をあて、その対処方法を解説します。

既存のEC2インスタンスをIMDSv1からIMDSv2へ設定変更をする方法と、IMDSv2を新しく起動される全てのインスタンスのデフォルトとして設定する方法について紹介します。

既存のEC2インスタンスをIMDSv1からIMDSv2へ設定変更をする方法

IMDSv1の使用が可能となっている場合、EC2インスタンスのIMDSv2の設定は「Optional」と表示されます。これはIMDSv1とIMDSv2のどちらも使用できる状態になっていることを示します。

明示的に設定することで、リクエストごとに一時的なトークンを生成し、そのトークンを使用してメタデータにアクセスするIMDSv2のみを使用することでセキュリティ強化につながります。

EC2インスタンス概要の画面。IMDSv2の設定は「Optional」と表示される。

IMDSv2のみを使用させるためには、以下の手順を実施します。

①IMDSv2に設定変更をする場合、アクション>インスタンスの設定>インスタンスメタデータオプションの変更をクリックします。

右上のドロップダウンリストから、アクション、インスタンスの設定、インスタンスメタデータオプションの変更と進む

②IMDSv2の設定が、「Optional」になっているため、「必須」を選択し、「保存」をクリックし、IMDSv2へ設定変更を行います。

「インスタンスメタデータオプションの変更」画面。IMDSv2の項目で「必須」を選択し「保存」をクリック。

③IMDSv2の設定が「Required」に変更されたことを確認します。

IMDSv2の設定が「Required」に変更されたことを確認

IMDSv2を新しく起動される全てのインスタンスのデフォルトとして設定する方法

では次に、全てのインスタンスのデフォルトとして設定する方法について紹介します。

これはリージョンごとのデフォルト設定をするものなので、AWSアカウントで複数のリージョンを使用したEC2を作成している場合は、リージョンごとに設定する必要があります。具体的には、以下の手順を実施します。

①EC2のダッシュボード画面から、デフォルト設定するリージョン(今回はバージニア北部)を確認し、アカウント属性>設定>データ保護とセキュリティをクリックします。

EC2ダッシュボードの画面。リージョンを確認し、「アカウント属性」にある「設定」の項目から「データ保護とセキュリティ」をクリックする。

②IMDSデフォルトの設定にある「管理」をクリックし、デフォルトの設定内容を変更していきます。

「IMDSデフォルト」の画面。右上の「管理」をクリック。

③メタデータのバージョンは「V2のみ(トークンは必須)」を選択し、「更新」をクリックします。

「IMDSのデフォルト値」を管理の画面。メタデータのバージョンは「V2のみ(トークンは必須)」を選択し、「更新」をクリック。

④IMDSデフォルトの設定のメタデータのバージョンが「V2のみ(トークンは必須)」に設定変更されたことを確認します。

「IMDSデフォルト」の画面。メタデータのバージョンが「V2のみ(トークンは必須)」に設定変更されたことを確認。

上記はインスタンス作成時のデフォルトの設定値を変更するものです。既存のインスタンスには適用されませんので、先に記載している、「既存のEC2インスタンスをIMDSv1からIMDSv2へ設定変更をする方法」を実施する必要があります。

その他の対処方法

ここまでは、IMDSv2を使用するための設定方法を説明してきました。しかし、状況によってIMDSv1を使用せざるを得ないケースも想定されます。このような場合、AWS WAFを使用することで対処が可能です。

具体的にはAWS WAFのマネージドルールである「EC2MetaDataSSRF_BODY」「EC2MetaDataSSRF_COOKIE」「EC2MetaDataSSRF_URIPATH」「EC2MetaDataSSRF_QUERYARGUMENTS」を使用することで、メタデータを盗み出す試みがないかを検査できます。

その他、一般的なセキュリティ対策ではありますが、セキュリティグループやネットワークACLを用いてEC2インスタンスの意図しない外部公開を防ぐことも有効な対策になります。またEC2インスタンスにアタッチするIAMロールに対して最小権限を付与しておけば、万が一認証情報が流出した場合でも、情報漏洩の被害を最小限にすることができます。

おわりに

今回紹介したアラート以外にも、Prisma® Cloudでは多数のセキュリティリスクを検知します。そして、ラックの長年にわたるシステム開発とセキュリティのノウハウを集め提供する「クラウドセキュリティ統制支援サービス」では、検知したアラートの対応を支援するサービスも提供しています。

ラックならではの知見を活かしてセキュリティトレンドやメーカー対応状況等を踏まえたラックオリジナルポリシーを提供することで、継続的に最新のセキュリティ対策を行うことが可能となります。AWS含め、パブリッククラウドのセキュリティに不安がありましたら、ぜひラックにご相談ください。

「Prisma® Cloud」に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ