hiagokinlevi/ir-playbooks-automation

GitHub: hiagokinlevi/ir-playbooks-automation

这是一个专为SOC团队设计的实战型工具包,提供基于NIST标准的事件响应手册及云环境下的自动化隔离与取证能力。

Stars: 2 | Forks: 0

# ir-playbooks-automation **为 SOC 团队和蓝队人员提供的事件响应手册、自动分流工作流以及隔离自动化。** ## 概述 `ir-playbooks-automation` 是一个结构化的、面向实践者的工具包,专供安全运营中心 (SOC) 分析师、事件响应人员和蓝队人员使用。它提供: - **操作手册**,涵盖分流、隔离、根除和恢复阶段 - **自动化脚本**,用于安全、可审计的隔离操作(AWS 隔离、S3 锁定、GCP VM 隔离、Azure 会话撤销、证据打包) - **事件记录和报告模板**,用于文档标准化 - **Pydantic 数据模式**,用于机器可读的事件状态 - **CLI 工具**,用于开启事件、管理严重性、运行手册和生成报告 - **培训实验室和教程**,用于新分析师入职 该工具遵循 NIST SP 800-61r2 事件响应生命周期,专为现实世界的生产 SOC 环境而设计。 ## 仓库结构 ``` ir-playbooks-automation/ ├── playbooks/ │ ├── triage/ # Alert validation and initial classification │ ├── containment/ # Isolation and containment procedures │ ├── eradication/ # Persistence removal and cleanup │ ├── recovery/ # Controlled service restoration │ └── incident-types/ # Type-specific response guidance ├── automations/ │ ├── evidence_packaging/ # Evidence collection and hash verification │ ├── cloud/ # Cloud containment automation (AWS, Azure, GCP) │ └── identity/ # Identity and session revocation ├── templates/ │ ├── incident-records/ # Incident record templates │ ├── timelines/ # Attack timeline templates │ ├── reports/ # Technical report templates │ └── communications/ # Executive communication templates ├── schemas/ # Pydantic data models ├── workflows/ # Incident state machine ├── cli/ # Click-based CLI entrypoint ├── docs/ # Architecture and model documentation ├── training/ # Tutorials and hands-on labs └── tests/ # Unit tests ``` ## 快速开始 ### 前置条件 - Python 3.11+ - 已配置 AWS CLI(用于云自动化) - Azure PowerShell 模块(用于身份自动化) ### 安装 ``` # Clone the repository git clone https://github.com/hiagokinlevi/ir-playbooks-automation.git cd ir-playbooks-automation # 创建虚拟环境 python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # 安装依赖 pip install -e . # 仅在需要实时 AWS 遏制时安装 AWS 自动化支持 pip install -e .[aws] # 离线/轻依赖验证路径 pip install -e . --no-deps --no-build-isolation # 复制并配置环境 cp .env.example .env # 使用您的环境设置编辑 .env ``` ### 开启您的第一个事件 ``` # 创建一个新的 incident k1n-ir open-incident --type credential_compromise --severity high # 启动 playbook k1n-ir start-playbook --incident-id INC-20250101-001 --playbook triage/initial_triage # 调查后设置严重性 k1n-ir set-severity --incident-id INC-20250101-001 --severity critical # 生成技术报告 k1n-ir generate-report --incident-id INC-20250101-001 --format markdown # 在实时遏制前预览 S3 公共访问锁定 k1n-ir lockdown-s3-bucket \ --bucket-name exposed-data-bucket \ --incident-id INC-20250101-001 \ --output s3-lockdown-preview.json # 在实时遏制前预览 Azure VM NSG 隔离 k1n-ir isolate-azure-vm \ --subscription-id 00000000-0000-0000-0000-000000000000 \ --resource-group rg-production \ --vm-name app-server-01 \ --incident-id INC-20250101-001 \ --output azure-isolation-preview.json # 在实时遏制前预览 GCP Compute Engine 隔离 k1n-ir isolate-gcp-instance \ --project-id production-project \ --zone us-central1-a \ --instance-name web-01 \ --incident-id INC-20250101-001 \ --output gcp-isolation-preview.json ``` ## 手册 | 手册 | 阶段 | 描述 | |----------|-------|-------------| | `triage/initial_triage` | 分流 | 告警验证、分类、严重性分配 | | `containment/compromised_credentials` | 隔离 | 凭证撤销、会话终止、MFA 强制执行 | | `containment/cloud_exposure` | 隔离 | 云资源隔离、策略修复 | | `eradication/remove_persistence` | 根除 | 持久化机制移除与验证 | | `recovery/controlled_return` | 恢复 | 受控服务恢复检查清单 | | `incident-types/api_abuse` | 全生命周期 | API 特定的滥用响应 | | `incident-types/phishing` | 全生命周期 | 钓鱼邮件和凭证窃取响应 | | `incident-types/secret_leakage` | 全生命周期 | 凭证和密钥泄露响应 | ## 自动化 | 脚本 | 平台 | 描述 | |--------|----------|-------------| | `evidence_packaging/packager.py` | 任意 | 创建包含 SHA-256 清单的结构化证据包 | | `cloud/isolate_aws_instance.py` | AWS | 通过隔离安全组隔离 EC2 实例 | | `cloud/lockdown_s3_bucket.py` | AWS | 锁定公共 S3 存储桶并保留回滚状态 | | `cloud/isolate_azure_vm.py` | Azure | 使用事件 NSG 规则和回滚状态隔离 Azure VM | | `cloud/isolate_gcp_instance.py` | GCP | 使用拒绝所有防火墙标签和回滚状态隔离 Compute Engine VM | | `identity/revoke_azure_sessions.ps1` | Azure AD | 撤销被攻陷用户的所有活动会话 | ### Azure VM 网络隔离 已安装的 `k1n-ir isolate-azure-vm` 命令默认会预览 Azure VM 隔离。它会记录实际隔离运行时会保留的回滚元数据,预览特定于事件的 NSG 创建和 NIC 关联,并可选择在批准后解除分配 VM。 仅在隔离批准后才使用 `--execute`。实时模式需要 Azure 身份、计算和网络 SDK 软件包,以及 `automations/cloud/isolate_azure_vm.py` 中列出的 RBAC 权限。 ### GCP Compute Engine 隔离 已安装的 `k1n-ir isolate-gcp-instance` 命令默认以 dry-run 模式运行。它预览特定于事件的网络标签、入站拒绝所有防火墙规则、出站拒绝所有防火墙规则、保存的回滚状态以及可选的停止操作,而无需调用 GCP API。 仅在隔离批准后才使用 `--execute`。当 `APPROVAL_REQUIRED_FOR_CONTAINMENT=true` 时,CLI 会在实时执行前提示。实时模式使用 Application Default Credentials,并且需要 Compute Engine 实例管理权限以及防火墙规则权限。 ### S3 存储桶暴露隔离 已安装的 `k1n-ir lockdown-s3-bucket` 命令默认会预览存储桶锁定。它会记录存储桶的公共访问阻止、存储桶策略、ACL 授权和标签集以便回滚,然后显示实时模式将应用的公共访问阻止、公共策略移除、ACL 加固和事件标记步骤。 仅在隔离批准后才使用 `--execute`。实时模式需要 boto3 支持(`pip install -e .[aws]` 或 `pip install boto3`)以及 `automations/cloud/lockdown_s3_bucket.py` 中列出的 S3 权限。 ## 事件状态机 事件会经过以下状态: ``` DETECTED → TRIAGING → CONFIRMED → CONTAINING → ERADICATING → RECOVERING → CLOSED ↑ POST_INCIDENT_REVIEW ←┘ ``` 可以在任何状态使用 `CLOSED_FALSE_POSITIVE` 关闭误报。 ## 配置 所有运行时行为均通过 `.env` 控制(参见 `.env.example`): | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `INCIDENT_TYPE` | `generic` | 新记录的默认事件类型 | | `SEVERITY_MODEL` | `standard` | 严重性分类模型 | | `EVIDENCE_DIR` | `./evidence` | 用于存储证据的本地目录 | | `SAFE_AUTOMATION_MODE` | `true` | 为所有自动化启用 dry-run 模式 | | `APPROVAL_REQUIRED_FOR_CONTAINMENT` | `true` | 隔离前需要明确确认 | | `MASKING_MODE` | `true` | 在日志和报告中屏蔽敏感数据 | ## 安全 请通过 [SECURITY.md](SECURITY.md) 中描述的流程报告漏洞。请不要为安全发现公开开启 issue。 ## 贡献 参见 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解开发设置、编码标准和 PR 流程。 ## 许可证 CC BY 4.0 — 参见 [LICENSE](LICENSE)。在注明 **Hiago Kin Levi** 的前提下,可自由使用、共享和改编。
标签:AWS, Azure, CLI, DPI, ESC漏洞, GCP, NIST, Playbook, Pydantic, S3, WiFi技术, 事件管理, 云计算安全, 会话撤销, 剧本, 取证, 安全培训, 安全运营, 库, 应急响应, 恢复, 扫描框架, 持续运营, 根除, 模板, 漏洞修复, 漏洞利用检测, 网络安全培训, 网络调试, 自动化, 虚拟机隔离, 证据收集, 调查, 逆向工具, 遏制