安全でないサブリソース完全性の実装
本記事では、自動診断機能の発見課題「安全でないサブリソース完全性の実装/Unsafe Implementation of Subresource Integrity (SRI)」について、SecurityScorecard社が公開している解説記事を一部日本語訳したものに加えて、SecurityScorecard社への確認結果や、当課題についてのSecure SketCHの見解も記載しています。
本課題の理解や解決にご活用ください。
「安全でないサブリソース完全性の実装」について | 重要度とスコア | 解決方法 | Secure SketCHの見解
1.「安全でないサブリソース完全性の実装」について
「サブリソース完全性(SRI)」は、外部から読み込まれるリソース(スクリプト、スタイルシート、フォントなど)が改ざんされていないことを保証するためのセキュリティ機能です。
これは、開発者が期待されるコンテンツの暗号学的ハッシュ値を指定することで機能します。
ブラウザがリソースを取得すると、そのハッシュを検証してから実行します。
ハッシュが欠落している、誤っている、または一致しない場合、ブラウザはリソースの完全性を検証できず、アプリケーションはサプライチェーン攻撃や悪意のあるスクリプトの挿入に対して脆弱になります。
SRIを使用しない場合:
- 外部リソースが改ざんされても検知できません。
- 攻撃者は、侵害されたCDNやサードパーティのスクリプトを通じて悪意の
あるコードを注入する可能性があります。 - これにより、クロスサイトスクリプティング(XSS)、データの流出、その他のセキュリティ侵害が発生する恐れがあります。
2.重要度とスコア
具体的には、SRI関連の被害事例やCVEが発行されたことなどがあります。
|
[事例] Polyfillサプライチェーン攻撃 https://www.itmedia.co.jp/enterprise/articles/2406/29/news057.html |
|
[CVE-2025-57936] WordPress Subresource Integrity (SRI) Manager Plugin <= 0.4.0 - Broken Access Control Vulnerability https://www.cve.org/CVERecord?id=CVE-2025-57936 |
これらの状況を踏まえて、SecurityScorecard社は、2025年10月下旬頃、当課題の侵害リスクと脅威レベルを以下のように変更しました。
- 侵害リスク:低 → 高
- 脅威レベル:参考 → 高
3.解決方法
SRIに関しては、以下のような手法で対策していくことが理想的です。
-
外部リソースの特定
サードパーティのドメインからアセットを読み込むすべての<script>や<link>タグを確認します。 -
有効なハッシュの生成
リソースのコンテンツに対して SHA-256 / SHA-384 / SHA-512 ハッシュを作成するために、専用ツールを使用します。 - HTMLタグの更新
integrityとcrossorigin属性を追加します。
また、外部リソースをセルフホスティングすることでも、本課題は解決します。ただし、提供元での更新は自動で反映されなくなるため、継続的な更新作業が必要になる点にご留意ください。
なお、Google Tag Manager、Adobe Tag Manager、Google Fonts APIなど、SRIをサポートしていないサービスもございます。これらのサービスから配信されるスクリプトは、2026年3月のSecurityScorecard社のアップデートにより、本課題の検出対象から除外されています。
これらを利用しているにもかかわらず検出されている場合は、誤検知の可能性がございます。
一方で、CDNやスクリプトがバージョン管理をサポートしていない、提供元のライセンスによりセルフホスティングが認められていないなどの理由で、SRIの実装もセルフホスティングもできないケースがございます。
SecurityScorecard社に確認したところ、このような場合は、外部リソースの定期的な脆弱性スキャンや変更の監視といった代替管理策を講じたうえで、解決申請を行う方法が案内されました。
申請は個別に審査されるため必ず受理されるとは限りませんが、受理されれば、低下していたスコアがもとに戻る可能性がございます。受理されなかった場合は、SRIの実装またはセルフホスティングにより検出されなくなるまで、本課題は残り続けます。
|
※CSP(Content Security Policy)の設定は、本課題の解決方法として認められていません。CSPの設定のみを理由とした解決申請は受理されませんので、ご注意ください。 なお、本記事では以前、SRIを実装できない場合の代替策としてCSPの設定をご案内しておりました。CSPの設定を理由に解決申請をされた場合は、別途代替管理策を講じたうえで、改めて解決申請をご検討ください。 |
代替管理策による解決申請を行う場合は、以下の手順で実施してください。
Tips
解決申請の詳しい手順については、別ページに記載がありますので、ご参照ください。
参考:発見事項の詳細を確認する/解決申請を提出する
①「代替管理策で対処済み」を選択する
解決申請時、解決した方法として「解決方法で代替管理策で対処済み」を選択してください。

②代替管理策を講じた旨を申請する
以下の内容を英語で記載し、提出してください。
- integrity属性の付与やセルフホスティングができない具体的なリソース・スクリプト、およびできない理由の簡単な技術的説明(例:利用しているサードパーティのCDNでデプロイのたびにコンテンツが入れ替わる、提供元のライセンスによりセルフホスティングが認められていないなど)
- 根本的なリスクを軽減するために講じている代替管理策(例:外部から読み込むリソースの定期的な脆弱性スキャンと修正期限の設定、サードパーティリソースの予期しない変更の監視、提供元によるセキュリティ対策の証明の確認など)
※以下は、申請時の例文です。[ ]内は対象のスクリプト名などに置き換え、対策内容などは実際の運用に合わせて記載してください。
※例文は記載内容の参考としてご活用ください。受理の可否はSecurityScorecard社の個別の審査により判断されるため、同様の内容で申請した場合でも、必ず受理されるとは限りません。

4.Secure SketCHの見解
昨今のサプライチェーンリスクの高まり、サブリソース完全性(SRI)が求められるようになったインシデントの発生やCVEが公開されたことなど、当課題の侵害リスクや重要度が大幅に引き上げられた背景には一定の理解を示します。
その一方で、サイバーセキュリティの専門家が多数所属しているSecure SketCHチームとしては、当課題を「現時点(2026年10月)では最優先対策事項として扱うべき発見事項とは断言できない」と考えています。
リスク・脅威の観点だけでなく、対策実施の難易度、サイト表示における可用性への懸念などがあるためです。
なお、本検出事項によって、スコアが下がってしまっている場合は当課題を解決していただく必要がございますので、「3.解決方法」に記載の本質的な対策もしくは代替管理策による解決申請が必須となります。
SecurityScorecard社は、本課題に限らず、定期的に検出項目やスコア影響の改善・見直しを行っているため、Secure SketCHチームの現状見解をSecurityScorecard社にフィードバック・共有していきます。