OWASP Top 10 を通じて、Webアプリケーションのセキュリティを学んでいきましょう。
OWASPとOWASP Top10についてはこちら。
https://biz.addisteria.com/what_is_owasp_top10/
今回は最新のOWASP TOP10 2025*で8位の座のSoftware or Data Integrity Failures(ソフトウェアまたはデータの整合性の不具合)について解説します。
こちら、前回の2021年版でも同じく8位でした。ただ以前は「Software and Data Integrity Failures」となっており、地味に名前が変わっています^^

Laravelアプリケーション開発時の対策や、バイブコーディング(生成AIコーディング)でも役立つ対策も考えていきますね。
Software or Data Integrity Failures(ソフトウェアまたはデータの整合性の不具合)
Software or Data Integrity Failures(ソフトウェアまたはデータの整合性の不具合)について、公式説明ページはこちら:
これは、本物かどうか確認せずに、コードやデータを信頼して使ってしまう脆弱性です。
以前扱ったSoftware Supply Chain Failuresと似ていますが、より、実際の開発工程の中で起こるリスクといえます。
例えば、下記のような状況が該当します。
- 信頼できないリポジトリ、CDN、プラグインを使う
- 出所不明のライブラリをインストールする
CWE(共通脆弱性タイプ)
このカテゴリーに含まれる主なCWE(脆弱性分類)は次のとおりです。
-
CWE-829:信頼できない制御領域からの機能の包含
-
CWE-915:動的に決定されるオブジェクト属性の不適切な制御
-
CWE-502:信頼できないデータのデシリアライゼーション
対策
このリスクに対して、下記のような対策が挙げられます。
-
デジタル署名などを用いる
-
信頼できるリポジトリのみを使用
-
コードレビュープロセスの確立
-
CI/CDパイプラインに適切な分離、設定、アクセス制御があることを確認
-
シリアライズデータの検証
Laravelでの対策
インストールするライブラリは、公式のもののみとする。また、composerやnpmを通じてインストールする、といったことが挙げられます。
Laravelでは、composerを通じてインストールしたライブラリはcomposer.lockファイルでバージョン管理が行われます。
同様にnpmを通じてインストールしたライブラリはpackage-lock.jsonファイルでバージョン管理が行われます。
これらのファイルを使うことで、開発環境と本番環境など環境を変えても、同じバージョンが常にインストールされ、予期しない変更や改ざんを防げます。
また、新たにライブラリを入れるときは信頼できるところからいれるようにしましょう。目安としては、GitHubのページを確認して、下記を満たしていることが挙げられます。
- 公式または信頼できる組織が開発している
- 定期的に更新されている
- 多くの人に使用されている(ダウンロード数・評価)
バイブコーディング(生成AIコーディング)での注意点
バイブコーディング(生成AIコーディング)ツールを使用して認証機能を搭載する場合は、生成AI側で必要なライブラリ等をインストールすることがあります。
インストール前に、何をいれるかしっかりチェックしておきましょう。
さいごに
今回の脆弱性は、以前扱ったSoftware Supply Chain Failuresと似ています。こちらは、ソフトウェアを構築・配布・更新する過程での問題や侵害のことです。
今回のSoftware or Data Integrity Failuresは、開発の中で使うライブラリやデータの整合性に関連するものです。
ただいずれも、外部のものを使うことによる脆弱性という意味では一致しています。
当然と言えば当然ですが、外部の物を使えば、おかしなものを仕込まれるリスクは高まります。公式のものや信頼できるものをいれるようにしましょう。

それにしても、セキュリティを考えると常に「悪意ある人」がいる前提で考える必要を感じますね。
OWASP Top10で考えるセキュリティ、次はこちら。
(準備中)
-120x68.png)