Strix实战教程:5分钟给GitHub仓库加上AI安全扫描
Strix实战教程:5分钟给GitHub仓库加上AI安全扫描
上一篇文章介绍了Strix这个开源AI渗透测试工具。本篇教程手把手教你如何把它接入GitHub Actions,每次提交代码自动触发AI安全扫描,让漏洞在合并之前就被拦截。

### 前提条件
在开始之前,你需要准备:
– 一个GitHub仓库(公开或私有均可)
– 一个LLM API Key(支持OpenAI、Anthropic等,推荐用Claude API以获得最佳安全分析效果)
– 基本的Git操作知识
### Step 1: 注册Strix并获取安装令牌
访问 [app.strix.ai](https://app.strix.ai) 用GitHub账号登录,免费版支持公共仓库的快速扫描。登录后在Dashboard中找到你的API配置页面。
### Step 2: 添加GitHub Secrets
进入你的仓库 → Settings → Secrets and variables → Actions,添加两个Secret:
STRIX_LLM = anthropic/claude-sonnet-5-20260630
LLM_API_KEY = sk-ant-api03-your-key-here**提示**:`STRIX_LLM`支持多种模型格式。推荐使用 `anthropic/claude-sonnet-5-20260630`,它在代码理解上表现最好。如果你的项目主要用Python,也可以用 `openai/gpt-5.5`。
### Step 3: 创建GitHub Actions工作流文件
在仓库根目录创建 `.github/workflows/strix-scan.yml`:
name: strix-security-scan
on:
pull_request:
branches: [main, master]
push:
branches: [main, master]
jobs:
security-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install Strix
run: curl -sSL https://strix.ai/install | bash
- name: Run Strix Quick Scan
env:
STRIX_LLM: ${{ secrets.STRIX_LLM }}
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
run: strix -n -t ./ --scan-mode quick
- name: Run Strix Deep Scan (on main push only)
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
env:
STRIX_LLM: ${{ secrets.STRIX_LLM }}
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
run: strix -n -t ./ --scan-mode deep### Step 4: 理解两种扫描模式
– Quick Scan(快速模式):适合每次PR提交。扫描时间约2-5分钟,覆盖OWASP Top 10常见漏洞类型。检查SQL注入、XSS、敏感信息泄露、不安全的反序列化等。
– Deep Scan(深度模式):适合合并到主分支后的全量扫描。耗时10-30分钟,会进行多步骤攻击链模拟。比如:先发现一个信息泄露点→利用泄露信息尝试权限提升→再用提升的权限访问敏感接口。
### Step 5: 解读扫描结果
扫描完成后,Strix会在GitHub的PR页面添加内联评论。每个发现包含三个关键部分:
🔴 HIGH | SQL Injection in /api/users/search
📍 File: src/routes/users.py:42
🔬 PoC: curl -X GET "https://target/api/users/search?q=' OR 1=1--"
💡 Fix: Use parameterized queries. Replace f-string with ? placeholder.– 严重程度(🔴 HIGH / 🟡 MEDIUM / 🟢 LOW)
– PoC验证:这是一个真实可复现的攻击示例,不是理论推断
– 修复建议:Strix直接告诉你该改哪一行、怎么改
### Step 6: 本地使用(不依赖GitHub Actions)
如果你不想走CI流程,也可以直接在本地运行:
# 安装
curl -sSL https://strix.ai/install | bash
# 设置环境变量
export STRIX_LLM="anthropic/claude-sonnet-5-20260630"
export LLM_API_KEY="sk-ant-api03-your-key-here"
# 快速扫描当前目录
strix -n -t ./ --scan-mode quick
# 扫描指定文件或目录
strix -n -t ./src/api/ --scan-mode deep
# 输出JSON格式结果(方便集成到其他工具)
strix -n -t ./ --scan-mode quick --output json --output-file report.json### 进阶技巧
1. 自定义忽略规则
在项目根目录创建 `.strixignore` 文件:
# 忽略测试文件
**/test/**
**/__tests__/**
# 忽略第三方库
vendor/
node_modules/2. 设置最低严重度阈值
只报告HIGH级别的漏洞,减少噪音:
strix -n -t ./ --scan-mode quick --min-severity high3. 定期全量扫描
建议在GitHub Actions中添加定时任务,每天凌晨自动跑深度扫描:
on:
schedule:
- cron: '0 2 * * *' # 每天UTC 2:00**成本提示**:Quick Scan每次约消耗5000-15000 token(约$0.02-0.10),Deep Scan每次约消耗30000-80000 token(约$0.10-0.50)。对于中小项目,月成本通常在$5-20之间。
### 实战经验:避免常见坑
坑1:API Key放在公开仓库中
千万不要把API Key直接写在YAML文件里。GitHub会自动扫描并撤销泄露的密钥。始终用Secrets存储。如果你不小心提交了Key,立即在Anthropic/OpenAI控制台吊销该Key并生成新的。
坑2:Deep Scan在主分支PR上运行导致超时
Deep Scan耗时较长,如果在每个PR上都跑,不仅浪费token还会拖慢CI流水线。正确的做法是快速扫描跑PR、深度扫描跑定时任务(如每天凌晨)。上面示例中的 `if: github.event_name == ‘push’` 条件已经实现了这个策略。
坑3:忽略了Strix的token成本
初次使用者经常惊讶地发现,一天的Deep Scan消耗了$3-5的API费用。建议在正式启用前,先用一个测试仓库跑一周,评估实际成本后再决定扫描频率。你也可以通过 `–min-severity high` 参数只关注高危漏洞来降低token消耗。
### 总结
Strix代表了AI安全工具的一次范式转移——从”定期体检”变成”持续监护”。把它接入CI/CD,就像给每个PR配备了一位24小时值班的安全工程师。对个人开发者和中小团队来说,这种以前只有大厂才用得起的防护能力,现在只需要几行YAML配置和每月一杯咖啡的成本。
🔥 关注LC智趣厅,每篇教程都配可运行的代码。
👇 关注不错过,下一篇教你省90%的API费用。
— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn
