135 Views
June 20, 26
スライド概要
2026年06月20日に開催されたオフラインイベント、[JAWS-UG福岡 #26 JAWS DAYS2026 re:Cap!!](https://jawsug-fukuoka.connpass.com/event/394528/)にLT資料です。
CTF から学ぶ AWS セキュリティ JAWS-UG福岡 #26 JAWS DAYS 2026 re:Cap!! 2026.06.20 / べこみん
自己紹介 名前:べこみん 所属:クラスメソッド株式会社 JAWS-UG 福岡、Security-JAWS 好きなAWSサービス: AWS WAF、AWS Security Hub 趣味: 娘や猫と遊ぶこと
JAWS DAYS 2026 で CTF に参加してきた
CTF とは? Capture The Flag 情報セキュリティの知識・技術を駆使して「フラグ」を見つけ出す競技 Jeopardy 形式 Attack & Defense カテゴリ別の問題を解いて 自チームのサーバを守りつつ ポイントを競う 相手チームを攻撃 最近の日本では Jeopardy 形式が多い
直近の AWS × CTF 2026/03/07 JAWS DAYS 2026 ごーとんカップ 参加! 2026/05/17 Security-JAWS CTF 参加! 2026/06/13 JAWS-UG 神戸 CTF 大会 未参加 + 常設で遊べるCTFも(後述)
CTF = 攻撃者の目線を体験すること Blue Team(防御側) Red Team(攻撃側) ← CTF 設定ミスを防ぐ 脆弱性を見つける 監視・検知する 権限を奪取する インシデント対応 情報を窃取する
攻撃手法の定石を知る = 守るべきポイントが分かる CTF 頻出パターン 3 選を紹介 ① ② ③ sts get-caller-identity SSRF × IMDSv1 S3 権限設定ミス
① まずは偵察: sts get-caller-identity $ aws sts get-caller-identity "Account": "123456789012" "Arn": "arn:aws:iam::123456789012:role/LambdaExecRole" 攻撃者がクレデンシャルを入手したら最初にやること 「自分は誰か?」を確認 → アカウントID・ARN・ロール名を把握 対策:最小権限の原則。不要なクレデンシャルは即ローテーション
② SSRF で IMDSv1 の脆弱性を突く 攻撃者 Web アプリ IMDS 169.254.169.254 SSRF リクエスト送信 リクエストを中継 クレデンシャル返却 $ curl http://169.254.169.254/latest/meta-data/ iam/security-credentials/MyRole IMDSv1 は単純な GET リクエストで IAMロールの一時クレデンシャルを取得可能 対策:IMDSv2 を強制( HttpTokens: required)
SSRF で IMDSv1 の脆弱性を突かれた事件 引用元: SSRF攻撃による Capital Oneの個人情報流出についてまとめてみた | piyolog
③ S3 のよくある権限設定ミス # 認証なしでバケット内容を列挙 $ aws s3 ls s3://target-bucket --no-sign-request バケットの公開設定 リスト権限が Everyone や Authenticated Users に付与されている ポリシーの Principal: * --no-sign-request で誰でもオブジェクトを取得・列挙可能 ACL の設定ミス 「Any Authenticated AWS User」は自社ユーザーではなく全AWSユー ザー 対策: S3 Block Public Access の有効化 / バケットポリシーの定期監査 ※ 権限設定だけでなく、 S3でもパストラバーサルは起こりうる
おまけ S3 署名付き URL のパストラバーサル S3 はフラット構造 — ディレクトリ階層は存在しない ../ を含むキーも S3 上ではただの文字列として扱われる しかし署名付き URL 生成時に SDK やアプリがパスを「正規化」すると ... → ../ が解決され、意図しないオブジェクトの URL が発行される AWS 公式 SDK 自体にもこの脆弱性が存在していた JAWS DAYS 2026 でも詳しく解説されています [F6] S3はフラットである — AWS公式SDKにも存在した、署名付き URLにおけるパストラバーサル脆 弱性 松井 遼太朗 / Eui Chul Chung(GMO Flatt Security) blog.flatt.tech/entry/signed_url_path_traversal
その他の頻出パターン Lambda 環境変数のシークレット 環境変数にハードコードされた認証情報を取得 公開 EBS スナップショット Publicなスナップショットからボリュームを復元し機密情報を奪取 Cognito Identity Pool の設定ミス 未認証ユーザーに過剰な権限が付与されている Git リポジトリへのシークレット漏洩 .git 履歴にコミットされたアクセスキーを発掘
みんなも CTF に 挑戦してみよう! 初心者でも楽しめる常設チャレンジを紹介
おすすめ① flAWS / flAWS2 flaws.cloud by Scott Piper(Summit Route) ▸ AWS セキュリティの一般的なミスを段階的に学べる ▸ 全 6 レベルの構成(初心者 → 中級者向け) ▸ SQL インジェクションや XSS ではなく AWS 固有の問題に特化 ▸ S3公開設定、IAMキー漏洩、メタデータ取得など実践的 ▸ 無料 ・ 常設 http://flaws.cloud/ http://flaws2.cloud/
おすすめ② The Big IAM Challenge bigiamchallenge.com by Wiz ▸ IAM ポリシーの設定ミスを見つけて悪用する全 6 ステップ ▸ S3 / SQS / SNS / Cognito など幅広いサービスが対象 ▸ ブラウザ上の Web CLI だけで完結、環境構築不要 ▸ 完了証明書がもらえる(リーダーボード付き) ▸ 無料 ・ 常設 https://bigiamchallenge.com/
まとめ CTF は「攻撃者の気持ちになれる」最高の学習手段 攻撃手法の定石を知る = 守るべきポイントが分かる flAWS や Big IAM Challenge で今日から腕試しを! 「やってみると、やられ方がわかる」
Thank You! #jawsugfuk #jawsug @beco_minn