Slide 1

Slide 1 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 1 あなたの知らない”サプライチェーン攻撃”を語る セキュリティ LT Night (コラボ企画) Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 Findy TECH BATON × セキュリティ若⼿の会 2025年12⽉4⽇(⽊) morioka12 (@scgajge12) バグハンター視点による サプライチェーンの脆弱性

Slide 2

Slide 2 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 2 Profile Name:森岡 優太 (Yuta Morioka) SNS :morioka12 (@scgajge12) ● Job:Security Engineer ○ 2020~2023:Web や Cloud などの脆弱性診断 ○ 2023~2025:Web ペネトレーションテスト ○ 2025~ now:セキュリティ事業(PS)の BizDev, コンサル ● Admin: ○ セキュリティ若⼿の会  (共同創設者 & 幹事1期) ○ Bug Bounty JP Podcast (ホスト & スピーカー) ● Other: ○ Bug Bounty Hunter since 2020 ○ AWS Community Builder since 2024 (Security) https://scgajge12.github.io/

Slide 3

Slide 3 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 3 1. ソフトウェアサプライチェーンの脆弱性

Slide 4

Slide 4 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 4 ソフトウェアサプライチェーンの脆弱性 [前提パス] 簡略概要 “Software Supply Chain” の “脆弱性” ソフトウェアの開発から提供、運⽤までの 全要素 (コード、システム、開発環境、⼈、組織) セキュリティ上の弱点

Slide 5

Slide 5 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 5 ソフトウェアサプライチェーンの脆弱性 [前提パス] 主な脅威フェーズ ソース ● 依存ライブラリの 既知の脆弱性 ○ Log4Shell ● 新規コンポーネント の悪意のある混⼊ ○ タイポ スクワッティング スロップ スクワッティング (react-dom → reac-dom) ビルド(環境) ● CI/CDパイプラインの 侵害 ○ ビルド環境の改ざん ● ソースコード リポジトリの侵害 ○ 認証情報の漏洩 配布 ● アップデート サーバーの侵害 ○ ⽔飲み場型攻撃 ● コンテナレジストリ の脆弱性 ○ 不正なコンテナイメージ

Slide 6

Slide 6 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 6 2. バグハンター視点による調査プロセス バグハンター(Bug Hunter):脆弱性を発⾒して報告する⼈

Slide 7

Slide 7 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 7 ソフトウェアサプライチェーンの脆弱性 バグハンター視点によるサプライチェーン攻撃 🏢 いち組織/企業に対して ソフトウェアサプライチェーン攻撃に 有⽤な脆弱性はないか?  標的型攻撃 > 無差別型(ばら撒き型)攻撃 寄りな外部視点

Slide 8

Slide 8 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 8 ソフトウェアサプライチェーンの脆弱性 バグハンターの主な調査プロセス ①情報収集  許可された調査対象(企業)  から情報収集する ● ソース:サブドメイン, ディレクトリ, ファイル, Prod/Dev/Stg 環境 ● 環境:GitHub, GitLab, npm/PyPI/Maven … ● 配布:Docker Hub, S3 , API ②解析 ファイルやコンテナなどを 特定して解析する ● JavaScript, Source Map ● package.json, ライブラリ ● パッケージ, アカウント ● .git, env, コンテナイメージ   →脆弱性, 設定不備, 認証情報 ③検証 悪⽤して最終的に脅威を ⽰せるかを検証する ● 3要素 (CIA) ○ 機密情報の漏洩 ○ データの改ざん ○ サービスの停⽌

Slide 9

Slide 9 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 9 ソフトウェアサプライチェーンの脆弱性 バグハンターの調査プロセス(例1) JavaScript (npm)の場合 1. ドメイン上から JavaScript や package.json のファイルを列挙する a. JS file は抽象構⽂⽊(AST)に変換させたり静的解析する 2. npm organisation の名前空間とリポジトリの公開状況を確認する a. パブリックパッケージ, プライベートパッケージ 3. 乗っ取り可能なパッケージ名が存在する場合 a. 名前空間を乗っ取り、悪意のあるコードを含むパッケージを登録する 4. ゴール:ドメイン上のサービスで悪意のあるコードを実⾏させる

Slide 10

Slide 10 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 10 ソフトウェアサプライチェーンの脆弱性 バグハンターの調査プロセス(例2) S3 bucket の場合 (Web スキミング) 1. ドメイン上や Google 検索で企業が保有する S3 bucket を収集する a. JS file から列挙したり、GitHub や Google で検索したりなど 2. S3 bucket に書き込み権限が許可されているかを検証する a. もしくは既に存在しない S3 bucket 名が使われたままでないか 3. S3 bucket が書き込み可能 or 乗っ取れる場合 (Subdomain Takeover) a. JS file を上書きで改ざんする b. その JS file が Web アプリケーション上に script タグで埋め込まれている 4. ゴール:悪意のあるコード(XSS やスキミング)により、機密情報を窃取する

Slide 11

Slide 11 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 11 ソフトウェアサプライチェーンの脆弱性 バグハンターの調査プロセス(例3) コンテナイメージの場合 1. Docker Hub などから Docker イメージをダウンロードする 2. イメージ解析ツール(Dive や Dlayer)を⽤いて各レイヤーを調査する 3. ソースコード/.git/env などから認証情報が含まれている場合 a. GitHub Actions の認証トークン (write) → パイプラインの悪⽤ b. プライベート npm トークン (write) → プライベートパッケージの悪⽤ 4. ゴール:悪意のあるコードの挿⼊により、機密情報を窃取する a. read みの場合:読み取れるソースから脆弱性や認証情報がないかを調査する(loop)

Slide 12

Slide 12 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 12 ソフトウェアサプライチェーンの脆弱性 バグハンターの調査プロセス(例4) ソースコード全般の場合 1. ソースコードから読み込まれているパッケージ名を列挙する 2. タイポ スクワッティング/スロップ スクワッティングを特定する a. 存在しないパッケージ名/リポジトリ名/アカウント名/サブドメイン名 3. ゴール:誤字名で悪意のあるパッケージ等を登録して、                読み込ませて機密情報を窃取する  🤖最近では LLM によって⽣成されたコードにより、    存在しないパッケージ名が記載される事例あり / 幻覚(ハルシネーション)

Slide 13

Slide 13 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 13 3. バグハンターによる調査報告の事例

Slide 14

Slide 14 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 14 ソフトウェアサプライチェーンの脆弱性 バグハンターによる調査報告の事例 今回紹介する事例 ⼆選 1. 依存関係の混乱 (Dependency Confusion) a. 悪意のある npm パッケージをより⾼いバージョン番号でアップロードすることで、 パッケージマネージャーに誤ってそちらをインストールさせて任意コード実⾏ (RCE) 2. 認証情報の悪⽤ (Credential Abuse) a. Docker イメージから、GHS Token や以前のレイヤーに残留していた プライベート npm トークンを抽出し、内部パッケージを汚染して任意コード実⾏ (RCE)

Slide 15

Slide 15 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 15 ソフトウェアサプライチェーンの脆弱性 バグハンターによる調査報告の事例1 💀依存関係の混乱 / 💰報奨⾦$30,000〜$40,000 / 🏢PayPal, Apple など 1. GitHub などからターゲット企業の package.json ファイルを収集する a. パブリックパッケージ名とプライベートパッケージ名を発⾒! 2. npm の公開リポジトリには存在しないため、悪意のあるパッケージを公開する a. 特定したプライベートパッケージと同じ名前で、かつより⾼いバージョン番号を持つ 悪意のあるパッケージを公開リポジトリにアップロードする 3. 依存性のハイジャック a. パッケージマネージャーは、設定に基づき、パブリックとプライベートの両⽅から パッケージを検索する b. パッケージが両⽅で⾒つかった場合、バージョン番号が最も⾼い⽅をインストールする 仕組み (デフォルト設定や誤った設定)により、悪意あるパッケージが優先される https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610

Slide 16

Slide 16 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 16 PayPal が所有する package.json 悪意のある npm パッケージによる サーバー上の実⾏確認ログ

Slide 17

Slide 17 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 17 ソフトウェアサプライチェーンの脆弱性 バグハンターによる調査報告の事例2 💀認証情報の悪⽤ / 💰報奨⾦$50,500 / 🏢⾮公開 1. ドメイン上から JavaScript ファイルをスクレイピングして依存関係を解析する a. プライベートパッケージとその npm organization を発⾒! 2. GitHub や Google でプライベートパッケージを含むコードを検索する a. Google 検索で DockerHub から Docker イメージを発⾒! 3. Docker イメージを各レイヤーまで深く解析する (.git/env/package.json/Dockerfile/.npmrc) a. .git/config に GitHub Actions トークンを発⾒! b. ビルドレイヤーに残っていた .npmrc からプライベート npm トークン (write)を発⾒! 4. Exploit PoC: a. npm: プライベート npm パッケージにバックドア, npm install コマンドで任意コード実⾏ b. CI/CD: 機密性の⾼い環境変数の読み取り, 認証情報の窃取, 権限昇格 https://www.landh.tech/blog/20250211-hack-supply-chain-for-50k/

Slide 18

Slide 18 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 18 コンテナ内の .git/config Docker イメージ のビルドレイヤー (解析画⾯) Dockerfile が .npmrc ファイルをコピーして 最後のビルドステップでそれを削除していた → キャッシュが残っていた!

Slide 19

Slide 19 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 19 4. まとめ

Slide 20

Slide 20 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 20 ソフトウェアサプライチェーンの脆弱性 バグハンターによる着⽬点 ● 脆弱な設定による依存関係の悪⽤ ○ OSS, 依存ライブラリ, パッケージマネージャー ● タイポ スクワッティングや放置リソースによる悪意のある混⼊ ○ パッケージ名, リポジトリ名, イメージ名, アカウント名, サブドメイン名 ● ハードコードや証跡ログからの認証情報の悪⽤ ○ ソースコード, コンテナイメージ, 隠しディレクトリファイル ● CI/CD やインフラの設定不備による実⾏処理の改ざん ○ 権限設定の不備, 認証設定の⽋陥, 署名検証の不備      🔑 脆弱性, タイポ, 設定不備, 検証不備, 認証情報の露出 まとめ

Slide 21

Slide 21 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 21 (プチ紹介) DEF CON 33 - Bug Bounty Village “Advanced Offensive Strategies in the Software Supply Chain” セキュリティエンジニアやバグハンター向けの60分講演 (2025/08/09): 🎥 DEF CON 33 - Bug Bounty Village - Breaking the Chain - Advanced Offensive Strategies in the Software Supply Chain - Roni Carta (@lupin) & Adnan Khan.mp4

Slide 22

Slide 22 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 22 ソフトウェアサプライチェーンの脆弱性 Official References ● OWASP Cheat Sheet Series: ○ OWASP Software Supply Chain Security ○ OWASP Third Party JavaScript Management Cheat Sheet ○ OWASP NPM Security Best Practices ○ OWASP Docker Security Cheat Sheet ○ OWASP CI/CD Security Cheat Sheet ● Google, OpenSSF: SLSA (Supply-chain Levels for Software Artifacts) ● MITRE ATT&CK: Compromise Software Supply Chain ● GitHub: Supply Chain Security ● AI / LLM Security: ○ OWASP Top 10 for LLM Applications (LLM03:2025 Supply Chain) ○ Google Research Securing the AI Software Supply Chain ○ Promptfoo LLM Supply Chain Security

Slide 23

Slide 23 text

Findy TECH BATON「バグハンター視点によるサプライチェーンの脆弱性」@scgajge12 23 ご清聴ありがとうございました! Let’s enjoy Bug Hunting!