Subresource Integrity (SRI)
CDNなど外部から読み込むファイル(JavaScriptなど)が改ざんされていないかを、指定したハッシュとの照合でブラウザが確認する仕組み。一致しなければ読み込みを拒否する。CDN侵害やサプライチェーン攻撃への対策になる。
問題は、ページがサードパーティCDNのスクリプトを読み込むとき、配信内容が想定どおりだと無条件に信じていることだ。CDNが侵害されたりファイルが差し替えられたりすると(サプライチェーン攻撃)、攻撃者のコードがあなたのページ上で、ユーザーの権限で動く。SRIはタグに暗号学的ハッシュ(integrity="sha384-...")を指定し、ブラウザがダウンロードしたファイルのハッシュを計算して、一致した場合のみ実行する。改ざんされた内容は自動的にブロックされる。対象は、CDNから読み込むすべての外部スクリプトとスタイルシートだ。制約は、内容が固定のファイルにしか使えないことと、意図的にバージョンを上げたらハッシュも更新が必要なこと。単純だが、フロントエンドのサプライチェーン攻撃に有効な対策である。Content Security Policyやサプライチェーン攻撃と関連が深い。