cognis-digital/pincheck

GitHub: cognis-digital/pincheck

通过对移动应用构建产物重放 MITM 握手来验证 TLS 证书锁定与网络安全配置是否真正生效的 CI 门控工具。

Stars: 0 | Forks: 0

PINCHECK # PINCHECK ### 通过针对构建出的工件重放 MITM 握手,验证移动应用的 TLS pinning、证书透明度和 network-security-config 是否确实生效。 [![PyPI](https://img.shields.io/pypi/v/cognis-pincheck.svg?color=6b46c1)](https://pypi.org/project/cognis-pincheck/) [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8eee5afd52182610.svg)](https://github.com/cognis-digital/pincheck/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-pincheck pincheck scan . # → prioritized findings in seconds ``` ## 使用说明 — 分步指南 `pincheck` 用于验证 Android 的 network-security-config / TLS-pinning 声明,并作为一个 CI 门控来证明已配置了证书 pinning。控制台命令:`pincheck`。 1. **安装**: pipx install pincheck # 或者:pip install pincheck 2. **检查 network-security-config XML 文件**并打印结果报告: pincheck check network_security_config.xml 退出码 `0` = pinning 正常,`1` = 有发现导致门控失败,`2` = 用法/I/O 错误。 3. **以 JSON 格式读取结果**,以便通过管道传递给 CI 工具: pincheck check config.xml --format json | jq '.failed' 4. **覆盖导致门控失败的严重级别**(默认阈值为 `medium`): pincheck check config.xml --fail-on high 5. **将其接入 CI**,使得缺失/脆弱的 pinning 阻断构建(也可作为模块运行): python -m pincheck check config.xml --fail-on medium || echo "TLS pinning 配置错误 — 阻断中" ## 目录 - [为什么选择 pincheck?](#why) · [功能](#features) · [快速开始](#quick-start) · [示例](#example) · [架构](#architecture) · [AI 技术栈](#ai-stack) · [对比](#how-it-compares) · [集成](#integrations) · [随处安装](#install-anywhere) · [相关项目](#related) · [贡献](#contributing) ## 为什么选择 pincheck? 团队配置了 pinning 却发布了悄然失效的应用;pincheck 是一个确定性的通过/失败 CI 门控,用于证明 pinning 能够抵御恶意证书 — 填补了其他工具无法自动化的空白。 `pincheck` 专注于单一用途、可脚本化且支持自托管:将其指向目标,即可获得符合您现有工作流格式(表格 · JSON · SARIF)的优先级排序结果,以此作为 CI 的门控,并允许代理通过 MCP 驱动它。
↑ 返回顶部
## 功能 - ✅ 分析文本 - ✅ 分析文件 - ✅ 可在 Linux/macOS/Windows · Docker · devcontainer 上运行 - ✅ 提供 Python、JavaScript、Go 和 Rust 的移植版本 (`ports/`)
↑ 返回顶部
## 快速开始 ``` pip install cognis-pincheck pincheck --version pincheck scan . # scan current project pincheck scan . --format json # machine-readable pincheck scan . --fail-on high # CI gate (non-zero exit) ```
↑ 返回顶部
## 示例 ``` $ pincheck scan . [HIGH ] PIN-001 example finding (./src/app.py) [MEDIUM ] PIN-002 another signal (./config.yaml) 2 findings · risk score 5 · 38ms ```
↑ 返回顶部
## 架构 ``` flowchart LR IN[target / export] --> P[pincheck
collect + correlate] P --> OUT[ranked findings] ```
↑ 返回顶部
## 从任何 AI 技术栈中使用 `pincheck` 可以与所有流行的 AI 使用方式互操作: - **MCP 服务器** — `pincheck mcp` (Claude Desktop, Cursor, Cognis.Studio, [uncensored-fleet](https://github.com/cognis-digital/uncensored-fleet)) - **兼容 OpenAI / JSON** — 将 `pincheck scan . --format json` 通过管道传递给任何代理或 LLM - **LangChain · CrewAI · AutoGen · LlamaIndex** — 用一行代码将 CLI/JSON 封装为工具 - **CI / 脚本** — 为非 AI pipeline 提供 exit code 和 SARIF
↑ 返回顶部
## 对比 | | **Cognis pincheck** | mitmproxy + Android Network Security Config 验证器 | |---|:---:|:---:| | 支持自托管,无需账号 | ✅ | 视情况而定 | | 单一命令,零配置 | ✅ | ⚠️ | | 为 CI 提供 JSON + SARIF | ✅ | 视情况而定 | | MCP 原生支持 (AI 代理) | ✅ | ❌ | | 多语言移植版本 (JS/Go/Rust) | ✅ | ❌ | | 开源许可 | ✅ COCL | 视情况而定 | *秉承 **mitmproxy + Android Network Security Config 验证器** 的精神,以 Cognis 的方式重新构建。漏掉了谁的署名?欢迎提交 PR。*
↑ 返回顶部
## 集成 可接入您的技术栈:用于代码扫描的 **SARIF**,用于任何场景的 **JSON**,用于 AI 代理的 **MCP 服务器**(`pincheck mcp`),以及用于 SIEM/Slack/Jira 的 webhook 转发器。详见 [`docs/INTEGRATIONS.md`](docs/INTEGRATIONS.md)。
↑ 返回顶部
## 安装 — 全方式,全平台 ``` pip install "git+https://github.com/cognis-digital/pincheck.git" # pip (works today) pipx install "git+https://github.com/cognis-digital/pincheck.git" # isolated CLI uv tool install "git+https://github.com/cognis-digital/pincheck.git" # uv pip install cognis-pincheck # PyPI (when published) docker run --rm ghcr.io/cognis-digital/pincheck:latest --help # Docker brew install cognis-digital/tap/pincheck # Homebrew tap curl -fsSL https://raw.githubusercontent.com/cognis-digital/pincheck/main/install.sh | sh ``` | Linux | macOS | Windows | Docker | 云平台 | |---|---|---|---|---| | `scripts/setup-linux.sh` | `scripts/setup-macos.sh` | `scripts/setup-windows.ps1` | `docker run ghcr.io/cognis-digital/pincheck` | [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 包的静态扫描器,可标记 ATS 异常、缺少的 entitlements 加固、内嵌的 URL/密钥以及脆弱的 Info.plist 传输配置。 - [`hookcraft`](https://github.com/cognis-digital/hookcraft) — 根据 YAML 意图(例如“绕过 SSL pinning”、“转储加密密钥”)生成可直接运行的 Frida 插桩脚本,并验证它们是否附加到了目标进程。 - [`dastlite`](https://github.com/cognis-digital/dastlite) — 一个无头、配置即代码的 DAST 运行器,可抓取经过身份验证的 Web/移动 API 覆盖面,并触发精心挑选的主动扫描规则集,输出去重后的 SARIF。 - [`semsift`](https://github.com/cognis-digital/semsift) — 轻量级的语义感知 SAST,仅对 diff 运行精心挑选的污点分析规则,让 PR 获得快速的增量 SAST,而不是全仓库扫描的疲劳。 - [`cheatsense`](https://github.com/cognis-digital/cheatsense) — 反作弊遥测分析器,可摄取游戏会话日志,并使用可解释的单项评分标记在统计上异常的输入/瞄准/移动特征。 **探索套件 →** [🗂️ 全部 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 · Cognis Neural Suite 中 170+ 工具之一 · Making Tomorrow Better Today
标签:Android安全, SAST/DAST, TLS证书绑定, 中间人攻击检测, 可视化界面, 持续集成(CI), 数据可视化, 日志审计, 目录枚举, 移动安全, 网络安全, 请求拦截, 逆向工具, 隐私保护