Topic

SRI(Subresource Integrity)

JackerLab 2025. 5. 29. 04:00
728x90
반응형

개요

웹 개발에서 CDN(Content Delivery Network)을 통해 외부 JavaScript, CSS 등의 리소스를 로드하는 방식은 일반화되어 있습니다. 그러나 이러한 외부 리소스는 해커의 공격 표적이 될 수 있으며, 무단 수정 시 사용자에게 악성 코드가 배포될 위험이 있습니다. 이를 방지하기 위한 핵심 기술이 바로 **Subresource Integrity(SRI)**입니다. SRI는 리소스의 무결성을 보장함으로써 웹 페이지의 신뢰성을 높이고 보안을 강화하는 역할을 합니다.


1. 개념 및 정의

**Subresource Integrity(SRI)**는 웹 페이지에서 외부 리소스를 로드할 때, 해당 리소스의 해시값(SHA256, SHA384, SHA512 등)을 HTML 태그에 명시함으로써, 실제 로드된 리소스의 무결성을 검증하는 보안 기술입니다.

  • 목적: 외부 리소스의 위·변조 방지
  • 형식: HTML 태그에 integrity 속성과 crossorigin 속성 추가
<script src="https://cdn.example.com/app.js"
        integrity="sha384-abcd1234..."
        crossorigin="anonymous"></script>

2. 특징

특징 설명  
해시 기반 검증 콘텐츠가 사전에 지정된 해시와 일치해야 함 위·변조된 리소스 실행 차단
브라우저 내장 기능 브라우저가 자동으로 무결성 확인 개발자 구현 부담 없음
CORS와 연동 필요 crossorigin 속성이 필요할 수 있음 교차 출처 요청 시 대응 가능

브라우저 차원에서의 간단하고 강력한 보안 메커니즘 제공


3. 구성 요소

구성 요소 설명 역할
integrity 속성 해시 알고리즘과 결과값 지정 (sha256, sha384, sha512) 리소스 검증 기준 제공
crossorigin 속성 요청 시 CORS 정책 지정 (anonymous, use-credentials) 브라우저 리소스 접근 제어
해시 생성 도구 openssl, subresource-integrity CLI, 브라우저 플러그인 등 HTML 삽입용 SRI 해시 생성

SRI는 정적 자원 배포 시 자동화 스크립트와 함께 연동 사용 가능


4. 기술 요소

기술 요소 설명 활용 방식
SHA-256/384/512 해시 알고리즘 선택 가능 보안 수준에 따라 결정
Base64 인코딩 해시값 표현 방식 HTML 속성 값으로 삽입 가능
CSP와 병행 사용 CSP의 require-sri-for 지시어로 강제 적용 가능 정책 기반 보안 통제 강화
CI/CD 통합 빌드 시 자동 해시 생성 및 HTML 반영 SRI 자동화 가능

정적 자산 관리와 DevSecOps 연계에 적합한 보안 기능


5. 장점 및 이점

장점 설명 기대 효과
리소스 무결성 보장 변경된 스크립트 실행 차단 악성 코드 유입 방지
브라우저 네이티브 지원 별도 라이브러리 불필요 가벼운 보안 기능 구현 가능
보안 강화 CDN 리스크 관리 가능 제3자 코드 신뢰성 확보
DevOps 자동화 적합 해시 생성 및 적용 자동화 용이 대규모 프로젝트에도 적용 가능

단순한 구조로 큰 보안 효과를 제공하는 대표적인 프론트엔드 보안 기술


6. 주요 활용 사례 및 고려사항

활용 사례 설명 고려 사항
CDN 기반 JS/CSS 로드 외부 스크립트 안전하게 포함 해시 불일치 시 로딩 실패 가능
오픈소스 라이브러리 사용 Bootstrap, jQuery 등에서 사용 라이브러리 업데이트 시 해시 갱신 필요
정적 사이트 배포 시 JAMstack 환경에서 보안 강화 빌드 자동화 스크립트와 연계 필요

동적 자산에는 부적합하므로 정적 파일에만 적용해야 함


7. 결론

Subresource Integrity(SRI)는 간단한 해시 비교 방식으로 CDN 등 외부 리소스의 무결성을 검증할 수 있는 효율적인 웹 보안 기술입니다. 정적 자원 중심의 현대 웹 개발 환경에 매우 적합하며, CI/CD 파이프라인과 통합하여 자동화하는 것이 바람직합니다. 웹 개발자라면 기본적으로 적용해야 할 실질적 보안 수단이며, CSP와 병행 사용 시 더 강력한 보안 레이어를 구축할 수 있습니다.

728x90
반응형

'Topic' 카테고리의 다른 글

Counterfactual Explainer  (1) 2025.05.29
Active Learning Loop  (2) 2025.05.29
CSP v3(Content Security Policy Level 3)  (0) 2025.05.29
Dolthub  (1) 2025.05.29
Cell-Free mMIMO(Cell-Free Massive MIMO)  (1) 2025.05.28