Burp Match and Replace로 민감정보 마스킹
Burp의 Match and Replace 기능으로 요청·응답에서 토큰, 이메일, 카드번호 등 민감정보를 정규표현식 규칙으로 안전하게 가리는 설정
목차
개요
웹 보안 테스트 중에는 실제 민감정보가 로그나 화면에 남지 않도록 주의해야 한다. Burp의 Match and Replace는 요청과 응답을 변환해 민감정보를 마스킹하는 간단하고 강력한 방법을 제공한다. 본문에서는 기본 개념부터 실제 규칙 작성과 검증 방법까지 단계별로 설명한다.
기본 개념
무엇을 하는가
Match and Replace는 특정 패턴을 찾아 다른 문자열로 대체한다. 요청(Request)과 응답(Response) 모두에 적용할 수 있다. 대상은 헤더, 바디, 상태 라인 등으로 범위를 좁힐 수 있다.
주요 구성 요소
- 타입: Request / Response
- 대상 영역: Header / Body / Status line
- 매치 방식: 단순 문자열 또는 정규표현식
- 대체 문자열: 마스킹 규칙 또는 고정값
언제 사용해야 하는가
테스트 환경에 실사용 토큰이 포함될 때 우선 적용한다. 또한 스크린샷, 로그 수집, 외부 공유 전 자동 마스킹이 필요할 때 유용하다. 중요한 점은 마스킹 규칙이 기능 검증을 방해하지 않아야 한다는 점이다.
Burp에서의 설정 절차
메뉴 위치
Burp Suite에서 Proxy → Options → Match and Replace 항목으로 이동한다. 여기서 규칙을 추가하거나 편집할 수 있다.
규칙 추가 순서
- 1) Add 버튼을 클릭해 새 규칙을 만든다.
- 2) Scope에서 Request/Response를 선택한다.
- 3) Target에서 Header/Body/Status line을 지정한다.
- 4) Match 문자열을 입력하고, 정규표현식을 사용할 경우 Regex 옵션을 활성화한다.
- 5) Replace 문자열에 마스킹 규칙을 입력한다.
실전 규칙 예시
아래 예제는 흔히 마스킹이 필요한 패턴을 다룬다. 모든 예제는 정규표현식 모드로 동작하는 가정이다.
1. Authorization 헤더의 Bearer 토큰 마스킹
Match: ^(Authorization:\s*Bearer\s+)([A-Za-z0-9\-\._~\+\/]+=*)
Replace: $1[REDACTED_TOKEN]
헤더 전체가 아닌 토큰 부분만 가려 기능은 유지한다.
2. 응답 바디의 이메일 마스킹
Match: ([A-Za-z0-9._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,})
Replace: $1@***.***
도메인 일부를 숨겨 개인 식별을 줄인다.
3. 신용카드 번호 형식 마스킹 (단순 숫자 그룹)
Match: (\b\d{4})\d{8,12}(\d{4}\b)
Replace: $1********$2
앞뒤 4자리만 남기고 가운데를 별표로 치환한다. 실제 카드번호 포맷은 다양하므로 필요하면 패턴을 조정한다.
4. JSON 응답 내 세션ID 또는 토큰 부분 마스킹
Match: ("sessionId"\s*:\s*")([^"]+)(")
Replace: $1[REDACTED]$3
JSON 필드 값을 통째로 가려 민감정보 유출을 방지한다.
검증과 테스트
규칙 추가 후에는 반드시 프록시를 통해 요청을 전송해 동작을 확인한다. 로그와 리스폰스의 변화를 비교하면서 기능 영향 여부를 점검한다. 테스트 환경에서 충분히 검증한 뒤 운영 환경에 적용한다.
주의사항
- 과도한 마스킹은 기능 검증을 방해할 수 있다. 필요한 최소한만 가린다.
- 정규표현식이 넓게 매칭되면 의도치 않은 문자열을 변경할 수 있다. 범위를 좁혀 작성한다.
- 순서가 중요한 규칙은 상단에 배치한다. 첫 매치 규칙이 우선 적용된다.
- 로그 백업과 규칙 버전 관리를 권장한다. 문제가 발생했을 때 되돌리기 쉽다.
고급 팁
- 헤더와 바디를 분리해 규칙을 관리하면 예상치 못한 영향이 줄어든다.
- 테스트용 토큰을 별도로 생성해 마스킹 전후 동작 차이를 비교한다.
- 복잡한 변환이 필요하면 외부 스크립트나 확장 도구와 병행한다. 다만 기본 기능만으로도 대부분의 마스킹 요구를 충족한다.
맺음말
Burp Match and Replace는 단순하지만 실무에서 큰 도움이 된다. 적절한 정규표현식과 적용 범위를 설정하면 토큰, 이메일, 카드번호 같은 민감정보를 안전하게 마스킹할 수 있다. 본문에서 다룬 예제와 절차를 토대로 환경에 맞는 규칙을 설계하면 테스트 생산성과 보안성이 동시에 향상된다.
참고 키워드
Burp Match and Replace 설정, Burp 민감정보 마스킹, Burp 응답 변환 규칙