新しいAWS Security Hubの露出結果(Exposure findings)は、露出特性(Exposure traits)が不十分だと生成されません! #AWSreInforce
こんにちは!クラウド事業本部の吉田です。
AWS re:Inforce 2025で、AWS Security Hubのアップデートが発表されました!
セキュリティ基準によってリソースのセキュリティチェックする機能(CSPM機能)が、AWS Security Hub CSPMとして分離するといった大きな変更が行われています。
AWS Security Hubの大部分として見なされていたCSPM機能を分離し他のセキュリティサービスと共に統合することで、AWS Security HubをCSPM機能だけではなくセキュリティ全般の情報を統合するサービスだと強くアピールしています。
詳細なアップデートに関しては、臼田のアップデートブログを参照してください。
[プレビュー]AWS Security Hubが機能分離され統合セキュリティソリューションに生まれ変わりました #AWSreInforce | DevelopersIO
下記のセキュリティリスクのある環境を作成して、露出領域のアタックパスの可視化を試そうとしました。
- パブリックサブネットにEC2を配置
- 0.0.0.0/0のAnyポートのインバウンドルールを許可したセキュリティグループをアタッチ
- IMDSはv1を設定
しかし、露出結果の生成サイクルである6時間が経過しましたが、一向に露出結果が生成されませんでした。
そうこうしている内に、臼田がアタックパスの可視化の検証ブログを公開していました。。。
[待望の機能]新しいAWS Security HubでExposureを検出してアタックパスの可視化を実際にやってみた #AWSreInforce | DevelopersIO
結論
結論ですが、 リソースに露出特性がない、または露出特性が不十分な場合、露出結果を生成されません。
If a resource doesn't have any exposure traits or has insufficient traits, Security Hub doesn't generate an exposure finding for that resource. Security Hub doesn't publish exposure findings for resource types that don't support exposure findings. When a resource has a significant number and combination of traits, Security Hub generates an exposure finding. The number and combination of traits also determine the severity level of the exposure finding.
Generating exposure findings - AWS Security Hub
今回の環境ですと、Anyポートでインターネットアクセス可能だけでは露出特性が不十分だと判断され、露出結果が生成されなかった可能性が高いです。
(あくまで推測に過ぎない点ご了承ください)
露出結果対象リソースと露出特性について
結論でいきなり露出特性と言われても、何のこっちゃとなりそうですので、露出結果の対象リソースと露出特性についてまとめさせていただきます。
現時点(2025/6/20時点)で、サポートされているリソースは下記のとおりです。
AWS::DynamoDB::Table
AWS::EC2::Instance
AWS::ECS::Service
AWS::EKS::Cluster
AWS::IAM::User
AWS::Lambda::Function
AWS::RDS::DBInstance
AWS::S3::Bucket
下記の4つの露出特性タイプの観点でサポートリソースに露出特性があるかを評価し、露出結果を生成しております。
特性タイプ | 説明 | ソース | 影響を受けるリソース |
---|---|---|---|
誤った設定 | リソースの構成が間違っていることを示します。 | セキュリティ ハブ CSPM 制御の検出結果。 | 露出結果の対象リソースすべてのリソース タイプ。 |
到達可能性 | リソースへの開いているネットワーク パスを示します。 | Security Hub CSPM コントロールの検出結果と Amazon Inspector ネットワーク到達可能性の検出結果。 | Amazon EC2インスタンス |
機密データ | リソースに機密データが含まれていることを示します。 | Macie の機密データの検出結果。 | Amazon S3バケット |
脆弱性 | リソースが Common Vulnerabilities and Exposure (CVE) にさらされていることを示します。 | Amazon Inspector パッケージの脆弱性の検出。 | Amazon EC2 インスタンス、Amazon ECS サービス、Amazon EKS クラスター、Lambda 関数 |
露出特性一覧に関しては、露出結果の修復手順のページに記載されています。
Remediating exposure findings - AWS Security Hub
例えば、EC2の露出特性に関しては、下記の通りです。
- 誤った設定(露出特性タイプ)の露出特性
- EC2インスタンスはバージョン1を使用してIMDSへのアクセスを許可します
- Amazon EC2インスタンスに関連付けられたIAMロールには管理アクセスポリシーがあります
- Amazon EC2インスタンスに関連付けられたIAMロールにはサービス管理ポリシーがあります
- Amazon EC2インスタンスには、SSHまたはRDPアクセスを許可するセキュリティグループまたはネットワークACLがあります。
- Amazon EC2インスタンスにはオープンセキュリティグループがあります
- Amazon EC2インスタンスにはパブリックIPアドレスがあります
- 到達可能性(露出特性タイプ)の露出特性
- EC2インスタンスはインターネット経由でアクセス可能
- Amazon EC2インスタンスはAmazon VPC内でアクセス可能です
- 脆弱性(露出特性タイプ)の露出特性
- EC2 インスタンスには、ネットワーク上で悪用される可能性が高いソフトウェアの脆弱性があります。
- Amazon EC2インスタンスにソフトウェアの脆弱性がある
Remediating exposures for EC2 instances - AWS Security Hub
これらの露出特性の組み合わせによって、露出結果が生成されます。
ここで重要なのが、 1つの露出結果=1つの露出特性という1対1の関係性ではなく、1つの露出結果=複数の特性の集約という1対多数の関係性であることです。
この露出結果と露出特性の関係性が、リソースに露出特性が不十分な場合、露出結果を生成されない という挙動に繋がると思われます。
It produces at most one exposure finding per resource ID. The uniqueness of a finding is determined by ID, AWS Region, type, and account. This means you can have two resources with the same ID, but the resources would be different resource types. This exposure finding aggregates all of the applicable exposure traits that apply to the resource.
Generating exposure findings - AWS Security Hub
露出結果作成の挙動を確認してみた
1回目の検証
改めて当初の検証環境の内容を再掲します。
- パブリックサブネットにEC2を配置
- 0.0.0.0/0のAnyポートのインバウンドルールを許可したセキュリティグループをアタッチ
- IMDSはv1を設定
この内容ですと、以下の露出特性がありそうです。
- 誤った設定(露出特性タイプ)の露出特性
- EC2インスタンスはバージョン1を使用してIMDSへのアクセスを許可します
- Amazon EC2インスタンスには、SSHまたはRDPアクセスを許可するセキュリティグループまたはネットワークACLがあります。
- Amazon EC2インスタンスにはオープンセキュリティグループがあります
- Amazon EC2インスタンスにはパブリックIPアドレスがあります
- 到達可能性(露出特性タイプ)の露出特性
- EC2インスタンスはインターネット経由でアクセス可能
- Amazon EC2インスタンスはAmazon VPC内でアクセス可能です
ヤバい環境ではあるんですけど、露出結果は生成されませんでした。
2回目の検証
臼田の検証では、EC2にインスタンスプロファイルをアタッチしていたため、今度はSSM権限があるインスタンスプロファイルをアタッチしてみました
[待望の機能]新しいAWS Security HubでExposureを検出してアタックパスの可視化を実際にやってみた #AWSreInforce | DevelopersIO
しばらく待ちますと、露出結果が生成されました!
重要度Lowの「Potential Credential Stealing: Internet reachable EC2 instance with instance profile(潜在的なクレデンシャル盗用:インスタンスプロファイルが関連付けられるEC2インスタンスがインターネットからアクセス可能)」というタイトルの露出結果が出ています。
このタイトルをクリックしますと、検知リソースが確認できます。
検知リソースのIDをクリックしますと、露出結果の内容が確認できます。
タイトルと概要文を確認しますと、「インターネットからアクセス可能なインスタンスにインスタンスプロファイルがアタッチされているため、不正アクセスされるとクレデンシャルが悪用される可能性があるよ」という内容のように見受けられます。
The affected EC2 instance is both reachable from the internet and has an associated instance profile. An instance profile is a container for an IAM role that can be used to pass role information to an EC2 instance when the instance starts. Being internet-reachable means the instance can be accessed directly from the public internet. This combination could potentially allow an attacker to gain unauthorized access to the instance and misuse the permissions granted by the instance profile to hijack resources or execute commands remotely. It's important to review the necessity of both internet accessibility and the assigned permissions to ensure they align with the principle of least privilege and your security requirements.
露出タブをクリックすると、露出結果の生成原因である露出特性を確認することができます。
「原因となる特性」を確認すると、下記の露出特性が挙げられていました。
- 誤った設定(露出特性タイプ)
- EC2はインスタンスプロファイルが関連付けられている
- 到達可能性(露出特性タイプ)
- EC2インスタンスはインターネット経由でアクセス可能
なるほど。
この露出結果は、 単純にインターネットからアクセス可能なだけではなく、悪用されるクレデンシャル(インスタンスプロファイル)があることによって生成されるようです。
「原因となる特性」の他に、「コンテキスト特性」という項目もありました。
コンテキスト特性とは、「問題となるリソースに関連するセキュリティリスクだが、露出結果の生成に直接関わっていない露出特性」とのことです。
こちらは、コンテキスト特性としては、下記の露出特性が挙げられていました。
- 到達可能性(露出特性タイプ)
- EC2インスタンスはVPC内でアクセス可能
- 誤った設定(露出特性タイプ)
- EC2インスタンスはオープンセキュリティグループがアタッチされている
- EC2インスタンスはパブリックIPが付与されている
今回生成された検出結果は、「Low」と一番低い重要度でした。
この重要度は下記の要因で決定されます。
- 認知度
- 露出が理論的なものではなく、公開されている、または自動化された攻撃手法が存在する程度。これはEC2インスタンスとLambda関数の露出検出結果に適用されます。
- 発見の容易さ
- ポートスキャンやインターネット検索などの自動化ツールが、リスクのあるリソースを発見するために利用可能かどうか。
- 攻撃の容易さ
- 脅威アクターが露出を攻撃できる容易さ。例えば、オープンなネットワークパスや設定ミスのあるメタデータが存在する場合、脅威アクターはより簡単に露出を攻撃することができます。
- 攻撃の可能性
- 今後30日間で露出が攻撃される可能性。この要因は攻撃保護スコアリングシステム(EPSS)に対応し、Amazon EC2インスタンスとLambda関数の露出検出結果に適用されます。
- 影響
- 攻撃が実行された場合の害。例えば、露出は説明責任の喪失、可用性の喪失、データ露出による機密性の喪失、またはデータ破損による完全性の喪失につながる可能性があります。
Determining the severity level of an exposure finding - AWS Security Hub
今回の検証は、不正アクセスをしたとしても影響が出ないように、インスタンスプロファイルに強い権限はアタッチしておりません。
試すことは避けたいと思いますが、インスタンスプロファイルにAdministratorAccessをアタッチしたら、「影響」の要因によって重要度は跳ね上がると思います。
露出結果をどのように活用するのか?
正直な感想を言いますと、「Anyポートでインターネット公開しているのに露出結果を生成してくれないの?」と思ってしまいました。
そのような誤った設定をしているリソースは、露出結果を出して欲しいですよね?
ただ生成された露出結果の内容や、公式ドキュメントを読んで考えた結果、露出領域は単純な設定ミスがあるリソースを列挙する機能ではないと感じました。
露出結果とは、数多あるリソースの中でどのリソースのセキュリティリスクを優先して対応すべきか優先順位を示してくる機能だと解釈しました。
自分があれこれ考えなくても、マネージドコンソールの露出のページに下記の文言がありました。。。
個別の検出結果を分析する前に、最も重要なエクスポージャーの検出結果を分類・調査し、修復の優先順位を決定しましょう。
リソースの設定不備自体は、AWS Security HubのCSPM機能で確認することができます。
ただ、AWS Security HubのCSPM機能を利用された方はお分かりになるかと思いますが、大量のリソースがある、かつ、セキュリティ設計が十分にされていない環境ですと、大量のコントロールで大量のリソースが検知されることがあります。
そのような状況になると「どれから手をつけたらいいの?」となりがちです。
そこで露出結果を利用すると、どのリソースの設定ミスから着手すべきか対応方針を立てやすくなります。
具体例を出します。
下記の3つのEC2インスタンスがあるとします。
- Anyポートでインターネットからアクセス可能なEC2インスタンス
- 一定の権限があるインスタンスプロファイルがアタッチされている、Anyポートでインターネットからアクセス可能なEC2インスタンス
- 管理者権限があるインスタンスプロファイルがアタッチされている、Anyポートでインターネットからアクセス可能なEC2インスタンス
AWS Security Hub CSPMで確認すると、下記のコントロールが検出されていると思われます。
- [EC2.19] セキュリティグループは、リスクの高いポートへの無制限アクセスを許可してはいけません
コントロールの詳細を確認すると、3つのEC2インスタンスが利用しているセキュリティグループが、コントロールの検知リソースとして一覧化されていると思われます。
ただこれだと、同じコントロール内で検知しているため、どのセキュリティグループ(どのインスタンス)から対応すればいいのか優先順位をつけることは難しいです。
ここで露出結果で先ほどEC2インスタンスがどのように評価されるか見てみます。
- Anyポートでインターネットからアクセス可能なEC2インスタンス
- 露出結果が生成されない
- 一定の権限があるインスタンスプロファイルがアタッチされている、Anyポートでインターネットからアクセス可能なEC2インスタンス
- 重要度Lowの露出結果が生成される
- 管理者権限があるインスタンスプロファイルがアタッチされている、Anyポートでインターネットからアクセス可能なEC2インスタンス
- 高い重要度の露出結果が生成される
- こちらは実際どのような重要度の露出結果が生成されるかは確認できておりません。ご了承ください
こうなると下記の優先順位がつけられますよね。
- 管理者権限があるインスタンスプロファイルがアタッチされている、Anyポートでインターネットからアクセス可能なEC2インスタンス
- 一定の権限があるインスタンスプロファイルがアタッチされている、Anyポートでインターネットからアクセス可能なEC2インスタンス
- Anyポートでインターネットからアクセス可能なEC2インスタンス
このように、色々と問題がある環境の中でまずはどのリソースから是正すべきか優先順位をつけるのに役立つのが、今回のアップデートの露出結果なのだと自分は理解しました。
さいごに
今回のSecurity Hubのアップデートによって、よりセキュリティアセスメントがやりやすくなったと感じました。
Security Hubを利用したセキュリティアセスメント支援することが多いので、バリバリ新機能を活用していきたいです!
以上、クラウド事業本部の吉田でした!