AppSec哨兵
All-In-One Appsec工具:SAST、SCA、Secrets、SBOM、代码质量、AI代码修复、Claude桌面MCP集成(具有POC漏洞利用功能)、攻击链分析、CLI/Web/CCID模式、报告
📖 开源 -根据MIT许可证获得许可。个人和商业用途免费。
特性
- 多扫描仪引擎 -Semgrep(SAST)、Gitleaks(secrets)、Trivy(dependencies)+代码质量linters
- 代码质量扫描 -ESLint、Pylint、Checkstyle、golangci-lint、RuboCop,附带绑定配置(无需项目设置)
- 自动修复 -使用OpenAI/Claude/Bedrock创建带有LLM生成的代码修复的GitHub PR(可选)
- 跨文件分析 -跨多个文件和语言跟踪攻击链
- 灵活的人工智能提供商 -OpenAI(默认)、Claude或AWS Bedrock
- 10+语言 -JavaScript、TypeScript、Python、Java、Go、Ruby、Rust、C#、PHP、Swift、Kotlin
- 3种部署模式 -Web UI、CLI和GitHub操作CI/CD
- MCP服务器 -Claude Desktop的模型上下文协议集成
- 合规 -自动SBOM生成(CycloneDX和SPDX)
快速开始
有关超快速设置指南,请参阅 QUICKSTART.md.
你从盒子里得到了什么
安全扫描:
- Semgrep(SAST)-通过pip包含
- Gitleaks(secrets)-需要安装(请参阅QUICKSTART)
- Trivy(依赖关系)-需要安装(请参阅QUICKSTART)
代码质量扫描是可选的 -安装您需要的东西:
- ESLint(JavaScript/TypeScript)-
npm install -g eslint - Pylint(Python)-如果缺少,则自动安装
- Checkstyle、golangci lint、RuboCop、Clippy、PHPTan-根据需要安装
💡 跳过代码质量? 忽略“⚠️ “未安装”警告-安全扫描仍然可以完美工作!
先决条件
在中配置LLM提供程序 .env (仅用于自动修复功能):
- 开放人工智能:
OPENAI_API_KEY,AI_PROVIDER=openai,AI_MODEL=gpt-4o-mini - 克劳德:
CLAUDE_API_KEY,AI_PROVIDER=claude,AI_MODEL=claude-sonnet-4-20250514 - 双子座:
GEMINI_API_KEY,AI_PROVIDER=gemini,AI_MODEL=gemini-1.5-flash - AWS基岩:
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_REGION,INFERENCE_PROFILE_ID,AI_PROVIDER=aws_bedrock(所有选项请参见env.example)
网络界面
./start_web.sh
# → Opens http://localhost:8000特征:
- 通过复选框选择工具(Semgrep、Trivy、Gitleaks、代码质量、SBOM)
- 带有执行摘要的可视化报告
- 下载SBOM文件(CycloneDX和SPDX)
命令行接口命令模式
./start_cli.sh
# → Interactive menu with tool selection, severity levels, and auto-fix options特征:
- 选择要运行的工具(SAST、机密、依赖关系、代码质量、SBOM)
- 选择扫描级别(临界高或全部)
- 配置自动修复模式
CI/CD集成
# Copy workflow template
cp projects/security-scan.yml .github/workflows/
# Add GitHub secret:
# - OPENAI_API_KEY (or CLAUDE_API_KEY, or AWS credentials)
git add .github/workflows/security-scan.yml
git commit -m "Add AppSec-Sentinel security scanning"
git push运作原理
- 扫描 -并行运行3个扫描程序(SAST、secrets、dependency)
- 分析 -跨文件AST分析使用图遍历识别跨文件的攻击链
- 补救 -LLM生成修复并为代码与依赖项创建单独的PR(需要API密钥)
- 报告 -HTML报告+SBOM文件(CycloneDX和SPDX)
MCP集成
将Claude Desktop转变为对话式安全专家——通过自然语言进行扫描、分析和自动修复。
设置: 添加到Claude桌面配置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"appsec-sentinel": {
"command": "/path/to/appsec-sentinel/.venv/bin/python",
"args": ["/path/to/appsec-sentinel/mcp/appsec_mcp_server.py"],
"cwd": "/path/to/appsec-sentinel",
"env": {
"PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin",
"PYTHONPATH": "/path/to/appsec-sentinel/src"
}
}
}
}💡 证书在 mcp/mcp_env14种MCP工具可用:
- 核心:
scan_repository•auto_remediate•get_report•view_report_html•health_check - 分析:
cross_file_analysis•assess_business_impact•generate_sbom - API工具:
get_scan_findings•get_semgrep_findings•get_trivy_findings•get_gitleaks_findings•get_code_quality_findings•get_sbom_data
用途: “扫描 对于漏洞”→详细的发现,包括文件路径、行号、补救措施
自动修复模式
- 模式1:SAST+秘密(1个PR)
- 模式2:仅依赖关系(1 PR)
- 模式3:两个(两个单独的PR)-推荐
- 模式4:仅扫描(无PR)
跨文件分析
跨多个文件和语言跟踪攻击路径:
- 多语言AST -真正的代码理解(不是正则表达式)
- 数据流跟踪 -入口点→ 攻击路径→ 敏感汇
- 框架感知 -Express、Spring、Django、Rails、Laravel、ASP。网
看 架构图→
代码质量扫描
AppSec Sentinel包括无需配置即可在任何存储库上运行的代码质量扫描。
支持的语言:
- ✅ JavaScript/TypeScript -ESLint(自动检测v8与v9,使用捆绑配置)
- ✅ python -Pylint(自动安装到virtualenv)
- ✅ Java -Checkstyle(完全集成在所有模式中)
- ✅ 走 -golangci lint(完全集成在所有模式中)
- ✅ 红宝石 -RuboCop(完全集成在所有模式中)
- ✅ 锈 -Clippy(官方Rust门楣,600+格)
- ✅ PHP -PHPTan(不运行代码的静态分析)
- 🔜 C -即将推出(Roslyn Analyzers)
- 🔜 迅速 -即将推出(适用于iOS/macOS的SwiftLint)
- 🔜 Kotlin -即将推出(适用于Android/JVM的ktlint/detekt)
工作原理:
- 通过扫描文件扩展名自动检测语言
- 检查repo配置(.eslintrc.json等)
- 如果repo没有绑定配置,则回退到绑定配置
- 与安全扫描程序并行运行(无性能损失)
例子:
📊 Detected languages: javascript, python
🔍 Starting scan (3 security + 2 code quality scanners)...
📋 No ESLint config in repo - using default config
✅ ESLint (Code Quality): 106 code quality issues
✅ Pylint (Code Quality): 23 code quality issues
🎯 Scan complete: 119 security issues + 129 code quality issues______________________________________________________________________
可选:安装代码质量Linters
想要进行代码质量扫描吗? 为您的语言安装过梁:
# JavaScript/TypeScript
npm install -g eslint
# Python (auto-installs if missing)
pip install pylint
# Java
brew install checkstyle # macOS
# or download from https://checkstyle.org/
# Go
brew install golangci-lint # macOS
# or: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh
# Ruby
gem install rubocop
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Includes clippy
# PHP
composer global require phpstan/phpstan______________________________________________________________________
配置
编辑 .env 文件:
# Tool Selection (CLI/Web only - CI/CD always runs all)
APPSEC_TOOLS=all # 'all' or comma-separated: semgrep,trivy,gitleaks,code_quality,sbom
# Examples:
# all - Run all tools (default)
# semgrep,gitleaks - Only SAST + secrets
# trivy - Only dependency scanning
# Code quality scanning (enabled by default, gracefully skips if linters not installed)
APPSEC_CODE_QUALITY=true
# Scan level (only affects security findings)
APPSEC_SCAN_LEVEL=critical-high # or 'all'
# AI determinism
APPSEC_AI_TEMPERATURE=0.0
# Auto-fix settings
APPSEC_AUTO_FIX=true
APPSEC_AUTO_FIX_MODE=3 # 1=SAST, 2=deps, 3=both, 4=scan only捆绑配置:
configs/eslint.config.js/eslintrc.v8.json-JavaScript/TypeScriptconfigs/checkstyle.xmlJavaconfigs/golangci.yml-去吧configs/rubocop.yml-红宝石configs/clippy.toml-生锈configs/phpstan.neon-PHPconfigs/.gitleaks.toml-秘密
文档
常见问题解答
Q: LLM生成的代码合并安全吗?
A: 所有修复都需要通过PR进行手动审查。我们使用确定性LLM设置(温度=0.0),只修复经过验证的模式(SQL注入、XSS、硬编码秘密)。您现有的测试验证更改。代码与依赖项的单独PR将风险降至最低。经过快速审查,约80%的修复程序已准备好投入生产。
Q: 哪些数据会发送给LLM提供商?
A: 只有漏洞元数据(文件路径、行号、漏洞类型、代码片段)。 从不 你的完整代码库。秘密在本地标记 从不 发送给LLMs。您可以控制哪些发现触发LLM分析。注意:扫描和跨文件分析运行 100%本地 API调用为零。
Q: 我应该使用哪种模式?
- GitHub操作 -CI/CD中的自动安全(扫描每个PR)
- Web用户界面 -面向团队和管理层的可视化报告
- 命令行界面 -为安全顾问提供深入分析
- 主控程序 -与Claude Desktop的对话安全
所有模式都使用相同的扫描引擎。根据您的工作流程进行选择。
Q: 为了代码质量,我需要安装过梁吗?
A: 没有门楣,安全扫描就可以工作。代码质量为 可选的 如果没有安装工具,则优雅地跳过。仅当您需要代码气味检测时,才安装linter(ESLint、Pylint等)。集 APPSEC_CODE_QUALITY=false 完全禁用。
Q: 这与其他安全扫描仪有何不同?
A. 跨文件攻击链检测 -我们使用AST分析和图遍历来跟踪多个文件和语言中的漏洞,而不仅仅是单个文件模式匹配。加上可选的LLM生成修复和零配置SBOM生成。
Q: 外部依赖是否被锁定以保持稳定性?
A: 是的。所有外部依赖项都使用带有SRI完整性哈希的锁定版本来防止破坏更改:
- Python 包:固定
requirements.txt - 后备CDN:复原力的多种来源
- 版本检测:自动适应主要版本之间的API更改
看 依赖者.md 用于气隙部署的升级程序和销售选项。
发展
# Run tests
pytest tests/test_appsec.py -v故障排除
# Permission issues
chmod +x start_web.sh start_cli.sh
# Dependency conflicts
rm -rf .venv && python -m venv .venv
source .venv/bin/activate && pip install -r requirements.txt
# Enable debug logging
export APPSEC_DEBUG=true
export APPSEC_LOG_LEVEL=DEBUG贡献
欢迎投稿!请随时提交拉取请求。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
