Webアプリ開発者のためのセキュリティ入門:OWASP Top 10 2025「Software Supply Chain Failures(ソフトウェアサプライチェーンの障害/脆弱性)」

Laravel

OWASP Top 10 を通じて、Webアプリケーションのセキュリティを学んでいきましょう。

OWASPとOWASP Top10についてはこちら。

https://biz.addisteria.com/what_is_owasp_top10/

今回は最新のOWASP TOP10 2025*で3位の座に輝いたSoftware Supply Chain Failures(ソフトウェアサプライチェーンの障害/脆弱性)について解説します。

※2025年版は現在 Release Candidate(候補版)として公開されており、正式版では内容が調整される可能性があります。

Laravelアプリケーション開発時の対策や、バイブコーディング(生成AIコーディング)でも役立つ対策も考えていきますね。

Software Supply Chain Failures(ソフトウェアサプライチェーンの障害/脆弱性)

公式ページはこちら:

こちら、コミュニティでの投票では、栄えあるナンバーワンを獲得したとのこと。困る人が多かった証です。

ちなみにOWASPでは、脆弱性リスクランキングを決める際に、データ以外にもコミュニティ投票も活用しています。

Software Supply Chain Failures(ソフトウェアサプライチェーンの障害)とは、ソフトウェアを構築・配布・更新する過程での問題や侵害のことです。

自分が書いたコードは安全でも、使っているライブラリやツールに問題があれば、アプリ全体が危険にさらされされてしまうリスク

テストした際には、脆弱性が実際に発生する率が最も高かった(5.19%)とあります。具体的には、下記のようなケースが該当します。

  • 脆弱性のひそむコンポーネント(ライブラリ)を使ってしまう

  • 古くなりサポートされていないソフトウェア、システム、コンポーネント等を使ってしまう

  • 更新後に互換性をテストしていない

いってみれば「役立つ」と思って内部にいれた見方が、実はスパイだった!みたいな感じでしょうか。たちが悪いですよね。

なぜこの攻撃が人気なのか?攻撃者の視点で考える

実は、サプライチェーン攻撃は、攻撃者にとって非常に効率的かつ魅力的です。下記のような攻撃が可能となります。

  1. 人気のあるライブラリに脆弱性を見つける(または仕込む)
  2. のライブラリを使っている企業を一斉に攻撃する

一つの脆弱性で、何千・何万もの企業を同時に攻撃できるわけです。

例えば、2019年には信頼できる大手ベンダー「SolarWinds」がマルウェアに侵入され、そのアップデートを通じて約18,000の組織が被害を受けたとされています。

正規のアップデートプロセスを通じて攻撃が広がったため、防ぐことが非常に困難でした。

CWE(共通脆弱性タイプ)

このカテゴリーに含まれる主なCWE(脆弱性分類)は次のとおりです。

  • CWE-477:廃止された(古い)機能を使用している

  • CWE-1104:メンテナンスされていないサードパーティ製コンポーネントの使用

  • CWE-1329:更新できないコンポーネントへの依存

  • CWE-1395:脆弱性のあるサードパーティ製コンポーネントへの依存

対策

この脆弱性に対して、下記のような対策が挙げられます。

  • ソフトウェア部品表(SBOM)を管理する
    使用しているソフトウェア全体のSBOMを把握し、中央で管理する。

  • 依存関係を継続的にチェックする

  • 使っていない依存関係を削除する

  • 常にコンポーネントと依存関係のバージョンをチェック

  • よくある脆弱性をチェック
    CVEとNVDをチェック。メールアラートにも登録しておく。プロセスを自動化。

  • 公式のコンポーネントのみを使う
  • 必要なときだけアップグレードする
    どのバージョンの依存関係を使うか考慮し、必要なときだけ更新する
  • メンテナンスされていないコンポーネントがないかチェック
  • 定期的にCI/CD, IDEを更新
  • CI/CDパイプラインのコンポーネントも管理対象に

Laravelでの対策

Laravelで開発する際には、各種ライブラリを使用します。そういった際に、信頼できないライブラリを使わないようにしましょう。

目安としては、GitHubのページを確認して、下記を満たしていることが挙げられます。

  • 公式または信頼できる組織が開発している
  • 定期的に更新されている
  • 多くの人に使用されている(ダウンロード数・評価)

ちなみに、ライブラリを入れたときに【severity vulnerability】というメッセージが表示されることがあります。

found 1 high severity vulnerability
run npm audit fix to fix them, or npm audit for details

これは脆弱性が発見されたというWarningです。無視せず、必ず対応しましょう。

ぐぐると対応例はあります。

実際に脆弱性警告が出たときの対処法を書いた記事もあるので、ご興味あれば参考にしてください。

バイブコーディング(生成AIコーディング)での注意点

最近の生成AIツールは、コマンド実行前に許可を求めるようになっているものが多いです。

セキュリティリスクを減らすために有効です。生成AIがコマンドを実行して外部のライブラリをインストールする際には、何をいれるか、チェックしておくことをおすすめします!

勝手におかしなものをいれないよう、チェックする。これが一番大事かと思います。

まとめ

今回の項目は、外部から持ち込まれる脆弱性というたちが悪い項目といえます。コミュニティ投票で栄えある(?)1位に輝いたことからも、困っている人が多いと推察されます。

ただ、いれたライブラリの依存関係をすべてチェックし、さらにチェックしつづけるって、なかなか大変です。

ですが悪意ある人達からみれば、脆弱性のあるライブラリを見つけて、このライブラリを使っている人を一斉攻撃すれば良いので、非常に効率的な手法です。

今後もなくなることはなさそうですね。

悩ましい部分ですが、まずは「あやしげなものはいれない」。シンプルですが、ここをしっかり徹底していきましょう。

OWASP Top10で学ぶセキュリティ、4個目の項目はこちら。

Laravel Laravelセキュリティ owasp セキュリティ

生成AIを使ったコーディングに興味がある あなたへ

バイブコーディングセミナープレゼント

バイブコーディングセミナーの一部を無料でプレゼント!

プレゼント詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版テキストに加え、Laravel8版~Laravel11版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新版テキストに加え、Laravel8版からLaravel11版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 ご好評につき、最新版に対応した改訂版を2025年7月に発売
書店やAmazon等のオンラインショップにて販売中です。 詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。ご好評につき最新版対応の改訂版発売。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました