cognis-digital/semsift

GitHub: cognis-digital/semsift

一款轻量级语义感知的差异化 SAST 工具,仅扫描 PR 中的代码增量并运行污点规则以实现快速安全检查。

Stars: 0 | Forks: 0

SEMSIFT # SEMSIFT ### 轻量级语义感知 SAST,仅针对 diff 运行精选的污点规则,让 PR 获得快速的增量 SAST,告别全仓库扫描的疲劳。 [![PyPI](https://img.shields.io/pypi/v/cognis-semsift.svg?color=6b46c1)](https://pypi.org/project/cognis-semsift/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/44b483dfc8182536.svg)](https://github.com/cognis-digital/semsift/actions) [![License: COCL 1.0](https://img.shields.io/badge/License-COCL%201.0-2b6cb0.svg)](LICENSE) [![Suite](https://img.shields.io/badge/Cognis-Neural%20Suite-6b46c1.svg)](https://github.com/cognis-digital) *应用与移动安全 — SAST/DAST-lite 及二进制分诊。*
``` pip install cognis-semsift semsift scan . # → prioritized findings in seconds ``` ## 目录 - [为什么选择 semsift?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI stack](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关项目](#related) · [贡献](#contributing) ## 用法 — 分步指南 `semsift` 是差异化 SAST:它**仅扫描** unified diff 中**新增的代码行**。退出代码:`0` 表示未发现 `--fail-on`(默认为 `low`)级别或以上的漏洞,`1` 表示发现了达到或超过阈值的漏洞(CI 门禁),`2` 表示用法/运行时错误。 1. **安装** pip install semsift 2. **扫描已保存的 diff 文件:** semsift scan change.diff 3. **扫描当前更改**,方法是通过管道传递 `git diff`,或者让 semsift 针对基础引用为你运行 git: git diff | semsift scan - semsift scan --git origin/main 4. **读取 JSON 输出**并设置门禁严重级别: semsift scan change.diff --format json --fail-on medium | jq '.findings' 5. **在 CI 中使用** — 针对 merge base 进行 diff,并在发现高危漏洞时让构建失败: semsift scan --git origin/main --fail-on high || exit 1 ## 为什么选择 semsift? Semgrep 全量扫描在大型仓库中既嘈杂又缓慢;semsift 仅扫描更改的代码路径及其可到达的 sink,从而消除了告警疲劳 —— 这是团队放弃 SAST 的第一大原因。 `semsift` 是单一用途、可脚本化且可自托管的:将其指向目标,以你的工作流已经使用的格式(table · JSON · SARIF)获取优先级排序的结果,在其上设置 CI 门禁,并让 agent 通过 MCP 驱动它。
↑ 回到顶部
## 功能 - ✅ 解析 Unified Diff - ✅ 扫描新增代码行 - ✅ 扫描 Diff 文本 - ✅ 将漏洞发现转换为字典 - ✅ 可在 Linux/macOS/Windows · Docker · devcontainer 上运行 - ✅ 提供 Python、JavaScript、Go 和 Rust 的移植版 (`ports/`)
↑ 回到顶部
## 快速开始 ``` pip install cognis-semsift semsift --version semsift scan . # scan current project semsift scan . --format json # machine-readable semsift scan . --fail-on high # CI gate (non-zero exit) ```
↑ 回到顶部
## 示例 ``` $ semsift scan . [HIGH ] SEM-001 example finding (./src/app.py) [MEDIUM ] SEM-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 回到顶部
## 架构 ``` flowchart LR IN[target / manifest] --> P[semsift
checks + rules] P --> OUT[findings (JSON / SARIF)] ```
↑ 回到顶部
## 从任何 AI stack 中使用它 `semsift` 可以与所有流行的 AI 使用方式互操作: - **MCP server** — `semsift mcp` (Claude Desktop, Cursor, Cognis.Studio, [uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **OpenAI 兼容 / JSON** — 通过管道将 `semsift scan . --format json` 传递给任何 agent 或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** — 一行代码将 CLI/JSON 包装为工具 - **CI / 脚本** — 提供 exit code + SARIF 用于非 AI pipeline
↑ 回到顶部
## 对比 | | **Cognis semsift** | Semgrep,具有 git-diff 工具的差异化扫描便利性 | |---|:---:|:---:| | 可自托管,无需账户 | ✅ | 视情况而定 | | 单个命令,零配置 | ✅ | ⚠️ | | 用于 CI 的 JSON + SARIF | ✅ | 视情况而定 | | MCP 原生 (AI agents) | ✅ | ❌ | | 多语言移植 (JS/Go/Rust) | ✅ | ❌ | | 开源许可证 | ✅ COCL | 视情况而定 | *秉承 **Semgrep 的精神,结合 git-diff 工具的差异化扫描便利性**,以 Cognis 的方式重新构建。遗漏了致谢?请提交 PR。*
↑ 回到顶部
## 集成 可整合至你的技术栈:用于代码扫描的 **SARIF**,用于任何场景的 **JSON**,用于 AI agent 的 **MCP server** (`semsift mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。请参阅 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 回到顶部
## 安装 — 所有方式,所有平台 ``` pip install "git+https://github.com/cognis-digital/semsift.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/semsift.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/semsift.git" # uv pip install cognis-semsift # PyPI (when published) docker run --rm ghcr.io/cognis-digital/semsift:latest --help # Docker brew install cognis-digital/tap/semsift # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/semsift/main/install.sh | sh ``` | Linux | macOS | Windows | Docker | Cloud | |---|---|---|---|---| | `scripts/setup-linux.sh` | `scripts/setup-macos.sh` | `scripts/setup-windows.ps1` | `docker run ghcr.io/cognis-digital/semsift` | [DEPLOY.md](docs/DEPLOY.md) (AWS/Azure/GCP/k8s) |
↑ 回到顶部
## 相关的 Cognis 工具 - [`apkpeek`](https://github.com/cognis-digital/apkpeek) — 一键静态分诊 Android APK/AAB 二进制文件:将硬编码的密钥、导出的组件、危险的权限以及不安全的 manifest 标志作为单个 SARIF 报告呈现。 - [`ipasnitch`](https://github.com/cognis-digital/ipasnitch) — 针对 iOS .ipa bundle 的静态扫描器,可标记 ATS 例外、缺失的 entitlements 加固、内嵌的 URL/密钥以及薄弱的 Info.plist 传输设置。 - [`hookcraft`](https://github.com/cognis-digital/hookcraft) — 根据 YAML 意图(例如“绕过 SSL pinning”、“导出 crypto keys”)生成可直接运行的 Frida 插桩脚本,并验证它们是否附加到目标进程。 - [`dastlite`](https://github.com/cognis-digital/dastlite) — 无头、config-as-code 的 DAST 运行器,可抓取经过身份验证的 Web/移动 API 攻击面,并触发精选的主动扫描规则集,输出经过去重的 SARIF。 - [`cheatsense`](https://github.com/cognis-digital/cheatsense) — 反作弊遥测分析器,可摄取游戏会话日志,并通过可解释的单项评分,标记出统计上异常的输入/瞄准/移动特征。 - [`binhunt`](https://github.com/cognis-digital/binhunt) — 游戏/桌面二进制完整性扫描器,可对可执行文件进行指纹识别,检测常见的 packer/混淆器,并与已知良好的基线进行 diff 对比以捕获篡改行为。 **探索套件 →** [🗂️ 所有 170+ 工具](https://github.com/cognis-digital/cognis-neural-suite) · [⭐ awesome-cognis](https://github.com/cognis-digital/awesome-cognis) · [🔗 cognis-sources](https://github.com/cognis-digital/cognis-sources) · [🤖 uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet) · [🧠 engram](https://github.com/cognis-digital/engram)
↑ 回到顶部
## 互操作性 `{}` 与 300+ 工具的 Cognis 套件组合使用 — JSON 输入/输出以及共享的 兼容 OpenAI 的 `/v1` 骨干网。请参阅 **[INTEROP.md](INTEROP.md)** 获取 套件映射、组合模式和参考技术栈。 ## 许可证 在 **Cognis Open Collaboration License (COCL) v1.0** 下提供源代码 — 可免费用于个人、内部评估、研究和教育用途;**商业/生产用途需要许可证** (licensing@cognis.digital)。请参阅 [LICENSE](LICENSE)。
Cognis Digital · 170+ 个工具的 Cognis Neural Suite 之一 · 让明天在今天更美好
标签:DevSecOps, 上游代理, 开源框架, 持续集成, 请求拦截, 逆向工具, 静态应用安全测试