Burp Suite로 쿠키 HTTPOnly・Secure 검사
Burp Suite를 이용한 쿠키의 HTTPOnly 및 Secure 속성 검사와 우회 테스트 절차와 예시 설명
목차
개요
웹 애플리케이션의 세션 관리에서 쿠키는 핵심 요소이다. HTTPOnly와 Secure 속성의 설정 여부는 공격 표면과 위험도를 크게 좌우한다. 이 글은 Burp Suite 환경에서 쿠키 보안 속성을 점검하고, 속성 미설정으로 인한 취약점을 확인하는 방법과 검증 사례를 평이한 표현으로 정리한다. 목적은 방어와 진단을 위한 이해 제공이다.
HTTPOnly와 Secure 속성의 의미
HTTPOnly
HTTPOnly는 클라이언트 스크립트(document.cookie)에서 쿠키 접근을 차단한다. 이를 통해 XSS 기반의 클라이언트 측 쿠키 탈취 위험을 줄인다. 단, HTTPOnly는 서버에서 발급되는 Set-Cookie 응답 헤더에서만 제어된다.
Secure
Secure 속성은 쿠키 전송을 HTTPS 연결로 제한한다. 이 속성이 없을 경우 쿠키가 평문(HTTP) 요청에 포함될 수 있어 네트워크 도청에 취약해진다. 따라서 민감한 세션 쿠키는 Secure가 권장된다.
Burp Suite 환경 구성
검사는 프록시 인터셉트가 가능한 로컬 Burp 환경에서 진행하는 것이 일반적이다. 브라우저에 Burp CA를 설치해 HTTPS 트래픽을 복호화하고, Proxy 탭에서 인터셉트를 활성화한 상태로 대상 애플리케이션과 통신을 관찰한다. 추가로 Match and Replace나 Burp의 Repeater, Intruder, Extensions를 활용하면 반복 검사와 자동화가 용이하다.
HTTPOnly 검사 절차
검사 흐름은 쿠키 발급 응답 확인 → 클라이언트 접근 시도 → 응답 변조를 통한 동작 비교 관찰 순서로 이루어진다. 아래 절차는 취약점 존재 여부를 확인하는 논리적 접근을 설명한다.
- Set-Cookie 응답 헤더 확인: 응답에서 HttpOnly 속성 존재 여부를 검토한다.
- 브라우저 콘솔 테스트: document.cookie로 접근 시 해당 쿠키가 목록에 보이는지 비교한다.
- Burp로 응답 변조: 응답의 Set-Cookie에서 HttpOnly를 제거한 뒤 브라우저 행동 변화를 관찰한다.
응답 예시
HTTP/1.1 200 OK
Set-Cookie: sessionid=abc123; Path=/; HttpOnly; Secure; SameSite=Lax
위와 같은 경우 document.cookie에서 sessionid가 보이지 않아야 정상이다. Burp의 Intercept 혹은 Repeater에서 Set-Cookie 헤더의 HttpOnly를 삭제하면, 동일한 세션 쿠키가 document.cookie에 나타나는지 확인할 수 있다. 이 비교는 취약점 유무를 검증하는 안전한 확인 방법이다.
Secure 속성 검사 절차
Secure 검증은 쿠키가 HTTPS 전용으로 전송되는지, 그리고 비보안 채널에서 노출되는지를 판단한다. 일반적인 순서는 Set-Cookie 확인 → HTTP로 강제 연결 시 쿠키 전송 여부 확인 → 응답 변조로 Secure 제거 시 행동 변화 관찰이다.
- 응답에서 Secure 플래그 확인.
- HTTP 환경에서 해당 쿠키가 요청에 포함되는지 로컬 테스트로 확인.
- Burp를 이용해 Set-Cookie에서 Secure를 제거하고, HTTP 요청 시 쿠키 송수신 변화를 비교.
테스트용 요청/응답 예시
GET / HTTP/1.1
Host: example.com
HTTP/1.1 200 OK
Set-Cookie: sessionid=abc123; Path=/; SameSite=Strict
Secure가 없는 상태에서는 HTTPS→HTTP로 프로토콜 다운그레이드 시 쿠키 전송 가능성이 존재한다. 이 동작을 Burp에서 재현하면 네트워크 계층에서의 노출 위험을 직접 확인할 수 있다.
우회 테스트와 검증 시 고려사항
우회 테스트는 개발 환경이나 허가된 테스트 범위에서만 수행되어야 한다. 검사 과정에서 발견되는 문제는 다음 관점으로 해석된다.
- HttpOnly 미설정: 클라이언트 측 스크립트에 의한 탈취 가능성 존재.
- Secure 미설정: 비암호화 채널에서 세션 유출 위험.
- SameSite 등 기타 속성 결합 필요성: CSRF 완화와 결합해 종합적으로 평가.
실무에서는 Burp의 Match and Replace로 응답을 자동 변조해 대량 검증을 수행하거나, Extensions(예: Cookie Editor)로 세밀한 조작을 통해 다양한 시나리오를 재현한다. 다만 모든 변화는 로그로 기록하고 재현 가능한 절차로 남겨두는 것이 바람직하다.
결론
HTTPOnly와 Secure는 간단하지만 강력한 쿠키 방어 수단이다. Burp Suite는 이를 관찰하고 변조해 현실적인 위험을 검증하는데 유용한 도구이다. 검사 결과는 개발팀과 공유해 서버 측 Set-Cookie 정책을 강화하고, 필요한 경우 SameSite와 TLS 설정을 보완하는 방식으로 대응하는 것이 권장된다.