신뢰할 수 없는 제어 영역에서 기능 포함

설명

JavaScript 또는 CSS 소스 파일이 서브 리소스 무결성(Sub-Resource Integrity, SRI) 없이 서드파티 도메인에서 포함됩니다.

공격자가 이러한 서드파티 리소스를 호스팅하는 사이트를 손상시킬 경우, 악성 스크립트나 CSS 데이터를 주입하여 애플리케이션 사용자를 손상시키려 할 수 있습니다.

그러나 SRI가 적용된다면, 공격자가 스크립트 내용을 수정하려 할 때, 브라우저는 스크립트를 로드하지 않으며 애플리케이션 사용자는 악성 변경으로부터 보호받을 것입니다.

수정 방법

모든 식별된 리소스는 대상 애플리케이션과 동일한 도메인에서 소싱되어야 합니다.

이것이 불가능할 경우, 모든 script 태그가 src 값을 구현하거나, link 태그가 href 값을 구현할 때 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.1 true 829 Passive Low

링크