無効なサブリソースのインテグリティ値の検出

説明

JavaScript または CSS ソースファイルに無効なサブリソース整合性(SRI) integrity 値が含まれているか、crossorigin 値が欠落していることが判明しました。これらのスクリプトやリンクが悪意を持って変更されていないことを確認してください。疑わしい場合は、スクリプトのオーナーに連絡するか、既知の良いバージョンに置き換えてください。

対処法

すべての識別されたリソースは、ターゲット・アプリケーションと同じドメインからソースされるべきです。これが不可能な場合、src 値を実装するすべてのscript タグ、またはhref 値を実装するlink タグに Sub-Resource Integrity を含めることを強く推奨します。SRIインテグリティ値を生成するには、SRIハッシュツールを使用するか、以下のコマンドのいずれかを実行します:

  • cat FILENAME.js | openssl dgst -sha384 -binary | openssl base64 -A
  • shasum -b -a 384 FILENAME.js | awk '{ print $1 }' | xxd -r -p | base64

これらのツールの出力は、追加属性として追加する必要があります。特に、integritycrossorigin=anonymous またはcrossorigin=use-credentials のいずれかです。有効なSRI保護スクリプトタグの例を以下に示します:

<script src="https://example.com/example-framework.js"
    integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
    crossorigin="anonymous"></script>

詳細

ID集計CWE種類リスク
829.2true829受動的中規模