AI 기반 자율 침투 테스트 에이전트 PentestGPT
요약
PentestGPT는 USENIX Security 2024에서 발표된 AI 기반 자율 침투 테스트 에이전트로, LLM의 고급 추론 능력을 활용하여 보안 취약점 점검 및 CTF 챌린지를 수행합니다. Docker 기반의 격리된 환경에서 Web, Crypto, Reversing 등 다양한 보안 카테고리를 지원하며, 세션 지속성과 실시간 워크스루 기능을 제공합니다.
핵심 포인트
- LLM의 추론 능력을 활용한 자율적인 침투 테스트 및 CTF 문제 해결
- Docker를 활용한 보안 도구 사전 설치 및 격리된 재현 가능 환경 제공
- Web, Crypto, Reversing, Forensics 등 다중 보안 카테고리 지원
- Anthropic, OpenAI, Gemini 및 로컬 LLM(Ollama, LM Studio 등) 멀티 모델 지원
- 세션 저장 및 재개 기능과 실시간 작업 단계 추적 가능
AI 기반 자율 침투 테스트 에이전트 (AI-Powered Autonomous Penetration Testing Agent)
USENIX Security 2024에서 발표됨
공식 웹사이트: pentestgpt.com »
연구 논문 (Research Paper)
·
버그 보고 (Report Bug)
·
기능 요청 (Request Feature)
자율 에이전트 (Autonomous Agent)
- 지능적이고 자율적인 침투 테스트를 위한 에이전트 파이프라인 (Agentic pipeline)
세션 지속성 (Session Persistence) - 침투 테스트 세션을 저장하고 재개 가능
Docker 우선 (Docker-First) - 보안 도구가 사전 설치된 격리되고 재현 가능한 환경
진행 중: OpenAI, Gemini 및 기타 LLM 제공업체에 대한 멀티 모델 지원
AI 기반 챌린지 해결사 (AI-Powered Challenge Solver)
- LLM의 고급 추론을 활용하여 침투 테스트 및 CTF 수행
라이브 워크스루 (Live Walkthrough) - 에이전트가 챌린지를 해결하는 동안 실시간으로 단계 추적
다중 카테고리 지원 (Multi-Category Support) - Web, Crypto, Reversing, Forensics, PWN, Privilege Escalation 지원
실시간 피드백 (Real-Time Feedback) - 실시간 활동 업데이트와 함께 AI가 작업하는 과정을 관찰
확장 가능한 아키텍처 (Extensible Architecture) - 향후 개선을 위한 깔끔하고 모듈화된 설계
Docker (필수) - Docker 설치
LLM 제공업체 (하나 선택):
- console.anthropic.com에서 가져온 Anthropic API 키
- Claude OAuth 로그인 (Claude 구독 필요)
- openrouter.ai의 대체 모델을 위한 OpenRouter
- 튜토리얼: Claude Code를 사용하여 로컬 모델 사용하기
# 클론 및 빌드
git clone --recurse-submodules https://github.com/GreyDGL/PentestGPT.git
cd PentestGPT
...
참고: --recurse-submodules 플래그는 벤치마크 제품군을 다운로드합니다. 이미 이 옵션 없이 클론했다면 다음을 실행하세요: git submodule update --init --recursive
cd benchmark/standalone-xbow-benchmark-runner
python3 run_benchmarks.py --range 1-1 --pattern-flag
자세한 사용법은 벤치마크 문서(Benchmark Documentation)를 참조하십시오.
| 명령 (Command) | 설명 (Description) |
|---|---|
make install | Docker 이미지 빌드 |
make config | API 키 설정 (최초 설정 시) |
make connect | 컨테이너 연결 (주요 진입점) |
make stop | 컨테이너 중지 (설정은 유지됨) |
make clean-docker | 설정을 포함한 모든 항목 제거 |
# 대화형 TUI 모드 (기본값)
pentestgpt --target 10.10.11.234
# 비대화형 모드
...
단축키: F1
도움말 | Ctrl+P
일시정지/재개 | Ctrl+Q
종료
PentestGPT는 호스트 머신에서 실행 중인 로컬 LLM (Large Language Model) 서버(LM Studio, Ollama, text-generation-webui 등)로 요청을 라우팅(Routing)하는 기능을 지원합니다.
- OpenAI 호환 API 엔드포인트(Endpoint)를 가진 로컬 LLM 서버
- LM Studio: 서버 모드 활성화 (기본 포트 1234)
- Ollama:
ollama serve실행 (기본 포트 11434)
# 로컬 LLM을 위한 PentestGPT 설정
make config
# 옵션 4 선택: Local LLM
...
scripts/ccr-config-template.json 파일을 편집하여 다음 항목을 사용자 정의하십시오:
localLLM.api_base_url: LLM 서버 URL (기본값:host.docker.internal:1234)localLLM.models: 서버에서 사용 가능한 모델 이름들
라우터(Router) 섹션: 어떤 모델이 어떤 작업을 처리할지 설정
| 경로 (Route) | 목적 (Purpose) | 기본 모델 (Default Model) |
|---|---|---|
default | 일반 작업 | openai/gpt-oss-20b |
background | 백그라운드 작업 | openai/gpt-oss-20b |
think | 추론 집약적 작업 | qwen/qwen3-coder-30b |
longContext | 대규모 컨텍스트 처리 | qwen/qwen3-coder-30b |
webSearch | 웹 검색 작업 | openai/gpt-oss-20b |
연결 거부 (Connection refused): LLM 서버가 실행 중이며 설정된 포트에서 리스닝(Listening)하고 있는지 확인하십시오.
Docker 네트워킹: Docker에서 호스트 서비스에 접근하려면 localhost가 아닌 host.docker.internal을 사용하십시오.
CCR 로그 확인: 컨테이너 내부에서 cat /tmp/ccr.log를 실행하십시오.
PentestGPT는 도구 개선을 돕기 위해 익명의 사용 데이터를 수집합니다. 이 데이터는 당사의 Langfuse 프로젝트로 전송되며 다음을 포함합니다:
- 세션 메타데이터 (대상 유형, 지속 시간, 완료 상태)
- 도구 실행 패턴 (어떤 도구가 사용되었는지, 실제 명령어가 아닌 도구 종류)
- 플래그(Flag) 탐지 이벤트 (플래그가 발견되었다는 사실, 플래그 내용이 아닌 사실)
민감한 데이터는 수집되지 않습니다 - 명령어 출력, 자격 증명(Credentials) 또는 실제 플래그 값은 절대 전송되지 않습니다.
# 커맨드 라인 플래그를 통한 설정
pentestgpt --target 10.10.11.234 --no-telemetry
# 환경 변수를 통한 설정
...
PentestGPT는 종합적인 테스트 및 평가를 위해 104개의 XBOW 검증 벤치마크 (XBOW validation benchmarks)를 포함하고 있습니다.
cd benchmark/standalone-xbow-benchmark-runner
python3 run_benchmarks.py --range 1-10 --pattern-flag # 벤치마크 1-10 실행
python3 run_benchmarks.py --all --pattern-flag # 104개 벤치마크 전체 실행
...
PentestGPT는 XBOW 검증 스위트 (XBOW validation suite)에서 86.5%의 성공률 (104개 중 90개 벤치마크)을 달성했습니다:
비용: 성공적인 벤치마크당 평균 $1.11, 중앙값 $0.42
시간: 성공적인 벤치마크당 평균 6.1분, 중앙값 3.3분
난이도별 성공률:
- 레벨 1 (Level 1): 91.1%
- 레벨 2 (Level 2): 74.5%
- 레벨 3 (Level 3): 62.5%
상세한 벤치마크 결과, 분석 및 자동화된 테스트 지침은 **벤치마크 문서 (Benchmark Documentation)**를 참조하십시오.
OpenAI, Gemini, Deepseek 및 Ollama를 지원하던 이전의 멀티 LLM (multi-LLM) 버전 (v0.15)은 legacy/에 아카이브되어 있습니다.
cd legacy && pip install -e . && pentestgpt --reasoning gpt-4o
연구에 PentestGPT를 사용하신다면, 저희 논문을 인용해 주세요:
@inproceedings{299699,
author = {Gelei Deng and Yi Liu and Víctor Mayoral-Vilches and Peng Liu and Yuekang Li and Yuan Xu and Tianwei Zhang and Yang Liu and Martin Pinzger and Stefan Rass},
title = {{PentestGPT}: Evaluating and Harnessing Large Language Models for Automated Penetration Testing},
...
MIT 라이선스 (MIT License)에 따라 배포됩니다. 자세한 내용은 LICENSE.md를 참조하십시오.
면책 조항 (Disclaimer): 이 도구는 교육 목적 및 승인된 보안 테스트 용도로만 사용되어야 합니다. 저자들은 어떠한 불법적인 사용도 용납하지 않습니다. 사용에 따른 책임은 사용자 본인에게 있습니다.
- Quantstamp 및 NTU Singapore의 연구 지원을 받았습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기