Horizon-Studio-LTDA/horizon-security-skills
GitHub: Horizon-Studio-LTDA/horizon-security-skills
Horizon Security Skills是一个基于OWASP标准的防御性安全工具包,用于Django/DRF和Next.js/React项目的审计、修复和回归测试。
Stars: 2 | Forks: 0
Horizon Studio 安全技能,适用于Django 和 React/NextJs
Horizon Security Skills 是一套仅用于防御的安全工作流集合,符合 OWASP 标准,专为 opencode 和 Codex 辅助项目设计。它提供了可安装的 `SKILL.md` 文件,用于审查、修复和回归测试具有明确授权边界的 Django/DRF 和 Next.js/React 应用程序。
仓库: `Horizon-Studio-LTDA/horizon-security-skills`
包: `horizon-security-skills@0.2.0`
## 项目提供的内容
- 六套完整的防御性安全技能,用于后端和前端应用审查。
- 一个 Node.js CLI,可将选定的技能安装到 `.opencode/skills/` 目录下。
- 共享的防御方法、授权规则、证据规则、严重程度指导和报告格式。
- 用于安全报告、发现、修复计划、安全测试计划、执行摘要和工具结果的模板。
- 针对 OWASP、Django/DRF、Next.js/React、SAST、SCA、安全 DAST、密钥、Docker 和 CI/CD 审查的检查清单。
- 关于常见防御性扫描仪和项目命令的安全使用说明。
## 可用技能
### 后端 Django/DRF
- `backend-django-drf-security-audit`
- `backend-django-drf-security-fix`
- `backend-django-drf-security-fix-and-tests`
### 前端 Next.js/React
- `frontend-nextjs-react-security-audit`
- `frontend-nextjs-react-security-fix`
- `frontend-nextjs-react-security-fix-and-tests`
### 技能模式
- `audit`:分析项目并生成报告;不得修改源代码、配置、依赖项、迁移、测试、Docker/CI/CD 或凭据。仅当用户明确请求或授权生成报告文件时,才可创建 Markdown 报告文件。
- `fix`:仅当获得明确授权时,才分析和修复问题。
- `fix-and-tests`:仅当获得明确授权时,才进行分析、修复并创建或更新回归测试。
## 何时使用
- 将此项目用于对拥有或已批准的代码库进行授权的防御性安全审查。
- 当您需要一份带有证据的、符合 OWASP 标准的只读报告时,使用 `audit` 技能。
- 当当前范围内的修复获得明确授权时,使用 `fix` 技能。
- 当修复和回归测试均获得明确授权时,使用 `fix-and-tests` 技能。
- 当发现结果需要一致的严重程度、证据、修复和验证说明时,使用共享模板。
## 何时不使用
- 请勿在未获授权的情况下对系统、存储库、环境或数据使用此项目。
- 请勿将其用作攻击性工具或替代专业安全授权和范围界定。
- 请勿在未经明确生产批准的情况下对生产环境运行 DAST。
- 请勿在提示、问题、报告或示例中包含密钥、令牌、密码、私钥、个人数据或敏感的客户数据。
- 请勿在没有人工证据审查的情况下将扫描仪输出视为最终结论。
## 安装
直接从 GitHub 列出可用技能:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills list
```
打开交互式安装模式:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install
```
安装所有技能:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install all
```
安装后端审计技能:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install backend-django-drf-security-audit
```
安装前端审计技能:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install frontend-nextjs-react-security-audit
```
覆盖已安装的技能:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install all --force
```
不带技能名称的 `install` 命令将打开交互模式。CLI 会询问要安装哪些技能,并将选定的技能目录复制到 `.opencode/skills/`。默认情况下,安装程序不会覆盖现有的技能目录。仅当您有意替换已安装的技能时才使用 `--force`。
更多安装说明请参见 [docs/installation.md](docs/installation.md)。
## CLI 用法
```
horizon-security-skills list
horizon-security-skills install
horizon-security-skills install
horizon-security-skills install all
horizon-security-skills install --force
horizon-security-skills install all --force
horizon-security-skills --help
horizon-security-skills --version
```
安装程序仅写入当前目标项目的 `.opencode/skills/` 目录。它会拒绝无效的技能标识符,并且除非使用 `--force` 或确认交互式覆盖提示,否则会拒绝覆盖现有技能。
详细用法请参见 [docs/usage.md](docs/usage.md)。
## 手动安装
手动安装一个技能:
```
mkdir -p .opencode/skills
cp -r skills/backend-django-drf-security-audit .opencode/skills/
```
手动安装所有技能:
```
mkdir -p .opencode/skills
cp -r skills/* .opencode/skills/
```
预期的安装路径是 `.opencode/skills//SKILL.md`。
## 安装示例
仅安装后端审计指南:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install backend-django-drf-security-audit
```
仅安装前端审计指南:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install frontend-nextjs-react-security-audit
```
刷新项目中所有已安装的技能:
```
npx github:Horizon-Studio-LTDA/horizon-security-skills install all --force
```
## 与 opencode 和 Codex 配合使用
对于 opencode,请将技能安装到目标项目的 `.opencode/skills/` 目录中。然后通过名称请求相关技能,或描述防御任务、授权、框架和范围。如果正在运行的 opencode 会话未检测到新安装的技能,请重启会话。
对于 Codex 辅助的工作流,请将此存储库用作防御性项目指令的来源。引用相关的技能名称、目标框架、授权范围以及任务是 `audit`、`fix` 还是 `fix-and-tests`。
## 仓库结构
```
bin/
lib/
skills/
shared/
templates/
checklists/
tools/
docs/
```
- `bin/`:CLI 入口点。
- `lib/`:用于技能、安装、日志记录和横幅输出的 CLI 支持模块。
- `skills/`:可安装的 opencode 技能目录。
- `shared/`:通用方法、策略、安全边界、严重程度模型和证据规则。
- `templates/`:报告、发现、修复、测试计划、执行摘要和工具结果模板。
- `checklists/`:框架、OWASP、SAST、SCA、安全 DAST、密钥、Docker 和 CI/CD 检查清单。
- `tools/`:防御性工具使用说明。
- `docs/`:安装、使用和安全边界文档。
有用的内部参考:
- [shared/methodology.md](shared/methodology.md)
- [templates/security-report-template.md](templates/security-report-template.md)
- [checklists/django-drf-security-checklist.md](checklists/django-drf-security-checklist.md)
- [checklists/nextjs-react-security-checklist.md](checklists/nextjs-react-security-checklist.md)
## 安全与限制
此项目纯属防御性。它不是攻击性安全工具包,不得在未经授权的情况下对目标使用。
- DAST 需要明确授权。
- 生产测试需要明确的生产授权。
- 密钥、凭据、令牌、私钥、个人数据和敏感客户数据必须进行脱敏处理。
- 扫描仪输出是分析的输入,而非最终结论。
- 发现应基于证据、有范围界定,并经过误报审查。
- 修复必须在授权的代码和测试范围内进行。
项目安全边界请参见 [docs/security-boundaries.md](docs/security-boundaries.md)。
## SAST、SCA 和 DAST
- 当项目有合适的工具可用时,SAST 是核心且必须的。
- 当存在依赖项清单或锁文件时,SCA 是核心且必须的。
- 当存储库历史记录、配置或环境示例在范围内时,密钥扫描是预期的。
- DAST 是可选的、安全的、非破坏性的,并且仅在获得授权时进行。
- 攻击性 DAST、暴力破解、重型模糊测试、主动利用、破坏性测试、未经授权的目标测试以及未经明确批准的生产测试均不在范围内。
- 推荐的外部工具有帮助但不是必须的。缺少的工具在任何安装尝试之前需要用户授权。
## 报告产物与语言
在请求或授权时,报告可以保存为 Markdown 文件。默认位置是:
```
security-reports/YYYY-MM-DD/-HHMMSS.md
```
示例:
```
security-reports/2026-05-17/backend-django-drf-security-audit-183012.md
```
如果审计技能未授权生成报告文件,则报告仅在助手回复中提供。当请求或授权时,fix 和 fix-and-tests 技能可以在 `security-reports/` 内保存报告文件,但报告生成不会扩展修复范围。
用户可以选择报告语言:英语或巴西葡萄牙语。如果用户未指定语言并且技能可以询问,则应在生成报告前进行询问。如果询问不可行,技能应从请求或对话中推断语言,并将该决定记录在报告中。
## 缺少的外部工具
推荐的工具可能包括 semgrep、bandit、pip-audit、gitleaks、detect-secrets、trivy、项目审计命令、存在时的 Docker/Docker Compose,以及用于明确授权的安全 DAST 的 OWASP ZAP Baseline。
技能不得自动安装缺失的外部工具。如果推荐的工具缺失,技能应记录该工具,解释覆盖范围影响,询问是否授权安装,如果未获授权则继续进行有限分析,并记录该限制。
## 报告与证据
报告应清楚区分已确认的发现、疑似发现、误报和信息性说明。每个发现应包括受影响的文件或路径、证据、影响、严重程度、置信度、推荐的修复措施和验证状态。
使用 [templates/security-report-template.md](templates/security-report-template.md) 作为主要报告格式。在包含命令输出、日志、屏幕截图或扫描仪结果之前,对敏感值进行脱敏。
## 开发
本地设置、验证命令、临时安装测试、Markdown 检查和发布安全审查指南,请参见 [DEVELOPMENT.md](DEVELOPMENT.md)。
## 安全
支持的版本、漏洞报告指南、敏感信息泄露处理和不安全技能报告,请参见 [SECURITY.md](SECURITY.md)。
行为准则请参见 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。
## 许可证 MIT
根据 [LICENSE.md](LICENSE.md) 中的条款获得许可。标签:CI/CD安全, DAST扫描, Django安全, Docker安全, Llama, MITM代理, Next.js安全, Node.js CLI, OWASP标准, React安全, SAST扫描, SCA扫描, Web框架安全, 前端安全, 后端安全, 回归测试, 安全修复, 安全工作流, 安全报告模板, 安全检查清单, 数据可视化, 源代码审查, 网络安全, 自定义脚本, 逆向工具, 防御性安全, 隐私保护