CSP v3(Content Security Policy Level 3)
개요
웹 애플리케이션이 점점 복잡해지고, 다양한 외부 스크립트와 리소스를 포함하게 되면서, **스크립트 인젝션(XSS)**을 비롯한 콘텐츠 관련 보안 위협이 증가하고 있습니다. 이를 방지하기 위한 핵심 웹 보안 기술 중 하나가 바로 **Content Security Policy(CSP)**입니다. 그중 CSP v3는 최신 보안 위협과 개발자 요구를 반영해 등장한 **강화된 콘텐츠 보안 정책의 최신 사양(Level 3)**으로, 더욱 유연하고 정교한 리소스 제어가 가능합니다.
1. 개념 및 정의
**CSP(Content Security Policy)**는 브라우저가 로드 및 실행할 수 있는 콘텐츠의 출처를 제어하는 HTTP 응답 헤더 또는 <meta> 태그 기반 정책입니다. CSP v3는 이전 버전(CSP v1, v2)의 한계를 보완하고, 스크립트 정확성 향상, 정책 보고 기능 개선, 향상된 nonce/hash 메커니즘 등을 포함합니다.
- 목적: XSS, 데이터 인젝션, 클릭재킹 등의 공격을 방지
- 기반 방식: 화이트리스트 기반 리소스 로딩 제어
- CSP v3 주요 초점: 스크립트 정확성, 보고서 개선, 정책 유연성
2. 특징
특징 | 설명 | 효과 |
강화된 스크립트 제어 | strict-dynamic, nonce-, hash- 기반 스크립트 제한 | XSS 탐지 및 방지 강화 |
보고서 개선(reporting) | report-to 디렉티브 추가 | 위반 발생 시 서버로 보고 가능 |
정책 계층화 지원 | policy-uri, report-only 모드 개선 | 테스트/배포 시 유연한 설정 가능 |
정적 자원 제한 강화 | 이미지, 스타일, 프레임 등 세분화된 제어 가능 | 공급망 공격 방어 강화 |
보안성과 운영 유연성 간 균형을 고려한 최신 콘텐츠 보안 전략
3. 구성 요소
구성 요소 | 설명 | 역할 |
script-src | 허용된 자바스크립트 출처 설정 | XSS 방지의 핵심 디렉티브 |
style-src, img-src 등 | 각 리소스별 정책 분리 | 세분화된 보안 정책 설정 가능 |
nonce-<base64> | HTML 요소에 일회성 값 부여 | 동적 스크립트 사용 가능성 확보 |
report-to | 위반 로그를 지정된 엔드포인트로 전송 | 보안 모니터링 시스템 연계 |
trusted-types | DOM 조작 보안 레이어 제공 | 취약한 API 사용 방지 보완 수단 |
CSP는 단일 설정이 아닌 다중 보안 옵션 조합으로 구성됨
4. 기술 요소
기술 요소 | 설명 | 활용 방식 |
Nonce 기반 정책 | HTML 내 동적 스크립트 태그 제어 | nonce- 속성 기반 허용 |
Hash 기반 검증 | 고정 스크립트 블록만 허용 | SHA256 등으로 해시값 사전 정의 |
Strict-Dynamic | 신뢰된 스크립트만 재귀 로딩 허용 | 동적 로딩 제어 강화 |
Trusted Types | DOM API 사용 제어 보안 정책 | 취약성 제거 및 강화된 XSS 방지 |
CSP Violation Reporting API | report-uri, report-to 지원 | 위반 시 서버로 자동 로그 전송 |
웹 개발과 운영에서 CSP는 보안 DevOps의 핵심 요소로 진화 중
5. 장점 및 이점
장점 | 설명 | 기대 효과 |
XSS 방어 강화 | 무단 스크립트 실행 방지 | 사용자 정보 탈취 위험 감소 |
정책 테스트 가능 | Content-Security-Policy-Report-Only 지원 | 정책 사전 적용 및 테스트 용이 |
보안 운영 자동화 | 위반 보고 기능으로 SIEM 연계 가능 | 공격 탐지 자동화 및 대응 시간 단축 |
규정 준수 지원 | PCI-DSS, OWASP Top 10 등 대응 | 보안 감사 대응력 향상 |
보안성과 개발 효율성을 동시에 확보 가능한 실질적 기술
6. 주요 활용 사례 및 고려사항
활용 사례 | 설명 | 고려 사항 |
금융/결제 사이트 | XSS 공격에 민감한 사용자 입력 보호 | nonce 사용 시 서버 렌더링 대응 필요 |
SaaS 관리자 대시보드 | 다양한 외부 스크립트 포함 시 안정적 제어 필요 | 제3자 스크립트 정책 검토 필수 |
퍼블릭 API 기반 웹앱 | 외부 이미지, 리소스 접근 제어 강화 | CORS 정책과 함께 고려 필요 |
도입 시 백엔드-프론트엔드 협업 기반 설정 전략 수립 필수
7. 결론
CSP v3는 기존 CSP보다 진화한 보안 기능을 제공하며, 특히 XSS 방지, 정책 보고, 동적 자원 제어 측면에서 매우 강력한 성능을 제공합니다. 단순 설정이 아닌 보안 설계 전략의 일부로 도입되어야 하며, 보안 DevOps, 웹 프론트엔드 보안 강화, 보안 규정 대응에서 필수적인 기술로 자리잡고 있습니다. 향후 웹 플랫폼의 보안 기반으로 더욱 확장될 전망입니다.