IAM設定ミスの悪用
クラウドでの権限昇格を学びます。
「IAM設定ミスの悪用」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
権限昇格エンジンとしての IAM
クラウドでは、権限昇格は通常、メモリバグを悪用するのではなく IAM 権限を悪用することで実現します。低権限の ID であっても、ポリシーの変更、キーの作成、ロールの引き受けが可能なら、管理者権限に到達できます。
- IAM を変更する権限は、本質的に危険です。
- 権限昇格の経路は、脆弱性ではなくポリシーのロジックです。
- 対策はパッチではなく、最小権限の適用です。
危険な権限
特定の IAM アクションによって、直接的な権限昇格が可能になります。自分が制御するプリンシパルについて、次の権限を確認してください。
- 別のユーザーに対する
iam:CreateAccessKey iam:AttachUserPolicy/iam:PutUserPolicy(AdministratorAccess をアタッチ)iam:CreatePolicyVersion(既存のポリシーを書き換える)iam:PassRoleとコンピュートサービスの組み合わせ(特権ロールとしてコードを実行する)- 弱い信頼ポリシーを持つ
sts:AssumeRole
ポリシーアタッチによる権限昇格
自分の ID にポリシーをアタッチできるなら、権限昇格は 1 回の呼び出しで実行できます。管理者用のマネージドポリシーをアタッチすれば、完全な権限を継承できます。
# Attach AdministratorAccess to yourself
aws iam attach-user-policy \
--user-name me \
--policy-arn arn:aws:iam::aws:policy/AdministratorAccessPassRole の悪用
iam:PassRole を使うと、サービスにロールを渡せます。これをユーザーのコードを実行するサービス(EC2、Lambda、Glue)と組み合わせると、自分よりはるかに高い権限を持つロールとしてコードを実行できます。
# Launch a Lambda that assumes a privileged role you can pass
aws lambda create-function --function-name esc \
--role arn:aws:iam::111:role/AdminRole \
--runtime python3.12 --handler h.run --zip-file fileb://code.zipポリシーバージョンのロールバック
iam:CreatePolicyVersion または SetDefaultPolicyVersion を使うと、ポリシーのアクティブなドキュメントを置き換えたり、より寛容だった過去のバージョンに戻したりできます。これにより、グループメンバーシップに触れることなく広範なアクセス権を付与できます。
# Make a new, permissive default version of an existing policy
aws iam create-policy-version \
--policy-arn arn:aws:iam::111:policy/devs \
--policy-document file://admin.json --set-as-default信頼ポリシーと AssumeRole の悪用
ロールの信頼ポリシーは、そのロールを引き受けられる主体を定義します。信頼条件が弱いと、乗っ取りが可能になります。
*またはアカウント全体を信頼するロールは、広範な主体から引き受けられます。- ロールの信頼ポリシーを編集できる場合は、自分を信頼されるプリンシパルとして追加できます。
- 混乱した代理人:サードパーティ統合ロールに外部 ID が設定されていません。
# Assume a poorly-scoped role
aws sts assume-role \
--role-arn arn:aws:iam::111:role/CrossAccountAdmin \
--role-session-name ptクラウド間での同等の経路
同じパターンは各プロバイダーで見られます。
- Azure:User Access Administrator または Owner ロールの割り当て、Managed Identity の悪用、サービスプリンシパルへの認証情報の追加
- GCP:
iam.serviceAccounts.actAsとコンピュートサービスの組み合わせ、プロジェクトに対するsetIamPolicy、サービスアカウントキーの作成
# GCP: impersonate a privileged service account
gcloud compute instances create esc --service-account priv@proj.iam.gserviceaccount.com --scopes cloud-platform経路発見のためのツール
推測するのではなく、ツールを使って現在の ID から実行可能な権限昇格経路を明らかにします。
# Pacu (AWS exploitation framework) escalation module
pacu
run iam__privesc_scan
# PMapper query for escalation
pmapper query 'preset privesc me'コントロールプレーンへの連鎖
権限昇格では、データプレーンへのアクセスをコントロールプレーンの権限につなげることがよくあります。
- VM を侵害し、メタデータからインスタンスロールの認証情報を盗みます。
- インスタンスロールに
PassRoleと Lambda の権限があれば、管理者ロールとして実行できます。 - 管理者権限を取得したら、秘かに永続アクセスキーを作成します。
それぞれのつながりは、報告する価値のある独立した発見事項です。
IAM の防御
防御の中心となるのは、最小権限とガードレールです。
- ワイルドカードを削除し、アクションとリソースの範囲を厳密に限定します。
- 権限境界と SCP を使用して、最大権限を制限します。
- サードパーティロールには外部 IDを必須にし、信頼ポリシーの範囲を限定します。
- 有効期間の長いキーより、短期間だけ有効なロール認証情報を優先します。
- アクセスアナライザーを使用して、リスクのある権限や未使用の権限を検出します。
倫理的な実行
IAM の権限昇格によって、アカウント全体の権限が得られる可能性があります。概念実証で止め、永続的なバックドアを作成したり、元に戻せない本番ポリシーを変更したりせずに経路を示してください。ポリシーやロールに加えた変更は必ず元に戻し、作成したキーは削除してください。
共有ポリシーの書き換えなど、サービスに影響する手順は、事前にクライアントと調整してください。
確認テスト
IAM の権限昇格について理解できているか確認してください。
まとめ
IAM の設定ミスによって権限が昇格する仕組みを学びました。
- ポリシーアタッチ、PassRole、バージョンのロールバック、AssumeRole が主要な経路です。
- 同じパターンが AWS、Azure、GCP 全体で繰り返し現れます。
- Pacu と PMapper によって、実行可能な経路を自動的に発見できます。
- 最小権限、権限境界、外部 ID が防御策になります。
次は、クラウドアカウント間の永続化と横展開について学びます。
よくある質問
「IAM設定ミスの悪用」レッスンは無料ですか?
はい。「IAM設定ミスの悪用」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「IAM設定ミスの悪用」で何を学びますか?
クラウドでの権限昇格を学びます。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「IAM設定ミスの悪用」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- クラウドの攻撃対象領域
- クラウドリソースの列挙
- IAM設定ミスの悪用
- 永続化とラテラルムーブメント