adrian-wulf/raven

GitHub: adrian-wulf/raven

一款专为 AI 辅助编程设计的安全扫描工具,致力于在本地极速发现并修复 LLM 生成的常见安全漏洞。

Stars: 0 | Forks: 0

# 🐦‍⬛ Raven [![Go 版本](https://img.shields.io/badge/go-1.23+-00ADD8?logo=go)](https://golang.org) [![许可证](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) ## 问题所在 你通过 Cursor/Claude/Copilot 氛围编程了一款应用。它能运行。你将其发布。 **但你的 AI 助手刚刚编写了:** - 通过字符串拼接导致的 SQL 注入 - 通过 `innerHTML` 导致的 XSS - 硬编码的 API 密钥 - 将用户输入传入 `eval()` - 通过 `exec()` 导致的命令注入 **你没有注意到。但攻击者会。** ## Raven 的功能 Raven 会扫描你的代码,查找 **LLM 常犯的特定错误**,并告诉你如何修复它们。 ``` $ raven scan 🐦‍⬛ Raven Security Scan 42 files scanned in 23ms Summary: critical: 2 high: 3 medium: 1 CRITICAL SQL Injection via String Concatenation src/api.js:12:18 Potential SQL injection: user input is concatenated into a SQL query. Use parameterized queries. const query = "SELECT * FROM users WHERE id = " + req.query.id; 💡 Fix available: raven fix HIGH Hardcoded API Key or Secret src/config.js:5:7 Hardcoded secret detected. Move this to environment variables. const API_KEY = "sk-live-abc123..."; ``` ## 安装 ``` # macOS / Linux brew install raven-security/tap/raven # 或者使用 Go go install github.com/raven-security/raven/cmd/raven@latest # 或者从 releases 下载二进制文件 curl -sSL https://get.raven.sh | bash ``` ## 快速入门 ``` # 扫描您的项目 cd my-project raven scan # 在开发期间监视更改 raven watch # 自动修复问题(默认为 dry-run) raven fix raven fix --apply # 查看所有规则 raven rules # CI 模式(发现问题时以退出码 1 退出,输出 SARIF) raven ci --format sarif --output report.sarif # 了解漏洞 raven learn sqli ``` ### GitHub Action ``` # .github/workflows/security.yml name: Security Scan on: [push, pull_request] jobs: raven: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: raven-security/raven/.github/actions/raven@main with: fail-on: high format: sarif ``` 结果将显示在 **Security → Code scanning alerts** 中。 ### VS Code / Cursor 扩展 从 VS Code Marketplace 安装(即将推出)或从源代码构建: ``` cd editor/vscode npm install npm run compile ``` 然后在 VS Code 中按 F5 启动扩展。你将看到: - 🛡️ 显示安全状态的底部状态栏图标 - 🔴 易受攻击代码下方的红色波浪线 - 💡 "Fix with Raven" 代码操作 - 📋 命令面板:`Raven: Scan Workspace` ### AI 驱动的修复 让 AI 为你修复漏洞: ``` # 设置您的 API key(推荐 OpenRouter - 提供免费套餐) export OPENROUTER_API_KEY=your-key # 交互式 AI 修复所有问题 raven fix-ai # 预览而不应用 raven fix-ai --dry-run ``` ### Pre-commit 钩子 阻止包含安全问题的提交: ``` raven install-hook # Install raven install-hook --uninstall # Remove ``` ## 功能特性 ### 🎯 AI 感知检测 专为 **LLM 常犯错误** 设计的规则: - SQL 注入(字符串拼接、模板字面量、`.format()`) - XSS(`innerHTML`、`dangerouslySetInnerHTML`、模板注入) - 硬编码的机密信息(API 密钥、token、密码) - 命令注入(带有 shell 的 `exec`、`spawn`) - 路径遍历(未经净化的文件路径) - 代码注入(`eval`、`new Function`) ### 🔧 自动修复 Raven 会在可能的情况下建议并应用修复: ``` raven fix --apply ``` ### 👁️ 监视模式 在你编写代码时发现问题: ``` raven watch ``` ### 🚀 CI/CD 就绪 GitHub Actions、GitLab CI 等: ``` raven ci --format sarif --output report.sarif ``` ### 🎨 优美的输出 带有代码片段的彩色、可读终端输出。 ## 支持的语言 | 语言 | 状态 | |----------|--------| | JavaScript / TypeScript | ✅ 完全支持 | | Python | ✅ 完全支持 | | Go | ✅ 完全支持 | | PHP | ✅ 完全支持 | | Rust | ✅ 基础支持 | | Java / Kotlin | ✅ 基础支持 | | Ruby | ✅ 基础支持 | | Swift | ✅ 基础支持 | ## 工作原理 Raven 使用 **基于本地规则的分析** —— 没有 API 调用,数据不会离开你的机器: 1. 从 YAML 文件(内置 + 自定义)**解析规则** 2. **遍历**你项目中的**文件** 3. 使用正则表达式进行**模式匹配**(快速、轻量) 4. **输出结果**,包含严重程度、位置和修复建议 全部免费。全部在本地。全部极速。 ## 配置 在你的项目根目录下创建 `raven.yaml`: ``` rules: paths: - ./src exclude: - node_modules - dist - "*.test.js" confidence: medium output: format: pretty # pretty, json, sarif color: true show_code: true fix: enabled: true dry_run: true severity: min: low ``` ## 规则 Raven 内置了 **30 多条安全规则**,涵盖 OWASP Top 10 和常见的 LLM 错误。 ``` # 列出所有规则 raven rules # 仅列出 JavaScript 规则 raven rules --lang javascript # 列出完整详情 raven rules --detail ``` ## 为什么选择 Raven 而不是其他工具? | | Raven | Semgrep | Snyk | CodeQL | |---|-------|---------|------|--------| | **成本** | 免费 | 免费/付费 | $$$ | 免费(仅限 GitHub) | | **设置** | 零配置 | 配置繁琐 | 需要账户 | 复杂 | | **速度** | < 1s | ~5s | 云端 | ~30s | | **专注于 AI** | ✅ 是 | ❌ 否 | ❌ 否 | ❌ 否 | | **自动修复** | ✅ 是 | ⚠️ 部分 | ❌ 否 | ❌ 否 | | **离线使用** | ✅ 是 | ✅ 是 | ❌ 否 | ✅ 是 | | **IDE** | CLI + LSP | 扩展 | 扩展 | 仅限 GitHub | ## 路线图 - [x] 核心规则引擎 - [x] 28 条安全规则 (OWASP Top 10 + AI 专属) - [x] 自动修复 - [x] 监视模式 - [x] CI 模式 + SARIF - [x] 49 条规则涵盖 OWASP Top 10 + AI 专属错误 - [x] 49 条规则(SQLi、XSS、RCE、机密信息、crypto、SSRF、CORS、auth 等) - [x] VS Code / Cursor 扩展(基于 LSP) - [x] AI 驱动的修复 (OpenRouter/DeepSeek) - [x] Pre-commit 钩子 - [x] GitHub Action - [ ] 50 多条规则 - [ ] Zed / Vim 支持 - [ ] 基于 AST 的分析(不仅是正则表达式) - [ ] 框架感知规则 - [ ] 供应链扫描 ## 贡献 Raven 是开源的。欢迎贡献代码! ``` git clone https://github.com/raven-security/raven.git cd raven go test ./... ``` ### 添加规则 规则是 `rules//` 目录下的 YAML 文件: ``` id: my-rule-001 name: Descriptive Name severity: high category: xss confidence: high languages: [javascript] message: What the developer should know patterns: - type: regex pattern: "dangerous\\.pattern" references: - https://owasp.org/... ``` ## 许可证 MIT © Raven Security
标签:AI代码助手安全, CI/CD安全, CISA项目, DevSecOps, EVTX分析, GitHub Actions, Go语言开发, Llama, LNA, SAST(静态应用安全测试), SQL注入检测, Vibe Coding, 上游代理, 人工智能代码审查, 命令注入防御, 大语言模型(LLM)安全, 安全检测工具, 开发安全, 开源安全工具, 日志审计, 漏洞自动修复, 硬编码密码检测, 网络安全, 自动笔记, 跨站脚本攻击(XSS), 逆向工程平台, 隐私保护, 静态代码扫描