Burp Suite · 2026-03-30

Burp로 SSRF 자동 탐지 규칙 설계

Burp를 이용해 SSRF 자동 탐지 규칙을 단계별로 정리한다. Grep 매칭과 Collaborator 연동, 오탐 최소화 전략을 포함한 스캔 최적화 방법

작성일 : 2026-03-30 ㆍ 작성자 : 관리자
post
목차

개요

SSRF(Server-Side Request Forgery)는 외부 또는 내부 네트워크로 서버가 임의 요청을 보내게 하는 취약점이다. 탐지 난이도가 높아 자동화 도구의 도움을 받는 경우가 많다. 이 글에서는 Burp를 활용해 SSRF 자동 탐지 규칙을 만드는 전반적인 흐름과 실무에서 바로 적용 가능한 설정법을 설명한다. 핵심은 짧은 탐지 로직과 신뢰도 기반 판단으로 Burp SSRF 스캔 최적화를 이루는 것이다.

사전 준비

  • Burp Suite (Pro 권장) 또는 Community + 외부 스크립트 환경
  • Burp Collaborator 계정(내부/외부 OOB 상호작용 감지용)
  • 테스트용 안전한 샌드박스 대상과 허가된 범위
  • 정규표현식 기반 로그 분석 이해

SSRF의 탐지 단서

SSRF는 여러 형태로 드러난다. 대표적으로 내부 IP나 메타데이터 엔드포인트 접근 시 생성되는 응답 패턴, 타깃 서버에서 외부 서비스로 발생하는 DNS/HTTP/SMTP 등 OOB(Out-Of-Band) 상호작용, 그리고 특정 에러 메시지 반사 등이 있다. Burp SSRF 자동 탐지 규칙은 이 단서들을 조합해 신호를 포착한다.

핵심 단서 예시

  • 요청 파라미터에 입력된 URL 반영 여부
  • 응답 내 내부 IP, 메타데이터 키워드(예: 169.254, metadata.google.internal)
  • Burp Collaborator를 통한 OOB 콜백 기록
  • 특정 에러 문자열(예: "Connection refused", "timeout")

Burp에서 간단한 Grep 규칙 만들기

가장 쉬운 방법은 Burp의 Scanner 혹은 Proxy 탭에서 Grep-matching과 Grep-extract 규칙을 추가하는 것이다. 응답 본문에서 내부 IP나 메타데이터 문자열을 찾도록 정규표현식을 설정하면 즉시 알림을 받을 수 있다.

정규표현식 예시

\b(?:127\.0\.0\.1|10(?:\.\d{1,3}){2}\.\d{1,3}|169\.254|169\.254\.169\.254|metadata\.|internal)\b

위 패턴은 흔한 내부 IP 대역과 메타데이터 관련 문자열을 찾는다. 실제 환경에서는 false positive를 줄이기 위해 더 좁은 패턴을 사용하거나 응답 컨텍스트를 함께 검사한다.

Burp Collaborator로 OOB 기반 자동 탐지

Burp Collaborator는 SSRF 탐지에 가장 확실한 신호를 제공한다. 테스트 시 파라미터에 Collaborator 도메인을 주입하고, 해당 도메인으로의 DNS 또는 HTTP 콜백이 기록되면 SSRF 가능성이 높다. 자동화는 두 축으로 나뉜다: 페이로드 주입과 콜백 상관관계 확인.

자동화 확장 예시 (간단한 Burp Extender 스켈레톤)

from burp import IBurpExtender, IScannerCheck

class BurpExtender(IBurpExtender, IScannerCheck):
    def registerExtenderCallbacks(self, callbacks):
        self._callbacks = callbacks
        self._helpers = callbacks.getHelpers()
        callbacks.registerScannerCheck(self)

    def doPassiveScan(self, baseRequestResponse):
        # 간단한 파라미터 검사 후, Collaborator 도메인 삽입 후보 반환
        return None

    def doActiveScan(self, baseRequestResponse, insertionPoint):
        # 삽입 위치에 collaborator 도메인 주입 후 트리거 여부 확인
        # 콜백이 기록되면 IScanIssue를 반환하여 Burp에 표시
        return None

위 코드는 구조 설명용이다. 실제 구현에서는 Collaborator 클라이언트 API를 사용해 고유 도메인을 생성하고, 특정 파라미터에 주입한 뒤 콜백 로그를 확인해 이슈를 등록한다. 중요한 점은 스캔 대상 범위와 빈도를 제한하여 서비스 영향도를 관리하는 것이다.

SSRF Burp 규칙 만들기 시 고려사항

  • 스캔 범위 제한: 허가된 범위 외부 요청 금지
  • 빈도 조절: 과도한 요청은 서버 부하를 유발할 수 있음
  • 오탐 필터링: 정규표현식과 응답 컨텍스트를 조합해 신뢰도 점수 매김
  • 증거 수집: 콜백 로그, 응답 샘플, 요청 페이로드를 함께 기록

Burp SSRF 스캔 최적화 전략

스캔 최적화는 정확도와 속도, 안전성의 균형이다. 우선 후보 파라미터(예: url, path, redirect, callback 등)를 사전 필터링한다. 다음으로 저위험 패턴과 고위험 패턴을 분리해 검사 우선순위를 정한다. 마지막으로 Collaborator 결과가 없는 경우에는 추가 증거(응답 내 내부 리퓨전 메시지 등)를 요구해 경보를 낮춘다.

우선순위 예시

  • 1순위: 외부 URL이 직접 삽입되는 파라미터
  • 2순위: 내부 IP 패턴이 반영되는 응답
  • 3순위: 에러 메시지 기반 의심 항목

테스트와 검증

규칙을 만든 뒤에는 안전한 테스트베드에서 검증한다. 허가된 대상에만 시행하고, Collaborator 로그와 Burp 기록을 대조해 오탐과 미탐을 조정한다. 또한 스크립트 형태의 자동화는 주기적으로 유지보수해서 새로운 메타데이터 엔드포인트나 내부 네트워크 변경을 반영해야 한다.

결론

Burp SSRF 자동 탐지는 Grep 규칙과 Collaborator 연동, 그리고 신뢰도 기반 필터링의 조합으로 실용적인 성과를 얻을 수 있다. 초기에는 간단한 정규표현식과 제한된 범위 스캔으로 시작한 뒤, 확률적 판단과 자동화 스크립트를 단계적으로 도입하면 Burp SSRF 스캔 최적화에 도움이 된다. 최종 목표는 정확한 탐지와 최소한의 서비스 영향이다.

Burp SSRF 자동 탐지 SSRF Burp 규칙 만들기 Burp SSRF 스캔 최적화 Burp Suite SSRF 탐지 Burp Collaborator 웹 취약점 스캐닝 보안테스트 자동화