aicodesentry/codesentry

GitHub: aicodesentry/codesentry

一个 GitHub 原生的自动化代码安全审查平台,通过正则匹配和 Semgrep AST 分析在 PR 阶段检测漏洞并自动发布审查意见。

Stars: 2 | Forks: 0

# CodeSentry 一个接入 GitHub 的平台,可分析每个 pull request,并通过多源上下文(regex、Semgrep、依赖检查以及支持 LLM 的 BYOK 提示)提供可落地的安全审查。 ## 工作原理 1. 开发者开启一个 PR 2. CodeSentry 接收 webhook,分析变更的文件 3. 发布 PR 审查:若发现严重/高危问题则返回 `CHANGES_REQUESTED`,否则返回 `COMMENT` 4. 每项发现都会标注在具体代码行,包含严重程度、证据和修复建议 无需 CI 配置。无需手动扫描。只需安装并邀请 CodeSentry App,即可放心合并代码。 ## 亮点 - **多分类法发现** —— 每个问题都包含内部类型定义以及 CWE、OWASP、ATT&CK 和 CAPEC 映射,确保合规报告的一致性。 - **聚合而非噪音** —— Tier 1 regex 命中、依赖检测器和 Semgrep 运行结果现在会去重/聚合成单一的面向审查者的发现,并附带更有力的证据片段。 - **联邦式 BYOK 路线图** —— 我们对用户的 LLM 密钥进行加密和作用域限制,您可以选择启用解释/修复建议功能,而无需暴露密钥。 - **引导式入门** —— 空状态和首次运行检查清单会解释如何连接 GitHub、触发首次分析以及查看审查摘要。 ## 检测引擎 双层分析流水线: **Tier 1 — 静态模式匹配** (< 100ms, 35 条规则) 基于 Regex 的检测,覆盖 CWE Top 25 和 OWASP Top 10。 **Tier 2 — 通过 Semgrep 进行 AST 分析** (2-5s, 25 条规则) 针对 Python 和 JavaScript 的语言感知分析,包含污点跟踪和数据流分析。 ### 覆盖范围 (35 个 CWE) | 类别 | CWEs | |----------|------| | 注入 | SQL (89), Command (78), Code (95), NoSQL (943), LDAP (90), Template (1336) | | XSS | DOM-based, innerHTML, dangerouslySetInnerHTML (79) | | 访问控制失效 | Missing auth (862, 306), Path traversal (22), CORS (942), CSRF (352), Open redirect (601) | | 加密失败 | Weak hash (327), Weak password hash (916), Weak random (330), Hardcoded IV (329) | | 敏感信息 | Hardcoded credentials (798) | | 反序列化 | pickle, yaml.load, marshal, ObjectInputStream (502) | | SSRF | Untrusted URL fetch (918) | | 安全配置错误 | Debug mode (489), TLS disabled (295), Verbose errors (209), Unsafe upload (434) | | 内存安全 | Buffer overflow (120), Format string (134) | | 其他 | XXE (611), Integer overflow (190), Race conditions (362, 367), Sensitive logs (532), Rate limiting (770) | 此外包含 11 种针对已知漏洞包版本的依赖风险模式。 ## 架构 ``` GitHub PR webhook | v API Service (Node.js) ── orchestrates analysis, persists findings | +── Analysis Service (Python/FastAPI) ── Tier 1 regex + Tier 2 Semgrep | +── GitHub Service (Node.js) ── posts PR reviews, check runs | v PostgreSQL ── findings, analysis runs, repositories, users ``` **服务:** - **Frontend** — React + Vite 仪表盘。OAuth 登录,仓库管理,分析报告。 - **API Service** — Webhook 接入,分析编排,REST APIs。 - **GitHub Service** — GitHub App 认证,PR 文件获取,审查发布。 - **Analysis Service** — 安全规则引擎 (regex + Semgrep)。 **基础设施:** - PostgreSQL (唯一数据存储) - Redis (临时缓存) - Google Cloud Run (服务) - Firebase Hosting (前端) ## 快速开始 ``` # 1. 复制并填写 env cp .env.example .env # 填写:GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, GITHUB_APP_ID, # GITHUB_APP_PRIVATE_KEY, JWT_SECRET, GITHUB_WEBHOOK_SECRET, # GITHUB_SERVICE_INTERNAL_SECRET # 2. 验证 ./scripts/validate-env.sh # 3. 启动 docker-compose up --build ``` - Frontend: http://localhost:5173 - API: http://localhost:3000 - Analysis: http://localhost:8001 单一根目录 `.env` 通过 `docker-compose env_file:` 供给所有服务。无需按服务配置环境文件。 ## 测试 ``` # 安全规则测试 (94 项测试) cd services/analysis-service/src && python -m pytest tests/ -v # API 测试 cd services/api-service && npm test # Env 验证 ./scripts/validate-env.sh ``` ## 部署 服务通过 GitHub Actions 在推送到 `main` 分支时独立部署到 Google Cloud Run。密钥通过 GCP Secret Manager 管理。详见 `docs/DEPLOYMENT.md`。 ## 文档 - [环境设置](ENV_SETUP.md) - [架构](docs/ARCHITECTURE.md) - [GitHub App 设置](docs/GITHUB_APP_SETUP.md) - [部署](docs/DEPLOYMENT.md)
标签:AI代码审计, CISA项目, CWE映射, DevSecOps, DLL 劫持, DNS 反向解析, GitHub安全插件, JavaScript安全, MITM代理, OWASP Top 10, Pull Request自动检查, SAST, Semgrep, WordPress安全扫描, 上游代理, 代码审查, 合规性报告, 大语言模型, 提示注入防御, 搜索引擎查询, 注入漏洞检测, 测试用例, 源代码安全, 盲注攻击, 网络安全, 自定义脚本, 请求拦截, 软件供应链安全, 远程方法调用, 逆向工具, 错误基检测, 隐私保护, 静态代码分析