mcpField
C
conducting-cloud-incident-response

conducting-cloud-incident-response

github.com/mukul975安全35.2k174 次安装8 周前更新
代码仓库

关于 conducting-cloud-incident-response

面向安全团队的云端事件响应指南,适用于调查 AWS、Azure 和 GCP 中的可疑活动。重点包括身份遏制、证据保全、云端攻击模式分析与恢复。

主要功能

  1. 01调查云审计日志
  2. 02以身份为核心进行遏制
  3. 03跨云服务保全证据
  4. 04分析云端攻击模式
  5. 05轮换凭据并恢复环境

适用场景

  1. 01调查可疑云 API 活动
  2. 02响应云凭据泄露
  3. 03在临时资源消失前保全证据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill conducting-cloud-incident-response

安装后在 Claude Code 中输入/conducting-cloud-incident-response确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

开展云事件响应

何时使用

  • 云安全态势管理(CSPM)就对未授权资源变更发出告警
  • CloudTrail、Azure 活动日志或 GCP 审计日志显示可疑 API 调用
  • 云访问密钥或服务主体凭证疑似泄露
  • 检测到未授权的计算实例、存储桶或 IAM 变更
  • 云托管应用遭到入侵,且攻击者活动横跨多个云服务

请勿使用于完全没有云组件的纯本地事件;请使用标准企业 IR 流程。

前置条件

  • 已启用并集中化云原生日志:AWS CloudTrail(所有区域)、Azure 活动/登录日志、GCP 云审计日志
  • 已预先配置专用于 IR 的云 IAM 角色,并具备只读取证访问权限
  • 用于证据保全的隔离取证账户/订阅/项目
  • 针对各云服务商的云事件响应运行手册
  • 云原生安全工具:AWS GuardDuty、Azure Defender for Cloud、GCP Security Command Center
  • 网络流量日志:VPC Flow Logs(AWS/GCP)、NSG Flow Logs(Azure)

工作流

第 1 步:检测并确认云事件

确定入侵的范围和性质:

AWS 指标:

CloudTrail suspicious events to investigate:
- ConsoleLogin from unexpected geolocation or IP
- CreateAccessKey for existing IAM user (persistence)
- RunInstances for crypto-mining (large instance types)
- PutBucketPolicy making S3 bucket public
- AssumeRole to cross-account roles
- DeleteTrail or StopLogging (defense evasion)
- CreateUser or AttachUserPolicy (privilege escalation)

Azure 指标:

Azure Activity Log events to investigate:
- Sign-in from anonymous IP or TOR exit node
- Service principal credential added
- Role assignment changes (Owner, Contributor added)
- VM created in unusual region
- Storage account access key regenerated
- Conditional Access policy modified or deleted
- MFA disabled for user account

GCP 指标:

GCP Audit Log events to investigate:
- SetIamPolicy changes granting broad access
- CreateServiceAccountKey for existing SA
- InsertInstance in unexpected zone
- SetBucketIamPolicy with allUsers
- DeleteLog or UpdateSink (log tampering)
第 2 步:遏制云身份泄露

云遏制主要是一项身份操作:

AWS 遏制:

# Disable compromised IAM access keys
aws iam update-access-key --user-name compromised-user \
  --access-key-id AKIA... --status Inactive

# Attach deny-all policy to compromised user
aws iam attach-user-policy --user-name compromised-user \
  --policy-arn arn:aws:iam::aws:policy/AWSDenyAll

# Revoke all active sessions for compromised IAM role
aws iam put-role-policy --role-name compromised-role \
  --policy-name RevokeOlderSessions --policy-document '{
    "Version":"2012-10-17",
    "Statement":[{
      "Effect":"Deny",
      "Action":"*",
      "Resource":"*",
      "Condition":{"DateLessThan":
        {"aws:TokenIssueTime":"2025-11-15T15:00:00Z"}}
    }]
  }'

# Isolate compromised EC2 instance
aws ec2 modify-instance-attribute --instance-id i-0abc123 \
  --groups sg-isolate-forensic

Azure 遏制:

# Disable compromised user
Set-AzureADUser -ObjectId "[email protected]" -AccountEnabled $false

# Revoke all sessions
Revoke-AzureADUserAllRefreshToken -ObjectId "user-object-id"

# Remove role assignments
Remove-AzRoleAssignment -ObjectId "sp-object-id" -RoleDefinitionName "Contributor"

# Isolate VM with NSG deny-all rule
$nsg = New-AzNetworkSecurityGroup -Name "isolate-nsg" -ResourceGroupName "rg" -Location "eastus"
$nsg | Add-AzNetworkSecurityRuleConfig -Name "DenyAll" -Priority 100 -Direction Inbound `
  -Access Deny -Protocol * -SourceAddressPrefix * -SourcePortRange * `
  -DestinationAddressPrefix * -DestinationPortRange *
第 3 步:保全云证据

在临时资源被终止或日志轮转之前收集证据:

AWS 证据收集:

  • 将 CloudTrail 事件导出到取证账户中的 S3
  • 对受入侵 EC2 实例的 EBS 卷创建快照
  • 复制 S3 访问日志和对象版本
  • 导出受影响 VPC 的 VPC Flow Logs
  • 捕获 IAM 凭证报告和访问顾问数据

Azure 证据收集:

  • 导出 Azure 活动日志和登录日志(默认保留 90 天)
  • 对受入侵 VM 的托管磁盘创建快照
  • 导出 Azure AD 审计日志
  • 捕获 NSG 流日志
  • 导出条件访问登录详情

GCP 证据收集:

  • 将云审计日志导出到取证存储桶
  • 对受入侵 VM 的永久性磁盘创建快照
  • 导出 VPC Flow Logs
  • 捕获 IAM 策略快照
第 4 步:调查云特有的攻击模式

分析日志中常见的云攻击技术:

Common Cloud Attack Patterns:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Credential Compromise → IAM Privilege Escalation → Resource Abuse
2. Public S3/Blob → Data Exfiltration
3. SSRF from Web App → IMDS Token Theft → Lateral Movement
4. Compromised CI/CD Pipeline → Malicious Deployment
5. Cross-Account Role Abuse → Multi-Account Pivot
6. Lambda/Function Abuse → Crypto-mining or Data Processing

IMDS 令牌窃取调查(AWS):

# Search CloudTrail for API calls using instance role credentials from external IP
aws cloudtrail lookup-events --lookup-attributes \
  AttributeKey=EventSource,AttributeValue=ec2.amazonaws.com \
  --start-time 2025-11-14 --end-time 2025-11-16 \
  | jq '.Events[] | select(.CloudTrailEvent | fromjson | .sourceIPAddress != "internal")'
第 5 步:根除并恢复

移除攻击者访问权限并恢复安全状态:

  • 轮换所有已泄露的凭证(访问密钥、密码、服务主体密钥)
  • 移除攻击者创建的未授权 IAM 用户、角色、策略和访问密钥
  • 终止未授权的计算实例(加密货币挖矿程序、C2 服务器)
  • 将被修改的 S3 存储桶策略和存储访问策略恢复到事件前状态
  • 重新启用被禁用的安全控制(CloudTrail、GuardDuty、Defender for Cloud)
  • 审查并恢复条件访问策略和 MFA 配置
第 6 步:事件后云加固

实施控制措施以防止再次发生:

  • 为所有 IAM 用户启用 MFA,并要求对敏感 API 调用使用 MFA
  • 实施 SCP(AWS)或 Azure Policy 以防止日志被禁用
  • 启用 GuardDuty / Defender for Cloud / Security Command Center 并配置自动修复
  • 利用访问分析器数据实施最小权限 IAM 策略
  • 在所有 EC2 实例上启用 IMDS v2(要求令牌),以防止基于 SSRF 的令牌窃取
  • 配置预算告警以检测加密货币挖矿导致的费用激增

关键概念

术语定义
IMDS(实例元数据服务)一种云服务,可从 VM 内部访问并提供实例凭证;SSRF 攻击以 IMDS 为目标窃取令牌
CloudTrailAWS 服务,记录 AWS 账户中的所有 API 调用;是 AWS 事件响应的主要证据来源
服务主体Azure AD 中供应用程序和服务使用的非人类身份;一旦被攻陷可实现持久 API 访问
SCP(服务控制策略)AWS Organizations 策略,限制账户可用的最大权限;适用于设置防护栏
临时基础设施可能在证据收集之前就被终止的云资源(容器、函数、自动扩缩容实例)
跨账户角色代入AWS 机制,允许一个账户临时访问另一个账户中的资源;攻击者通过代入角色进行横向移动

工具与系统

  • AWS CloudTrail / Azure Activity Logs / GCP Audit Logs:云原生 API 日志服务,提供主要审计跟踪
  • Cado Response:云原生取证平台,可从 AWS、Azure 和 GCP 自动捕获证据
  • Prowler (AWS) / ScoutSuite (多云):开源云安全评估工具,用于事件后态势审查
  • Steampipe:基于 SQL 的开源工具,用于查询云 API 以调查 IAM 配置和资源状态
  • Cartography (Lyft):开源工具,用于映射云基础设施关系并识别攻击路径

常见场景

场景:AWS 访问密钥通过公共 GitHub 仓库泄露

背景:AWS GuardDuty 发出警报,称来自意外 IP 地址的 API 调用使用了某个 IAM 用户的访问密钥。该密钥在 4 小时前被意外提交到公共 GitHub 仓库。

处理方法:

  1. 立即通过 AWS IAM 禁用泄露的访问密钥
  2. 将 AWSDenyAll 策略附加到受影响的 IAM 用户
  3. 查询 CloudTrail,获取泄露密钥自暴露以来的所有 API 调用
  4. 识别攻击者创建或修改的资源(用于加密货币挖矿的 EC2 实例、用于持久化的新 IAM 用户)
  5. 终止未授权资源并移除后门 IAM 实体
  6. 轮换泄露用户可访问的所有凭证
  7. 启用 GitHub 秘密扫描,防止未来凭证泄露

注意事项:

  • 仅禁用访问密钥,而不检查攻击者是否创建了新的访问密钥或 IAM 用户用于持久化
  • 未检查所有 AWS 区域中攻击者创建的资源(加密货币矿机部署在每个区域)
  • 忘记撤销来自代入角色的临时凭证(STS 令牌在过期前仍然有效)
  • 未计算未授权资源使用的财务影响,以便用于保险索赔

输出格式

CLOUD INCIDENT RESPONSE REPORT
================================
Incident:          INC-2025-1705
Cloud Provider:    AWS (Account: 123456789012)
Date Detected:     2025-11-15T14:00:00Z
Detection Source:  GuardDuty - UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration

COMPROMISE SUMMARY
Initial Access:    IAM access key exposed in public GitHub repo
Affected Identity: iam-user: deploy-bot (AKIA...)
Attacker IP:       203.0.113.42 (VPN exit node, Netherlands)
Duration:          4 hours (10:00 UTC - 14:00 UTC)

ATTACKER ACTIVITY (from CloudTrail)
10:15 UTC - DescribeInstances (reconnaissance)
10:18 UTC - RunInstances x 12 (c5.4xlarge, all regions - crypto-mining)
10:22 UTC - CreateUser "backup-admin" (persistence)
10:23 UTC - CreateAccessKey for "backup-admin"
10:25 UTC - AttachUserPolicy - AdministratorAccess to "backup-admin"
10:30 UTC - PutBucketPolicy - s3://data-bucket made public (exfiltration)

CONTAINMENT ACTIONS
[x] Original access key disabled
[x] User policy set to AWSDenyAll
[x] Backdoor IAM user "backup-admin" deleted
[x] 12 crypto-mining instances terminated (all regions)
[x] S3 bucket policy restored to private

FINANCIAL IMPACT
Unauthorized EC2: $2,847 (4 hours x 12 x c5.4xlarge)
Data Transfer:    $127 (S3 public access data egress)
Total:            $2,974

POST-INCIDENT HARDENING
1. GitHub secret scanning enabled
2. Access key rotation policy implemented
3. SCP preventing CloudTrail disablement deployed
4. GuardDuty auto-remediation Lambda configured

评论

支持 Markdown