Burp Proxy 고급 설정: 인터셉트 필터과 매치/리플레이스
Burp Proxy에서 인터셉트 필터와 매치/리플레이스를 활용해 요청·응답 트래픽을 정교하게 선별·변형하는 고급 설정 방법과 적용 사례 설명
목차
개요
Burp Proxy는 웹 트래픽을 중간에서 관찰하고 변형할 수 있는 핵심 도구다. 기본 사용법을 숙지한 뒤라면 인터셉트 필터와 매치/리플레이스 기능을 조합해 더 정교한 테스트 환경을 구성할 수 있다. 이 글은 처음 접하는 사용자도 이해할 수 있게 단계별로 핵심 개념과 실무 활용 예를 정리한다.
인터셉트 필터의 이해
인터셉트 필터는 어떤 요청이나 응답을 중단(intercept)할지 결정하는 규칙 집합이다. 필터는 트래픽 유형, 호스트, 포트, 메서드, MIME 타입 등 다양한 조건을 기반으로 동작한다. 적절한 필터를 사용하면 불필요한 패킷을 걸러내고 관심 있는 항목만 수동으로 검사할 수 있다.
주요 조건
- HTTP 메서드(GET, POST 등)
- 호스트 및 포트
- 응답 상태 코드
- MIME 타입(예: text/html, application/json)
- 요청/응답 크기
설계 원칙
필터 설계는 최소 권한 원칙과 유사하다. 가능한 한 좁은 범위를 지정해 인터셉트 빈도를 줄이는 것이 기본이다. 테스트 목적에 따라 예외 규칙을 추가하는 방식이 현실적이다.
매치/리플레이스 기능 개요
매치/리플레이스(Match and Replace)는 트래픽을 자동으로 변경하는 규칙 엔진이다. 요청이나 응답에서 패턴을 찾아 다른 값으로 대체한다. 자주 사용하는 용도는 다음과 같다.
- 테스트 계정 헤더 변경
- 토큰 값을 자동화된 값으로 교체
- 경로 또는 쿼리 파라미터 변형
- 응답 헤더 수정으로 캐시 제어 테스트
동작 위치
매치/리플레이스는 Proxy, Scanner, Repeater 등 여러 모듈에 적용 가능하다. 적용 범위를 명확히 지정하면 의도치 않은 트래픽 변형을 피할 수 있다.
실무 설정 사례
아래 예시는 흔히 쓰이는 시나리오를 중심으로 구성했다. 각 사례는 인터셉트 필터와 매치/리플레이스를 조합하는 방식으로 설명한다.
사례 1: 특정 호스트의 POST 요청만 인터셉트
목적은 로그인 엔드포인트의 POST 요청만 수동 검사하는 것이다. 인터셉트 필터에서 호스트와 메서드를 결합한다.
- 호스트: api.example.com
- 메서드: POST
- 타입: application/json
# 매치/리플레이스 예시: 요청 본문의 access_token을 테스트 토큰으로 교체
Pattern: "access_token\":\s*\"[^"]+\""
Replace: "access_token\": \"TEST_TOKEN_123\""
사례 2: 자동 인증 토큰 삽입
테스트 스크립트나 수동 탐색 중 토큰을 지속적으로 교체해야 할 때 유용하다. 매치/리플레이스 규칙을 만들어 모든 요청 헤더에 Authorization 값을 넣는다.
# 헤더 교체 예시
Match Type: Request header
Match: ^Authorization:.*$
Replace: Authorization: Bearer TEST_TOKEN_123
사례 3: 응답에서 민감한 정보 마스킹
로그나 화면 캡처를 공유할 때 민감한 값은 자동 마스킹이 안전하다. 응답 바디 패턴을 찾아 대체 문자열로 치환한다.
# 응답 마스킹 예시
Pattern: "email\":\s*\"([^"]+)\""
Replace: "email\": "REDACTED@example.com"
구체적 규칙 작성법
정규 표현식을 활용하면 보다 유연한 매치가 가능하다. 다만 과도한 패턴은 성능 저하를 초래할 수 있다. 가능한 한 구체적으로 작성하는 것이 권장된다.
정규식 작성 팁
- 문자열 경계(^, $) 사용으로 오탐 감소
- 비탐욕적 수량자(.*?) 사용으로 불필요한 매칭 방지
- 이스케이프 문자를 정확히 표기
- 필요한 캡처 그룹만 사용
예: 쿼리 파라미터 교체
# URL 쿼리에서 userid 값만 교체
Pattern: ([&?]userid=)\d+
Replace: $1REDACTED_ID
테스트 및 검증
규칙을 적용한 뒤 반드시 샘플 트래픽으로 동작을 검증해야 한다. 작은 범위에서 먼저 테스트하고 문제가 없으면 범위를 확장하는 방식이 안전하다.
검증 체크리스트
- 원래 의도한 요청/응답에만 규칙 적용 여부 확인
- 로그에 기록된 변경 내용과 실제 패킷 비교
- 성능 영향 점검(지연이나 CPU 사용 증가 여부)
- 예외 상황 발생 시 롤백 계획 수립
주의사항과 모범 사례
고급 설정은 강력하지만 위험 요소도 동반한다. 의도치 않은 트래픽 변형은 테스트 결과를 왜곡할 수 있다. 또한 민감 데이터를 다루는 환경에서는 마스킹 정책과 접근 통제가 병행되어야 한다.
권장 행동
- 변경 규칙은 주석으로 기록해 추적 가능성 확보
- 환경별로 규칙을 분리해 실수로 생산 트래픽을 변경하지 않도록 설정
- 정기적으로 규칙을 검토해 불필요한 항목 제거
요약
인터셉트 필터와 매치/리플레이스는 Burp Proxy 고급 설정의 핵심 요소다. 필터로 관심 대상을 좁히고, 매치/리플레이스로 자동화된 변형을 적용하면 효율적인 테스트 환경을 만들 수 있다. 규칙은 구체적으로 작성하고 단계적으로 확장하는 것이 안정적이다. 마지막으로 항상 검증 절차를 통해 의도치 않은 영향이 없는지 확인하는 습관이 필요하다.