반응형
**CORS Misconfiguration(CORS 설정 오류)**를 정리해줄게.
🔥 1. CORS(Cross-Origin Resource Sharing)란?
정의:
CORS는 웹 브라우저가 다른 도메인의 리소스에 접근할 수 있게 허용할지 결정하는 정책이야.
브라우저에서만 강제되고, 서버에서 설정함.
- 출처(origin) = 프로토콜 + 도메인 + 포트
- 같은 출처 정책(Same-Origin Policy) 때문에, 기본적으로 다른 도메인 요청은 차단됨
- 서버가 명시적으로 허용해야 접근 가능
예시:
Access-Control-Allow-Origin: https://example.com
🔹 2. CORS Misconfiguration이란?
CORS Misconfiguration은 서버가 CORS 정책을 잘못 설정해서 공격자가 다른 출처에서 민감 데이터에 접근할 수 있는 상황을 말해.
즉:
👉 “서버가 너무 느슨하게 허용하거나, 악성 출처도 허용하는 상태”
🔹 3. 대표적인 잘못된 설정
1️⃣ 모든 출처 허용
Access-Control-Allow-Origin: *
- 인증 쿠키/토큰이 필요한 API는 위험
- 외부 사이트에서 사용자 데이터 탈취 가능
2️⃣ 동적 허용 잘못 구현
origin = request.headers['Origin'] Access-Control-Allow-Origin = origin
- 검증 없이 모든 Origin 반영 → 공격자 사이트도 허용
3️⃣ 자격 증명(Credentials)과 * 같이 허용
Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: *
- 브라우저가 인증 쿠키/세션까지 공격자 사이트에 전송 → 계정 탈취 가능
4️⃣ 잘못된 허용 도메인
- *.example.com을 허용하면서 evil.example.com도 포함되는 경우
🔹 4. 공격 시나리오
1️⃣ 사용자 세션 탈취
- 공격자가 악성 사이트에서 JS를 실행
- 느슨한 CORS 허용 → victim 사이트 API 호출
- 쿠키/세션이 공격자에게 노출
2️⃣ 민감 정보 노출
- API가 JSON으로 반환하는 사용자 정보 접근 가능
3️⃣ 권한 우회
- 공격자가 자신의 Origin에서 관리자 전용 API 호출 가능
🔹 5. 방어 방법
✔ 1) Origin 화이트리스트만 허용
- 반드시 신뢰할 수 있는 도메인만 허용
✔ 2) Credentials + Origin * 조합 금지
- Access-Control-Allow-Origin과 Allow-Credentials: true를 함께 쓰지 않음
✔ 3) 서버에서 인증/권한 확인
- CORS는 브라우저 정책일 뿐, 서버 측 권한 검증은 필수
✔ 4) 프리플라이트(OPTIONS) 요청 검증
- 허용되지 않은 메소드/헤더는 차단
✔ 5) 개발 단계 점검
- OWASP CORS Security Cheat Sheet 참고
🎯 한 문장 요약
CORS Misconfiguration = 서버가 잘못된 출처 허용으로 공격자가 브라우저를 통해 다른 도메인에서 민감 데이터에 접근할 수 있게 되는 취약점
반응형
'2. 보안 > 2. 보안 관제' 카테고리의 다른 글
| [보안_GPT] Brute Force란? (0) | 2025.11.14 |
|---|---|
| [보안_GPT] Clickjacking이란? (0) | 2025.11.14 |
| [보안_GPT] TTP 헤더 조작(HTTP Header Manipulation)이란? (0) | 2025.11.14 |
| [보안_GPT] API 취약점 공격이란? (0) | 2025.11.14 |
| [보안_GPT] 직렬화 / 역직렬화란? (0) | 2025.11.14 |