jiwoochris/artex-global

Global edition of ARTEX — an LLM multi-agent autonomous penetration-testing framework. English default, switchable to Korean/Chinese/Spanish/Japanese. For authorized, defensive and detection use only. (upstream: Autumn-27/ARTEX, AGPL-3.0)

GitHub에서 열기 ↗ ai-agentautonomous-agentsblue-teamcybersecuritydetection-engineeringi18nkoreanllmpenetration-testingsecuritysecurity-researchsecurity-toolssigma-rulesthreat-detection
2,728
GitHub 스타
2,620
포크
Go
언어
AGPL-3.0
라이선스
2026.10.14
최근 푸시
2026.10.12
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
한국어 사용자와 팀을 대상으로 자율 AI 침투 테스트와 방어·탐지 역량을 함께 연구하려는 경우 참고 가치가 높다. 특히 다국어 출력 강제 방식과 방어자 관점 문서화 전략은 사내 보안 도구나 연구 프로젝트에 응용할 수 있다.

강점

  • LLM 멀티 에이전트가 정찰부터 침투까지 자율적으로 수행하고 결과를 그래프로 누적하는 구조가 명확하며, Go 단일 바이너리에 Next.js 프런트엔드를 임베드해 배포가 단순하다.
  • 영어·한국어·중국어·스페인어·일본어 5개 언어 UI와 출력을 지원해 한국 사용자와 팀이 결과를 읽고 공유하기 쉽다.
  • Docker Compose 기반 빠른 시작과 설치 스크립트, 소스 빌드 등 여러 설치 경로를 제공하고, GHCR에 릴리스 이미지를 게시해 재현성이 높다.
  • 방어자 관점의 탐지 시그니처·하드닝 체크리스트 등 방어/탐지 자료를 함께 제공하고, 법적 경계와 오용 경고를 문서 전면에 명시한다.

약점

  • 출력 언어 강제가 프롬프트 지시문에 의존하므로 모델 능력·역할·컨텍스트에 따라 선택 언어 유지가 일관되지 않을 수 있다.
  • 업스트림 저장소가 현재 접근 불가 상태이고 원본 이미지도 Docker Hub에서 내려가, 업스트림 변경 추적과 비교가 어렵다.
  • README가 잘려 있어 모델 선택·출력 언어 검증 수치, First-run protection, License and disclaimer 등 세부 내용을 온전히 확인할 수 없다.

주의사항

  • 자율 공격 도구이므로 반드시 본인 소유 또는 서면 승인을 받은 대상에만 사용해야 하며, 무단 사용은 정보통신망법·개인정보보호법 위반이 될 수 있다.
  • 개인정보가 관련된 경우 접근·보관·삭제에 각별히 주의하고, 실제 외부 시스템 대상 시 승인 범위와 시간 창을 문서화해야 한다.
  • AGPL-3.0 라이선스이므로 네트워크 서비스로 제공·수정·배포 시 소스 공개 의무 등 라이선스 조건을 검토해야 한다.
  • `-addr` 기본값이 로컬 전용이므로 외부 바인드 시 접근 통제와 초기 설정 토큰 노출에 유의해야 한다.

시작 가이드

  • Docker Compose로 로컬 격리 환경에서 빠른 시작을 재현하고, `/setup` 초기 설정과 LLM 키 연동을 확인한다.
  • Settings에서 출력 언어를 한국어로 전환한 뒤 발견 사항·보고서·채팅 응답의 언어 일관성을 실제로 검증한다.
  • Defense & Detection Guide와 탐지 시그니처·하드닝 체크리스트를 검토해 방어 관점 활용 방안을 정리한다.
  • AGPL-3.0 라이선스 조건과 사내 사용 정책, 법적 경계 문서를 검토한 뒤 도입 여부를 결정한다.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

ARTEX — Global Edition

LLM 멀티 에이전트가 구동하는 자율 침투 테스트 시스템 (Go 백엔드 + Next.js 프런트엔드)

UI와 생성되는 출력은 기본적으로 영어이며, 설정(Settings)에서 한국어, 중국어, 스페인어, 일본어로 전환할 수 있습니다 (System → Settings → Display language). 언어를 바꾸면 에이전트가 생성하는 보고서, 요약, 채팅 응답의 언어도 함께 바뀝니다.

English · 한국어 · 中文 · Español · 日本語


## 🚨 보안 및 오용 경고 — 먼저 읽어 주세요

>

이 저장소는 오직 권한이 부여된 환경에서, 방어 및 탐지 역량을 구축하기 위한 목적으로만 공개되었습니다.

>

ARTEX는 사람의 개입을 거의 필요로 하지 않고 정찰부터 침투, 데이터 유출까지 공격을 수행할 수 있을 만큼 강력한 자율 공격 도구이므로, 오용 시 발생하는 피해도 그에 비례해 큽니다. 2026년 10월, 여러 한국 언론은 수사 당국이 국내 금융기관을 대상으로 한 개인정보 유출 사건에 업스트림 ARTEX가 사용된 정황을 발견했다고 보도했으며, 관련 수사는 진행 중입니다. 이 글로벌 에디션은 공격자를 돕기 위해 공개된 것이 아닙니다. 그 목적은 방어자가 이러한 자율 AI 공격이 어떻게 작동하는지 이해하고, 이를 탐지하고 차단할 역량을 구축하도록 돕는 데 있습니다.

>

- 무단 사용은 그 자체로 범죄입니다. 본인이 소유하지 않았거나 명시적인 서면 승인을 받지 않은 시스템에 대해 스캐닝, 프로빙, 익스플로잇을 수행하지 마십시오. 대한민국에서 정보통신망에 대한 무단 침입은 정보통신망법을 위반하며, 개인정보가 관련된 경우 개인정보보호법도 적용됩니다.

- 실서비스나 타인의 자산을 대상으로 삼지 마십시오. 본인이 소유한 학습·연구·로컬 격리 환경(OWASP Juice Shop, DVWA 등 의도적으로 취약하게 만든 대상)에서만 검증하십시오.

- 방어자의 관점에서 읽으십시오. 이 저장소는 자율 AI 공격에 대한 탐지 시그니처와 하드닝 체크리스트 등 방어 및 탐지 자료도 함께 정리하고 있습니다. → Defense & Detection Guide (한국어판도 제공)

>

이 경고와 아래의 사용 제한 및 면책 조항에 동의하지 않는다면, 이 저장소를 다운로드하거나 사용하지 마십시오.


이 저장소는 중국 오픈소스 프로젝트 Autumn-27/ARTEX (AGPL-3.0 · 업스트림 저장소는 현재 접근 불가, 2026-10 확인)의 현지화 에디션으로, 전 세계 사용자와 팀이 그대로 도입할 수 있도록 개작한 것입니다. 에이전트의 의사결정 성능을 유지하기 위해 내부 추론 프롬프트는 원래 언어로 유지하고, 사용자에게 노출되는 출력(발견 사항, 요약, 보고서, 채팅 응답)만 선택한 언어(기본 영어)로 강제합니다. 그 근거는 아래 "글로벌 에디션이 필요한 이유"를 참고하십시오.

ARTEX는 여러 LLM 기반 에이전트가 자율적으로 침투 테스트를 수행하는 시스템입니다. 에이전트는 스스로 목표를 분해하고, 실제 도구를 실행하며, 발견한 자산과 취약점을 그래프에 누적해 나갑니다. 단일 Go 바이너리에 Next.js 프런트엔드가 임베드되어 배포되며, 모든 데이터는 PostgreSQL에 저장됩니다.

이 에디션의 언어에 관한 참고. 이 포크는 제품을 영어(기본), 한국어, 중국어, 스페인어, 일본어의 다섯 언어로 사용할 수 있게 하며, 설정에서 선택할 수 있습니다. 사용자에게 노출되는 출력은 선택한 언어로 강제되지만, 에이전트의 내부 추론 프롬프트는 벤치마크된 성능을 유지하기 위해 원래 언어로 남겨 둡니다. 출력 언어가 작은 코드 고정 지시문에 의해 어떻게 강제되는지는 Configuration을 참고하십시오.


⚠️ 먼저 읽어 주세요 — 허가된 사용과 법적 고지

ARTEX는 본인이 소유한 대상 또는 명시적인 서면 승인을 받은 대상에 대해서만 사용할 수 있습니다. 승인 범위를 벗어난 스캐닝, 프로빙, 익스플로잇은 그 자체로 위법일 수 있습니다.

  • 대한민국에서 타인의 정보통신망에 무단으로 침입하거나 이를 방해하는 행위는 정보통신망 이용촉진 및 정보보호 등에 관한 법률(정보통신망법)을 위반합니다.
  • 침투 테스트 중 수집되거나 노출된 개인정보에는 한국의 개인정보 보호법(개인정보보호법)이 적용됩니다. 승인이 있더라도 개인정보의 접근, 보관, 삭제를 신중하게 처리하십시오.
  • 어디에 있든, 해당 관할 지역의 네트워크 보안, 데이터 보호, 컴퓨터 범죄 관련 법률을 준수하십시오.
  • 이 도구는 학습, 연구, 로컬 격리 환경에서의 검증을 위해 사용하십시오. 실제 외부 시스템을 대상으로 삼기 전에 서면 승인과 합의된 범위 및 시간 창을 확보하십시오.

전체 라이선스 조건, 사용 제한, 면책 조항은 아래 License and disclaimer 섹션에 있습니다. 이 도구를 사용하는 것은 해당 조건에 동의하는 것으로 간주됩니다.


글로벌 에디션이 필요한 이유

업스트림 ARTEX는 프롬프트, UI, 문서가 전부 중국어로 되어 있어, 중국어를 읽지 못하는 사람이 결과를 읽고 팀과 공유하기에 번거로웠습니다. 이 에디션의 목표는 다음과 같습니다.

  • 출력 현지화 — 에이전트가 사람에게 제시하는 발견 사항, 사실 요약, 최종 보고서, 채팅 응답을 선택한 언어(기본 영어, 한국어·중국어·스페인어·일본어 선택 가능)로 강제합니다. 명령, 페이로드, 코드, URL, 원시 로그는 분석에 필요하므로 원래 형태로 남겨 둡니다.
  • 성능 유지 — 에이전트의 판단을 이끄는 내부 추론 프롬프트(행동 지시 본문)는 번역하지 않습니다. 원래 언어로 벤치마크된 동작을 그대로 유지하고 출력 언어만 바꾸어, 번역이 초래하는 품질 저하를 피합니다.
  • 법적 경계 명시 — "승인된 범위에서만" 경고를 명확히 밝히고, 한국의 네트워크 및 개인정보 법률에 관한 고지(유지관리자가 한국에 기반)를 함께 제시합니다. 운영하는 지역의 법률도 당연히 적용됩니다.
  • 다양한 LLM 스택 지원 — LLM 제공자를 최전선 모델에서 OpenAI 호환 엔드포인트(국내 또는 오픈 모델)로 교체할 수 있습니다. Configuration을 참고하십시오.

이 다국어 에디션의 경계와 설계 정책은 저장소의 작업 노트에 더 자세히 문서화되어 있습니다. 업스트림 저장소와 쉽게 비교(diff)할 수 있도록 원본 중국어 문서는 README.zh.md로 보존되어 있습니다.


스크린샷

아래 세 화면은 기본 영어 UI를 보여줍니다(설정에서 한국어, 중국어, 스페인어, 일본어로 전환 가능). 데이터는 로컬의 격리된 샌드박스에서 가져온 것으로, 모든 대상은 가상의 acme.com과 사설 주소 대역입니다.

Dashboard — 활성 작업, 확인된 발견 사항, 자산 노드, LLM 토큰 사용량, 활동 피드를 한 화면에 표시합니다.

Findings — 심각도, 상태, 자산, 소유 작업별로 집계된 결과로, CSV로 내보낼 수 있습니다. 발견 사항 제목은 모델이 생성하므로 대상 앱을 반영하여 영어 기술 용어가 나타날 수 있습니다(Model selection and output language 참고). 각 제목 아래의 설명과 나머지 UI는 영어입니다(기본값, 설정에서 전환 가능).

Chat — 사람이 자율 실행에 개입하여 힌트를 주입하고, 에이전트는 공격 체인을 영어로 요약합니다.

원본(중국어 UI) 화면은 README.zh.md(중국어 UI)에서 볼 수 있습니다.


빠른 시작 (Docker Compose)

사전 요구 사항: Docker와 Docker Compose. 데이터베이스는 PostgreSQL이며 compose가 함께 띄웁니다. 탐색에는 LLM이 필요합니다(ANTHROPICAPIKEY 또는 OPENAIAPIKEY, UI에서도 설정 가능).

이미지: docker-compose.yml의 artex 서비스는 이 저장소가 릴리스 태그(v*)마다 GitHub Container Registry에 게시하는 글로벌 에디션 이미지 ghcr.io/jiwoochris/artex-global을 가져옵니다. 기본 태그는 latest(가장 최근 릴리스)이며, .env에서 ARTEX_TAG를 설정해 특정 릴리스를 고정할 수 있습니다. 업스트림의 원본 이미지 autumn27/artex는 Docker Hub에서 내려갔으며 더 이상 사용되지 않습니다.

git clone https://github.com/jiwoochris/artex-global.git
cd artex-global
cp.env.example.env          # set POSTGRES_PASSWORD; ANTHROPIC_API_KEY is optional
docker compose up -d          # brings up the artex image + postgres together
# → open http://localhost:8787 (on first visit, set the admin password at /setup)
#   /setup asks for the setup token printed in the startup log: docker compose logs artex | grep -F '[auth]'

이미지에는 일반적인 도구(ripgrep, curl, vim, npm, nmap 등)가 포함되어 있으며, compose로 띄우면 ./skills와 ./data가 호스트에 바인드 마운트되어 컨테이너를 다시 만들어도 유지됩니다.

다른 설치 방법

업스트림은 여러 방법을 제공합니다. 설치 스크립트(./install.sh), 미리 컴파일된 바이너리(Releases), 소스에서 단일 바이너리 빌드입니다. 명령과 전체 절차는 README.zh.md의 "安装"(설치) 섹션(중국어)에 정리되어 있으며, 핵심은 아래에 다시 옮겨 두었습니다.

  • 설치 스크립트: ./install.sh를 실행하면 Docker를 감지/설치한 뒤 "① all-in-Docker" 또는 "② local compile and run"을 선택하게 합니다. "① all-in-Docker"는 위 빠른 시작과 동일한 이미지(ghcr.io/jiwoochris/artex-global)를 가져와 시작하고, "② local compile and run"은 아래 소스에서 단일 바이너리 빌드와 같은 방식으로 직접 빌드합니다.
  • 소스에서 단일 바이너리 빌드:
  cd web && npm ci && npm run build:static && cd..   # 1) static frontend build
  rm -rf server/webui/dist && mkdir -p server/webui/dist && cp -a web/out/. server/webui/dist/   # 2) sync into the embed directory (avoids nesting on rebuild)
  CGO_ENABLED=0 go build -tags embedui -o artex./cmd/artex   # 3) compile with the frontend embedded./start.sh                                          # → http://localhost:8787

1) 단계의 npm ci는 빌드에 필요한 devDependencies(예: @tailwindcss/postcss)를 설치합니다. 셸에 NODE_ENV=production이 설정되어 있으면 npm ci가 devDependencies를 건너뛰어 빌드가 Error: Cannot find module '@tailwindcss/postcss'로 실패합니다. 이 경우 npm ci --include=dev로 설치하십시오.

./artex를 직접 실행하지 말고 start.sh(Windows에서는 start.bat)로 실행하십시오. 이 스크립트는 종료 코드에 따라 프로그램을 재시작하는 슈퍼바이저이며, UI의 "원클릭 업데이트"도 처리합니다.


Configuration

데이터베이스 (config.json, 또는 ARTEXPGDSN 환경 변수로 재정의):

{
  "database": {
    "host": "127.0.0.1", "port": 5432,
    "user": "artex", "password": "yourpass",
    "dbname": "artex", "sslmode": "disable"
  }
}

LLM: export ANTHROPICAPIKEY=sk-... (또는 OPENAIAPIKEY), 또는 UI의 "LLM settings" 페이지에서 입력합니다. 선택적 환경 변수: ARTEXLLMPROVIDER / ARTEXLLMMODEL / ARTEXLLMBASEURL / ARTEXLLMPROXY. 국내 또는 오픈 모델을 사용하려면 ARTEXLLMBASEURL을 OpenAI 호환 엔드포인트로 지정하십시오.

출력 언어: 이 에디션은 각 역할의 시스템 프롬프트에 추가되는 작은 코드 고정 지시문을 통해 사용자 노출 출력을 선택한 언어(기본 영어)로 강제합니다(추론 본문은 번역하지 않음). 설정에서 언어를 전환하거나, agent/prompt.go의 해당 지시문(langDirective)을 수정할 수 있습니다.

동시성: 작업당 생성되는 워커 에이전트 수는 "System settings"에서 조정할 수 있습니다(기본 3).

일반 플래그: ./start.sh -addr :8787 -proxy :8788 — -addr은 프런트엔드와 API, -proxy는 트래픽 기록 프록시 포트입니다. -addr의 기본값은 127.0.0.1:8787(로컬 연결만 허용)이며, 다른 머신에 서비스하려면 :8787처럼 바인드 주소를 명시적으로 지정하십시오(아래 "First-run protection" 참고).

Model selection and output language

출력 언어 강제는 하드코딩된 상한이 아니라 프롬프트 지시문(agent/prompt.go의 langDirective())에 의해 구동됩니다. 따라서 출력이 선택한 언어로 얼마나 일관되게 유지되는지는 모델의 능력, 역할, 컨텍스트에 따라 달라집니다. 아래 검증 수치는 한국어가 기본일 때 한국어 출력으로 측정한 것입니다.

원본 저장소: jiwoochris/artex-global

라이선스: AGPL-3.0

게재 제외를 원하시면 삭제 요청을 보내주세요.