정보보안/정보보호 Q&A

웹 애플리케이션 캐시 조작을 통해 보안 정책을 우회하거나 민감한 정보를 유출하는 공격 기법은 무엇이며, 이를 방어 하기 위한 방법은 무엇인가?

itnyaong 2025. 2. 21. 16:29

1. 웹 캐시 중독(Web Cache Posioning) 공격 이란?

  • 공격자가 악성 요청을 보내 캐시 서버에 잘못된 데이터를 저장하게 만들어 보안 정책을 우회하거나 민감한 정보 유출을 시도하는 공격

2. 원리

2.1. 조작된 요청 전달

  • 악성 데이터를 포함한 HTTP 요청을 서버로 전달
  • 서버가 이 데이터를 포함한 응답을 생성하고 캐시 서버가 이를 저장

2.2. 다른 사용자가 캐시된 악성 응답 수신

  • 이후 일반 사용자가 같은 요청 전달 시 서버가 아니라 캐시 서버에서 조작된 응답 전달
  • 결과적으로 사용자에게 악성 콘텐츠 전달
https://itnyaong.tistory.com/page?user=<script>alert(1)</script>
  • 서버가 해당 요청을 처리하고 응답을 캐시에 저장한다면 이후 일반 사용자가 페이지를 방문할 때도 XSS 코드가 실행

3. 방어 방법

3.1. 캐시에 저장할 데이터를 신중하게 설정

  • 동적 콘텐츠 캐싱 금지
  • Cache-Control: no-store, no-cache 같은 HTTP 헤더 설정

3.2. 사용자 입력값을 캐싱 대상에서 제외

  • URL에 쿼리 스트링(Query String)이 포함된 경우 캐싱 제한
  • https://itnyaong.tistory.com/page?user=data 같은 URL 캐싱하지 않도록 설정

3.3. 웹 애플리케이션 방화벽(WAF) 적용

  • 공격 패턴을 탐지하여 악성 요청 차단

3.4. Content Security Policy(CSP) 적용

  • XSS 같은 공격이 실행되지 않도록 보안 정책 설정