Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】OWASP AppSec Days France 2025: Learning To Defend The Global Supply Chain Together

2025年09月30日に「Dev.to」が公開したITニュース「OWASP AppSec Days France 2025: Learning To Defend The Global Supply Chain Together」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

OWASP AppSec Days France 2025では、ソフトウェアサプライチェーン全体のセキュリティ強化が議論された。依存関係やCI/CDパイプラインの脆弱性対策、パスキー活用が重要だとされた。チーム連携と共通理解で、より安全なソフトウェア開発を目指すことが強調された。

ITニュース解説

OWASP AppSec Days France 2025は、ソフトウェアのセキュリティに関する最新の知識と課題を共有するためにフランスのパリで開催されたイベントである。このイベントでは、今日のソフトウェア開発において、システムの表面的な防御だけでなく、ソフトウェアが作られる過程全体、すなわち「サプライチェーン」全体での精密なセキュリティが必要不可欠であるという重要なメッセージが示された。パリの街から信号機が姿を消しても、ドライバーたちが明確なルールと注意力によって安全な交通を維持しているように、ソフトウェアの世界でも、目に見えるセキュリティ対策だけでなく、より深いレベルでの協調と規律が求められると強調された。

イベントには150人以上のセキュリティ専門家、開発者、OWASPメンバーが集まり、8つのセッションを通じて現代のセキュリティが抱える課題について議論した。特に注目されたのは、ソフトウェアサプライチェーンにおける攻撃とその防御、CI/CDパイプラインのセキュリティ、そしてパスワードに代わる新しい認証技術であるパスキーに関する発表であった。

Roni Carta氏による「Breaking the Chain: Advanced Offensive Strategies in Software Supply Chains」と題されたセッションでは、私たちが開発するソフトウェアは自分たちで書いたコードだけでなく、外部から取り込んだ様々な「依存関係(dependencies)」によって成り立っていることが指摘された。これらの依存関係は、それぞれ独自の開発プロセスとそれに関わる人々を持っているため、ソフトウェアの出所や信頼性を完全に把握することは非常に難しい。現代のソフトウェアサプライチェーンは複雑な迷路のようであり、小さな隙間が大きな情報漏洩やシステム侵害につながる可能性がある。

氏は具体的な攻撃手法として、「依存関係の混同(Dependency Confusion)」を挙げた。これは、npmのようなパッケージ管理システムにおいて、攻撃者が有名なパッケージに似た名前や、まだ登録されていないパッケージ名を装って悪意のあるコードを公開し、開発者が誤ってそれをインストールしてしまうことで、リモートでコードが実行される(RCE)といった被害を引き起こすものだ。また、開発者が利用するコマンドラインツールであるNPXが悪用され、特定のファイルを通じてサイレントに悪意のあるコードが実行される可能性や、オープンソースプロジェクトの「メンテナー」と呼ばれる管理者のアカウントが、メールやドメインに関する巧妙な詐欺によって乗っ取られ、それが広範囲に悪影響を及ぼす事例も紹介された。さらに、ソフトウェアのビルド段階で利用されるGitHub Actionsのキャッシュが汚染されたり、識別子(SHA)の衝突が起こったりすることで、実際に実行されたコードの内容が不明確になる脆弱性も指摘された。

これらの脅威に対して、Roni Carta氏は実践的な対策を多数提示した。具体的には、依存するパッケージのバージョンを厳密に指定したり、コードの完全なハッシュ値(SHA)で固定したりすること、CI(継続的インテグレーション)環境で自動実行されるインストールスクリプトを無効にすること、そしてメンテナーに対して多要素認証(MFA)と最小限の権限(least privilege)を強制することが重要だと述べた。さらに、ビルドキャッシュを強力な鍵で隔離すること、成果物を管理するアーティファクトレジストリとトークンを厳重にロックダウンすること、そしてタイプミスを誘うような似た名前のパッケージ(タイポスクワット)を監視することの必要性を強調した。ビルド環境での外部への通信を制限する(egress controls)設定や、攻撃を検知するためのハニートークンを配置すること、そしてSLSA(Supply-chain Levels for Software Artifacts)のような標準に沿った、外部の影響を受けない「ハーメチックビルド(hermetic builds)」に移行することで、予期せぬ攻撃の侵入経路を塞ぐことができると説明された。

次のセッションでは、François Proulx氏が「Living Off the Pipeline: From Supply Chain 0-Days to Predicting the next XZ-like attacks」と題し、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインが現代における「新たな境界(new perimeter)」となっていると主張した。CI/CDパイプラインは、コードの変更を自動でテストし、ビルドし、デプロイする重要なプロセスだが、多くの場合、高い特権で動作し、信頼できない入力をも信頼された成果物に変えてしまう危険性をはらんでいる。氏は、CIパイプラインを「RCE as a service」(サービスとしてのリモートコード実行)とまで呼び、その脆弱性を強調した。

氏は、最近のサプライチェーン攻撃でよく見られる具体的な攻撃シナリオを紹介した。例えば、プルリクエスト(PR)にテンプレートやスクリプトのインジェクション(不正なコードの埋め込み)を仕込む「Pwn requests」や、Dependabotのような自動化ツールが悪用され、弱い認証ロジックを迂回して権限が昇格するケースなどが挙げられた。氏は、pull_request_targetの誤用、ブランチフィルターの欠如、最新バージョンをピン留めせずに利用すること、Makefile経由での実行、そして過剰な権限を持つGitHubトークンがワークフロー内で使われることなど、様々なCIプラットフォームに共通して存在する脆弱性について、デモンストレーションを交えて解説した。これらの問題は、ほとんどのCIプラットフォームがソースコード管理(SCM)のイベントを信頼しすぎているために発生すると述べた。この問題に対処するため、氏は自身のチームが開発したオープンソーススキャナー「Poutine」を紹介した。このツールは何千ものリポジトリや古いブランチに対してもルールを適用し、実際に悪用可能な脆弱性を特定できる。このツールの初期分析では、約20万件の発見があり、そのうち約1万件は信頼性の高い脆弱性であったという。実際に、2024年8月のUltralytics/YOLOに関する脆弱性や、12月のMoneroマイナーによる攻撃など、現実世界での類似の事案も報告されており、CI/CDパイプラインのセキュリティ対策の重要性が裏付けられた。

François Proulx氏は、CI/CDパイプラインを本番システムと同様に扱い、厳格なイベントフィルターやブランチフィルターを適用すること、完全なSHAでバージョンを固定することの重要性を強調した。また、有効期間の短いトークンを利用し、必要に応じて一時的に起動する「エフェメラルランナー(ephemeral runners)」を優先的に利用すべきだと助言した。これらの対策を講じることで、CI/CDパイプラインのセキュリティを大幅に向上させることができると結論付けた。

そして、Daniel Garnier-Moiroux氏のセッション「Des applis sans mot de passe: Passkeys en pratique」では、多くの人々が日々利用するパスワードが抱える課題が取り上げられた。パスワードは覚えにくく、使い回しによって複数のサービスでリスクを高めるほか、フィッシング詐欺の主要な標的となっている。氏は、パスワードに代わる、よりシンプルで安全な認証技術として「パスキー(Passkeys)」を強く推奨した。パスキーは、WebAuthnという国際標準の仕様に基づいており、暗号技術の強みを最大限に活かして、ログインの利便性と安全性を両立させる。

パスキーの基本的な仕組みは次のようになる。ユーザーがウェブサイトにログインしようとすると、そのサイトは「チャレンジ(challenge)」と呼ばれるデータを発行する。ユーザーのブラウザは、このチャレンジを、PCやスマートフォンのOSが提供する認証機能(プラットフォーム認証器)や、YubiKeyのような物理的な認証デバイス(ローミング認証器)に送る。これらのデバイスは、生体認証(指紋や顔)やPINコードなどでユーザーが本人であることを確認した後、デバイス内に安全に保管されている「秘密鍵」を使ってチャレンジに署名する。署名されたデータと、秘密鍵に対応する「公開鍵」がサーバーに送られ、サーバーは公開鍵を使って署名を検証することで、ユーザーが正当な本人であることを確認する。このプロセスにおいて、パスワードのような秘密の情報がデバイスから外部に出ることは一切ないため、パスワードの漏洩リスクが根本的に解消される。また、公開鍵は特定のウェブサイトのドメインと紐付けられているため、偽のサイト(フィッシングサイト)では認証が成立せず、ユーザーが騙されることもない。

デモンストレーションでは、3種類のパスキーの利用例が紹介された。一つは、スマートフォンやノートパソコンに内蔵されたプラットフォーム認証器で、指紋や顔認証でロック解除する方式。これは「持っているもの(デバイス)」と「あなた自身(生体情報)」を組み合わせた認証である。もう一つは、YubiKeyのような物理的なローミング認証器とPINコードを組み合わせる方式で、これは「持っているもの(YubiKey)」と「知っていること(PIN)」を組み合わせる。さらに、Bluetoothやローカルネットワークを介して、iPhone、Android、タブレットといった異なるデバイス間で認証を行う「クロスデバイスログイン」も実演され、こちらも生体認証でロック解除されていた。Daniel氏は、パスキー自体は生体認証ではなく、生体認証はあくまでデバイス内の秘密鍵をアンロックするための手段であり、生体情報がデバイス外に送信されることはないという重要な点を強調した。

これらのセッションを通じて、イベント全体で共通して語られたのは、「サイバーレジリエンス」は単一のチームやツールだけで実現できるものではない、という点である。パッケージエコシステムにおける些細な連携不足が実際のインシデントに発展したり、CI/CDパイプライン内部で、フィルターされていないイベント、バージョンが固定されていないイメージ、長期間稼働するランナーといった要素が組み合わさることで、単なるプルリクエストが悪意のあるコードのリモート実行につながる危険性があったりする。また、パスワードが繰り返し攻撃者に悪用されるのは、人間が騙されやすいためであり、パスキーのようなより安全な認証技術も、それが開発者、IT部門、セキュリティ部門といった関係者全員の協力のもと、誰もが簡単に使えるように導入されて初めて真価を発揮する。

これら複雑なセキュリティ課題に対して、一つで全てを解決できる「銀の弾丸」のような技術は存在しない。必要なのは、部門間の連携、コミュニケーション、そして真のチームワークである。セキュリティチームは開発者に対して、SHAの固定、ブランチやイベントのフィルター、CIでのインストールスクリプト無効化といった、実践的で分かりやすいガイドラインを提供する必要がある。プラットフォームチームやSRE(サイト信頼性エンジニア)チームは、一時的なランナー、隔離されたキャッシュ、有効期間の短いトークンなどを整備しなければならない。認証情報を管理するチームは、WebAuthnを大規模に展開していく必要がある。これらの取り組みは、単に技術を導入するだけでなく、それらをスムーズに利用できるような環境整備、適切なドキュメントの提供、そして問題が発生した際の迅速なフィードバックの仕組みがなければ実現できない。

イベントでは、これを「決定論の文化(culture of determinism)」と表現した。SLSAはビルドプロセス全体に対する共通の地図を与え、「ポリシーをコード化する(policy as code)」アプローチはCI/CDパイプラインにおける共通の安全策を築く。そしてパスキーは、フィッシング攻撃に対する共通の答えとなる。しかしこれらは、一貫したアプローチで継続的に取り組んでこそ意味がある。これらの要素が連携し、足並みを揃えて運用されることで、攻撃者が隠れる場所は減り、インシデント発生時の対応は迅速化される。そして、「弱点を発見した」という状況から「この種の過ちは二度と起こさない」という習慣が生まれ、それが単なる希望ではなく、確実なものとなるのだ。

パリの街が信号機なしで秩序を保っているように、ソフトウェアセキュリティも、単に表面的な規制を設けるだけでなく、関係者間の共通理解、絶え間ない注意、そして確立された協調によってのみ、混沌から秩序へと移行できる。OWASP AppSec Days Franceは、この重要な教訓をソフトウェア開発の世界にもたらした。セキュリティは、特定のチームや個人の責任ではなく、開発者を含む全員が参加する「チームスポーツ」として捉えるべきである。単一のパッケージ選択の誤りがエコシステム全体に広がり、一つのパスワードフィッシングで長年の努力が水の泡となるような現代において、この協力体制の重要性は計り知れない。

取り組むべき課題は山積しているが、それは良い習慣を築くことから始まる。良い習慣は、問題への意識を高め、具体的な改善策を提供するところから生まれる。20年以上にわたり、OWASPコミュニティがこのミッションを果たし続けていることは、希望の光である。世界中で開催されるAppSec Daysや他のセキュリティイベントで、人々が自身の経験を共有し、問題点と解決策について議論する姿は、まさにこの共同作業の象徴と言えるだろう。

関連コンテンツ

関連IT用語