Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSに止められる覚悟してますか?

Avatar for モリゾー モリゾー
September 26, 2026

 AWSに止められる覚悟してますか?

Avatar for モリゾー

モリゾー

September 26, 2026

More Decks by モリゾー

Other Decks in Programming

Transcript

  1. ABOUT ⾃⼰紹介 モリゾー 𝕏 @morizo_1984 フリーランス ⽇頃 萬屋です(アプリ作ったり、AI作ったり、インフラ作ったり、PdMしたり、⼈投げたり) 今⽇ 実際にハッキングを受けた体験の話

    趣味 スノーボード / MMA‧キックボクシング / 釣り / ウイスキー お断り 実プロダクト名‧⾃社実額は出さない。⾦額は Sysdig 公開値。 出典: このページは⼀次情報なし 2 / 22
  2. TAKEAWAYS 今⽇持ち帰ってほしいこと 01 02 03 公式隔離 ≠ クリティカルパスを 1アカウントに アカウント制限

    Lambda に出さない 複数プロジェクトを載せない 漏洩キー向けの隔離ポリシーと、アカ 同期の AWS Lambda 呼び出しが⽌まる AWS Organizations の前提は、アカウ ウントの⼀部サービス制限は別物。 と、箱は⽣きていても SLO は割れる。 ントが硬い境界であること。 出典: AWSCompromisedKeyQuarantineV3 / Well-Architected Security Pillar — AWS account management and separation 3 / 22
  3. AGENDA 02 01 舞台 02 起きたこと 全部は落ちていない。公式の隔離と、観測したアカウント制限は別物 03 侵⼊⼝と規模 漏れたのは隣の案件のキー。検知は出ていた

    起きたこと 04 封じ込めと代替 05 明⽇から 全部は落ちていない。公式の隔離と、観測したアカウン ト制限は別物 到達と反応、aws login、使わない⽣成 AI の Deny 06 持ち帰り Lambda に出さない。アカウントは硬い境界。BCP 費を取る 出典: このページは⼀次情報なし 6 / 22
  4. 02 起きたこと 全部は落ちていない。 動いていた ⽌まった 403 Amazon ECS — 画⾯‧API‧ワーカー

    AWS Lambda Amazon RDS Amazon ECS Schedule Amazon S3 原本 東京リージョン障害ではない 出典: 観測(Support / Health)。公式カタログの⼀⽂ではない Invoke / GetFunction ⽌まった スケジュール起動のタスク 管理者権限でも同じ。 起動済みの箱は⽣きている。審査キューだけ⽌まる。 AWS がセキュリティ事由で アカウントの⼀部サービスを⼀時制限 約 27 時間 7 / 22
  5. 02 起きたこと 公式の隔離と、観測したアカウント制限は別物 公式 • 観測 漏洩した認証情報に、対象を絞った隔離ポリシーを付ける • 管理者でも Lambda

    Invoke / GetFunction が 403 • Support: 「⼀部 AWS サービスの利⽤を⼀時制限した」 “targeted quarantine policies to the exposed credentials” • 既存リソースには影響を与えない “while not impacting the existing resources” • V3 Deny には lambda:CreateFunction / ecs:CreateService / bedrock:InvokeModel がある • lambda:InvokeFunction は Deny に無い ≠ V3 だけでは説明できない 注 Knowledge Center はまだ V2 表記。資料ではカタログ準拠で V3。 出典: AWSCompromisedKeyQuarantineV3 (edited 2026-03-16) / How AWS responds to exposed credentials 8 / 22
  6. AGENDA 03 01 舞台 02 起きたこと 全部は落ちていない。公式の隔離と、観測したアカウント制限は別物 03 侵⼊⼝と規模 漏れたのは隣の案件のキー。検知は出ていた

    侵⼊⼝と規模 04 封じ込めと代替 05 明⽇から 漏れたのは隣の案件のキー。検知は出ていた 到達と反応、aws login、使わない⽣成 AI の Deny 06 持ち帰り Lambda に出さない。アカウントは硬い境界。BCP 費を取る 出典: このページは⼀次情報なし 9 / 22
  7. 03 侵⼊⼝と規模 漏れたのは受付基盤のキーではない(フィクション) AWS Account 本番基盤 • 開発基盤 別プロジェクト Amazon

    ECS Amazon ECS 開発者 IAM AWS Lambda AWS Lambda ⻑期シークレットキー アクセスキーは⻑期認証情報である “Access keys are long-term credentials” • MFA なし アクセスキー付き IAM ユーザーはアカウントのセキュリティリスクである “IAM users with access keys are an account security risk” 制限がアカウント単位なら、隣の案件の鍵が SLO を割る 出典: Manage access keys for IAM users / accounts are a hard boundary 10 / 22
  8. 03 侵⼊⼝と規模 LLMjacking の規模は、⾃社の実額ではない 漏洩キー Amazon Bedrock ⼤量呼び出し Amazon GuardDuty

    Critical アカウントの ⼀部制限 ⾦額は⾃社実額ではない(Sysdig 公開値)。盗んだクラウド認証情報で⽣成 AI を回す型。 Claude 2.x Claude 3 Opus $46,080 / day over 1,000 トークン平均 $0.016 × 毎分 50 万 × 24h × 4 より新しいモデルでは、1 ⽇あたり 10 万ドル超になり得 リージョン る $100,000 / day Bedrock API 2024-07-11 85,000 件中 61,000 件が 3 時間 数時間で請求が跳ねる。⾃社の請求額そのものではない Amazon Bedrock • データを盗まず、請求だけ膨らませる(cost harvesting に近い型) • 確認できた成功は、複数リージョンからのモデル⼤量呼び出しと、踏み台 IAM の作成 • 案件 DB のスナップショット持ち出し、パスワード保管庫、ソース取得は否定できた 出典: Sysdig 2024-05-06 / 2024-09-18 11 / 22
  9. 03 侵⼊⼝と規模 検知は出ていた。⾜りなかったのは到達と反応 Amazon GuardDuty • Finding: AttackSequence:IAM/CompromisedCredentials 認証情報が侵害された攻撃シーケンス •

    AWS Budgets Cost Anomaly Detection は専⽤アイコンな し。 Default severity: Critical 既定の重要度は Critical • 午前に出ていた。制限まで約半⽇ • 侵⼊を⽌める装置ではない。Finding を出すところまでが仕事 • ⼈が⾒るか、EventBridge で⾃動対応するかは利⽤者側の設計 検知まで最⼤約 24 時間。 リアルタイムは GuardDuty。 課⾦通知は副。両⽅オンが最低ライン。 ⾜りなかったのは検知ではない。到達と反応。 出典: GuardDuty attack sequence finding types / Cost Anomaly Detection (up to 24 hours) 12 / 22
  10. AGENDA 05 01 舞台 02 起きたこと 全部は落ちていない。公式の隔離と、観測したアカウント制限は別物 03 侵⼊⼝と規模 漏れたのは隣の案件のキー。検知は出ていた

    明⽇から 04 封じ込めと代替 05 明⽇から 到達と反応、aws login、使わない⽣成 AI の Deny 到達と反応、aws login、使わない⽣成 AI の Deny 06 持ち帰り Lambda に出さない。アカウントは硬い境界。BCP 費を取る 出典: このページは⼀次情報なし 16 / 22
  11. 05 明⽇から 明⽇からチームで実践できること(1) 1 2 3 Amazon GuardDuty Critical を当番へ

    MFA + aws login 未使⽤⻑期キーを ⾃動無効化 Critical はチャットと当番に届ける。メー ル 2 名では埋もれる。 ⼈間のコンソールは MFA 必須。⻑期キーを ~/.aws/credentials に置かない。 侵⼊⼝は、コンソール未使⽤の⼈⽤キーが ⻑期のまま残っていたこと。 課⾦側は AWS Budgets(閾値)と Cost Anomaly Detection(最⼤約 24 時間)。リ アルタイムは GuardDuty。 AWS CLI 2.32.0 以降の aws login は、最 ⼤ 12 時間の⼀時認証。⽬標は IAM Identity Center。ワークロードは IAM ロール。 AWS Config ルール iam-user-unused-credentials-chec k と Systems Manager ランブックで無効化 する。 出典: aws login: CLI 2.32.0+ / 最⼤12時間 / GuardDuty attack sequence finding types 17 / 22
  12. 05 明⽇から 明⽇からチームで実践できること(2) 4 5 Bedrock を使わないなら、明⽰ Deny GuardDuty severity

    7+ を⾃動封じ 「使っていない」は許可ではない。攻撃者は、盗んだキーでモデルを有 効化するところまでやる。 GuardDuty 本体に「IAM を⾃動隔離する」機能はない。 単⼀アカウントなら IAM の明⽰ Deny。Organization があるなら SCP。 公式経路は、Finding を Amazon EventBridge に出し、Lambda や SSM でキーを無効化すること。 AWS Organizations + ラベル「SCP」(SCP に専⽤アイコンなし) 最低ラインは severity 7 以上(High / Critical)でキー無効化とチャッ ト。 SCP は管理アカウントには効かない。管理アカウントに本番を置かな いことが前提。 ⼈間の承認を挟む設計でも構わない。夜間に半⽇放置しないことが条 件。 出典: SCPs don't affect management account / GuardDuty findings with EventBridge / Bedrock IAM examples 18 / 22
  13. AGENDA 06 01 舞台 02 起きたこと 全部は落ちていない。公式の隔離と、観測したアカウント制限は別物 03 侵⼊⼝と規模 漏れたのは隣の案件のキー。検知は出ていた

    持ち帰り 04 封じ込めと代替 05 明⽇から Lambda に出さない。アカウントは硬い境界。BCP 費 を取る 到達と反応、aws login、使わない⽣成 AI の Deny 06 持ち帰り Lambda に出さない。アカウントは硬い境界。BCP 費を取る 出典: このページは⼀次情報なし 19 / 22
  14. 06 持ち帰り 不正アクセスされると、アカウントの⼀部は⽌まる 01 02 不正アクセスされると、 クリティカルパスを アカウントの⼀部は⽌まる Lambda に出さない

    ⽌め⽅は「全サービス即死」ではない。 ページ画像化を Lambda へ外出ししていたため、審査キュー掲載が⽌ まった。 観測できたのは、Lambda の新規呼び出しと参照が 403 になったこ と。起動済みの ECS は残った。 すでに起動していたアプリケーション(ECS 上の画⾯‧API‧ワー カー)は動き続けた。 それでもクリティカルパスがその API なら、SLO は割れる。 公式の隔離(キー単位、既存は⽌めない)と、アカウント制限は別 物。両⽅を想定する。 クリティカルパスの処理は、起動中のアプリケーション内部で完結さ せる⽅が強い。 サーバーレスを使うなら、その前提で BCP を書く。 出典: AWSCompromisedKeyQuarantineV3 / How AWS responds to exposed credentials 20 / 22
  15. 06 持ち帰り アカウントは硬い境界。BCP 費を取る 03 1つの AWS アカウントに複数プロジェクトを載せない アカウントは硬い境界である。本番を開発‧検証から隔離するには、アカウント単位の分離を強く推奨する “accounts

    are a hard boundary” 隣の案件の⼈⽤キーが、同じアカウントの制限経由で本番のページ画像化を⽌めた。社名は出さない。 出典: AWS account management and separation 21 / 22
  16. REFERENCES 参考⽂献 公式⼀次情報 業界調査 01 AWSCompromisedKeyQuarantineV3 (edited 2026-03-16) 11 Sysdig,

    LLMjacking, 2024-05-06 https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCompromisedKeyQuarantineV3.html https://www.sysdig.com/blog/llmjacking-stolen-cloud-credentials-used-in-new -ai-attack 02 How AWS responds to exposed credentials https://repost.aws/articles/ARoBXj63rWSt2Ww7XKlVV72g/how-aws-responds-to-exposed-credentials-and-how-you-can-protect-your-account 12 Sysdig, Growing Dangers of LLMjacking, 2024-09-18 https://www.sysdig.com/blog/growing-dangers-of-llmjacking 03 Potential account compromise Knowledge Center https://aws.amazon.com/premiumsupport/knowledge-center/potential-account-compromise/ 04 Manage access keys for IAM users https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html 05 Login for AWS local development (aws login) https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sign-in.html 06 GuardDuty attack sequence finding types https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-attack-sequence-finding-types.html 07 AWS account management and separation https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/aws-account-management-and-separation.html 08 Service control policies https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scp.html 09 Cost Anomaly Detection https://docs.aws.amazon.com/cost-management/latest/userguide/manage-ad.html 10 Identity-based policy examples for Amazon Bedrock https://docs.aws.amazon.com/bedrock/latest/userguide/security_iam_id-based-policy-examples.html 出典: AWS Architecture Icons Release 24 (2026.07.31) / Trademark Guidelines 22 / 22