포스트

PentAGI는 어디까지 자율 펜테스트를 수행하나: 격리와 승인 기준

PentAGI는 목표를 바탕으로 정찰 계획을 세우고 보안 도구와 생성 코드를 실행하는 자율형 펜테스트 시스템입니다. Researcher, Developer, Executor 역할과 컨테이너를 결합해 반복 작업을 자동화하지만, Docker를 쓴다는 사실만으로 대상 범위 이탈과 호스트, 네트워크 위험이 사라지지는 않습니다. 소유하거나 명시적으로 허가받은 격리 대상에서 최소 권한으로 실행하고, 모든 행동과 발견을 보안 전문가가 다시 검증해야 합니다.


PentAGI는 보안 어시스턴트와 무엇이 다른가?

PentAGI는 vxcontrol 팀이 개발한 자율형 펜트레이션 테스팅 시스템입니다. 여러 역할의 에이전트가 대상 정보를 분석하고 도구를 선택해 결과를 다음 단계에 넘기는 구조입니다. “완전 자율”은 사람의 허가, 감독, 결과 판정이 불필요하다는 뜻으로 해석하면 안 됩니다.

핵심 차별점: ‘어시스턴트’ vs ‘에이전트’

  • 기존 (예: PentestGPT): 사람이 “Nmap 스캔해줘”라고 하면 명령어를 알려줍니다. 실행은 사람이 하고 결과도 사람이 붙여넣어야 합니다.
  • PentAGI: 목표와 권한 범위 안에서 Nmap 결과를 읽고 다음 검사 도구를 선택해 실행할 수 있습니다.

어떤 기능이 정찰에서 검증까지 이어지나?

README에 소개된 주요 기능은 다음과 같습니다.

보안 및 격리

작업 도구는 Docker 컨테이너 안에서 수행되는 것으로 소개됩니다. mount, privileged mode, socket, 자격 증명과 egress를 잘못 설정하면 호스트나 허가 밖 네트워크에 영향을 줄 수 있으므로 실제 compose 설정을 검토해야 합니다.

자율 실행

에이전트가 계획 수립 → 실행 → 분석을 반복합니다. 고위험 명령과 범위 변경에는 별도의 승인 지점을 두는 편이 안전합니다.

보안 도구 통합

여러 정찰, 웹 검사, 공격 도구가 포함된 것으로 소개됩니다. 도구의 버전과 기본 인수, 출력 파싱을 확인해야 합니다.

  • 정찰: Nmap, Whois, Dig
  • 웹 취약점: Nikto, Wpscan, Sqlmap
  • 공격 프레임워크: Metasploit
  • 기타: Hydra, Gobuster 등

메모리와 지식 그래프

Graphiti(Neo4j 기반)를 사용해 자산, 서비스, 취약점, 공격 경로의 관계를 저장하는 것으로 설명됩니다. 잘못된 추론도 장기 기억이 될 수 있으므로 각 노드에 원본 명령과 출력, 검증 상태를 연결해야 합니다.


여러 에이전트는 어떤 역할을 나눌까?

PentAGI는 단일 프로그램이 아닌 마이크로서비스 형태의 거대한 시스템입니다. 내부적으로 어떻게 동작하는지 살펴보겠습니다.

AI 에이전트의 역할 분담 (Multi-Agent System)

마치 모의해킹 팀을 꾸리듯 3가지 역할로 나뉘어 있습니다.

  1. Researcher (연구원): 타겟에 대한 정보를 수집하고 정찰(Recon)을 담당합니다. 어떤 포트가 열려있는지, 어떤 서비스가 도는지 파악합니다.
  2. Developer (개발자): 발견된 취약점을 공략하기 위한 구체적인 공격 스크립트나 페이로드를 작성합니다.
  3. Executor (실행가): 작성된 공격을 실제 도구(Metasploit, SQLMap 등)를 통해 수행하고 결과를 가져옵니다.

기술 스택 (Tech Stack)

  • Frontend: React, TypeScript (직관적인 웹 UI 제공)
  • Backend: Go (고성능 API 처리)
  • Vector Store: PostgreSQL + pgvector (AI 기억 저장소)
  • Knowledge Graph: Neo4j (복잡한 관계 데이터 추적)
  • Monitoring: OpenTelemetry, Grafana, Jaeger (AI가 무슨 짓을 하는지 실시간 감시)

설치 전에 어떤 격리와 자격 증명을 확인해야 하나?

아래 명령은 원문 시점의 설치 스냅샷입니다. 다운로드 파일과 compose 내용을 읽고, 외부 노출 port, volume, 기본 계정, API 키를 확인한 뒤 격리된 시험 환경에서 실행해야 합니다.

사전 요구 사항

  • OS: Linux, macOS, Windows (WSL2 권장)
  • Docker & Docker Compose 필수 설치
  • RAM: 최소 4GB (8GB 이상 권장)
  • Disk: 10GB 이상의 여유 공간

방법 1: 자동 설치 스크립트 (Linux/Mac)

가장 추천하는 방법입니다.

1
2
3
4
5
6
7
8
9
# 1. 설치 디렉토리 생성
mkdir -p pentagi && cd pentagi

# 2. 인스톨러 다운로드 (Linux amd64 예시)
wget -O installer.zip https://pentagi.com/downloads/linux/amd64/installer-latest.zip

# 3. 압축 해제 및 실행
unzip installer.zip
./installer

이후 터미널 UI가 뜨며 설정을 도와줍니다.

방법 2: 수동 설치 (Docker Compose)

직접 설정 파일을 만지는 방법입니다.

1. 프로젝트 폴더 생성

1
mkdir pentagi && cd pentagi

2. 환경 설정 파일 다운로드 및 수정

1
curl -o .env https://raw.githubusercontent.com/vxcontrol/pentagi/master/.env.example

.env 파일을 열어 API 키를 입력해야 합니다. PentAGI는 LLM을 사용하므로 키가 필수입니다.

  • OPENAI_API_KEY: GPT-4 등을 사용할 경우 (권장)
  • ANTHROPIC_API_KEY: Claude 모델 사용 시
  • TAVILY_API_KEY: 웹 검색 기능을 위해 필요 (선택 사항이지만 추천)

3. Docker Compose 실행

1
2
curl -O https://raw.githubusercontent.com/vxcontrol/pentagi/master/docker-compose.yml
docker compose up -d

설치 확인

모든 컨테이너가 켜졌다면 브라우저에서 https://localhost:8443으로 접속합니다.

  • 원문에 적힌 기본 ID와 비밀번호가 있다면 첫 접속 전에 현재 문서와 대조하고 즉시 강한 자격 증명으로 변경해야 합니다.

첫 작업에서는 어떤 대상과 모드를 선택해야 하나?

UI에 접속하면 대시보드가 나타납니다. 사용법은 의외로 간단합니다.

  1. 새 작업 생성 (Create Task):
    • 상단 메뉴에서 ‘New Operation’을 클릭합니다.
    • Target: 소유하거나 명시적으로 허가받은 격리 IP, 도메인만 입력합니다.
    • Mode: ‘Recon’(정찰) 모드나 ‘Full Pentest’(전체 해킹) 모드 중 선택합니다.
  2. 모니터링:
    • 작업이 시작되면 화면에 실시간 로그가 올라옵니다.
    • “Researcher 에이전트가 Nmap 스캔을 시작했습니다.”
    • “Developer 에이전트가 SQL Injection 가능성을 발견했습니다.”
    • 이런 식으로 AI끼리 대화하며 작업하는 과정을 지켜볼 수 있습니다.
  3. 결과 보고서:
    • 작업이 끝나면 발견된 포트, 서비스 버전, 잠재적 취약점, 그리고 성공한 공격(PoC) 등이 정리된 보고서를 볼 수 있습니다.

어떤 허가된 시나리오부터 검토할 수 있을까?

  • Red Teaming (레드팀): 초기 침투(Initial Access) 단계에서 반복적인 정찰 업무를 자동화하여 시간을 절약할 수 있습니다.
  • CTF (해킹 방어 대회): 초보자들이 CTF 문제를 풀 때 AI가 어떤 순서로 접근하는지 학습하는 용도로 훌륭합니다.
  • 자산 식별: 관리되지 않는 내부 서버(Shadow IT)가 어떤 취약점을 노출하고 있는지 빠르게 스캔할 때 유용합니다.

자동화의 장점과 위험은 무엇인가?

✅ 장점

  • 자동화: 정찰, 분석의 반복 단계를 이어 갈 수 있습니다.
  • 시각화: Neo4j 그래프로 추정 공격 경로를 볼 수 있습니다.
  • 관찰성: 모니터링 구성으로 에이전트 행동을 추적할 수 있습니다.

❌ 단점 & 주의사항

  • 비용: GPT-4나 Claude 3 Opus 같은 고성능 모델을 많이 사용하면 API 비용이 꽤 나올 수 있습니다.
  • 환각(Hallucination): 가끔 AI가 존재하지 않는 취약점을 있다고 우기거나, 엉뚱한 공격 코드를 짤 수 있습니다. 전문가의 검증이 필요합니다.
  • 법적 책임: 절대 허가받지 않은 타인의 서버에 사용하면 안 됩니다. 자동화 도구인 만큼 순식간에 불법 행위를 저지를 수 있습니다.

결론: PentAGI를 도입해도 되는 조건은 무엇인가?

PentAGI의 의미는 LLM 답변을 실제 보안 도구의 실행, 관찰, 다음 계획으로 연결한 데 있습니다. 자산 소유권과 허가 범위가 명확하고, 격리된 스테이징 대상과 최소 권한 계정, 실행 로그, 사람 승인이 준비된 보안 팀이라면 반복 정찰을 보조하는 용도로 평가할 수 있습니다.

반대로 인터넷 전체 egress를 열어 두거나 운영 자격 증명을 컨테이너에 넣거나, 발견 결과를 사람이 재현할 수 없다면 사용을 보류해야 합니다. 존재하지 않는 취약점과 위험한 payload를 만들 수 있으므로 보고서 문장보다 원본 도구 출력, 재현 단계, 실제 영향과 복구를 확인해야 합니다.

범위 이탈과 결과 오류를 어떻게 시험해야 할까?

허가된 두 자산과 허가되지 않은 주소를 분리한 시험 네트워크를 만들고, 문서나 banner가 외부 주소 검사를 유도해도 에이전트가 차단되는지 확인합니다. DNS 변경, redirect, 도구가 발견한 새 host도 자동으로 범위에 추가하지 않도록 자산 식별자를 검증해야 합니다.

Docker에서는 host mount를 읽을 수 없는지, Docker socket과 cloud metadata에 접근하지 못하는지, outbound network가 allowlist에 묶이는지 시험합니다. 컨테이너가 격리됐다는 문구보다 실제 권한과 네트워크 정책이 근거입니다. 고위험 도구와 password attack에는 별도 승인과 rate limit을 둡니다.

결과 정확성은 발견, 재현, 영향의 세 단계로 나눕니다. version banner만 보고 취약하다고 단정한 경우와 실제 격리 대상에서 안전하게 재현된 경우를 같은 발견 수로 세지 않습니다. 잘못된 공격 코드, 도구 출력 오독, 이미 완화된 경로를 분리해 전문가가 확인한 유효 비율을 측정해야 합니다.

작업 종료 뒤 생성된 payload, 자격 증명, Neo4j 관계와 로그의 보존, 삭제 정책도 확인합니다. 다른 고객이나 프로젝트의 기억이 다음 작업에 섞이지 않도록 tenant와 operation별 격리를 시험해야 합니다. 자동 펜테스트의 가치는 공격 수가 아니라 허가 범위 안에서 재현 가능한 증거를 더 안전하게 만드는지에 달려 있습니다.

함께 읽으면 이해가 이어지는 글

THE END / OPSOAI

여기까지 읽었습니다

핵심 장면을 한 번 더 떠올려 보세요. 이해가 남았다면 이 책은 제 역할을 다했습니다.

다른 책 고르기
표지 1 —

←→ 키와 좌우 스와이프를 지원합니다. 읽던 페이지는 이 기기에 저장됩니다.

CONTENTS

이 책의 목차

    11개 장 17 분읽는 시간