kaa911-syp/AspidaSec

GitHub: kaa911-syp/AspidaSec

一款以CLI为核心、专注于为开发者提供可操作修复指导的网站安全扫描器。

Stars: 1 | Forks: 0

# AspidaSec [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/ce3eae7761113539.svg)](https://github.com/kaa911-syp/AspidaSec/actions/workflows/ci.yml) [![License: Apache-2.0](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![Release](https://img.shields.io/github/v/tag/kaa911-syp/AspidaSec?label=version&color=green)](https://github.com/kaa911-syp/AspidaSec/tags) ![Node.js](https://img.shields.io/badge/Node.js-%3E%3D20-339933?logo=node.js) ![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript) ![pnpm](https://img.shields.io/badge/pnpm-workspaces-F69220?logo=pnpm) [![Last Commit](https://img.shields.io/github/last-commit/kaa911-syp/AspidaSec)](https://github.com/kaa911-syp/AspidaSec/commits/main) 网站安全扫描,附带切实可行的修复指导。 AspidaSec 扫描现代 Web 应用程序,识别与 OWASP 相关的风险,对重要发现进行优先级排序,并生成开发者可直接使用的修复建议和报告。 ![AspidaSec 概念图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a45b72b04b113540.jpg) ## 产品范围 AspidaSec 不是一个 AI 网络安全生态系统、培训平台、通用扫描器或以仪表板为核心的产品。 它是一个以 CLI 为核心的网站安全扫描器,面向需要回答以下问题的开发者和小型团队: - 这个 Web 应用中存在哪些安全风险? - 应该优先修复哪些发现? - 哪些证据能证明问题的存在? - 我们如何安全地修复它? - 我们如何在 CI、拉取请求或团队审查中分享结果? MVP 仅包含支持扫描、优先级排序、修复、报告或 CI 工作流的工作。 ## 目标用户 - 维护面向公众的网站和 Web 应用的开发者 - 需要覆盖实用 OWASP 项但没有专职安全团队的小型产品团队 - 需要为客户或团队审查生成可共享安全报告的代理商和维护者 - 希望 CI 输出足够可读以便采取行动的用户 ## 黄金路径 首个产品工作流有意设计得非常聚焦: ``` aspidasec scan . ``` 或者: ``` aspidasec scan https://example.com ``` 扫描应沿着一条清晰的路径进行: 1. 接受本地项目、GitHub 检出或已部署的 URL。 2. 运行面向网站的检查:依赖项审计、面向 OWASP 的静态检查、动态扫描、路由爬取以及基本的密钥和配置审查。 3. 规范化并去重发现项。 4. 根据严重程度、置信度、可利用性、公开暴露程度、受影响的文件或端点以及修复可用性对发现项进行优先级排序。 5. 生成实用的修复指导。 6. 导出干净的 HTML 报告、Markdown 报告、PR 评论、JSON 或 SARIF。 如果这条路径表现卓越,那么在任何仪表板存在之前,AspidaSec 就已具备产品价值。 ## MVP 功能集 ### 核心扫描器 - 面向 OWASP Top 10 的检查 - ZAP 动态扫描,用于已部署或本地运行的 Web 应用 - npm、pnpm 或 yarn 依赖项审计 - Semgrep Web 应用程序规则 - 基本的密钥和高风险配置检测 - Playwright 辅助的路由发现爬取(在适用情况下) ### 分析 - 将发现项规范化为单一模式 - 跨扫描器去重 - OWASP 类别映射 - 严重程度和置信度规范化 - 对主要发现项进行风险优先级排序 ### 指导 - 基于扫描器证据的发现摘要 - 实用的修复步骤 - 安全的代码示例 - 引用相关标准或扫描器证据 ### 输出 - CLI 输出 - HTML 报告 - Markdown 报告 - PR 评论输出 - 用于 CI 和下游工具的 JSON 和 SARIF ## 明确不在 MVP 范围内 这些可能以后会变得有用,但现在不应主导产品: - 托管仪表板 - 多租户后端 - 认证或 RBAC - 团队排行榜 - 游戏化优先的工作流 - 攻击模拟实验室 - 多智能体研究工作流 - 自定义 IDE - 云同步 - 企业策略管理 仪表板、历史和协作代码可以存在于仓库中,但 MVP 的故事应保持以 CLI 为核心,以报告为核心。 ## AspidaSec 为何存在 大多数安全扫描器在“最后一英里”对开发者失败了。它们可能检测到问题,但输出通常嘈杂、重复、难以确定优先级,并且难以转化为安全的修复。 AspidaSec 专注于使网站安全工作可操作的部分: - **证据优先的发现** - 扫描器输出和可重现的证据驱动每个问题。 - **优先级排序的输出** - 将主要风险与背景噪音分离。 - **修复优先的指导** - 每个重要发现都包括实用的修复方案、示例和引用。 - **CI 就绪的报告** - 输出专为拉取请求、CI 日志、HTML 审查和 SARIF 消费者设计。 ## 信任模型 AspidaSec 必须值得信赖,然后才是聪明。 AI 或生成的指导绝不能凭空捏造漏洞、严重程度、受影响文件、端点、证据或扫描器名称。检测必须来自扫描器、仓库分析、配置审查或用户明确提供的证据。 指导层可以总结、解释、翻译和建议修复。但它绝不能编造发现项。 完整的规则集请参见 [docs/trust-model.md](./docs/trust-model.md)。 ## 快速开始 ### 本地项目扫描 ``` git clone https://github.com/kaa911-syp/AspidaSec.git cd AspidaSec pnpm install pnpm run build pnpm --filter @aspidasec/cli start -- scan ./my-project ``` ### 网站 / OWASP 扫描 ``` pnpm --filter @aspidasec/cli start -- owasp-scan --format html --output report.html ``` ### MCP 服务器 将 MCP 服务器添加到 AI 编码助手(如 Claude Code、Cursor 或 Windsurf): ``` { "mcpServers": { "aspidasec": { "command": "node", "args": ["path/to/AspidaSec/packages/mcp-server/dist/index.js"] } } } ``` MCP 服务器提供扫描、OWASP 扫描、预检、扫描器列表、发现解释、修复建议、SARIF 转换和覆盖率报告工具。 ## CLI 命令 ``` # 核心扫描 aspidasec scan [path-or-url] # Run a website security scan aspidasec owasp-scan [options] # Run OWASP Top 10 structured scan aspidasec init # Generate .aspidasec.yml config # 输出格式 aspidasec scan ./project --format markdown aspidasec scan ./project --format json aspidasec scan ./project --format sarif aspidasec scan ./project --format html # 语言 aspidasec scan ./project --language id aspidasec scan ./project --language en ``` ## 配置 AspidaSec 使用被扫描项目根目录下的 `.aspidasec.yml`。 ``` language: id scanners: semgrep: true npmAudit: true zapBaseline: false output: markdown: true html: false sarif: false owasp: enabled: false categories: [A01, A02, A03, A04, A05, A06, A07, A08, A09, A10] parallel: false confidenceGate: low evidenceGate: true failOnSeverity: high environment: skipWslCheck: false scannerTimeout: 120000 ``` 带注释的配置示例请参见 [examples/configs/](./examples/configs/)。 ## 架构 AspidaSec 围绕四个产品层组织: | 层 | 职责 | 关键包 | |---|---|---| | 扫描器层 | 运行网站安全扫描器并收集原始证据 | `adapters-*`, `owasp`, `cli` | | 分析层 | 规范化、去重、映射和优先级排序发现项 | `schema`, `core`, `prioritizer`, `config` | | 指导层 | 解释发现项并生成实用修复方案 | `coaching`, `i18n`, `lessons` | | 输出层 | 为开发者和 CI 系统渲染报告 | `output-markdown`, `output-html`, `output-sarif`, `mcp-server` | ``` AspidaSec/ ├── apps/ │ ├── cli/ # primary developer entry point │ ├── bot-github/ # PR comment workflow │ ├── bot-gitlab/ # MR comment workflow │ ├── bot-gitea/ # Gitea / Forgejo PR workflow │ └── docs-site/ # public website ├── packages/ │ ├── schema/ # normalized finding types and validators │ ├── core/ # scan pipeline, dedupe, plugin system │ ├── config/ # .aspidasec.yml loader and validation │ ├── prioritizer/ # risk scoring │ ├── owasp/ # OWASP Top 10 orchestration │ ├── adapters-*/ # scanner integrations │ ├── coaching/ # remediation templates │ ├── i18n/ # Bahasa Indonesia and English text │ ├── output-*/ # Markdown, HTML, and SARIF renderers │ └── mcp-server/ # AI assistant integration ├── docs/ # product, setup, and architecture docs ├── examples/ # demo projects and config examples └── docker-compose.yml # self-hosted bot deployment ``` 产品架构请参见 [docs/architecture.md](./docs/architecture.md)。 ## 产品文档 | 文档 | 目的 | |---|---| | [产品范围](./docs/product-scope.md) | 定义 AspidaSec 是什么、为谁服务以及当前不会做什么 | | [MVP](./docs/mvp.md) | 冻结首个可用版本并推迟非核心功能 | | [架构](./docs/architecture.md) | 分离扫描器、分析、指导和输出层 | | [产品哲学](./docs/product-philosophy.md) | 定义产品决策背后的原则 | | [信任模型](./docs/trust-model.md) | 记录证据优先的安全和 AI 安全边界 | | [黄金路径](./docs/golden-path.md) | 定义必须首先体验卓越的唯一工作流 | ## 现有设置文档 | 指南 | 描述 | |---|---| | [入门指南](./docs/getting-started.md) | CLI 安装、配置和选项参考 | | [GitHub 机器人设置](./docs/github-bot-setup.md) | GitHub App 注册和 PR 评论 | | [GitLab 机器人设置](./docs/gitlab-bot-setup.md) | GitLab webhook 设置和 MR 评论 | | [自托管](./docs/self-hosting/deployment.md) | Docker Compose 部署 | | [MCP 集成](./docs/mcp-integration.md) | 面向 AI 编码助手的 MCP 设置 | | [SARIF IDE 集成](./docs/sarif-ide-integration.md) | 用于 IDE 和代码扫描的 SARIF 输出 | ## 测试 ``` pnpm test pnpm run typecheck pnpm lint ``` GitHub Actions 在推送到 `main` 分支和拉取请求时运行安装、构建、类型检查、测试和 lint。 ## 许可证 [Apache License 2.0](./LICENSE) Copyright 2026 Vibellabbs Code.
标签:GNU通用公共许可证, MITM代理, Node.js, pnpm, TypeScript, Web安全, 修复指导, 威胁情报, 安全扫描工具, 安全报告, 安全插件, 小团队安全, 应用程序安全, 开发者工具, 智能体, 特征检测, 网络安全, 自动化攻击, 蓝队分析, 隐私保护