Burp Suite · 2026-03-21

Burp 자동화: Headless 모드와 스크립트 실행 사례

Burp Headless 모드와 Burp 자동화 스크립트 적용 사례를 초보자 관점에서 단계별로 설명한 개념과 실행 예시

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

개요

Burp Headless 모드는 GUI 없이 Burp의 핵심 기능을 자동으로 실행할 때 유용하다. 본문에서는 Headless 모드의 개념, 준비 사항, 그리고 스크립트를 통한 자동화 사례를 단계별로 정리한다. 처음 접하는 사람도 흐름을 이해하도록 구성했다.

Headless 모드란 무엇인가

기본 개념

Headless 모드는 그래픽 사용자 인터페이스 없이 프로그램을 운영하는 방식을 말한다. 보안 도구에서는 스캔, 프록시 설정, 결과 수집 같은 작업을 무인으로 수행할 때 쓰인다. Burp의 Headless 모드를 이용하면 CI 파이프라인이나 스케줄러에 쉽게 통합할 수 있다.

왜 Headless 모드를 쓰나

  • 서버 환경에서 GUI가 필요 없어 자원 사용이 효율적이다.
  • 자동화된 테스트와 연계하면 반복 작업을 줄일 수 있다.
  • 결과를 파일이나 API로 받아 후처리 파이프라인에 연결하기 쉽다.

시스템 준비와 고려사항

라이선스와 설치

Burp는 버전과 라이선스에 따라 Headless 지원 범위가 다를 수 있다. 사용 전 현재 사용 중인 Burp 버전의 문서를 확인하고 라이선스 조건을 충족해야 한다. 또한 자바 런타임이 필요한 경우 버전 호환성도 점검한다.

환경 설정

자동화 대상 서버에서 다음 항목을 준비한다.

  • 자바 실행 환경(jre 또는 jdk)의 설치
  • 프로젝트 파일 또는 설정 파일 경로 확보
  • 로그와 결과 저장용 디렉터리 권한 설정

자동화 스크립트 설계 원칙

단계별 흐름

자동화 스크립트는 일반적으로 다음 흐름을 따른다.

  • 환경 변수 및 경로 설정
  • Burp를 Headless로 실행
  • 스캔 명령 또는 확장(Extension) 로드
  • 진행 상태 모니터링
  • 결과 수집 및 후처리

로깅과 에러 처리

무인 실행 환경에서는 실패 원인을 파악하기 어렵다. 따라서 표준 출력과 로그 파일을 분리하고, 실패 시 재시도 규칙과 알림을 설계한다.

실행 사례: CLI로 Burp Headless 시작

개념적 예제

아래 예시는 Burp를 Headless로 실행하고 프로젝트 파일을 로드하는 일반적 흐름을 보여준다. 실제 플래그는 사용하는 Burp 버전에 따라 다르므로 공식 문서를 참고한다.

java -jar /path/to/burpsuite.jar --headless --project-file=/data/project.burp --config-file=/data/config.json --output-file=/data/result.xml

설명

  • --headless: GUI 없이 실행
  • --project-file: 미리 저장한 프로젝트 로드
  • --config-file: 스캔 설정을 포함한 구성 파일
  • --output-file: 스캔 결과 저장 경로

실행 사례: 쉘 스크립트로 자동화 파이프라인 통합

예시 스크립트

이 스크립트는 간단한 자동화 파이프라인을 보여준다. 결과 파일 생성 후 별도 도구로 후처리한다.

#!/bin/bash
WORKDIR=/data/burp
mkdir -p "$WORKDIR/results"
java -jar /opt/burpsuite/burpsuite.jar --headless --project-file="$WORKDIR/project.burp" --config-file="$WORKDIR/config.json" --output-file="$WORKDIR/results/result.xml"
if [ $? -ne 0 ]; then
  echo "Burp 실행 실패" >&2
  exit 1
fi
# 결과 후처리 예: XML을 JSON으로 변환하거나 보고서 생성
# python3 /opt/scripts/process_results.py "$WORKDIR/results/result.xml"

실행 사례: 외부 스크립트와 연동 (Python)

개요

Python으로 Burp를 실행하고 상태를 확인하는 흐름을 예시로 둔다. subprocess로 실행 후 로그를 파싱해 후속 작업을 트리거한다.

import subprocess
import time
cmd = ["java","-jar","/opt/burpsuite/burpsuite.jar","--headless","--project-file=/data/project.burp","--output-file=/data/result.xml"]
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)
for line in proc.stdout:
    print(line.strip())
    # 상태 키워드를 찾아서 진행률 판단
proc.wait()
if proc.returncode == 0:
    print("완료: 결과 수집 시작")
else:
    print("실행 오류 발생")

확장(Extension)으로 더 세밀한 자동화

사용처

Burp Extender를 이용하면 스캔 대상 구성, 특정 체크 실행, 맞춤형 리포트 생성 등 세세한 자동화를 구현할 수 있다. Extender는 자바 기반 API를 제공하므로 팀 역량에 따라 Java나 Jython으로 확장한다.

설계 포인트

  • 무인 환경에서 안전하게 동작하도록 타임아웃과 예외처리를 명시
  • 외부 시스템과 통합하는 경우 인증과 네트워크 제약을 고려
  • 결과 포맷을 표준화해 후속 파이프라인 처리 용이성 확보

후처리와 파이프라인 연결

자동화의 가치는 결과를 어떻게 활용하느냐에 달려 있다. 결과 파일을 정형화하여 CI나 알림 시스템, 이슈 트래커로 연동하면 운영 효율이 크게 오른다. 또한 주기적 스케줄과 병행성 정책을 설계하면 자원 충돌을 방지할 수 있다.

마무리와 권장 작업

Burp Headless 모드와 자동화 스크립트는 반복 검증을 안정적으로 처리하는 데 유리하다. 시작 전 버전과 라이선스 확인, 로그·에러 정책 수립, 그리고 결과 포맷 표준화 작업을 권장한다. 간단한 쉘 또는 Python 스크립트로 시작해 확장 방식으로 전환하면 효율적으로 자동화를 확립할 수 있다.

Burp Headless 모드 Burp 자동화 스크립트 Burp 무인 모드 사용법 Burp 자동화 Burp 헤드리스 웹 취약점 스캐닝 자동화 Burp Extender Headless 보안 스캐닝