msaad00/cloud-ai-security-skills
GitHub: msaad00/cloud-ai-security-skills
提供一套遵循OCSF标准且适配AI Agent的云与AI安全技能库,通过模块化流程实现日志摄入、威胁检测、合规评估及修复的闭环。
Stars: 3 | Forks: 0
# 云 AI Security 技能
[](https://github.com/msaad00/cloud-ai-security-skills/actions/workflows/ci.yml?query=branch%3Amain)
[](CHANGELOG.md)
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://schema.ocsf.io/1.8.0)
[](https://github.com/msaad00/agent-bom)
**Cloud 和 AI 系统的安全技能,提供 OCSF 作为可选方案而非锁定。** 像使用 Unix 管道一样组合 `ingest → discover → detect → evaluate → view → remediate`。可以从 CLI、CI、MCP 或持久化管道运行相同的技能代码。
**它是什么**
- 跨云和 AI 安全技能,不仅仅是 CSPM
- 默认只读、最小权限、零信任
- 确定性、可审计,并基于官方供应商文档
## 快速开始
**从这里开始**
- Agents: [AGENTS.md](AGENTS.md)
- Claude Code memory: [CLAUDE.md](CLAUDE.md)
- MCP usage: [docs/agent-integrations.md](docs/agent-integrations.md) 和 [`.mcp.json`](.mcp.json)
- 架构和可视化: [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 和 [docs/DIAGRAMS.md](docs/DIAGRAMS.md)
- 运行时隔离和信任边界: [docs/RUNTIME_ISOLATION.md](docs/RUNTIME_ISOLATION.md)
- SIEM 索引和去重: [docs/SIEM_INDEX_GUIDE.md](docs/SIEM_INDEX_GUIDE.md)
- Schema 模式和互操作性: [docs/NATIVE_VS_OCSF.md](docs/NATIVE_VS_OCSF.md)
- 历史状态和时间线处理: [docs/STATE_AND_TIMELINE_MODEL.md](docs/STATE_AND_TIMELINE_MODEL.md)
- 覆盖范围和路线图: [docs/COVERAGE_MODEL.md](docs/COVERAGE_MODEL.md)、[docs/framework-coverage.json](docs/framework-coverage.json) 和 [docs/ROADMAP.md](docs/ROADMAP.md)
| 工具 | 最佳集成路径 | 依赖内容 |
|---|---|---|
| **Claude Code** | `CLAUDE.md` + `AGENTS.md` + MCP | 项目 memory + agent 规则 + 工具 |
| **Codex** | `AGENTS.md` + MCP | repo 规则 + 工具调用 |
| **Cursor** | `AGENTS.md` 或 `.cursor/rules` + MCP | repo 规则 + 工具调用 |
| **Windsurf** | `AGENTS.md` + MCP | 目录作用域 agent 规则 + 工具 |
| **Cortex Code CLI** | `SKILL.md` / `.cortex/skills` + MCP | 原生技能 + 工具调用 |
该 repo 保持单一真实源:
- `AGENTS.md` 用于通用 agent 指令
- `CLAUDE.md` 用于 Claude 专用项目 memory
- `SKILL.md` 用于每个技能契约
- MCP 作为访问层,而非第二套实现
## 标志性工作流

**可视化**
- [IAM departures cross-cloud workflow](docs/images/iam-departures-architecture.svg)
- [Repo architecture](docs/images/repo-architecture.svg)
- [IAM departures flow](docs/images/iam-departures-data-flow.svg)
- [Detection pipeline](docs/images/detection-pipeline.svg)
```
python skills/ingestion/ingest-k8s-audit-ocsf/src/ingest.py audit.log \
| python skills/detection/detect-privilege-escalation-k8s/src/detect.py \
| python skills/view/convert-ocsf-to-sarif/src/convert.py \
> findings.sarif
```
## 分层
| 层级 | 角色 | 输出 |
|---|---|---|
| **Ingest** | 按源原始 payload → 规范化模型,可选用 OCSF 或 bridge 输出 | native JSON、canonical JSON 或 OCSF API / Network / HTTP / Application Activity |
| **Discover** | 时间点清单 / 图谱 / 证据 / AI BOM | 确定性 JSON 图谱、规范证据、OCSF inventory/evidence bridge 事件或与 CycloneDX 对齐的 BOM |
| **Detect** | 规范或 OCSF 遥测数据 → finding + MITRE ATT&CK | Detection Finding (class 2004) 或文档化的 native/canonical finding 输出 |
| **Evaluate** | 规范或 OCSF 遥测数据 → 框架检查 | Compliance Finding (class 2003) 或文档化的证据/检查输出 |
| **View** | 规范或 OCSF → SARIF / Mermaid / 图谱 | GitHub Security 标签页、PR 评论、仪表板 |
| **Remediate** | Finding → 动作 (HITL 闸控、已审计) | 双写审计行 |
每个技能都是一个遵循 [Anthropic 的 skill spec](https://platform.claude.com/docs/en/build-with-claude/skills-guide) 的独立 Python 包:`SKILL.md`、`src/`、`tests/`、`REFERENCES.md`、明确的 `Use when...` 以及明确的 `Do NOT use...`。
**Schema 模式说明**
- 该 repo 支持 `native`、`canonical`、`ocsf` 和 `bridge` 模式
- `ingest`、`detect`、`evaluate` 和 `view` 保持 OCSF 友好,但 OCSF 是可选的而非强制的
- `discovery` 在适用时偏好原生 OCSF inventory/evidence 类和 profile,否则使用确定性 native 或 bridge 构件
- `discover-environment` 支持 `ocsf-cloud-resources-inventory` bridge 模式
- discovery 证据技能支持用于 Discovery 类别 OCSF 工作流的 `ocsf-live-evidence` bridge 模式
- 稳定的 repo 契约现为:保留源真实源,规范化为内部 canonical 模型,然后根据情况输出 `native`、`ocsf` 或 `bridge` 输出
完整分层设计请参阅 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md),schema 模式选择请参阅 [`docs/NATIVE_VS_OCSF.md`](docs/NATIVE_VS_OCSF.md),历史状态处理请参阅 [`docs/STATE_AND_TIMELINE_MODEL.md`](docs/STATE_AND_TIMELINE_MODEL.md),可视化集合请参阅 [`docs/DIAGRAMS.md`](docs/DIAGRAMS.md)。
## 运行方式
| 模式 | 驱动 | 最适用场景 | 人工审批 |
|---|---|---|---|
| **CLI / just-in-time** | 操作员或 agent 直接运行技能 | triage、本地分析、一次性转换、golden-fixture 检查 | 仅限具备写能力的技能 |
| **CI** | GitHub Actions 或其他 pipeline | 回归测试、策略检查、合规快照、SARIF 生成 | 对只读技能绝不需 |
| **Persistent / serverless** | runner、队列、EventBridge、Step Functions、定时任务 | 持续检测、修复管道、数据湖摄入 | 对破坏性操作必需要 |
| **MCP** | 本地 `mcp-server/` 封装 | Claude、Codex、Cursor、Windsurf、Cortex Code CLI | 继承自被封装技能 |
重要规则是:**技能代码在不同模式下保持不变**。`SKILL.md + src/ + tests/` 始终是产品;runner、pipeline 或 MCP 封装只是访问路径。
## 安全模型
| 技能类型 | 默认姿态 | 必需控制 |
|---|---|---|
| **Ingest / detect / evaluate / view** | 只读 | 确定性输出、无隐藏写入、仅限官方参考 |
| **Discovery / inventory / enrich** | 只读,除非另有明确文档 | schema 验证、输出契约、无 secret 泄漏 |
| **Remediation** | 先 dry-run | 最小权限、影响范围文档、审计跟踪、HITL 闸门 |
| **Sinks / runners** | 带副作用的边缘组件 | 幂等性、按 UID 合并、传输安全、检查点 |
对于每个已交付的技能,契约包括:
- 精确的输入和输出格式
- 明确的 `Use when...` 和 `Do NOT use...`
- `REFERENCES.md` 中仅限官方供应商文档
- 面对畸形输入和废弃 API 形态时的故障安全行为
- 无通用 shell、SQL 或网络透传
## Agent 文档
| 文件 | 范围 | 用于 |
|---|---|---|
| [`README.md`](README.md) | 公共 repo 概览 | repo 是什么、定位何处、从何处开始 |
| [`AGENTS.md`](AGENTS.md) | 跨 agent repo 契约 | Codex、Cursor、Windsurf、Cortex、Claude、通用的 AGENTS.md 感知工具 |
| [`CLAUDE.md`](CLAUDE.md) | Claude Code 项目 memory | repo 范围的 Claude 默认值和工作规则 |
| `skills///SKILL.md` | 单个技能契约 | 何时使用技能、输入/输出、影响范围、非目标 |
| `skills///REFERENCES.md` | 真实源参考 | 官方文档、schema、API、基准 |
## 覆盖范围
## 安全与信任
这是一个安全工具。可信度是第一特性,而非事后补充。十一条原则固定在 [`SECURITY_BAR.md`](SECURITY_BAR.md) 中,每个技能都按每条原则进行评分。
## 相关文档
| 文档 | 目的 |
|---|---|
| [`ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 9 层设计、两种执行模式(无状态 + 持久化)、10 条护栏 |
| [`DIAGRAMS.md`](docs/DIAGRAMS.md) | 架构图、IAM departures 工作流/数据流以及检测管道可视化 |
| [`CI_WORKFLOW.md`](docs/CI_WORKFLOW.md) | CI 通道布局、去重规则及后续简化计划 |
| [`CHANGELOG.md`](CHANGELOG.md) | Repo 级别发布说明和实质性技能变更 |
| [`COVERAGE_MODEL.md`](docs/COVERAGE_MODEL.md) | 框架覆盖的含义及其衡量方式 |
| [`framework-coverage.json`](docs/framework-coverage.json) | 机器可读的框架、提供商和资产覆盖注册表 |
| [`FRAMEWORK_MAPPINGS.md`](docs/FRAMEWORK_MAPPINGS.md) | ATT&CK、ATLAS、CIS、NIST、OWASP、SOC 2、ISO 和 PCI 覆盖当前所在位置 |
| [`ROADMAP.md`](docs/ROADMAP.md) | 云、AI 和框架深度的覆盖及执行路线图 |
| [`RUNTIME_ISOLATION.md`](docs/RUNTIME_ISOLATION.md) | 按执行模式的沙箱、凭据、传输、完整性和审批指南 |
| [`SIEM_INDEX_GUIDE.md`](docs/SIEM_INDEX_GUIDE.md) | OCSF 消费者的索引字段、去重键、时间戳和传输指南 |
| [`mcp-server/README.md`](mcp-server/README.md) | 用于自动发现技能的轻量本地 MCP 封装 |
| [`DEPENDENCY_HYGIENE_SKILL.md`](docs/DEPENDENCY_HYGIENE_SKILL.md) | 提议的安全依赖更新技能契约 |
| [`SKILL_CONTRACT.md`](docs/SKILL_CONTRACT.md) | 已交付技能的最少文件、元数据和护栏 |
| [`OCSF_CONTRACT.md`](skills/detection-engineering/OCSF_CONTRACT.md) | OCSF 1.8 + MITRE ATT&CK v14 的线格式固定 |
| [`SECURITY_BAR.md`](SECURITY_BAR.md) | 按原则验证矩阵 — 每个技能都按每条原则评分 |
| [`SECURITY.md`](SECURITY.md) | 协调披露政策 |
| [`docs/agent-integrations.md`](docs/agent-integrations.md) | Claude、Codex CLI 和 AGENTS.md 感知工具今天应如何使用此 repo |
| [`CONTRIBUTING.md`](CONTRIBUTING.md) | 如何添加新技能 |
## 贡献
新技能以独立包形式落地。检查清单:
1. **选择一层** — ingest、discover、enrich、detect、evaluate、remediate 或 convert
2. **复制最近的兄弟技能** — 目标类别中的现有技能是规范的参考布局
3. **交付包** — 带有 `Do NOT use…` 条款的 `SKILL.md`、`src/.py`、`tests/test_.py`、当技能使用 OCSF 时存放于 `skills/detection-engineering/golden/` 下的 golden fixtures,以及列出该技能依赖的每个官方文档的 `REFERENCES.md`
4. **添加一行** 到 [`SECURITY_BAR.md`](SECURITY_BAR.md) 矩阵
5. **接入 CI** — 在 [`.github/workflows/ci.yml`](.github/workflows/ci.yml) 中将技能添加到正确的矩阵单元
6. **提交 PR** — [`ARCHITECTURE.md`](docs/ARCHITECTURE.md) 是审查契约;确保你的技能满足所有适用的护栏
完整指南请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md)。
## 许可证
[Apache 2.0](LICENSE) — 使用它、fork 它、交付它。欢迎安全研究;协调披露请参阅 [`SECURITY.md`](SECURITY.md)。
已交付的技能
``` skills/ ├── ingestion/ "Raw source → OCSF 1.8" │ ├── ingest-cloudtrail-ocsf AWS → API Activity 6003 │ ├── ingest-vpc-flow-logs-ocsf AWS → Network Activity 4001 │ ├── ingest-vpc-flow-logs-gcp-ocsf GCP → Network Activity 4001 │ ├── ingest-nsg-flow-logs-azure-ocsf Azure → Network Activity 4001 │ ├── ingest-guardduty-ocsf AWS → Detection Finding 2004 │ ├── ingest-security-hub-ocsf AWS → Findings 2004 passthrough │ ├── ingest-gcp-scc-ocsf GCP → Findings 2004 passthrough │ ├── ingest-azure-defender-for-cloud-ocsf Azure → Findings 2004 passthrough │ ├── ingest-gcp-audit-ocsf GCP → API Activity 6003 │ ├── ingest-azure-activity-ocsf Azure → API Activity 6003 │ ├── ingest-okta-system-log-ocsf Okta → IAM 3002 / 3001 / 3005 │ ├── ingest-google-workspace-login-ocsf Workspace → IAM 3002 / 3001 │ ├── ingest-k8s-audit-ocsf K8s → API Activity 6003 │ └── ingest-mcp-proxy-ocsf MCP → Application Activity 6002 │ ├── discovery/ "Point-in-time inventory and graph evidence" │ ├── discover-environment → graph JSON or OCSF 5023 inventory bridge │ ├── discover-ai-bom → CycloneDX-aligned AI BOM │ ├── discover-control-evidence → PCI / SOC 2 technical evidence JSON │ └── discover-cloud-control-evidence → Cross-cloud PCI / SOC 2 evidence JSON │ ├── detection/ "What attack pattern does this event stream show?" │ ├── detect-lateral-movement → T1021 / T1078.004 cross-cloud pivot │ ├── detect-okta-mfa-fatigue → T1621 Okta Verify push fatigue │ ├── detect-google-workspace-suspicious-login → T1110 / T1078 Workspace suspicious login │ ├── detect-mcp-tool-drift → T1195.001 Supply Chain │ ├── detect-privilege-escalation-k8s → T1552.007 / T1611 / T1098 / T1550.001 │ └── detect-sensitive-secret-read-k8s → T1552.007 Container API │ ├── evaluation/ "Does this align with a benchmark or posture bar?" │ ├── cspm-aws-cis-benchmark (CIS AWS Foundations v3.0 — 18 checks) │ ├── cspm-gcp-cis-benchmark (CIS GCP Foundations v3.0 — 7 checks) │ ├── cspm-azure-cis-benchmark (CIS Azure Foundations v2.1 — 6 checks) │ ├── k8s-security-benchmark (CIS Kubernetes — 10 checks) │ ├── container-security (CIS Docker — 8 checks) │ ├── model-serving-security (20 checks — auth / rate limit / egress / network / safety) │ └── gpu-cluster-security (13 checks — runtime / driver / tenant isolation) │ ├── view/ "OCSF → reviewable output" │ ├── convert-ocsf-to-sarif → GitHub Security tab │ └── convert-ocsf-to-mermaid-attack-flow → PR comments │ └── remediation/ "Fix it, gated and audited" └── iam-departures-remediation (event-driven, DLQ + SNS, dual audit) ``` **路线图:** 当前 open issues 聚焦于 AWS Config 和更深入的评估覆盖、更丰富的 MCP 输入 schema 和传输、额外的云和 AI 服务覆盖、供应商故事,以及首个 AI BOM 和证据能力之外更深入的 discovery / inventory 后续工作。十一条原则
| # | 原则 | 含义 | |---|---|---| | 1 | **默认只读** | Posture + detection 绝不调用写 API。修复将写路径隔离在显式 IAM 授权和 dry-run 默认值之后。 | | 2 | **无代理** | 无守护进程、无 sidecar、无持续运行的进程。读取现有内容的短生命周期 Python 脚本。 | | 3 | **最小权限** | 每个技能在 `REFERENCES.md` 中记录其所需的确切 IAM / RBAC 权限。仅限最小集合。 | | 4 | **纵深防御** | Posture + detection + remediation + audit + re-verify 全部并行运行并相互备份。 | | 5 | **闭环** | 每个工作流都有一个验证步骤:detect → finding → action → audit → re-verify。漂移本身也是一种检测。 | | 6 | **传输中 OCSF** | 所有 ingest + detect 技能均使用 OCSF 1.8 JSONL。MITRE ATT&CK 位于 `finding_info.attacks[]` 内。 | | 7 | **安全设计** | 安全是技能架构的一级输入,而非附加组件。 | | 8 | **安全代码** | 在每个输入边界进行防御性解析。不对不受信任的数据使用 `eval`/`exec`/`pickle.loads`。仅限参数化 SQL。CI 中运行 `bandit`。 | | 9 | **安全 secret 和 token** | 无硬编码凭据。Secret 来自云 secret 存储。短生命周期 token。日志清除凭据。CI 检测 `AKIA` / `sk-` / `ghp_` 模式。 | | 10 | **无遥测** | 无 phone-home。Findings 保留在本地,除非操作员显式转发。 | | 11 | **HITL,无流氓行为** | 技能绝不提升自身权限、绝不绕过护栏、绝不调用未经组合的兄弟技能。破坏性操作需要 HITL 闸门。 |如何验证信任
| 检查 | 捕获内容 | 运行位置 | |---|---|---| | **Golden-fixture deep-eq** | 重构后的静默检测覆盖回退 | 每个技能的 `pytest` — `tests/test_*.py::TestGoldenFixture` | | **Wire-contract tests** | 规范外事件、错误的 `class_uid`、缺失必填字段、`attacks[]` 层级错误 | 跨技能断言固定在 [`OCSF_CONTRACT.md`](skills/detection-engineering/OCSF_CONTRACT.md) 中 | | **End-to-end pipes** | `ingest → detect → convert` 链路中断 | `tests/integration/` — 对冻结的 SARIF + Mermaid 进行 deep-eq | | **静态分析** | 不安全解析、缺失导入、风格漂移 | 每次PR上的 `ruff check` + `ruff format --check` + `it` | | **硬编码 secret grep** | 交付前泄漏的 `AKIA…` / `sk-…` / `ghp_…` token | CI lint 任务、每次 push 时全 repo 范围 | | **每技能的 `REFERENCES.md`** | 捏造的 API、不透明依赖、未记录的 IAM | CI 强制存在;新技能人工审查 | | **技能完整性验证器** | 名称漂移、MCP 元数据漂移、未批准的参考域、危险运行时模式 | CI 和集成测试中的 `scripts/validate_skill_integrity.py` | | **`agent-bom` 扫描** | 易受攻击的依赖、IaC 错误配置、影子 AI 组件 | 每次推送时进行 `code` / `skills scan` / `fs` / `iac`;findings 进入 GitHub Security 标签页下的 `agent-bom-iac` |标签:AI安全, Chat Copilot, CI/CD安全, CSPM, FTP漏洞扫描, JSONLines, Llama, MCP, OCSF, Python, Serverless, TinkerPop, URL发现, 修复, 安全检测, 安全编排, 审计, 提示词模板, 无后门, 最小权限, 自动化响应, 逆向工具, 零信任, 靶机