Hacker News

침투 테스터를 위한 CSP: 기본 사항 이해

침투 테스트를 위한 마스터 콘텐츠 보안 정책. CSP 구성 오류를 식별하고 웹 애플리케이션 보안 평가를 강화하는 방법을 알아보세요.

4 분 읽음

Mewayz Team

Editorial Team

Hacker News

모든 침투 테스터가 콘텐츠 보안 정책을 마스터해야 하는 이유

CSP(콘텐츠 보안 정책)는 XSS(교차 사이트 스크립팅), 데이터 삽입 및 클릭재킹 공격에 대한 가장 중요한 브라우저 측 방어 메커니즘 중 하나가 되었습니다. 그러나 침투 테스트 참여에서 CSP 헤더는 가장 자주 잘못 구성되고 오해되는 보안 제어 중 하나로 남아 있습니다. 100만 개가 넘는 웹 사이트를 분석한 2024년 연구에 따르면 12.8%만이 CSP 헤더를 배포했으며 그 중 거의 94%에는 악용될 수 있는 정책 약점이 하나 이상 포함되어 있는 것으로 나타났습니다. 침투 테스터의 경우 CSP를 이해하는 것은 선택 사항이 아닙니다. 이는 표면 수준 평가와 클라이언트의 보안 상태를 실제로 강화하는 보고서의 차이입니다.

웹 애플리케이션 평가를 수행하든, 버그 현상금 사냥을 수행하든, 민감한 고객 데이터를 처리하는 비즈니스 플랫폼에 보안을 구축하든 CSP 지식은 기본입니다. 이 가이드에서는 CSP가 무엇인지, 내부적으로 어떻게 작동하는지, 어디에서 실패하는지, 침입 테스터가 취약한 정책을 체계적으로 평가하고 우회할 수 있는 방법을 자세히 설명합니다.

콘텐츠 보안 정책이 실제로 하는 일

기본적으로 CSP는 HTTP 응답 헤더(또는 덜 일반적으로 태그)를 통해 전달되는 선언적 보안 메커니즘입니다. 스크립트, 스타일, 이미지, 글꼴, 프레임 등 어떤 콘텐츠 소스가 특정 페이지에서 로드되고 실행되도록 허용되는지 브라우저에 지시합니다. 리소스가 정책을 위반하면 브라우저는 이를 차단하고 선택적으로 지정된 엔드포인트에 위반을 보고합니다.

CSP의 원래 동기는 XSS 공격을 완화하는 것이었습니다. 입력 삭제 및 출력 인코딩과 같은 기존 XSS 방어는 효과적이지만 취약합니다. 단일 누락된 컨텍스트 또는 인코딩 오류로 인해 취약점이 다시 발생할 수 있습니다. CSP는 심층 방어 계층을 추가합니다. 공격자가 DOM에 악성 스크립트 태그를 삽입하더라도 적절하게 구성된 정책은 브라우저가 이를 실행하는 것을 방지합니다.

CSP는 화이트리스트 모델로 작동합니다. 알려진 불량 콘텐츠를 차단하는 대신 명시적으로 허용되는 콘텐츠를 정의합니다. 다른 모든 것은 기본적으로 거부됩니다. 이러한 보안 모델의 반전은 이론적으로는 강력하지만 실제로는 복잡한 웹 애플리케이션, 특히 CRM, 송장 발행, 분석, 예약 시스템과 같은 수십 개의 통합 모듈을 관리하는 플랫폼에서 엄격한 정책을 유지하는 것이 매우 어렵습니다.

CSP 헤더 분석: 지시문 및 소스

CSP 헤더는 각각 특정 리소스 유형을 제어하는 지시문으로 구성됩니다. 이러한 지시문을 이해하는 것은 대상의 정책을 평가하는 침투 테스터에게 필수적입니다. 가장 중요한 지시문에는 default-src(명시적으로 설정되지 않은 지시어에 대한 대체), script-src(JavaScript 실행), style-src(CSS), img-src(이미지), connect-src(XHR, Fetch, WebSocket 연결), Frame-src(내장 iframe) 및 object-src(Flash 또는 Java 애플릿과 같은 플러그인)가 포함됩니다.

각 지시문은 허용된 출처를 정의하는 하나 이상의 소스 표현식을 허용합니다. 이는 특정 호스트 이름(https://cdn.example.com)부터 더 광범위한 키워드까지 다양합니다.

'self' — 문서와 동일한 출처의 리소스를 허용합니다.

💡 알고 계셨나요?

Mewayz는 8개 이상의 비즈니스 도구를 하나의 플랫폼으로 대체합니다.

CRM · 인보이싱 · HR · 프로젝트 · 예약 · eCommerce · POS · 애널리틱스. 영구 무료 플랜 이용 가능.

무료로 시작하세요 →

'none' — 해당 유형의 모든 리소스를 차단합니다.

'unsafe-inline' — 인라인 스크립트 또는 스타일을 허용합니다(XSS 보호를 효과적으로 무력화함)

'unsafe-eval' — eval(), setTimeout(string) 및 유사한 동적 코드 실행을 허용합니다.

'nonce-{random}' — 일치하는 암호화 nonce로 태그가 지정된 특정 인라인 스크립트를 허용합니다.

'strict-dynamic' — 호스트 기반 허용 목록을 무시하고 이미 신뢰할 수 있는 스크립트에 의해 로드된 스크립트를 신뢰합니다.

data: — 데이터 URI를 콘텐츠 소스로 허용합니다.

실제 CSP 헤더는 다음과 같습니다. Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.jsdelivr.net 'nonce-abc123'; 스타일-src 'self' '안전하지 않은 인라인'; img-src *; 개체-src '없음'. 침투 테스터로서 귀하의 임무는 이 정책을 읽고 그것이 강한 곳, 약한 곳, 악용 가능한 곳을 즉시 식별하는 것입니다.

일반적인 CSP 구성 오류 침투 테스터 Shoul

Frequently Asked Questions

What is Content Security Policy (CSP) and why should pentesters care?

Content Security Policy is a browser-side security mechanism that controls which resources a webpage can load, helping prevent XSS, data injection, and clickjacking attacks. Pentesters must understand CSP because it is one of the most frequently misconfigured security controls — studies show nearly 94% of deployed policies contain exploitable weaknesses. Mastering CSP fundamentals allows pentesters to identify critical vulnerabilities that automated scanners often miss entirely.

What are the most common CSP misconfigurations pentesters find?

The most common CSP misconfigurations include using unsafe-inline and unsafe-eval directives, overly permissive wildcard sources, missing frame-ancestors directives that enable clickjacking, and whitelisting entire CDN domains that host attacker-controllable content. Pentesters should also look for missing directives like base-uri and form-action, which can be leveraged for phishing and data exfiltration even when script controls appear strict.

How can businesses protect their web applications with proper CSP headers?

Businesses should start with a strict CSP using nonce-based or hash-based script allowlisting instead of domain whitelists. Deploy in report-only mode first to identify breakages before enforcement. Platforms like Mewayz, a 207-module business OS starting at $19/mo, help teams manage their web presence securely while following modern security best practices across all digital touchpoints.

What tools do pentesters use to evaluate CSP effectiveness?

Pentesters commonly use Google's CSP Evaluator, browser developer tools, and Burp Suite extensions to analyze CSP headers for weaknesses. Manual testing remains essential — automated tools miss context-dependent bypasses like JSONP endpoints and Angular template injection on whitelisted domains. A thorough assessment combines automated scanning with manual review of each directive against known bypass techniques and the application's specific technology stack.

Mewayz 무료로 사용해보기

CRM, 인보이싱, 프로젝트, HR 등을 위한 올인원 플랫폼. 신용카드 불필요.

오늘부터 더 스마트하게 비즈니스를 관리하세요

30,000+개의 비즈니스에 합류하세요. 영구 무료 플랜 · 신용카드 불필요.

이것이 유용하다고 생각하시나요? 공유하세요.

이를 실전에 적용할 준비가 되셨나요?

Mewayz를 사용하는 30,000+개 기업과 함께하세요. 영구 무료 플랜 — 신용카드 불필요.

무료 체험 시작 →

행동할 준비가 되셨나요?

오늘 Mewayz 무료 체험 시작

올인원 비즈니스 플랫폼. 신용카드 불필요.

무료로 시작하세요 →

14일 무료 체험 · 신용카드 없음 · 언제든지 취소 가능