
cynative v1.7.0
只读 AI 代理,可查询你的云、代码和运行时基础设施,以发现错误配置、泄露的机密和权限提升路径,并提供经过验证、有证据支持的结果。

构建你自己的安全代理
面向安全代理的开源框架,可对你的基础设施进行实时、只读访问。
向你的基础设施提出任何问题。 Cynative 在你的代码、云和运行时中运行前沿模型——将 GitHub、GitLab、AWS、GCP、Azure 和 Kubernetes 作为一个系统进行推理——并返回经过验证的答案。```bash cynative "what in my cloud is publicly exposed that shouldn't be?"
**45 个内置 agent**,覆盖 AWS、GCP、Azure、GitHub 和 Kubernetes——权限提升、公开暴露、供应链、检测覆盖等——或者你可以在一个 markdown 文件中编写自己的 agent。
一个问题即可扇出至你的整个技术栈:Cynative 在临时沙箱中编写并运行代码,并行查询你的 API。每个发现都会经过交叉验证,并追溯至其来源。
与编码 agent 和 MCP server 不同,它**在构造上即为只读**:每次调用在附加凭证*之前*都会被门控和授权——放心地将其指向生产环境。
<!-- END agent-about -->
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/9087/1b3db179a03479f5951d624c8adbb4890465aa86d038d3312dc9aec9801bcfb9.gif"
alt="cynative auditing a CI to cloud privilege escalation"
width="900">
</p>
## 你的 agent 能获得什么
- **从代码到运行时**:推理 AWS、GCP、Azure、任意 K8s、GitHub 和 GitLab
- **沙箱**:生成并运行代码以进行大规模研究,自身无网络或主机访问权限
- **操作门控**:将每次调用解析为其所需的 IAM 操作,并在附加凭证之前应用只读策略
- **证据支撑**:通过交叉验证来核实每个发现
- **主权独立**:单一二进制文件,你的模型,你的数据始终归你所有
## 快速开始
安装并设置 LLM:
<!-- BEGIN quickstart-example -->```bash
brew install cynative/tap/cynative
export CYNATIVE_LLM_PROVIDER=anthropic
export CYNATIVE_LLM_MODEL=claude-opus-5
export ANTHROPIC_API_KEY=...
它会自动读取你 shell 中已有的凭据。运行一个内置 agent:```bash cynative -p --agent aws-network-exposure
或者向它询问任何问题:```bash
cynative -p "which IAM roles can escalate to admin?"
cynative -p "high-risk cloud permissions, trace each to the PR where it was granted"
cynative -p "cloud credentials leaked in source code and their current blast radius"
cynative "live cloud resources absent from IaC - drift" # starts an interactive session
cat findings.json | cynative -p "triage these findings by exploitability"
内置代理
二进制文件中嵌入了 45 个代理。每个代理都是针对特定问题经过审查的提示词。
| 代理 | 例如 | |
|---|---|---|
| AWS | 20 | aws-privilege-escalation、aws-public-storage、aws-unpatched-workloads、aws-supply-chain |
| Azure | 11 | azure-keyvault-exposure、azure-storage-exposure、azure-privilege-escalation |
| GCP | 5 | gcp-public-bindings、gcp-static-credentials、gcp-inference-exposure |
| GitHub | 4 | github-workflow-trust、github-unpatched-dependencies、github-branch-protection |
| Kubernetes | 5 | k8s-pod-privilege、k8s-self-managed-apiserver-access |
| cynative agents list # every agent, with its description | ||
| cynative agents show # the exact prompt that would run |
完整目录及每个 agent 的一行描述见
[docs/agents-catalog.md](https://github.com/cynative/cynative/blob/main/docs/agents-catalog.md)。
## 你的第一个 agent
`cynative agents show <name>` 会打印出 agent 将要运行的确切文件。要创建你自己的版本,请将其复制到你的 agents 目录下并重命名,然后进行编辑:```bash
mkdir -p ~/.cynative/agents
cynative agents show aws-public-datastores > ~/.cynative/agents/my-aws-public-datastores.md
# edit ~/.cynative/agents/my-aws-public-datastores.md, then:
cynative -p --agent my-aws-public-datastores
一个 agent 就是一个 markdown 文件:严格的 YAML frontmatter,其唯一的键是
description,然后是提示词正文。文件名即为名称。位于
~/.cynative/agents/ 中的文件会优先于同名的内置 agent,因此请为你的副本起一个
不同的名称以保留两者。格式参见 docs/agents.md。
运行 agent```bash
cynative -p --agent aws-public-datastores "AWS account 128149835728 only" # with a task cynative -p --agent aws-public-datastores # without cynative --agent aws-public-datastores # seeds an interactive session
`--agent` 可与 `-p`、`--auto-approve`、`--config` 以及管道传入的 stdin 组合使用,因此同一个文件在开发阶段可以交互式运行,稳定后则可非交互式运行。
Agent 从 `~/.cynative/agents/` 以及二进制内置的集合中读取;同名时用户文件优先于内置文件。`cynative agents list` 会显示每个 agent 及其来源,并标记被遮蔽的副本,而 `cynative agents show <name>` 会打印出实际将运行的那个文件。
## 带 MCP 的编码 agent 做不到这个吗?
| | 编码 agent + MCP | Cynative |
|---|---|---|
| 吞吐量 | 每次调用执行一个操作 | 编写沙箱化代码,并发展开调用——更少 token,更快得到答案 |
| 发现结果 | 未经验证的输出 | 验证器对照实时证据交叉核验每一项发现 |
| 只读 | 需主动启用的读取过滤器 | 默认开启,失败即关闭——所需的 IAM 操作会对照安全审计策略进行检查。`secretsmanager:GetSecretValue` 属于 IAM *Read*:过滤器会放行,而 `SecurityAudit` 会阻止 |
| 凭证 | 环境自带,保持不变 | STS 会话限定为只读——AWS 也会强制执行该边界 |
| 影响范围 | 你的 shell,任意网络 | 研究代码在沙箱中运行,无主机访问权限,网络固定为你映射的服务 |
| 机密 | 原样发送给模型 | 在发送给模型之前从工具输出中脱敏 |
| 供应链 | 第三方 MCP 和技能以你的凭证运行 | 单一开源二进制,连接器内置 |
| 审计追踪 | 分散的会话日志,尽力而为 | 对每次工具调用进行失败即关闭的 JSONL 日志记录——若无法记录,则中止 |
一个二进制,你的模型端点,你的账户。在它所审计的云中的实例上运行它,通过该云的托管推理,任何数据都不会离开你的环境:安全在你的基础设施之上,从你的基础设施内部实现。
## 安装
**Homebrew**(macOS / Linux——推荐):```bash
brew install cynative/tap/cynative
安装脚本(macOS / Linux - 根据发布版 checksums.txt 验证下载文件的 SHA-256,验证失败则中止):```bash
curl -fsSL https://raw.githubusercontent.com/cynative/cynative/main/install.sh | sh
**Windows**(Scoop):```powershell
scoop bucket add cynative https://github.com/cynative/scoop-bucket
scoop install cynative
更新、卸载、Windows 详情、版本固定与手动下载
更新 / 卸载
| 方式 | 更新 | 卸载 |
|---|---|---|
| Homebrew | brew upgrade cynative | brew uninstall cynative |
| 安装脚本 | 重新运行一行命令 | curl -fsSL https://raw.githubusercontent.com/cynative/cynative/main/install.sh | sh -s -- --uninstall |
| Scoop | scoop update cynative | scoop uninstall cynative |
Windows(PowerShell 脚本): irm https://raw.githubusercontent.com/cynative/cynative/main/install.ps1 | iex;使用 & ([scriptblock]::Create((irm https://raw.githubusercontent.com/cynative/cynative/main/install.ps1))) -Uninstall 卸载。
安装脚本选项: 使用 CYNATIVE_VERSION=v1.0.0 固定版本;使用 CYNATIVE_INSTALL_DIR 更改目标目录(默认为 ~/.local/bin,无需 sudo)。当安装了 gh 时,脚本会检查 GitHub 发布证明(默认仅为提示);设置 CYNATIVE_REQUIRE_ATTESTATION=1 可使检查失败变为致命错误。如需高完整性安装,请从不可变标签而非 main 获取脚本。
macOS(手动): 从发布页面下载 cynative_Darwin_arm64.pkg(Apple Silicon)或 cynative_Darwin_x86_64.pkg(Intel),并使用 sudo installer -pkg <file> -target / 安装(或双击)。这些包已签名、公证并已装订——首次运行不会出现 Gatekeeper 提示。原始的 cynative_Darwin_*.tar.gz 归档仍保留用于脚本/CI;被隔离的 tarball 二进制文件首次启动 GUI 时需要联网进行在线公证检查(终端/install.sh/Homebrew 使用不受影响)。
Linux / Windows(手动): 从发布页面下载预编译二进制文件和 checksums.txt,验证 SHA-256,并将二进制文件放入你的 PATH。单一静态二进制文件,无依赖。
验证发布签名(可选)。 新版本附带 checksums.txt.sigstore.json,这是一个 Sigstore 捆绑包,使用绑定到此仓库发布工作流的无密钥证书对 checksums.txt 进行签名。验证清单,然后对照它检查你的归档文件:```bash
cosign verify-blob checksums.txt
--bundle checksums.txt.sigstore.json
--certificate-identity "https://github.com/cynative/cynative/.github/workflows/release.yaml@refs/heads/main"
--certificate-oidc-issuer "https://token.actions.githubusercontent.com"