projectachilles/ProjectAchilles

GitHub: projectachilles/ProjectAchilles

ProjectAchilles 是一個开源持续安全验证平台,能將威胁情报转化为可执行的端点测试,量化防御就绪度并跟踪趋势。

Stars: 13 | Forks: 5

# ProjectAchilles
![ProjectAchilles](https://img.shields.io/badge/ProjectAchilles-Continuous%20Security%20Validation-7C3AED?style=for-the-badge) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a863d78d77165352.svg)](https://github.com/projectachilles/ProjectAchilles/actions/workflows/ci.yml) [![安全审查](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/28aa5599be165357.svg)](https://github.com/projectachilles/ProjectAchilles/actions/workflows/security-review.yml) [![Semgrep](https://img.shields.io/badge/semgrep-SAST-orange?logo=semgrep)](https://github.com/projectachilles/ProjectAchilles/actions/workflows/security-review.yml) [![许可证](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-5.9-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![React](https://img.shields.io/badge/React-19-61DAFB?logo=react&logoColor=white)](https://react.dev/) [![Go](https://img.shields.io/badge/Go-1.24-00ADD8?logo=go&logoColor=white)](https://go.dev/) [![Bun](https://img.shields.io/badge/Bun-1.3-F9F1E1?logo=bun&logoColor=black)](https://bun.sh/) **持续安全验证——从威胁情报到防御就绪** 别再祈祷你的防御有效,开始证明它。 [快速开始](#quick-start) · [功能特性](#features) · [架构](#architecture) · [文档](#documentation) · [路线图](docs/ROADMAP.md) · [贡献指南](#contributing)

ProjectAchilles Analytics Dashboard — Defense Score, trend analysis, Secure Score correlation, and technique distribution

## 为什么选择 ProjectAchilles 大多数组织在安全工具上投入了大量资金,却难以回答一个简单的问题:我们的防御措施真的有效吗? 威胁情报报告堆积如山无人阅读,合规检查表检查一次后便被遗忘。安全团队部署了 EDR、SIEM 和端点加固,然后只能祈祷一切顺利。当发生入侵时,事后复盘揭示的漏洞其实一直存在,只是从未被量化。 **ProjectAchilles 旨在闭合这一循环。** 该平台将威胁情报转化为可执行的安全测试,通过轻量级代理框架部署到你的端点,并衡量你的防御措施对每种技术是检测到、阻止了还是完全没有发现。结果不是主观判断——而是由证据支持的评分,按技术、主机和控制项细分,并随时间追踪。 你不需要拥有红队认证才能使用,也不需要编写漏洞利用代码。你只需要知道哪些威胁对你的组织至关重要,以及你是否已针对这些威胁进行了防御。 ### 它衡量什么 - **防御就绪度** —— 对于每种威胁技术,你的端点防御是检测到、阻止了还是完全遗漏? - **控制项合规性** —— 你的安全配置(端点加固、身份策略、云设置)是否实际到位? - **安全投资回报率** —— 哪些投资带来了可衡量的保护,哪些地方仍存在需要资金投入的缺口? ### 两种运行模式 | 模式 | 目的 | 输入 | 输出 | |------|---------|-------|--------| | **威胁驱动的验证** | 针对真实世界的攻击技术测试防御 | 映射到 MITRE ATT&CK 的威胁情报 | 每种技术的防御评分,附带检测/阻止证据 | | **控制项合规性** | 验证整个资产群的安全基线 | 基于标准的控制框架 | 每个控制项的合规状态及修复指导 | ## 概述 ProjectAchilles 是一个持续安全验证平台,包含四个核心组件: 1. **AI 驱动的测试开发** —— 一个智能代理管线,将威胁情报文章转化为完整、可部署的安全测试包——包括源代码、检测规则、加固脚本和文档——无需人工测试开发。 2. **执行框架** —— 部署到端点(Windows、Linux、macOS)的轻量级 Go 代理,可按需或按计划执行安全测试,以加密完整性报告结果,并在不停机的情况下自我更新。 3. **分析与度量** —— 基于 Elasticsearch 的仪表盘,通过评分、热力图、趋势分析和 MITRE ATT&CK 覆盖矩阵量化防御就绪度——将原始测试结果转化为安全团队和管理层可操作的智能。 4. **CLI 与 AI 代理** —— 基于 Bun 的命令行工具(`achilles`),包含 17 个以上命令模块用于平台管理,以及由 Vercel AI SDK 驱动的 AI 对话代理模式,支持自然语言的资产群操作。 该平台是开源的,通过 Docker Compose 可在数分钟内完成部署,并与 Microsoft Defender 集成,以实现内部验证结果与 EDR 自身安全态势数据之间的交叉关联。 ## 快速开始 ### 路径 A —— 本地开发 ``` # 克隆 repository git clone https://github.com/projectachilles/ProjectAchilles.git cd ProjectAchilles # 启动 full stack(安装 deps,查找可用端口) ./scripts/start.sh -k --daemon ``` 配置 Clerk 身份认证(参见[配置](#configuration)),然后打开 http://localhost:5173。 ### 路径 B —— Docker Compose ``` # 克隆并运行 setup wizard git clone https://github.com/projectachilles/ProjectAchilles.git cd ProjectAchilles ./scripts/setup.sh # 启动 services docker compose up -d # 可选:包含本地 Elasticsearch 与合成数据 docker compose --profile elasticsearch up -d ``` ### 路径 C —— Windows(PowerShell) ``` git clone https://github.com/your-org/ProjectAchilles.git cd ProjectAchilles .\scripts\Install-ProjectAchilles.ps1 ``` PowerShell 脚本会检查前置条件、修复行尾符、交互式配置 `backend/.env`、构建 Docker 镜像并打开仪表盘。完整手动指南见 [Windows Docker 安装](docs/deployment/WINDOWS_DOCKER_INSTALL.md)。 ### 部署目标 | 目标 | 后端 | 数据库 | 代理构建 | 指南 | |--------|---------|----------|-------------|-------| | **Docker Compose** | `backend/` | SQLite(卷) | 是 | [docker-compose.yml](docker-compose.yml) | | **Railway** | `backend/` | SQLite(卷) | 部分 | [Railway 指南](docs/deployment/RAILWAY.md) | | **Render** | `backend/` | SQLite(持久磁盘) | 部分 | [Render 指南](docs/deployment/RENDER.md) | | **Fly.io** | `backend/` | SQLite(卷) | 是 | [Fly.io 指南](docs/deployment/FLY.md) | | **Vercel** | `backend-serverless/` | Turso(libSQL) | 否 | [Vercel 指南](docs/deployment/VERCEL.md) | ## 功能特性 ### AI 驱动的测试开发 安全测试由一个多智能体 AI 流水线构建,将威胁情报转化为完整的测试包。每个测试包含约 19 个自动生成的工件。 **工作原理:** ``` Threat Intelligence Article ↓ Phase 1: Analysis & Implementation Extracts TTPs → generates Go source → compiles & signs binary ↓ Phase 2: Parallel Artifact Generation Detection Rules (5 formats) │ Defense Guidance │ Documentation │ Kill Chain Diagrams ↓ Phase 3: Validation & Deployment Verifies all artifacts → syncs catalog → deploys to endpoints ``` **每个测试包包含的工件:** | 工件 | 格式 | 用途 | |----------|---------|---------| | 测试二进制文件 | Go(Windows、Linux、macOS) | 在端点上执行模拟技术 | | 检测规则 | KQL、YARA、Sigma、Elastic EQL、LimaCharlie | 直接导入你的 SIEM/EDR | | 加固脚本 | PowerShell、Bash(Linux + macOS) | 修复测试发现的漏洞 | | 文档 | Markdown(README + 信息卡) | MITRE 映射、严重性、威胁行为者上下文 | | 杀伤链图 | 交互式 HTML | 可视化多阶段攻击流程 |

Test detail view — multi-stage kill chain diagram with stage progression, source files, and build artifacts

**测试分类:** | 分类 | 描述 | 示例 | |----------|-------------|---------| | **威胁情报驱动** | 来自 APT 报告和勒索软件分析的真实世界攻击技术 | Lazarus 组织 TTP、Emotet 投递链 | | **MITRE TOP ** | 来自 MITRE ATT&CK 的最常见勒索软件技术 | 进程注入、防御规避、横向移动 | | **网络卫生** | 端点、身份和云安全的配置验证 | Defender 设置、ASR 规则、LSASS 保护、MFA | ### CLI(`achilles`) 基于 Bun 的命令行界面,用于从终端管理整个平台——也可以通过 AI 对话代理进行操作。 **两种操作模式:** | 模式 | 命令 | 描述 | |------|---------|-------------| | **命令模式** | `achilles [args]` | 直接平台管理,提供丰富的终端输出 | | **AI 聊天模式** | `achilles chat` | 由 AI SDK v6 驱动的对话代理,拥有完整工具访问权限 | **涵盖范围:** - **代理资产群** —— 列出、检查、标记和管理已注册的代理 - **注册令牌** —— 创建、撤销和审计令牌 - **任务管理** —— 创建、分配和监控任务执行 - **任务调度** —— 创建、读取、更新、删除周期性调度 - **测试浏览器** —— 搜索、检查和构建测试 - **分析** —— 查询防御评分、趋势和执行历史 - **Defender** —— 安全评分、警报、控制项、交叉关联 - **构建系统** —— 触发交叉编译、管理证书 - **风险接受** —— 接受/撤销对单个控制项的风险 - **用户管理** —— 列出和检查 Clerk 用户 **关键特性:** - 每条命令支持 `--json` 标志,用于结构化输出(脚本、LLM 消费) - 多配置文件服务器配置(`achilles config profile`) - Clerk 设备流认证(`achilles login`) - AI 聊天模式,包含 Ink TUI(交互式)或 readline 回退(管道模式) - AI 代理可访问所有平台 API,具有审批层级(读取/写入/破坏性) ### 测试浏览器 浏览包含丰富元数据的完整测试库,并直接从 UI 执行测试。

Test browser — card grid with severity badges, MITRE techniques, platform tags, and defense scores

- 按 MITRE ATT&CK 技术、平台、分类和严重性筛选 - 查看源代码、检测规则、加固脚本和攻击流程图 - 直接从测试详情页面构建、签名和下载测试二进制文件 - MITRE ATT&CK 覆盖矩阵,附带可视化技术热力图 - 执行抽屉——直接从浏览页面分配和运行测试 - 收藏测试、追踪近期查看记录、查看版本历史和 Git 修改日期 ### 执行框架 将轻量级 Go 代理部署到端点,实现远程测试执行和完整的生命周期管理。

Agent dashboard — fleet overview with online/offline status, health metrics, version and OS distribution

- **注册** —— 基于令牌的注册,支持可配置 TTL 和最大使用次数 - **心跳监控** —— 实时在线/离线状态,附带 CPU、内存、磁盘和运行时间指标 - **安全执行** —— 下载、验证(SHA256 + Ed25519 签名)、执行并报告结果 - **自我更新** —— 代理轮询新版本并自动应用加密签名的更新 - **跨平台** —— Windows、Linux 和 macOS(amd64 + arm64),支持原生服务集成 - **结果打包** —— 合规测试中每个控制项的结果分流到独立的 ES 文档,实现精细追踪 - **零停机密钥轮换** —— API 密钥通过心跳自动轮换,支持双密钥宽限期 - **加密配置** —— 代理凭据使用 AES-256-GCM 加密存储,密钥绑定机器 - **远程卸载** —— 从管理 UI 触发两阶段代理移除(停止服务 + 清理)
More: Fleet management & heartbeat monitoring

Agent fleet — full table with health scores, version management, OS badges, and tags

Agent heartbeat — CPU usage, memory usage, and disk free charts over 7 days

### 分析与度量 通过 30 多个由 Elasticsearch 驱动的查询端点量化你的安全态势。

Executions table — bundle results with per-control Protected/Unprotected badges, techniques, and category filters

- **防御评分** —— 聚合评分,按测试、技术、分类、主机名和严重性细分 - **趋势分析** —— 滚动窗口的防御评分和错误率随时间的变化趋势 - **MITRE ATT&CK 热力图** —— 主机-测试矩阵,显示整个资产群的保护状态 - **覆盖树图** —— 分层分类/子分类覆盖可视化 - **执行记录表** —— 分页结果,支持高级筛选(技术、主机名、威胁行为者、标签) - **风险接受** —— 接受对单个控制项的风险,附带审计追踪 - **Microsoft Defender 集成** —— 同步安全评分、警报和控制配置文件,提供交叉关联分析 - **趋势告警** —— 基于阈值的 Slack 和电子邮件通知,以及应用内通知铃铛 - **多索引管理** —— 每个任务可指定目标 ES 索引,实现结果集隔离 - **视觉主题** —— 三种可选主题:默认(浅色/深色)、新粗野主义(热粉色强调、粗边框)、黑客终端(磷绿色/琥珀色扫描线) ### 构建系统 按需编译和签名测试二进制文件,支持 Go 交叉编译。 - **交叉编译** —— 从任意主机操作系统构建 Linux/Windows/macOS × amd64/arm64 版本 - **代码签名** —— Windows Authenticode(osslsigncode)和 macOS ad-hoc 签名(rcodesign) - **多证书管理** —— 上传 PFX/P12 或生成自签名证书(最多 5 个) - **嵌入依赖** —— 检测 `//go:embed` 指令并管理所需文件 - **构建缓存** —— 之前构建的二进制文件缓存,实现即时下载 ### 任务调度 通过灵活的调度策略,在代理池中自动化测试执行。 - **调度类型** —— 一次性、每天、每周(指定日期)、每月(指定日期) - **随机化时间** —— 可选在办公时间内随机化,用于更真实的模拟 - **每任务 ES 索引** —— 每个任务可指定目标 Elasticsearch 索引,实现结果隔离 - **优先级队列** —— 高优先级任务优先分配 ### 代理通信安全 通过内部安全审计(涵盖 9 个发现项),代理-服务器通信通道已得到加固。所有 HIGH 和 MEDIUM 级别的发现项均已解决。详细信息见 [代理安全发现项](docs/agent-security-findings.md)。 | 保护措施 | 描述 | |------------|-------------| | **TLS 强制** | `skip_tls_verify` 对非 localhost 服务器已阻止;需要显式 `--allow-insecure` 覆盖 | | **API 密钥轮换** | 通过心跳传输实现零停机轮换,包含 5 分钟双密钥宽限期 | | **重放保护** | `X-Request-Timestamp` 头部,5 分钟偏移窗口;有效负载级别的时间戳验证 | | **时序攻击防护** | 注册和认证使用恒定时间 bcrypt 比较(未命中时使用虚拟哈希) | | **更新签名** | 代理二进制文件的 Ed25519 分离签名;应用更新前进行验证 | | **速率限制** | 每个端点的预算:注册(5/15min)、设备(100/15min)、下载(10/15min)、轮换(3/15min) | | **加密凭据** | 代理 API 密钥使用 AES-256-GCM 加密存储;密钥从机器 ID 派生(不可移植) | | **最小权限** | 二进制文件 0700 / Windows SYSTEM+Admins ACL;配置文件 0600;工作目录 0700 | ## 架构 ``` graph TB subgraph Clients FE["Frontend
React 19 · Vite · Tailwind CSS
Browser · Analytics · Agents · Settings"] CLI["CLI
Bun · Ink · AI SDK v6
Commands · AI Chat Agent"] end FE -->|Clerk JWT| BE CLI -->|Clerk JWT| BE subgraph BE ["Backend — Express + TypeScript"] BRS[Browser Service] ANS[Analytics Service] AGS[Agent Service] BDS[Build Service] DFS[Defender Service] ALS[Alerting Service] end BRS --> GIT[(Git Repo)] ANS --> ES[(Elasticsearch)] AGS --> DB[(SQLite)] BDS --> GO[Go Toolchain + Code Signing] DFS --> GRAPH[Microsoft Graph API] ALS --> NOTIFY[Slack · Email] AGS <-->|Agent API Key| AGENT subgraph EP ["Endpoints — Windows · Linux · macOS"] AGENT["Achilles Agent — Go
Heartbeat · Executor · Updater"] end ``` ### 技术栈 | 层 | 技术 | 版本 | |-------|------------|---------| | 前端 | React | 19.2 | | 构建工具 | Vite | 8.0 | | 样式 |wind CSS | 4.2 | | 状态管理 | Redux Toolkit | 2.11 | | 路由 | React Router | 7.13 | | 身份认证 | Clerk | 5.x | | 后端 | Express | 4.18 | | 语言 | TypeScript | 5.9 | | CLI 运行时 | Bun | 1.3 | | CLI UI | Ink | 6.8 | | AI SDK | Vercel AI SDK | 6.0 | | 代理 | Go | 1.24 | | 分析存储 | Elasticsearch | 8.x | | 代理数据库 | SQLite | 3.x | | 代码签名 | osslsigncode | — | | 容器化 | Docker Compose | — | ### 项目结构 ``` ProjectAchilles/ ├── frontend/ # React 19 + TypeScript + Vite │ └── src/ │ ├── components/ # Shared UI primitives │ ├── pages/ # Module pages (browser, analytics, agents, settings) │ ├── services/api/ # API client modules │ ├── hooks/ # Custom hooks (useAuthenticatedApi, etc.) │ └── store/ # Redux slices ├── backend/ # Express + TypeScript (ES modules) │ └── src/ │ ├── api/ # Route handlers (*.routes.ts) │ ├── services/ # Business logic by module │ ├── middleware/ # Auth, error handling, rate limiting │ └── types/ # TypeScript definitions ├── cli/ # Bun + TypeScript CLI with AI chat agent │ └── src/ │ ├── commands/ # Command modules (agents, tasks, browser, analytics, ...) │ ├── chat/ # AI chat agent (AI SDK v6, Ink TUI, tool definitions) │ ├── api/ # API client for backend communication │ ├── auth/ # Clerk device-flow token management │ ├── config/ # Multi-profile configuration store │ └── output/ # Formatters (table, JSON, colors) ├── agent/ # Go agent source │ ├── main.go # CLI entry point (--enroll, --run, --install) │ └── internal/ # Agent modules (poller, executor, updater, sysinfo) ├── scripts/ # Shell scripts and PowerShell bootstrap │ ├── start.sh # Development startup script │ ├── setup.sh # Interactive setup wizard (Linux/macOS) │ └── Install-ProjectAchilles.ps1 # Bootstrap script (Windows) ├── docs/ # Documentation │ ├── deployment/ # Deployment guides (Fly, Railway, Render, Vercel) │ └── security/ # Security audit and remediation docs ├── docker-compose.yml # Multi-service deployment └── CLAUDE.md # AI assistant development guidance ``` ## 配置 ### 身份认证(必需) 所有模块都需要 [Clerk](https://clerk.com) 身份认证。创建一个 Clerk 应用并配置你的密钥: ``` # frontend/.env VITE_CLERK_PUBLISHABLE_KEY=pk_test_... # backend/.env CLERK_PUBLISHABLE_KEY=pk_test_... CLERK_SECRET_KEY=sk_test_... ``` ### 环境变量 #### 前端 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `VITE_CLERK_PUBLISHABLE_KEY` | Clerk 可发布密钥 | —(必需) | | `VITE_BACKEND_PORT` | Vite 代理的后端端口 | `3000` | | `VITE_API_URL` | 完整后端 URL(生产环境) | — | #### 后端 | 变量 | 描述 | 默认值 | |----------|-------------|---------| | `CLERK_PUBLISHABLE_KEY` | Clerk 可发布密钥 | —(必需) | | `CLERK_SECRET_KEY` | Clerk 密钥 | —(必需) | | `PORT` | 服务器端口 | `3000` | | `SESSION_SECRET` | 会话签名密钥 | —(生产环境必需) | | `CORS_ORIGIN` | 允许的 CORS 来源 | `http://localhost:5173` | | `TESTS_REPO_URL` | 测试库的 Git URL | — | | `GITHUB_TOKEN` | 私有仓库的个人访问令牌 | — | | `TESTS_SOURCE_PATH` | 本地测试回退路径 | `./tests_source` | | `AGENT_SERVER_URL` | 代理通信的外部 URL | — | | `ENCRYPTION_SECRET` | 静态设置加密密钥 | 机器派生 | #### Elasticsearch(可选) | 变量 | 描述 | |----------|-------------| | `ELASTICSEARCH_CLOUD_ID` | Elastic Cloud 部署 ID | | `ELASTICSEARCH_API_KEY` | 用于身份认证的 API 密钥 | | `ELASTICSEARCH_NODE` | 直接节点 URL(例如 `http://localhost:9200`) | | `ELASTICSEARCH_INDEX_PATTERN` | 索引模式(默认:`achilles-results-*`) | #### Docker | 变量 | 描述 | |----------|-------------| | `NGROK_FRONTEND_DOMAIN` | 前端隧道的 ngrok 域名 | | `NGROK_BACKEND_DOMAIN` | 后端/代理隧道的 ngrok 域名 | ## 数据存储与干净重置 运行时状态(代理、令牌、设置、证书、编译后的二进制文件)存储在 **仓库外部** —— 即用户主目录中。这是有意为之:保护你的数据免受 `git pull`、重新克隆或意外删除仓库文件夹的影响。 ### 状态存储位置 | 平台 | 数据目录 | |----------|----------------| | Linux / macOS(本地) | `~/.projectachilles/` | | Windows | `C:\Users\\.projectachilles\` | | Docker / Render / Fly.io | `/root/.projectachilles/`(容器内,由卷支持) | | Vercel(无服务器) | Turso 数据库 + Vercel Blob 存储(无文件系统状态) | ### 内部内容 | 路径 | 内容 | |------|----------| | `agents.db` | SQLite 数据库:代理、注册令牌、任务、调度、代理版本 | | `analytics.json` | 加密的 Elasticsearch 凭据(AES-256-GCM) | | `integrations.json` | 加密的 Defender、Slack 和电子邮件凭据 | | `tests.json` | 测试库配置 | | `certs/cert-*/` | 代码签名 PFX 证书(最多 5 个,活动证书记录在 `active-cert.txt` 中) | | `binaries/-/` | 已编译的 Go 代理,可随时下载 | | `builds//` | 每个测试的编译二进制文件 | | `signing/` | 代理 API 密钥签名密钥对 | | `custom-tests/` | 用户自建测试,位于 git 同步库之外 | 此外,测试结果和 Defender 警报存储在 **Elasticsearch** 中(`achilles-results-*`、`achilles-defender` 索引)——这些数据保存在你的 ES 集群中,而不是本地文件系统上。 ### 干净重置(从头开始) 停止服务并移除数据目录。下次启动时将创建一个空数据库。 **Linux / macOS(本地安装):** ``` ./scripts/start.sh --stop rm -rf ~/.projectachilles # 可选:同时清除 Elasticsearch 测试结果 curl -X DELETE "$ELASTICSEARCH_NODE/achilles-results-*" ``` **Windows(PowerShell):** ``` .\scripts\start.sh --stop # or stop backend/frontend processes manually Remove-Item -Recurse -Force $HOME\.projectachilles ``` **Docker Compose:** ``` docker compose down --volumes # removes the achilles-data volume docker compose up -d ``` **Render / Fly.io:** 通过提供商仪表盘或 CLI(`flyctl volumes destroy`、Render → 磁盘 → 删除)删除并重新创建持久磁盘/卷,然后重新部署。 **Vercel(无服务器):** 删除 Turso 数据库(`turso db destroy ` 并重新创建)并清除 Blob 存储(通过 `vercel blob` CLI 或仪表盘删除对象)。 ### 选择性重置(保留安装,仅清除代理) 如果你想保留 Clerk 配置、证书和 ES 凭据,但移除所有已注册的代理: ``` sqlite3 ~/.projectachilles/agents.db <<'SQL' DELETE FROM tasks; DELETE FROM schedules; DELETE FROM agents; DELETE FROM enrollment_tokens; SQL ``` 之后重启后端,以便它干净地重新打开数据库。 ## API 参考 ### 浏览器 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/browser/tests` | 列出所有安全测试 | | `GET` | `/api/browser/tests/:uuid` | 获取测试详情及元数据 | | `GET` | `/api/browser/tests/:uuid/files` | 列出测试文件 | | `GET` | `/api/browser/tests/:uuid/files/:filename` | 获取文件内容 | ### 分析 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/analytics/defense-score` | 聚合防御评分 | | `GET` | `/api/analytics/defense-score/trend` | 评分随时间变化趋势 | | `GET` | `/api/analytics/host-test-matrix` | 主机 × 测试热力图数据 | | `GET` | `/api/analytics/technique-distribution` | 技术覆盖细分 | | `GET` | `/api/analytics/executions/paginated` | 分页结果及筛选 | | `POST` | `/api/analytics/settings` | 配置 Elasticsearch 连接 | ### 代理(管理) | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/agent/admin/agents` | 列出代理并支持筛选 | | `POST` | `/api/agent/admin/tokens` | 创建注册令牌 | | `POST` | `/api/agent/admin/t` | 为代理创建任务 | | `GET` | `/api/agent/admin/schedules` | 列出调度 | | `POST` | `/api/agent/admin/schedules` | 创建周期性调度 | ### 代理(设备) | 方法 | 端点 | 认证方式 | |--------|----------|------| | `POST` | `/api/agent/enroll` | 注册令牌 | | `POST` | `/api/agent/heartbeat` | 代理密钥 | | `GET` | `/api/agent/tasks` | 代理密钥 | | `POST` | `/api/agent/tasks/:id/result` | 代理密钥 | | `GET` | `/api/agent/update` | 代理密钥 | ### 构建与设置 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `POST` | `/api/tests/builds/:uuid` | 触发交叉编译 | | `GET` | `/api/tests/builds/:uuid/download` | 下载构建的二进制文件 | | `GET` | `/api/tests/certificates` | 列出证书 | | `POST` | `/api/tests/certificates/upload` | 上传 PFX/P12 证书 | | `POST` | `/api/tests/certificates/generate` | 生成自签名证书 | ### Defender 集成 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/analytics/defender/secure-score` | 当前安全评分及分类细分 | | `GET` | `/api/analytics/defender/secure-score/trend` | 安全评分随时间变化趋势 | | `GET` | `/api/analytics/defender/alerts` | Defender 警报及筛选 | | `GET` | `/api/analytics/defender/controls` | 控制配置文件及合规状态 | | `GET` | `/api/analytics/defender/cross-correlation` | 防御评分与安全评分相关性 | | `GET` | `/api/integrations/defender/config` | Defender 配置状态 | | `POST` | `/api/integrations/defender/config` | 保存 Defender 凭据 | | `POST` | `/api/integrations/defender/sync` | 触发手动数据同步 | ### 告警 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/integrations/alerts/config` | 获取告警阈值配置 | | `POST` | `/api/integrations/alerts/config` | 保存告警阈值和通知渠道 | ## 文档 ### 入门指南 - [快速部署](docs/deployment/QUICK_START_DEPLOYMENT.md) —— 50 分钟的生产部署 - [Windows Docker 安装](docs/deployment/WINDOWS_DOCKER_INSTALL.md) —— Windows 搭配 Docker Desktop 的完整指南 - [Docker Compose 指南](docker-compose.yml) —— 本地部署,可选 Elasticsearch ### 部署 - [Docker Compose 指南](docker-compose.yml) —— 本地部署,可选 Elasticsearch - [快速部署](docs/deployment/QUICK_START_DEPLOYMENT.md) —— 50 分钟的生产部署 - [Railway 部署](docs/deployment/RAILWAY.md) —— 使用私有网络的 Railway 部署 - [Render 部署](docs/deployment/RENDER.md) —— 使用持久磁盘和 Blueprint 的 Render 部署 - [Fly.io 部署](docs/deployment/FLY.md) —— 使用自定义域名和卷的 Fly.io 部署 - [Vercel 部署](docs/deployment/VERCEL.md) —— 使用 Turso 和 Vercel Blob 的无服务器部署 - [Windows Docker 安装](docs/deployment/WINDOWS_DOCKER_INSTALL.md) —— Windows 搭配 Docker Desktop 的完整指南 - [生产部署指南](docs/deployment/PRODUCTION_DEPLOYMENT.md) —— 全面的 Railway 部署 - [部署检查清单](docs/deployment/DEPLOYMENT_CHECKLIST.md) —— 交互式起飞前检查清单 ### 开发 - [CLAUDE.md](CLAUDE.md) —— AI 辅助开发指导 - [贡献指南](.github/CONTRIBUTING.md) —— 贡献准则和代码标准 - [变更日志](docs/CHANGELOG.md) —— 版本历史 ### 安全与社区 - [安全策略](.github/SECURITY.md) —— 漏洞报告和安全模型 - [安全审计报告](docs/security/SECURITY-AUDIT.md) —— 全面审计:47 个发现项 - [代理安全发现项](docs/agent-security-findings.md) —— 内部审计:9 个发现项,8 个已修复 - [行为准则](.github/CODE_OF_CONDUCT.md) —— 社区指南 - [路线图](docs/ROADMAP.md) —— 计划的功能和方向 ## 贡献指南 我们欢迎所有模块的贡献——前端、后端、CLI(Bun)、代理(Go)和文档。关于设置、编码标准和 PR 流程的指南,请参阅 [CONTRIBUTING.md](.github/CONTRIBUTING.md)。 ## 安全 对于安全漏洞,请通过 [GitHub 安全公告](https://github.com/projectachilles/ProjectAchilles/security/advisories) 报告,或查阅我们的 [安全策略](.github/SECURITY.md)。 ## 致谢 - MITRE 公司的 [MITRE ATT&CK](https://attack.mitre.org) 框架 —— 技术分类和覆盖映射 - [Elasticsearch](https://www.elastic.co/elasticsearch) —— 分析和结果存储引擎 - [Clerk](https://clerk.com) —— 身份认证和用户管理 - [Semgrep](https://semgrep.dev) —— CI 中的静态分析 - [Trail of Bits](https://trailofbits.com) —— Claude Code 的安全分析插件 - Anthropic 的 [Claude Code](https://claude.ai/code) —— AI 辅助开发和发布自动化 - [LimaCharlie](https://limacharlie.io) —— 云 SecOps 平台,启发了原始端点管理模块 - 受 [DORA](https://www.digital-operational-resilience-act.com/) 和 [TIBER-EU](https://www.ecb.europa.eu/paym/cyber-resilience/tiber-eu/html/index.en.html) 框架启发的紫队方法论 特别感谢: - [@topher-lo](https://github.com/topher-lo)(Chris Lo)—— 想法与灵感 - [@crpol](https://github.com/crpol)(Cesar Rosa)—— 持续支持和好点子 - [@msum83](https://github.com/msum83)(Michal Sumega)—— 持续支持和好点子 - [@kmazara89](https://github.com/kmazara89)(Kendra Mazara)—— 测试与质量 - [@javierdiplan04](https://github.com/javierdiplan04)(Javier Diplan)—— 测试与质量 - [@Yamilithia](https://github.com/Yamilithia)(Yamilet Cruz)—— 测试与质量 - [@Albert2707](https://github.com/Albert2707)(Albert Agramonte)—— 测试与质量 - [@MarcosxDeveloper](https://github.com/MarcosxDeveloper)(Marcos Gonzalez)—— 测试与质量 ## 许可证 本项目采用 Apache License 2.0 许可 —— 详见 [LICENSE](LICENSE) 文件。
**别再祈祷你的防御有效,开始证明它。**
标签:Bun, CI/CD安全, Go, GPT, Llama, React, Ruby工具, SAST, Semgrep, Syscalls, TypeScript, WordPress安全扫描, 威胁情报, 安全仪表盘, 安全态势感知, 安全插件, 安全测试, 安全评分, 安全运营, 开发者工具, 扫描框架, 持续安全验证, 攻击性安全, 数据展示, 日志审计, 漏洞管理, 盲注攻击, 红队, 网络风险量化, 自动化攻击, 请求拦截, 防御就绪, 防御评分