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

Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy

PHP勉強会@東京 第187回の発表資料です。
https://phpstudy.connpass.com/event/391794/

Avatar for hideki kinjyo

hideki kinjyo PRO

May 27, 2026

More Decks by hideki kinjyo

Other Decks in Programming

Transcript

  1. 自己紹介 • 金城秀樹 / きんじょうひでき • GitHub: @o0h / 𝕏

    : @o0h_ • アイコンは美味しい鮭親子丼の写真です • 来週の今頃は札幌にいます • 最近はPodcastをやっています • ハッシュタグ: #readlinefm 
  2. 参考記事(日本語) • 前に書いた: 『昨今のComposerは(サプライチェーンアタックについて)どうなって るんすかね??って軽く調べ - 大好き!にちようび』 https://daisuki.nichiyoubi.land/entry/2026/04/03/005936 • あと、コドモンさんの記事:

    『できることから始めるPHPプロジェクトのOSSサプライチェーン攻撃 対策 - コドモン Product Team Blog』 https://tech.codmon.com/entry/2026/04/27/092802 • 自分が勢いで書いたコンテンツより、整ってるんじゃないですかねぇ 
  3. 何をされているのか • Composerに「オートロード」ありますよね • 「PSR-4」とかのやつです • ↑の場合、composer.jsonにnamespaceと対応ディレクトリを指定する • オートロードの種別に `files`

    というものがあります • これは「クラス(like)定義」以外に使います • 有名どころで言うと、symfony/polyfillとかがメッチャ使う • 指定されたファイルが自動で読み込まれるようになる • PSR-4などは、「遅延読み込み」のための仕組み 
  4. レジストリ利用者としてのComposer • 今回はデフォルトレポジトリ = Packagistの話に限定しますが • Packagist自体は、パッケージの実コードやバイナリを持たない • パッケージの本体は、(主に)GitHubを案内している •

    代わりに、メタ情報だけを管理している • 提供しているパッケージ名と、バージョンの情報 • 各バージョンに対応するハッシュ(Gitコミットハッシュ) 
  5. 先日のlaravel-langのやつ • Laravel Lang Compromised with RCE Backdoor Across 700+

    Versions https://socket.dev/blog/laravel-lang-compromise • 権限を取られた(断定してないかも)様子がある • 攻撃者が、org内のコード等を操れる状態に • CIの履歴を見ると、生々しく現場の様子が残ってる 
  6. 予定されているもの・関心が寄せられているもの • (5/27) An Update on Composer & Packagist Supply

    Chain Security https://blog.packagist.com/an-update-on-composer-packagist- supply-chain-security/ • Coming in the next weeks and months: • Minimum-release-age / cooldown • Longer-term direction: • Mandatory MFA across Packagist.org • Packagist.org hosting immutable build artifacts directly w/SLSA build provenance, Sigstore attestation 
  7. 予定されているもの・関心が寄せられているもの • (5/27) An Update on Composer & Packagist Supply

    Chain Security https://blog.packagist.com/an-update-on-composer-packagist- supply-chain-security/ • Coming in the next weeks and months: • Minimum-release-age / cooldown • Longer-term direction: • Mandatory MFA across Packagist.org • Packagist.org hosting immutable build artifacts directly w/SLSA build provenance, Sigstore attestation  補足: 現状、Packagistで配布するメタ情報にある`time`フィールドは、 パッケージの作者が任意に書き換え可能なので信頼しちゃ駄目
  8. 過去に出した資料 • Composerのメタ情報収集の流れについて • Composer 2.0って何? どう変わるの? 読んでみました! (2020) https://speakerdeck.com/o0h/lets-read-composer2

    • 作って理解するComposer <クイックコース> (2024) https://zenn.dev/o0h/books/phpcon-2024-composer-ws • プラグインの仕組みについて • 作って遊ぼう!Composer Plugin (2022) https://speakerdeck.com/o0h/phperkaigi-2022-composer-plugin-b