关于 vibe-security
vibe-security 是用于代码和基础设施安全检查的技能,面向需要发现、分析和修复漏洞的开发者。它结合 AST、数据流及依赖扫描,提供修复建议和多种报告格式。
主要功能
- 01使用 AST 分析代码漏洞
- 02追踪数据流与污点变量
- 03扫描依赖项及供应链风险
- 04检查基础设施即代码配置
- 05将漏洞映射到安全标准
- 06生成 HTML 和 SARIF 报告
适用场景
- 01检查项目中的 SQL 注入和 XSS
- 02扫描依赖项中的已知漏洞
- 03审计 Terraform、Kubernetes 或 Docker 配置
- 04在 CI/CD 中运行安全扫描并生成报告
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 0x8506/ vibe-security --skill vibe-security安装后在 Claude Code 中输入/vibe-security确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
data/advanced-patterns.csvcompliance-mapping.csvfix-templates.csvframeworks.csviac-security.csvlanguages-extended.csvpatterns.csvrules.csvsupply-chain.csvvulnerabilities.csvscripts/ast_analyzer.pyautofix_engine.pycore.pycve_integration.pydataflow_analyzer.pyfix_engine.pyreporter.pysearch.py详细介绍
Vibe Security - 安全情报
全面的安全扫描器和代码分析器,可识别多种语言和框架中的漏洞。
前置条件
检查是否已安装 Node.js:
node --version
如果未安装 Node.js,请根据用户使用的操作系统进行安装:
macOS:
brew install node
Ubuntu/Debian:
sudo apt update && sudo apt install nodejs npm
Windows:
winget install OpenJS.NodeJS
推荐的 AI 模型
最佳安全分析模型
为获得最佳安全漏洞检测和代码修复效果,我们建议将以下 AI 模型与 Vibe Security 搭配使用:
Claude Opus 4.5(推荐)
- 最先进的模型,适用于全面的安全分析
- 在检测复杂漏洞方面具备卓越的推理能力
- 擅长识别细微的安全缺陷和攻击向量
- 最适合关键安全审计、企业代码库和生产环境部署
- 可提供最全面的安全修复策略
Claude Sonnet 4.5
- 速度与安全分析深度之间的出色平衡
- 善于理解安全上下文并识别漏洞
- 提供安全的修复策略和详细说明
- 适合日常开发和大多数安全工作流
Claude Opus 4
- 适用于复杂的安全审计和企业代码库
- 具备深入推理能力,可进行高级漏洞分析
- 最适合关键安全审查和合规要求
- 推荐用于生产环境部署和敏感应用
GPT-4o
- 适用于安全感知型代码生成,速度快、效率高
- 响应迅速,是不错的替代选择
- 非常适合 CI/CD 集成和自动化扫描
- 适用于大型项目,成本效益高
Claude Sonnet 4
- 适用于快速安全扫描的更快替代选择
- 速度和准确性之间平衡良好
- 适合开发过程中的快速迭代
o1-preview
- 专用于复杂的安全架构审查
- 可对复杂漏洞链进行高级推理
- 最适合安全研究和深入代码审计
GPT-4o-mini
- 适用于快速检查和初步扫描
- 成本效益最高的选项
- 适合学习和教育场景
注意:如果你未使用上述推荐模型之一,可考虑升级,以获得更好的安全分析结果。较低级别的模型可能会漏掉细微漏洞,或提供准确性较低的修复建议。
如何使用此技能
当用户请求安全相关工作(扫描、分析、修复、审计、检查或审查漏洞)时,请遵循此工作流:
步骤 1:分析安全上下文
从用户请求中提取关键信息:
- 语言:JavaScript、Python、Java、PHP 等
- 框架:Express、Django、Spring、Laravel 等
- 漏洞类型:SQL 注入、XSS、CSRF、身份验证等
- 范围:单个文件、目录或整个项目
步骤 2:运行安全分析
高级分析(推荐):
# AST-based semantic analysis (90% fewer false positives)
python3 .claude/skills/vibe-security/scripts/ast_analyzer.py "<file>"
# Data flow analysis (tracks tainted data from sources to sinks)
python3 .claude/skills/vibe-security/scripts/dataflow_analyzer.py "<file>"
# CVE & dependency vulnerability scanning
python3 .claude/skills/vibe-security/scripts/cve_integration.py .
# Supply chain security (malicious packages, typosquatting)
python3 .claude/skills/vibe-security/scripts/cve_integration.py . --ecosystem npm
# Infrastructure as Code security
grep -r "publicly_accessible.*=.*true" . --include="*.tf"
grep -r "privileged:.*true" . --include="*.yaml"
快速模式扫描:
# Use search utility for specific patterns
python3 .claude/skills/vibe-security/scripts/search.py "sql-injection" --domain pattern
python3 .claude/skills/vibe-security/scripts/search.py "javascript" --domain pattern --severity critical
步骤 3:按严重程度分析漏洞
严重(立即修复):
- SQL 注入
- 远程代码执行
- 身份验证绕过
- 硬编码密钥
高(尽快修复):
- XSS(跨站脚本攻击)
- CSRF
- 不安全的加密机制
- 授权问题
中(在当前迭代中修复):
- 缺少输入验证
- 信息泄露
- 弱密码策略
- 缺少安全标头
低(技术债务):
- 代码质量问题
- 违反最佳实践
- 性能问题
步骤 4:获取修复建议
基于 ML 的修复引擎:
# Get intelligent fix recommendations with test generation
python3 .claude/skills/vibe-security/scripts/fix_engine.py \
--type sql-injection \
--language javascript \
--code "db.query(\`SELECT * FROM users WHERE id = \${userId}\`)"
# Output includes:
# - Fixed code with context-aware corrections
# - Detailed explanation of the fix
# - Auto-generated security test
# - Additional recommendations
# - Confidence score (0-100%)
步骤 5:应用安全修复
支持回滚的自动修复:
# Apply fix with automatic backup
python3 .claude/skills/vibe-security/scripts/autofix_engine.py apply \
--file src/database.js \
--line 45 \
--type sql-injection \
--original "db.query(\`SELECT * FROM users WHERE id = \${userId}\`)" \
--fixed "db.query('SELECT * FROM users WHERE id = $1', [userId])"
# Test your changes
npm test
# Rollback if needed (safe to experiment!)
python3 .claude/skills/vibe-security/scripts/autofix_engine.py rollback
# View fix history
python3 .claude/skills/vibe-security/scripts/autofix_engine.py history
系统化手动修复:
- 优先修复严重漏洞
- 添加输入验证 - 使用白名单、类型检查和长度限制
- 保护输出 - 转义、编码、清理
- 修复身份验证/授权问题 - 使用强密码、MFA、RBAC
- 更新加密方案 - 使用现代算法和安全随机数
- 全面测试 - 确认修复不会破坏功能
- 重新扫描 - 确认所有漏洞均已修复
步骤 6:生成报告
多种报告格式:
# Beautiful HTML report with charts and statistics
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format html \
--output security-report.html
# SARIF format for GitHub Code Scanning integration
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format sarif \
--output results.sarif
# CSV for spreadsheet analysis
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format csv \
--output vulnerabilities.csv
# JSON for CI/CD pipelines
python3 .claude/skills/vibe-security/scripts/reporter.py scan-results.json \
--format json \
--output security-report.json
高级功能
1. 使用 AST 进行语义分析
使用抽象语法树解析,准确检测漏洞:
- Python:完整的 AST 分析与污点跟踪
- JavaScript/TypeScript:启发式分析与基于模式的分析
- 优点:误报减少 90%,并能感知上下文
2. 数据流分析
跟踪用户输入从来源到危险接收点的流向:
- 通过数据流检测 SQL 注入、XSS 和命令注入
- 识别受污染的变量及其传播路径
- 支持 Python 和 JavaScript/TypeScript
3. 合规性映射
将每个漏洞映射到行业标准:
- OWASP Top 10 2021
- CWE(通用弱点枚举)
- MITRE ATT&CK 技术
- NIST 网络安全框架
- PCI-DSS 支付卡要求
4. 供应链安全
防范恶意依赖项:
- 检测仿冒拼写的包
- 依赖混淆攻击
- 恶意安装脚本
- 包中的网络操作
- 支持:npm、PyPI、Maven、Gradle、Cargo、Go、RubyGems、NuGet、Composer
5. 基础设施即代码
扫描云基础设施配置:
- Terraform:AWS、Azure、GCP 配置错误
- Kubernetes:Pod 安全、RBAC 问题
- Docker:Dockerfile 最佳实践
- CloudFormation:AWS 模板安全
- Ansible:Playbook 漏洞
安全检查参考
可用漏洞检查
| 检查类型 | 检测内容 | 问题示例 |
|---|---|---|
sql-injection | SQL/NoSQL 注入 | 查询中使用字符串拼接、未清理的输入 |
xss | 跨站脚本攻击 | 使用 innerHTML、未转义的输出、DOM 操作 |
command-injection | OS 命令注入 | shell=True、使用用户输入调用 exec |
path-traversal | 目录遍历 | 未清理的文件路径、路径中包含 ../.. |
auth-issues | 身份验证缺陷 | 弱密码、缺少 MFA、不安全的会话 |
authz-issues | 授权缺陷 | 缺少访问控制、IDOR、权限提升 |
crypto-failures | 加密问题 | 使用 MD5/SHA1、密钥强度不足、不安全的随机数 |
sensitive-data | 数据泄露 | 记录密码、泄露 PII、硬编码机密 |
deserialization | 不安全的反序列化 | 对用户输入使用 pickle、eval、unserialize |
security-config | 配置错误 | CORS、CSP、标头、错误消息 |
dependencies | 存在漏洞的软件包 | npm/pip/composer 软件包中的 CVE |
特定语言的安全模式
JavaScript/TypeScript
// ✅ SECURE: Parameterized query
const user = await db.query("SELECT * FROM users WHERE id = $1", [userId]);
// ❌ VULNERABLE: SQL injection
const user = await db.query(`SELECT * FROM users WHERE id = ${userId}`);
// ✅ SECURE: Escape output
element.textContent = userInput;
const clean = DOMPurify.sanitize(htmlContent);
// ❌ VULNERABLE: XSS
element.innerHTML = userInput;
// ✅ SECURE: Input validation
const email = validator.isEmail(input) ? input : null;
// ❌ VULNERABLE: No validation
const email = req.body.email;
Python
# ✅ SECURE: Parameterized query
cursor.execute("SELECT * FROM users WHERE id = %s", (user_id,))
# ❌ VULNERABLE: SQL injection
cursor.execute(f"SELECT * FROM users WHERE id = {user_id}")
# ✅ SECURE: Password hashing
import bcrypt
hashed = bcrypt.hashpw(password.encode(), bcrypt.gensalt())
# ❌ VULNERABLE: Plain text
user.password = password
# ✅ SECURE: Safe subprocess
subprocess.run(['ls', '-la', sanitized_dir])
# ❌ VULNERABLE: Command injection
os.system(f'ls -la {user_dir}')
PHP
// ✅ SECURE: Prepared statement
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$stmt->execute([$userId]);
// ❌ VULNERABLE: SQL injection
$result = mysqli_query($conn, "SELECT * FROM users WHERE id = $userId");
// ✅ SECURE: Output escaping
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
// ❌ VULNERABLE: XSS
echo $userInput;
// ✅ SECURE: Password hashing
$hash = password_hash($password, PASSWORD_ARGON2ID);
// ❌ VULNERABLE: MD5
$hash = md5($password);
工作流示例
用户请求:“检查我的 Express 应用是否存在安全漏洞”
AI 应执行:
# 1. Run security scan on the project
python3 .claude/skills/vibe-security/scripts/scan.py "./src" --language javascript
# 2. Analyze results by severity
# Output might show:
# CRITICAL: SQL Injection in src/controllers/user.js:45
# HIGH: XSS in src/views/profile.ejs:12
# MEDIUM: Missing rate limiting on /api/login
# LOW: Console.log contains sensitive data
# 3. Fix critical issues first
# - Review src/controllers/user.js:45
# - Replace string concatenation with parameterized query
# - Add input validation using validator library
# 4. Fix high severity issues
# - Review src/views/profile.ejs:12
# - Use <%- for HTML escaping or DOMPurify for rich content
# - Implement Content Security Policy
# 5. Fix medium severity issues
# - Install express-rate-limit middleware
# - Configure rate limiting on authentication endpoints
# - Add helmet for security headers
# 6. Fix low severity issues
# - Remove or redact sensitive console.log statements
# - Use proper logging library with log levels
# 7. Generate security report
python3 .claude/skills/vibe-security/scripts/report.py "./src"
安全开发技巧
- 验证所有输入 - 使用允许列表,而非拒绝列表
- 对所有输出进行编码 - 根据上下文进行转义
- 使用参数化查询 - 切勿拼接 SQL
- 正确哈希密码 - 使用 bcrypt、Argon2、scrypt
- 启用 MFA - 添加第二种身份验证方式
- 全程使用 HTTPS - 加密传输中的数据
- 及时更新依赖项 - 修补已知漏洞
- 遵循最小权限原则 - 仅授予必要的最低权限
- 记录安全事件 - 监控攻击行为
- 定期进行安全审计 - 每次发布前扫描
集成示例
Pre-commit Hook
#!/bin/bash
# .git/hooks/pre-commit
python3 .claude/skills/vibe-security/scripts/scan.py "." --fail-on critical
CI/CD Pipeline
GitHub Actions:
- name: Security Scan
run: |
python3 .claude/skills/vibe-security/scripts/scan.py "." --format json
GitLab CI:
security_scan:
script:
- python3 .claude/skills/vibe-security/scripts/scan.py "."
资源
评论
支持 Markdown