opentaint
AI时代开源污点分析引擎,过程间形式化数据流追踪,替代Semgrep Pro和CodeQL的开源方案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI时代开源污点分析引擎,过程间形式化数据流追踪,替代Semgrep Pro和CodeQL的开源方案
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,一家金融科技公司的安全团队遇到了一个经典困境:他们的代码库在 AI 辅助下每天新增数千行,但传统 SAST 工具每次扫描都报出几百条低危告警,真正的高危漏洞却藏在函数边界和异步调用深处,AST 模式匹配器根本触达不到。
安全工程师花了一周时间人工 review,才在 Spring Boot 的一个事务处理函数中发现了那条从 HTTP 请求参数一路流向 SQL 拼接的污点路径——这是一个典型的 SQL 注入。而同样的问题,如果交给 CodeQL 或 Semgrep Pro,需要专业规则编写能力不说,每次全量扫描还要消耗大量计算资源。
OpenTaint 正是为解决这个矛盾而生:它将 LLM 安全 agent 的分析深度,以静态分析引擎的速度和成本,带入每一个代码仓库的每一次提交。
AI 大规模进入研发流程后,代码生产速度远超人工 review 能力,传统安全工具被迫做出一个糟糕的取舍:
OpenTaint 的核心逻辑是:用 LLM 定义一次规则,然后用确定性引擎反复执行。安全研究员或 AI Agent 只需要用自然语言描述一个污点传播路径,引擎就能在几分钟内把这个规则 replay 到整个代码库——以及之后的每一次提交。
污点分析(Taint Analysis)是软件安全领域的一种经典数据流分析技术。与 AST 匹配器不同,它追踪的是数据从 source(污点源,如用户输入)到 sink(危险函数,如 SQL 执行)的传播路径。
OpenTaint 实现了过程间(inter-procedural)形式化污点分析:
这与 Semgrep Pro 和 CodeQL 的高级分析引擎处于同一技术层级,但以 Apache 2.0 开源的方式发布。

OpenTaint 采用清晰的二层架构:
核心引擎(core/)— Kotlin 实现
位于 core/ 目录,基于 Gradle 构建,包含多个子模块:
opentaint-dataflow-core:数据流分析核心算法opentaint-jvm-sast-dataflow:JVM 语言(Scala、Kotlin、Java)的 SAST 污点分析实现opentaint-jvm-sast-project:项目级分析,支持 Spring Boot 等复杂依赖关系opentaint-jvm-autobuilder:自动构建分析配置,降低用户上手门槛opentaint-go-querylang / opentaint-java-querylang:专用查询语言解析器,支持编写自定义污点规则CLI 工具(cli/)— Go 实现
位于 cli/ 目录,通过 Go 模块编译为跨平台单一可执行文件(seqra)。CLI 负责:
seqra pull)opentaint scan)AI Agent 技能层(skills/)
项目内置了一套 AI Agent Skills,支持将静态分析扩展为完整的应用安全评估工作流:
run-scan:执行扫描analyze-findings:对结果进行分类和优先级排序create-rule:根据发现的问题创建新的污点规则generate-poc:生成动态验证的 PoC 代码
已支持语言与框架:
支持规则集:项目在 rules/ 目录维护了一套内置安全规则,覆盖主流 CVE 和 OWASP Top 10 场景。
技术 Logo 墙展示了清晰的语言扩展路线图:Python、Go、C#、JavaScript、TypeScript 已在规划中(见项目 README 的 Roadmap 章节)。

OpenTaint 提供四种安装方式,覆盖所有主流场景:
| 安装方式 | 适用平台 | 说明 |
|---|---|---|
| 一键安装脚本 | Linux/macOS/Windows | curl -fsSL https://opentaint.org/install.sh | bash |
| Homebrew | macOS/Linux | brew install --cask seqra/tap/opentaint |
| npm/npx | 全部 | npm install -g @seqra/opentaint 或直接 npx @seqra/opentaint scan |
| Docker | 全部 | docker run --rm -v $(pwd):/project ghcr.io/seqra/opentaint:latest opentaint scan /project |
Docker 方式支持将本地代码目录挂载进容器执行扫描,并将结果以 SARIF 格式输出,是最便捷的零依赖使用方式。Dockerfile 采用多阶段构建(golang:1.25-alpine → seqra-dependencies:latest),镜像约数百 MB。
对于 AI Agent 使用场景,项目提供了 Skills 安装命令:
npx skills add https://github.com/seqra/opentaint
安装后可以调用 appsec-agent skill 编排完整的项目安全评估流程。

门槛评估:
skills/create-rule 提供了引导式工作流,降低了规则编写的门槛。输出格式:扫描结果支持 SARIF(业界标准 SAST 输出格式),可直接导入 GitHub Security Lab、GitLab Security Dashboard、Semgrep 等平台,打通现有安全工具链。
与 Semgrep/CodeQL 的差异化:
OpenTaint 代表了一个重要趋势:将 AI Agent 的智能与传统静态分析的确定性结合。过去,这种组合要么依赖昂贵的商业工具,要么需要大量人工规则编写工作。
项目由 Seqra 组织开发和维护,背后是一个专注 AI + Security 的小型团队。2026 年 7 月 30 日刚刚发布了 rules/v0.3.0 版本,新增了 Go 语言规则支持,迭代节奏积极。
从许可上看,核心引擎 Apache 2.0 + CLI/GitHub Action/GitLab CI/MIT 的双许可模式,兼顾了开源社区贡献和商业二次开发的灵活性。
一句话总结:OpenTaint 将 CodeQL/Semgrep Pro 层级的过程间污点分析带入开源世界,用 AI Agent 定义规则、确定性引擎执行规则的方式,解决了"AI 时代代码安全分析"的成本与深度矛盾,是每一个关注应用安全的中型开发团队值得关注的安全工具。