무결성 속성 누락

Missing Integrity Attribute

설명

HTML 문서에서 외부 리소스를 로드할 때 무결성(Subresource Integrity, SRI) 검증 속성이 없는 경우 발생하는 취약점입니다. SRI를 사용함으로써 소스코드상 사용되는 외부에서 호스팅되는 파일(CDN 등)이 있을경우 해당 외부 파일이 조작되지 않았는지를 검증할 수 있습니다. 이를 통해 외부 호스팅 파일이 해커로써 변조되었을 경우 발생할 수 있는 다양한 취약점들을 (예: XSS를 통한 고객 계정/정보 탈취, 내부에서 사용하는 앱 정보 탈취 및 공격 등) 방지할 수 있습니다.

잠재적 영향

  • Content Manipulation (컨텐츠 변조): 외부 리소스를 변조하여 악의적인 코드 실행을 유발할 수 있습니다.

해결 방법

  • 외부 리소스를 로드할 때 반드시 "integrity" 속성을 추가하여 무결성을 검증하도록 합니다.

취약한 코드 및 안전한 코드 예시

취약한 코드

<script src="https://example.com/script.js"></script>

안전한 코드

<script
  src="https://example.com/script.js"
  integrity="sha384-OgVRvuATPupdUSgWVsKllsZZAgvFiTpjlPdSdj0eGVcI/A5efowlBbInEKwdsA5l"
  crossorigin="anonymous"
></script>

설명:

  • 취약한 코드: 이 코드에는 "integrity" 속성이 없어 외부 리소스 변경 시 탐지가 어렵습니다.

  • 안전한 코드: 무결성 속성을 사용하여 외부 리소스의 변조 여부를 확인합니다.

참조

Last updated