adrian-wulf/raven
GitHub: adrian-wulf/raven
一款专为 AI 辅助编程设计的安全扫描工具,致力于在本地极速发现并修复 LLM 生成的常见安全漏洞。
Stars: 0 | Forks: 0
# 🐦⬛ Raven
[](https://golang.org)
[](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), 逆向工程平台, 隐私保护, 静态代码扫描