T3MP3ST: 인가된 보안 테스트를 위한 멀티 에이전트 레드팀 하네스

T3MP3ST 소개

T3MP3ST는 이미 사용 중인 AI 코딩 에이전트를 공격 보안(offensive security) 작업의 실행 주체로 삼는 멀티 에이전트 하네스입니다. 정찰부터 취약점 탐색, 보고서 작성까지 이어지는 작업 흐름을 여러 역할의 에이전트가 나눠 수행하며, 웹 War Room 화면이나 CLI 어느 쪽에서든 구동할 수 있습니다. 저자는 이 프로젝트를 "이미 실행 중인 AI 코딩 에이전트를 제로데이 헌터로 바꿔주는 멀티 에이전트 공격 보안 프레임워크" 라고 소개합니다.

가장 큰 설계상의 특징은 별도의 API 키가 필요 없다는 점입니다. Claude Code, Codex, Hermes처럼 이미 로그인해 둔 로컬 에이전트를 두뇌로 연결하거나, Ollama·LM Studio·vLLM 같은 완전 오프라인 모델을 붙여 쓸 수 있습니다. 필요하면 OpenRouter·Venice·Anthropic·OpenAI 키를 지정하는 방식도 지원하지만, 기본 경로는 새 API 키나 클라우드 계정 없이 로컬 에이전트만으로 동작하도록 설계되어 있습니다.

이 도구는 인가된(authorized) 테스트·연구·교육 목적으로만 사용하도록 명시되어 있습니다. README는 소유하고 있거나 명시적·서면 허가를 받은 시스템에만 사용해야 하며, 무단 접근은 대부분의 법역에서 불법이고 사용에 대한 책임은 전적으로 사용자에게 있다고 강조합니다. 아래에서 다루는 내용도 이 전제 위에서 프로젝트의 구조와 공개된 벤치마크를 정리한 것입니다.

T3MP3ST의 8개 오퍼레이터 구조

T3MP3ST의 작업 흐름은 8개의 오퍼레이터(operator)로 나뉜 킬체인입니다. 각 오퍼레이터는 사이버 킬체인과 MITRE ATT&CK 단계에 대응하며, 정찰에서 시작해 분석·보고로 수렴합니다.

  • Recon(정찰): OSINT, 네트워크 탐색, 자산 열거를 담당하며, nmap·DNS·HTTP·핑거프린팅 도구를 실제로 구동합니다.
  • Scanner(스캐너): 취약점 스캐닝과 서비스 핑거프린팅을 수행합니다.
  • Exploiter(익스플로이터): 초기 침투와 페이로드 전달을 맡습니다.
  • Infiltrator(인필트레이터): 측면 이동과 권한 상승 등 사후 침투 단계를 담당합니다.
  • Exfiltrator(엑스필트레이터): 데이터 추출과 자격 증명 수집을 수행합니다.
  • Ghost(고스트): 지속성 유지, 은닉, 흔적 정리를 담당합니다.
  • Coordinator(코디네이터): 미션 제어와 오케스트레이션을 맡는 지휘 역할입니다.
  • Analyst(애널리스트): 패턴 분석과 보고서 작성을 담당합니다.

저자는 현재 상태를 솔직하게 구분해 밝히고 있습니다. 정찰 엔진은 실제 도구에 연결된 안정 단계이고 모든 발견은 실제 도구 출력으로 추적되지만, 8개 오퍼레이터가 하나의 조율된 스웜(swarm)으로 함께 동작하는 부분은 아직 검증되지 않았고 불안정하다고 명시합니다. 벤치마크 수치도 조율된 스웜이 아니라 단일 에이전트가 실제 도구를 사용하는 ReAct 루프에서 나온 것이라고 밝히고 있습니다. Exploiter·Infiltrator·Exfiltrator·Ghost는 정찰과 같은 실제 도구 기반 ReAct 루프로 동작하지만 실험 단계로 표시되어 있고, 클라우드·지속성·인지(cognition) 같은 고급 모듈은 src/stubs/에 인터페이스만 있는 계획 단계입니다.

T3MP3ST의 벤치마크와 재현 가능성

T3MP3ST가 내세우는 또 다른 축은 모든 수치가 커밋된 데이터에서 재계산된다는 점입니다. README의 모든 헤드라인 수치는 npm run verify-claims 한 번으로 다시 도출되며, 저자는 재현할 수 없는 주장은 배포하지 않는다는 원칙을 밝히고 있습니다. 공개된 주요 벤치마크는 다음과 같습니다.

벤치마크 결과 맥락
XBEN (XBOW 104개 챌린지, 블랙박스) pass@1 평균 90.1% (Wilson-95 86.2–92.9), gpt-5.5 XBOW 자체 보고치는 동일 스위트에서 85%
XBEN (화이트박스, 별도 보고) pass@1 98.7%, gpt-5.5 블랙박스 수치와 절대 혼합하지 않음
Cybench (40개 과제, Opus 4.8, 힌트 없음) 23/40 (58%), 단일 실행 pass@1 원점수 최고 기록(Anthropic 76.5% pass@10)이 아님
CVE-Zero (2026년 컷오프 이후 실제 CVE 10건, held-out, 7개 언어) 단일 에이전트 8/10 정확한 파일·라인·CWE, 10/10 발견 컷오프 이후 데이터로 암기·과적합 방지

저자는 이 수치들이 8개 오퍼레이터 스웜이 아니라 단일 에이전트 ReAct 루프에서 나왔다는 점, 블랙박스와 화이트박스를 분리해 보고한다는 점, 강력한 최신 모델을 이 하네스로 구동한 시스템 대 시스템 결과라는 점을 함께 명시합니다. 각 플래그는 자기 보고가 아니라 커밋된 정답(oracle)과 대조해 채점되며, verify-claims가 모든 판정을 재계산합니다. XBEN 90.1%, held-out CVE 8/10 같은 수치는 재현 절차가 저장소에 함께 들어 있으므로, 직접 클론해 실행하면 눈앞에서 다시 도출된다는 것이 프로젝트의 핵심 주장입니다.

T3MP3ST 설치 및 사용법

기본 구동은 War Room 서버를 띄우는 것으로 시작합니다.

npm install
npm run server        # War Room → http://127.0.0.1:3333/ui/

War Room의 Settings에서 로컬 에이전트(Claude Code / Codex / Hermes)를 연결한 뒤, Op Admiral에게 평문으로 대상을 설명하고 실행합니다. 연결한 에이전트가 두뇌 역할을 하며 별도 키가 필요 없습니다. 완전 오프라인으로 자체 모델을 쓰려면 OpenAI 호환 서버를 지정합니다.

ollama serve && ollama pull llama3
export TEMPEST_LOCAL_BASE_URL=http://localhost:11434/api
export TEMPEST_LOCAL_MODEL=llama3
npx tempest config

도구 호출은 텍스트 기반으로 구동되므로, 네이티브 함수 호출을 지원하지 않는 로컬 모델에서도 아스널(Arsenal)이 동작합니다. 기본 아스널은 35개 도구이고, 선택형 T3MP3ST_FULL_ARSENAL을 켜면 48개 어댑터가 추가되어 83개가 되며, metasploit·hydra 같은 위험한 사후 침투 드라이버는 사람이 승인하는 게이트 뒤에 놓입니다. 또한 미션 대상이 정해지면 내장 네트워크 도구가 범위를 벗어난 공개 호스트 접근을 기본적으로 거부하는(SCOPE DENIED) 이그레스 범위 격리가 기본 활성화되어 있습니다.

수치를 직접 확인하려면 다음 명령으로 커밋된 JSON에서 모든 헤드라인을 재도출할 수 있습니다.

npm run verify-claims

라이브러리·SDK 사용법, 전체 HTTP API, MCP 설정은 저장소의 docs 디렉토리에 정리되어 있습니다. node dist/mcp-server.js는 MCP를 인식하는 에이전트에 security_recon을 노출하고, npm run server는 HTTP API를 시작합니다.

T3MP3ST의 라이선스

T3MP3ST는 AGPL-3.0 라이선스로 공개되어 있습니다. AGPL-3.0은 네트워크를 통해 소프트웨어를 제공하는 경우에도 파생 저작물의 소스 코드를 동일한 라이선스로 공개해야 하는 카피레프트 라이선스입니다. 프로젝트는 보증이나 책임 없이 있는 그대로(as-is) 제공되며, 저자는 무단 활동을 지지하지 않고 인가된 범위 안에서만 사용할 것을 요구하고 있습니다.

:github: T3MP3ST 프로젝트 GitHub 저장소

더 읽어보기




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로도 새 글 알림을 받으실 수 있습니다. :smiley:

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck: