# ARTEX 韩语版 **由 LLM 多智能体自主执行渗透测试的系统**(Go 后端 + Next.js 前端) 韩语 · [中文](README.zh.md) · [English](README.en.md) [![ci](https://github.com/jiwoochris/artex-ko/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/jiwoochris/artex-ko/actions/workflows/ci.yml) [![detections](https://github.com/jiwoochris/artex-ko/actions/workflows/detections.yml/badge.svg?branch=main)](https://github.com/jiwoochris/artex-ko/actions/workflows/detections.yml) [![web](https://github.com/jiwoochris/artex-ko/actions/workflows/web.yml/badge.svg?branch=main)](https://github.com/jiwoochris/artex-ko/actions/workflows/web.yml) [![license: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE)
--- > ## 🚨 安全与滥用警告:请务必先阅读 > > **本仓库仅面向获得授权的环境公开,用于培养防御与检测能力。** > > ARTEX 是一把极其强大的自主攻击工具,它几乎无需人工介入,就能自行完成从侦察到入侵、再到数据外带的整个攻击过程。相应地,滥用所造成的危害也极大。2026 年 10 月,韩国多家媒体报道称,调查当局发现原始 ARTEX 被用于针对韩国金融机构的个人信息泄露攻击的迹象,相关调查正在进行中。公开这个韩语版本的目的并非协助攻击,而是帮助防御方理解这类自主 AI 攻击的运作原理,并具备检测与阻断的能力。 > > - **未经授权的使用本身就构成犯罪。** 除非目标是你自己所有、或已获得书面明确授权的对象,否则不要对任何系统执行扫描、探测或漏洞利用。在韩国,未经授权侵入信息通信网的行为违反《信息通信网法》,若涉及个人信息还会同时适用《个人信息保护法》。 > - **不要以真实服务或他人资产为目标。** 只在学习、研究以及你自己所有的本地隔离环境(如 OWASP Juice Shop、DVWA 这类故意做成存在漏洞的环境)中验证。 > - **请从防御的视角来阅读。** 本仓库同时整理自主 AI 攻击的检测特征与加固清单等防御/检测资料。→ **[自主 AI 攻击防御与检测指南](docs/defense-ko.md)** > > 如果你不同意本警告以及下面的 [使用限制与免责](#许可证与免责),请不要下载或使用本仓库。 --- > **本仓库是将中国开源项目 [Autumn-27/ARTEX](https://github.com/Autumn-27/ARTEX)(AGPL-3.0)本地化、以便韩国用户与团队直接使用的版本。** 为保留智能体的判断性能,内部推理提示词保持原文不翻译,只强制将面向用户的产出(检测结果、摘要、报告、对话回复)输出为韩语。下方"为什么做韩语版"一节说明了这一方针。 ARTEX 是一个由 LLM 操控的多个智能体**自行拆解目标、执行真实工具、并将发现的资产与漏洞不断累积到图中**,从而自主推进渗透测试过程的系统。它将 Next.js 前端内嵌到单个 Go 二进制中,数据存储于 PostgreSQL。 --- ## ⚠️ 请先阅读 — 使用范围与韩国法律告知 ARTEX **只能用于你自己所有、或已获得书面明确授权的对象**。超出授权范围的扫描、探测、漏洞利用本身就可能违法。 - 在韩国,未经授权侵入他人信息通信网或造成故障的行为,违反**《信息通信网利用促进及信息保护等相关法律》**。 - 渗透测试过程中收集、暴露的个人信息受**《个人信息保护法》**约束。即便有授权,也必须谨慎处理个人信息的查阅、保管与销毁。 - 请用于**学习、研究、本地隔离环境验证**的目的。在针对线上外部系统之前,必须取得书面授权并就范围与时间窗口达成一致。 详细的许可证、使用限制与免责条款见下方 [许可证与免责](#许可证与免责) 一节。仅使用本工具即视为用户已同意其条件。 --- ## 为什么做韩语版 原始 ARTEX 的提示词、UI、文档全部为中文,韩国用户阅读结果并与团队分享颇为麻烦。本韩语版的目标如下。 - **产出韩语化**:强制智能体向人输出的检测结果、事实摘要、最终报告、对话回复使用韩语输出。命令、载荷、代码、URL、日志原文因为分析需要,保持原样。 - **性能保留**:决定智能体判断的内部推理提示词(行为指令正文)不翻译。保持以原文基准测试过的行为,仅更改输出语言,避免翻译带来的质量下降。 - **韩国法律告知**:以韩语明确提供《信息通信网法》《个人信息保护法》告知以及"仅在授权范围内使用"的警告。 - **韩国技术栈适配**:LLM 提供方不仅可换用前沿模型,还可换成 OpenAI 兼容端点(国产/开源模型)。参见下方 [配置](#配置)。 > 本地化的边界与设计方针在本仓库的工作文档中有更详细的说明。为便于对照上游仓库的变更,原始中文文档以 `README.zh.md` 保留。 --- ## 界面预览 以下三个界面是已完成韩语化的实际 UI。均为从本地隔离沙箱导出的演示数据,目标全部是虚构的 `acme.com` 与私有网段。

仪表盘:整体概览界面
仪表盘:在一屏中查看活动任务、已确认漏洞、资产节点、LLM token 消耗与活动流。
此仪表盘截图是在本地化标签之前导出的演示画面,因此"LLM Token 消耗"卡片的数据源名称仍显示为代码标识符 llm_usage。当前构建在此处显示新版本「计量账本」/旧版本「活动统计」。

漏洞列表界面
漏洞:按严重程度、状态、资产、所属任务汇总检测结果,并可导出 CSV。
漏洞标题由模型生成,可能随目标应用与技术术语夹杂英文(参见[模型选择与输出语言](#模型选择与输出语言))。标题下方的描述以及整个界面均为韩语。

人工介入对话界面
对话:在自主执行过程中人工介入给予提示,智能体以韩语总结攻击链。

原始(中文 UI)的完整界面可在 [`README.zh.md`](README.zh.md#截图预览) 查看。 --- ## 快速开始(Docker Compose) > **前置条件:** Docker 与 Docker Compose。数据库为 **PostgreSQL**,由 compose 一并启动。探测需要 **LLM**(`ANTHROPIC_API_KEY` 或 `OPENAI_API_KEY`,也可在 UI 中设置)。 > **⚠️ 目前此 compose 拉取的镜像是上游(原始)中文构建。** `docker-compose.yml` 中的 `artex` 服务拉取的是原作者上传到 Docker Hub 的 `autumn27/artex` 镜像。该镜像为**中文 UI 与中文输出**,**尚不包含**本仓库新增的韩语化(韩语 UI、韩语报告、`langDirective`)。要查看韩语版界面与输出,目前请使用下方[「其他安装方式」](#其他安装方式)中的**从源码编译单二进制**路径自行构建。韩语版 Docker 镜像的发布正在筹备中。 ```bash git clone https://github.com/jiwoochris/artex-ko.git cd artex-ko cp .env.example .env # 设置 POSTGRES_PASSWORD,ANTHROPIC_API_KEY 可选 docker compose up -d # 一并启动 artex 镜像 + postgres # → 访问 http://localhost:8787(首次进入时在 /setup 设置管理员密码) ``` 上述上游镜像内置了常用工具(ripgrep、curl、vim、npm、nmap 等)。`./skills` 与 `./data` 以 bind mount 方式保留在宿主机上,即使重建容器也会保留。 ### 其他安装方式 原始仓库提供安装脚本(`./install.sh`)、预编译二进制(Releases)、源码单二进制编译等多种方式。命令与步骤整理在 [`README.zh.md`](README.zh.md#安装) 的"安装"一节,下面仅摘录要点。 - **安装脚本:** 运行 `./install.sh` 会检测并安装 Docker,然后让你选择"① 全部 Docker"或"② 本地编译运行"。但默认的"① 全部 Docker"与上述快速开始一样,会拉取**上游中文镜像**(`autumn27/artex`),因此要查看韩语版界面与输出,请选择"② 本地编译运行",或按下述**从源码编译单二进制**路径构建。脚本在完成"① 全部 Docker"启动后也会输出同样的提示。 - **从源码编译单二进制:** ```bash cd web && npm ci && npm run build:static && cd .. # 1) 前端静态构建 rm -rf server/webui/dist && mkdir -p server/webui/dist && cp -a web/out/. server/webui/dist/ # 2) 同步到内嵌目录(防止重建时嵌套) CGO_ENABLED=0 go build -tags embedui -o artex ./cmd/artex # 3) 编译并内嵌前端 ./start.sh # → http://localhost:8787 ``` > 第 1) 步的 `npm ci` 会一并安装构建所需的 devDependencies(如 `@tailwindcss/postcss`)。若 shell 中设置了 `NODE_ENV=production`,`npm ci` 会跳过 devDependencies,导致构建以 `Error: Cannot find module '@tailwindcss/postcss'` 失败,此时请用 `npm ci --include=dev` 下载。 > 运行时请不要直接执行 `./artex`,而要用 `start.sh`(Windows 为 `start.bat`)。该脚本是一个根据退出码重新拉起程序的守护进程,UI 的"一键更新"也由该脚本处理。 --- ## 配置 **数据库**(`config.json`,或通过环境变量 `ARTEX_PG_DSN` 覆盖): ```json { "database": { "host": "127.0.0.1", "port": 5432, "user": "artex", "password": "yourpass", "dbname": "artex", "sslmode": "disable" } } ``` **LLM:** `export ANTHROPIC_API_KEY=sk-...`(或 `OPENAI_API_KEY`),或在 UI 的"LLM 设置"页面输入。可选环境变量还有 `ARTEX_LLM_PROVIDER` / `ARTEX_LLM_MODEL` / `ARTEX_LLM_BASE_URL` / `ARTEX_LLM_PROXY`。若要使用国产/开源模型,请指定 OpenAI 兼容的 `ARTEX_LLM_BASE_URL`。 **并发度:** 每个任务运行的 worker 智能体数量在"系统设置"中调整(默认值 3)。 **常用参数:** `./start.sh -addr :8787 -proxy :8788` 中,`-addr` 开放前端与 API,`-proxy` 为流量记录代理端口。 ### 模型选择与输出语言 产出的韩语化并非硬编码上限,而是**通过提示词指令(`agent/prompt.go` 中的 `langDirective()`)诱导**。因此输出保持韩语的程度取决于模型的能力、角色与上下文。 - **建议使用能力较强的前沿模型。** 在本地隔离沙箱中仅应用生产指令的简短验证运行结果显示,默认模型 `claude-opus-4-8` 在 planner、worker、reporter 产出以及持有权限的沙箱计划请求这全部四个角色中,都让面向用户的输出保持韩语,且没有被拒绝。`gpt-4o` 在同一场景下也保持了韩语。相反,廉价/小型模型(如 `gpt-4o-mini`)的报告回退成了原文(中文)。输出语言质量直接取决于模型能力,因此若环境需要人工阅读报告,请使用能力较强的模型。 - **角色/上下文仍可能导致漂移。** 相比语言本身,偏差更常出现在角色与输出格式上。尤其是在 worker 的最终一句话总结这类简短产出中,模型可能直接暴露英文思考过程,或 `report_finding` 的结构化字段随目标应用与技术术语偏向英文。在过往运行中,`gpt-4o` 的 planner 情境摘要在部分轮次也曾回退为中文。在任务指令中明确写"用韩语撰写"可提高忠实度。 - **对推理型(reasoning)模型请给足 `max_tokens`。** 单独使用思考通道的推理型模型,若响应 token 上限过小,会把预算耗尽在内部推理上,导致面向用户的最终回答为空。此时丢失的不是语言而是回答本身,因此请把该 LLM profile 的 `max_tokens` 设置得足够大。 > **OpenAI 兼容路径的 token 上限陷阱。** 像 `gpt-4o` 这类 OpenAI 系列模型的响应 token 上限为 16,384。但 OpenAI 兼容请求默认会携带更大的输出上限(32,768),若原样保留,所有调用都会以 `400 (max_tokens is too large)` 失败。此时请**在 LLM 设置中把该 profile 的 `max_tokens` 指定为 16,384 或更小**。Anthropic 系列(默认模型 `claude-opus-4-8` 等)允许 32,768,不会踩到这个陷阱。 ### 反向代理部署(仅开放 HTTPS / 443) 前端与 API/SSE 都由同一后端端口(默认 `:8787`)提供,实时活动流默认以**同源(same-origin)**方式连接。因此无需单独设置 `NEXT_PUBLIC_SSE_BASE`,只需对公网仅开放 443、把 8787 留在内网即可。 SSE 作为长连接持续推送事件,因此反向代理中**必须关闭缓冲**。若不关闭,浏览器虽然能连上,但收不到事件(活动流会一直显示加载中)。Nginx 配置示例见 [`README.zh.md`](README.zh.md#反向代理部署https--只开放-443)。 --- ## 系统架构 ARTEX 是一个**由 LLM 多智能体驱动的自主渗透系统**。使用单个 Go 后端(内嵌 Next.js 前端)加 PostgreSQL,智能体功能由 [`norma`](https://github.com/Autumn-27/norma) SDK 提供。核心是**双图结构**,以及围绕它的两种自主性装置(worker 之间的过程级信息交换、planner 的多轮共享 todolist)。 ### 整体分层 ```mermaid flowchart TB subgraph FE["前端 Next.js (go:embed 单二进制内嵌)"] UI["仪表盘 · 任务 · 资产 · 覆盖图 · 流量 · 工作区 · 系统设置"] end subgraph SRV["server (Go net/http)"] API["REST /api/* JWT 认证 SSE"] ENG["engine 调度循环"] MGR["Manager 任务/引擎/store 生命周期"] end subgraph AG["agent (norma SDK)"] GO["goals 目标分解 + 范围提取"] PL["planner 规划者(唯一的意图生成者)"] WK["worker 执行者 ×N"] MA["mainagent 人工介入"] end subgraph DB["PostgreSQL"] AGRAPH["资产图 assets / companies / task_scope"] EGRAPH["探索图 exploration_nodes / anchors / activity"] end subgraph SUB["支持子系统"] PROXY["流量记录代理 MITM + CA 记录"] GUARD["guard / intercept 工具审批门"] ENR["enrich DNS / HTTP 异步增强"] EXT["MCP · skills · memory · report"] end UI -->|HTTP| API API --> MGR --> ENG ENG --> PL ENG --> WK API --> MA API --> GO PL --> DB WK --> DB MA --> DB GO --> DB WK -->|"Bash / HTTP 全过程记录"| PROXY WK --> GUARD WK --> ENR PL -.-> EXT WK -.-> EXT MA -.-> EXT ``` - **前端**:把 Next.js 静态构建通过 `go:embed` 内嵌到单二进制中。可视化任务、资产、探索链、覆盖图,并提供人工介入的对话。 - **server**:负责 `net/http` 路由、JWT 认证与 SSE,`Manager` 管理任务、引擎、DB store 的生命周期。 - **engine**:每个任务运行一个 `plannerLoop` 与 N 个 worker goroutine,处理意图分配与超时、暂停、排空。 - **agent**:分为 goals / planner / worker / mainagent,`ToolSet` 把双图暴露为 LLM 工具。 - **db**:把双图存储到 PostgreSQL(pgx),通过 `go:embed` 引入的 schema 在每次启动时幂等地建表。 - **支持**:记录型 MITM 代理、审批门、异步增强、MCP·技能·内存·报告。 ### 双图结构:探索图 + 资产图 系统把"目标是什么"与"测试到哪一步"拆分为两个相互独立、又通过锚点(anchor)相连的图。 - **资产图(Asset Graph,全局共享)**:跨任务共享的资产真相存储。节点为 `root_domain / subdomain / ip / service / app / endpoint`,归属于公司。域名→子域名→服务→端点的父子关系与去重键全部由程序计算,智能体只提交原始信息。 - **探索图(Exploration Graph,每个任务独立)**:一个任务的"思考与进展"过程。节点为 `goal(目标) / intent(意图) / fact(事实) / finding(漏洞) / hint(提示)`,通过 `spawns / derived_from / yields / proves` 等边构成血缘链。 - **两个图通过锚点相连。** `exploration_anchors(node_id, asset_id)` 把意图、事实、漏洞固定到具体资产上。由此可以从探索方向双向查询:它攻击了哪个资产;反过来,某个资产在本任务中以何种意图被测试、产出了什么事实。 ```mermaid flowchart LR subgraph EG["探索图 (每任务独立 · 进展链)"] direction TB G["goal 目标"] I1["intent 意图 A"] F1["fact 事实"] I2["intent 意图 B"] FD["finding 漏洞"] G -->|spawns| I1 I1 -->|yields| F1 F1 -->|derived_from| I2 I2 -->|proves| FD end subgraph AG["资产图 (全局共享 · 真相存储)"] direction TB RD["root_domain"] SD["subdomain"] SV["service"] EP["endpoint"] RD --> SD --> SV --> EP end I1 -. anchor .-> SD F1 -. anchor .-> SV I2 -. anchor .-> EP FD -. anchor .-> EP ``` > 分工:**planner** 读取探索图的状况判定目标,仅在存在尚未覆盖的新方向时把**意图**送入 frontier。**worker** 领取**一个意图**,用真实工具执行,把新资产、事实、漏洞写入两个图后停止。资产图是共享事实,探索图是每个任务的进展链。 ### 引擎与意图生命周期(一次探索的闭环) 引擎是一个**事件驱动**的闭环。图发生变化就唤醒 planner,planner 发出意图后 worker 领取该意图执行并写入结果,该写入又触发下一轮。这个循环一直持续到目标被证明(`prove_goal`)为止。 ```mermaid sequenceDiagram autonumber participant EV as 图变更 debounce participant P as planner participant FR as frontier 意图队列 participant W as worker participant PX as 记录代理 participant DB as 双图 + activity EV-->>P: 唤醒 P->>DB: 读取状况(graph_overview 预取 + coverage/scope) P->>FR: 分配意图 0..N 个(含 asset_ids) Note over P,FR: 大多数唤醒分配 0 个 — 没有新方向则结束 W->>FR: 用 claimNext 领取一个意图 W->>DB: 取意图的 asset_ids 原始资产作为初始信息 W->>PX: 执行真实工具(Kali / Bash / HTTP) PX-->>W: 响应(全过程记录 + CA 验证) W->>DB: fact / asset / finding + 各步骤 activity 记录 DB-->>EV: 图变更 EV-->>P: 再次唤醒(闭环) ``` ### worker 之间的过程级信息交换 在深度探索中,有价值的观察(某个错误、某段响应片段、隐藏参数)往往产生于某个 worker 的**执行过程**,却未被记录为正式 fact。为避免重复劳动、让后续 worker 能站在先前观察之上,worker 具备**检索其他 work 过程**的能力。 - `search_all_worker_traces(q)`:以关键词检索同一任务下其他 work 的执行过程(自动排除自身意图的步骤)。命中项会附带 `intent_id`。 - `list_worker_traces` / `get_worker_trace(intent_id, step_ids=[…])`:先查看有哪些 work 运行过,再拉取某个 work 的特定几步完整内容以交换细节。 这样,即便探索图中尚无对应的 fact,后续 worker 也能复用他人过程中的观察。信息在 worker 之间以"执行过程"为单位流动,但边界保持不变(每个 worker 仍然只执行自己领取的那一个意图)。 ```mermaid flowchart LR WA["worker A (意图 #12)"] -->|"逐步 activity"| ACT[("探索图 · activity 过程库")] WB["worker B (意图 #34)"] -->|"逐步 activity"| ACT WC["worker C (意图 #56)"] ==>|"① search_all_worker_traces(q)"| ACT ACT ==>|"② 命中 A/B 的步骤 (排除自身)"| WC WC ==>|"③ get_worker_trace(intent_id, step_ids)"| ACT ACT ==>|"④ 返回完整过程内容"| WC ``` ### planner 的多轮共享 todolist → 稳定的攻击链 真实的攻击链往往是前后依赖的多步骤序列(例如:发现注入点 → 获取凭证 → 横向移动 → 权限提升),若一次性并行下发就会纠缠不清。因此 planner 拥有一个**按任务保留、跨唤醒共享的计划待办列表(todolist)**。 - planner 是事件驱动的,图每次变化都会唤醒,但**每次唤醒都是一个新的会话**。共享 todolist 把串行攻击链**只记录一次**,之后跨多轮**按依赖关系一步步**分配意图(不会在单轮里把整条链一次性铺开)。 - 每轮只给"前驱步骤已完成、且该步骤所依赖的 fact 已存在"的下一步分配意图,并根据进展更新列表(把已由 fact 满足的步骤标记为完成)。 ```mermaid flowchart TB subgraph TODO["共享 todolist (按任务保留 · 跨唤醒常驻)"] direction LR T1["1 发现注入点 [完成]"] T2["2 获取凭证 [进行中]"] T3["3 横向移动 [等待前驱]"] T4["4 权限提升 [等待前驱]"] T1 -. 前驱满足 .-> T2 -.-> T3 -.-> T4 end R1["第 1 轮唤醒 分配意图①"] --> T1 R2["第 2 轮 (①产出 fact) 分配意图②"] --> T2 R3["第 3 轮 (②产出 fact) 分配意图③"] --> T3 ``` 由此,攻击链在"事件驱动 + 无状态会话"的环境中也能稳定推进,不重复、不乱序。这正是 ARTEX 能自主完整走完多步骤攻击链的关键。 --- ## 防御与检测资料 本仓库的目标是帮助**防御方**理解自主 AI 攻击的运作原理,培养检测与阻断能力。我们把上文中 ARTEX 的行为从**防御者视角**反转过来,用韩语整理出应观测什么、应在哪里收紧的指南。 - **[自主 AI 攻击防御与检测指南 (docs/defense-ko.md)](docs/defense-ko.md)** - 自主 AI 攻击与传统扫描器的差异、为何难以检测、以及尽管如此又该如何检测 - 防御者可观测的指纹(IoC·行为特征):分为目标视角与取证视角 - 攻击者瞄准的入口点与加固(辅助认证·本人确认、API 授权、凭证填充、会话·密钥管理) - WAF·SIEM·认证日志检测规则(伪规则)、加固清单、事件响应摘要 - 韩国官方侵害指标·安全建议渠道(KISA·金融安全院·个人信息保护委员会)与韩国法律下的报告义务 - **[Defense & Detection Guide(英文版 · docs/defense-en.md)](docs/defense-en.md)**:可与海外团队及协作者共享的英文同内容版本。 - **[可直接部署的检测规则 (detections/README.ko.md)](detections/README.ko.md)**:把上述指南中的指纹检测转化为可直接使用的规则。主机·日志·SIEM 层使用 [Sigma](https://sigmahq.io) 规则(原子·关联,可用 `sigma convert` 转换为 Splunk·Elasticsearch 等),网络层使用 [Suricata](https://suricata.io) 规则,针对 enrich 探针与 norma SDK WebFetch 的 User-Agent。 - **[ATT&CK 覆盖层 (detections/attack/README.ko.md)](detections/attack/README.ko.md)**:把上述规则针对的 MITRE ATT&CK 技术整理为 [Navigator](https://mitre-attack.github.io/attack-navigator/) 层(JSON),一眼看清哪些攻击行为会被哪些规则命中。技术仅取自规则的 `attack.*` 标签,没有凭推测加入的条目。 - **[机器可读的侵害指标清单 (detections/indicators/README.ko.md)](detections/indicators/README.ko.md)**:把 ARTEX 实际导出的独有指纹汇集成一个 CSV 文件(`artex_indicators.csv`),并以 MISP 事件(`artex_indicators.misp.json`)形式提供相同指标。可直接导入 SIEM 查询表或威胁情报平台(接收 MISP 格式的 MISP·C-TAS·FSI 等)的侵害指标(IoC)。所有值都是在本仓库源码中确认过的字符串,每一行都标注了来源文件与检测规则。 - **[主机分类(triage)脚本 (detections/triage/README.ko.md)](detections/triage/README.ko.md)**:面向没有 SIEM 或网络传感器、站在一台可疑主机 shell 前的响应人员的只读脚本 [`artex_host_triage.py`](detections/triage/artex_host_triage.py)。它检查与上述规则相同的指纹,并额外直接在主机上确认三个无法从日志或网络观测到、故侵害指标 CSV 有意未配 Sigma 规则的主机·DB 指标(服务器监听端口、记录代理端点、PostgreSQL 探索 schema)。无需额外安装,仅用标准库即可运行;每项发现都只是与对应侵害指标行具有相同局限的分类线索,本身不构成定性依据。 - 上述规则、层、指标以及主机分类脚本的自测,全部通过仓库测试([detections/tests/README.ko.md](detections/tests/README.ko.md))重跑验证。遵循"无法运行的检测规则只是主张"的原则。 > 这些资料会持续补充。要补充的检测规则·加固条目请以 issue 提出;直接提交规则时,请遵循[贡献指南的「检测规则·检测测试贡献」一节](CONTRIBUTING.md#탐지-규칙탐지-테스트-기여)所整理的契约(贴合可观测事实、说明局限、通过静态校验、附带可复现测试)。 --- ## 开发 本地开发与测试: ```bash ./dev.sh # 后端(:8787) + 流量代理(:8788) + 前端 next dev(:5173) → http://localhost:5173 ``` - 后端:`go run ./cmd/artex`(不带 `-tags embedui` 则不内嵌前端) - 前端:`cd web && npm run dev`(将 `/api` 代理到后端,热重载) - 测试:`go test ./...` - Mock 预览(无需后端):`cd web && NEXT_PUBLIC_MOCK=1 npm run dev` 其他开发项(手动漏洞复验等)请参考 [`README.zh.md`](README.zh.md#开发) 的"开发"一节。 本韩语版对上游 ARTEX 所加的变更整理在 [变更历史(CHANGELOG.md)](CHANGELOG.md)。 --- ## 许可证与免责 ### 开源许可证 本项目以 **GNU Affero General Public License v3.0(AGPL-3.0)** 发布。完整条款见仓库根目录的 [LICENSE](LICENSE) 文件。 任何人都可自由使用、修改、分发,但**衍生作品也必须同样以 AGPL-3.0 公开。** 特别是,若你修改本项目并**通过网络(例如作为在线服务)提供给用户,则必须向这些用户公开对应的完整源代码。** 本韩语版同样保留 AGPL-3.0。 > ⚠️ **重要:** 开源许可证本身并不限制软件的用途。下方的"使用限制"与"免责"是原作者对用户额外要求的约定与严厉告知,请务必遵守。 ### 使用限制 - 本工具请用于**阅读源代码、学习与研究**的目的,以及在**本地隔离环境中验证技术原理**的目的。 - 除非目标是你自己所有、或**已获得书面明确授权**的对象,否则不要对任何网站、在线服务、相连系统执行扫描、探测、漏洞利用、攻击。 - 严禁用于非法入侵、数据窃取、拒绝服务(DoS)以及其他破坏性、犯罪性活动。 - 必须遵守用户所在国家/地区的网络安全、数据保护、计算机犯罪相关法规(韩国如《信息通信网法》《个人信息保护法》等)。 ### 免责 本项目按"原样(AS IS)"提供,不作任何明示或默示的担保。原作者与贡献者对因使用本工具(无论使用方式是否恰当)而产生的任何直接、间接损害、数据丢失、系统损坏、法律纠纷概不负责。**下载、安装或使用本项目即视为已阅读、理解并同意上述全部条件。** **一切法律责任与后果由用户本人承担。** --- ## 原始项目 - 原始仓库:[Autumn-27/ARTEX](https://github.com/Autumn-27/ARTEX) - 原始 README(中文):[README.zh.md](README.zh.md) - 原始在线演示(中文 UI):[https://artex-demo.vercel.app/](https://artex-demo.vercel.app/) - 智能体 SDK:[Autumn-27/norma](https://github.com/Autumn-27/norma)