Burp Sequencer로 세션 토큰 엔트로피 분석
Burp Sequencer 사용법을 중심으로 세션 토큰 엔트로피를 측정하고 결과를 해석하는 절차와 예시를 정리한 설명
목차
개요
웹 애플리케이션의 세션 토큰은 인증과 권한 부여의 핵심이다. 토큰의 난수성 부족은 세션 탈취나 예측 공격으로 이어질 수 있다. 이 글에서는 Burp Sequencer를 이용한 세션 토큰 엔트로피 분석 절차와 결과 해석을 초보자도 이해하기 쉽게 설명한다.
준비 단계
요구 조건
- Burp Suite Professional (Sequencer 포함)
- 테스트 대상 애플리케이션에 대한 합법적 접근 권한
- 브라우저와 Burp Proxy 연결
윤리적 고려
분석은 반드시 소유자 동의가 있는 대상에서 수행한다. 무단 테스트는 법적 문제를 초래할 수 있다.
Burp Sequencer 사용법 개요
Burp Sequencer는 세션 토큰의 랜덤성 측정을 자동화한다. 기본 흐름은 토큰 수집, 시퀀서 설정, 통계 실행, 결과 해석의 네 단계다.
토큰 수집
- Burp Proxy를 통해 로그인 흐름을 캡처한다.
- 응답에서 세션 토큰을 식별하고 오른쪽 클릭으로 "Send to Sequencer"를 선택한다.
- 가능하면 서로 다른 요청을 여러 번 반복하여 샘플을 확보한다.
시퀀서 설정
Sequencer 창에서 샘플 수와 분석 유형을 설정한다. 일반 권장값은 최소 1000개 샘플이나 환경에 따라 200~2000 사이로 조정한다.
샘플 수 결정 근거
- 샘플이 적으면 통계적 신뢰도가 낮아진다.
- 샘플이 많으면 분석 시간이 늘어난다.
- 실무에서는 1000개 전후로 시작해 필요시 늘리는 방식이 현실적이다.
분석 항목과 해석
Sequencer는 여러 통계값을 제공한다. 주요 항목과 해석 방법을 간단히 정리하면 다음과 같다.
엔트로피(Entropy)
엔트로피는 전체 토큰이 가진 무작위성의 양을 비트 단위로 표현한다. 값이 클수록 예측이 어렵다. 낮은 엔트로피는 취약성을 시사한다.
카이제곱(Chi-square)
문자 분포가 균등한지 검정한다. 높은 편차는 특정 문자나 패턴이 반복됨을 의미할 수 있다.
표본 평균과 표준편차
토큰 길이의 분포나 각 바이트 위치의 변화도를 파악하는 데 도움된다. 일정한 패턴이 반복되면 예측 가능성이 증가한다.
실제 결과 예시와 해석
아래는 분석 결과를 해석하는 예시다. 값은 가상의 수치이며 해석 방법을 보여준다.
샘플 수: 1500
엔트로피: 40.2 bits
Chi-square: 높은 편차
평균 길이: 26
특정 위치 반복성: 발견
- 엔트로피 40.2비트는 일부 안전하지만 이상적인 수준(예: 128비트 수준)에는 못 미친다.
- Chi-square 편차는 특정 문자셋이나 생성 알고리즘의 편향을 나타낸다.
- 특정 위치에서 반복성이 발견되면 토큰 생성 로직을 점검할 필요가 있다.
부가 검증 방법
Sequencer 결과 외에 추가 검증으로 토큰 생성 코드를 리뷰하거나, 다른 통계 도구로 재검증하면 신뢰도를 높일 수 있다.
추가 조사 절차
- 서버 측 난수 소스 확인 (예: RNG 종류, 시드 사용 여부)
- 토큰 길이와 인코딩 방식 점검
- 동일 패턴이 반복되는지 로그를 통해 확인
권장 조치
분석 결과 취약성이 의심되면 아래 조치를 고려한다.
- 암호학적으로 안전한 난수 생성기 사용
- 충분히 긴 엔트로피 비트 부여
- 토큰 구조에 예측 가능한 패턴 포함 금지
요약
Burp Sequencer 사용법을 따르면 세션 토큰 엔트로피 분석이 체계적으로 가능하다. 샘플을 충분히 확보하고 주요 통계값을 해석하면 토큰 난수성의 강약을 판단할 수 있다. 필요 시 코드와 난수 소스를 함께 검토해 종합적인 개선을 진행하는 것이 바람직하다.