クラウドリソースの列挙
設定ミスを発見します。
「クラウドリソースの列挙」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
クラウド列挙の目的
列挙によって、1 つの認証情報や匿名の足がかりから、環境全体のマップを作成できます。自分がどの ID を持ち、何を実行でき、どのリソースが存在するのかを把握することが目的です。
- プリンシパルを特定します(自分は誰か)。
- リソースを一覧化します(何が存在するか)。
- 権限と信頼関係の経路を見つけます(何に到達できるか)。
自分の ID を特定する
まず、現在アクティブなプリンシパルを必ず確認してください。これにより、アカウント、ID の種類、次に調べるべき場所が分かります。
# AWS
aws sts get-caller-identity
# Azure
az account show
# GCP
gcloud auth list
gcloud config list未認証状態での探索
認証情報を手に入れる前に、外部からの列挙によって公開された資産を見つけます。
- 予測しやすいバケット名やストレージ名を総当たりで調べます。
- Certificate Transparency と DNS を使って、公開エンドポイントを列挙します。
- 公開されたスナップショット、AMI、コンテナレジストリを確認します。
# Discover and probe buckets by org keyword
cloud_enum -k targetcorp
# Check a storage account for anonymous access (Azure)
curl https://targetcorp.blob.core.windows.net/?comp=list権限の列挙
プリンシパルが実行できる操作を正確に把握することが、エンゲージメント全体の方針を決めます。プロバイダーによっては自分のポリシーを読み取れます。そうでなければ、無害な呼び出しを試して権限を総当たりで確認します。
# AWS: list attached policies for your user
aws iam list-attached-user-policies --user-name me
# Brute-force allowed actions without side effects
enumerate-iam --access-key AKIA... --secret-key ...ネイティブツールによるリソース一覧化
プロバイダーの CLI と集約ビューを使うと、リソースをすばやく列挙できます。
- AWS Resource Groups Tagging API または
describe-*呼び出し - サブスクリプション全体を対象にした Azure Resource Graph クエリ
- GCP のアセットインベントリ
# AWS: enumerate EC2 instances
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,State.Name]'
# Azure Resource Graph
az graph query -q 'Resources | project name, type, location'自動監査ツール
専用ツールを使うと、アカウント全体の設定ミスを効率よく発見できます。
- ScoutSuite は、複数サービスを対象にした HTML 形式のリスクレポートを生成します。
- Prowler は、CIS ベンチマークのチェックを数百件実行します。
- CloudMapper / Cartography は、関係をグラフ化します。
# ScoutSuite
scout aws
# Prowler CIS checks
prowler aws --compliance cis_2.0_awsIAM 関係のマッピング
列挙で得られる最も価値の高い出力は IAM グラフです。つまり、誰がどのロールを引き受けられ、どのポリシーが権限昇格を可能にするかを示すものです。グラフツールを使うと、平面的なポリシーレビューでは見落とす経路が明らかになります。
# PMapper: build and query the IAM authorization graph
pmapper graph create
pmapper query 'who can do iam:PutUserPolicy with *'ストレージとデータの列挙
ストレージを一覧化できるようになったら、シークレットや PII を探すために内容を列挙します。
- バケットやコンテナを一覧化し、続けてオブジェクトを列挙します。
- バックアップ、
.envファイル、Terraform の state、データベースダンプを探します。 - Terraform の state には、平文のシークレットが含まれていることがよくあります。
# Recursively list and pull interesting objects
aws s3 ls s3://target-bucket --recursive
aws s3 sync s3://target-bucket ./loot --exclude '*' --include '*.tfstate'ネットワークとコンピュートの列挙
ピボットポイントを見つけるために、ネットワークと稼働中のワークロードをマッピングします。
- Security Groups や NSGs から、公開されているポートが分かります。
- 稼働中のインスタンスとそのロールは、横展開の標的になります。
- マネージドデータベースとそのアクセスルールから、データストアの場所が分かります。
# Find security groups open to the internet
aws ec2 describe-security-groups \
--filters Name=ip-permission.cidr,Values=0.0.0.0/0静かに規約を守って進める
列挙によって、コントロールプレーンのログエントリが生成されます。ノイズを減らし、倫理的に進めるために、次の点を守ってください。
- 読み取り専用の
describe、list、get呼び出しを優先します。 - レート制限のアラートを避けるため、リクエストを抑制します。
- 調査中は、破壊的な操作や課金が発生する操作を避けます。
- 後でブルーチームが関連付けられるよう、すべての呼び出しを記録します。
インベントリから攻撃計画へ
適切な列挙によって、優先順位を付けた標的リストが得られます。これには、過剰な権限を持つロール、公開ストレージ、公開サービス、引き受け可能なクロスアカウントロールなどが含まれます。このリストを悪用フェーズにつなげます。
調査結果は、再現可能かつ監査可能になるよう、使用した正確な API 呼び出しとともに記録してください。
確認テスト
クラウド列挙の基本を理解できているか確認してください。
まとめ
クラウド環境を体系的に列挙する方法を学びました。
- まず自分のプリンシパルを特定し、次にリソースと権限を一覧化します。
- 未認証状態での探索によって、公開バケットやエンドポイントを見つけられます。
- ScoutSuite、Prowler、PMapper によって、監査と IAM グラフ化を自動化できます。
- 読み取り専用の呼び出しを優先し、すべての操作を記録します。
次は、IAM の設定ミスを悪用して権限を昇格させます。
よくある質問
「クラウドリソースの列挙」レッスンは無料ですか?
はい。「クラウドリソースの列挙」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「クラウドリソースの列挙」で何を学びますか?
設定ミスを発見します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「クラウドリソースの列挙」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- クラウドの攻撃対象領域
- クラウドリソースの列挙
- IAM設定ミスの悪用
- 永続化とラテラルムーブメント