skills/conducting-cloud-incident-response/SKILL.md
响应云环境(AWS、Azure、GCP)中的安全事件,执行基于身份的遏制、云原生日志分析、资源隔离和针对临时云基础设施的取证证据采集。适用于云事件响应、AWS 安全事件、Azure 受攻陷、GCP 泄露、云取证或云身份受攻陷相关请求。
npx skillsauth add killvxk/cybersecurity-skills-zh conducting-cloud-incident-responseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
不适用于无云组件的纯本地事件;此类情况请使用标准企业 IR 流程。
识别受攻陷的范围和性质:
AWS 指标:
待调查的 CloudTrail 可疑事件:
- 来自异常地理位置或 IP 的 ConsoleLogin(控制台登录)
- 为现有 IAM 用户创建 CreateAccessKey(持久化)
- 启动用于挖矿的 RunInstances(大型实例类型)
- PutBucketPolicy 使 S3 存储桶公开
- AssumeRole 切换至跨账号角色
- DeleteTrail 或 StopLogging(防御规避)
- CreateUser 或 AttachUserPolicy(权限提升)
Azure 指标:
待调查的 Azure 活动日志事件:
- 来自匿名 IP 或 TOR 出口节点的登录
- 添加服务主体凭据
- 角色分配变更(添加 Owner、Contributor)
- 在异常区域创建虚拟机
- 存储账号访问密钥重新生成
- 条件访问策略被修改或删除
- 用户账号 MFA 被禁用
GCP 指标:
待调查的 GCP 审计日志事件:
- SetIamPolicy 变更授予宽泛访问权限
- 为现有服务账号创建 CreateServiceAccountKey
- 在意外区域 InsertInstance
- SetBucketIamPolicy 设置 allUsers
- DeleteLog 或 UpdateSink(日志篡改)
云遏制主要是身份操作:
AWS 遏制:
# 禁用受攻陷的 IAM 访问密钥
aws iam update-access-key --user-name compromised-user \
--access-key-id AKIA... --status Inactive
# 为受攻陷用户附加全拒绝策略
aws iam attach-user-policy --user-name compromised-user \
--policy-arn arn:aws:iam::aws:policy/AWSDenyAll
# 撤销受攻陷 IAM 角色的所有活跃会话
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"}}
}]
}'
# 隔离受攻陷的 EC2 实例
aws ec2 modify-instance-attribute --instance-id i-0abc123 \
--groups sg-isolate-forensic
Azure 遏制:
# 禁用受攻陷用户
Set-AzureADUser -ObjectId "[email protected]" -AccountEnabled $false
# 撤销所有会话
Revoke-AzureADUserAllRefreshToken -ObjectId "user-object-id"
# 移除角色分配
Remove-AzRoleAssignment -ObjectId "sp-object-id" -RoleDefinitionName "Contributor"
# 使用 NSG 全拒绝规则隔离虚拟机
$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 *
在临时资源终止或日志轮转前采集证据:
AWS 证据采集:
Azure 证据采集:
GCP 证据采集:
分析日志以识别常见云攻击技术:
常见云攻击模式:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 凭据受攻陷 → IAM 权限提升 → 资源滥用
2. 公开 S3/Blob → 数据外泄
3. Web 应用 SSRF → IMDS 令牌窃取 → 横向移动
4. CI/CD 流水线受攻陷 → 恶意部署
5. 跨账号角色滥用 → 多账号跳转
6. Lambda/Function 滥用 → 挖矿或数据处理
IMDS 令牌窃取调查(AWS):
# 在 CloudTrail 中搜索使用来自外部 IP 的实例角色凭据的 API 调用
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")'
移除对手访问权限并恢复安全状态:
实施控制措施以防止再次发生:
| 术语 | 定义 | |------|------| | IMDS(Instance Metadata Service,实例元数据服务) | 提供可从虚拟机内部访问的实例凭据的云服务;SSRF 攻击以 IMDS 为目标窃取令牌 | | CloudTrail | 记录 AWS 账号中所有 API 调用的 AWS 服务;AWS 事件响应的主要证据来源 | | 服务主体(Service Principal) | Azure AD 中供应用程序和服务使用的非人类身份;受攻陷后可实现持久 API 访问 | | SCP(Service Control Policy,服务控制策略) | AWS Organizations 策略,限制账号可用的最大权限;用于设置安全护栏 | | 临时基础设施(Ephemeral Infrastructure) | 可能在证据采集前终止的云资源(容器、函数、自动扩展实例) | | 跨账号角色切换(Cross-Account Role Assumption) | AWS 机制允许一个账号临时访问另一个账号的资源;攻击者通过角色切换进行横向移动 |
背景:AWS GuardDuty 告警显示某 IAM 用户的访问密钥被来自意外 IP 地址的 API 调用使用。该密钥在 4 小时前被意外提交到公开 GitHub 仓库。
处理方法:
常见陷阱:
云事件响应报告
================================
事件: INC-2025-1705
云服务商: AWS(账号:123456789012)
检测日期: 2025-11-15T14:00:00Z
检测来源: GuardDuty - UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
受攻陷摘要
初始访问: IAM 访问密钥泄露至公开 GitHub 仓库
受影响身份: iam-user: deploy-bot (AKIA...)
攻击者 IP: 203.0.113.42(VPN 出口节点,荷兰)
持续时间: 4 小时(10:00 UTC - 14:00 UTC)
攻击者活动(来自 CloudTrail)
10:15 UTC - DescribeInstances(侦察)
10:18 UTC - RunInstances x 12(c5.4xlarge,所有区域 - 挖矿)
10:22 UTC - CreateUser "backup-admin"(持久化)
10:23 UTC - CreateAccessKey for "backup-admin"
10:25 UTC - AttachUserPolicy - AdministratorAccess to "backup-admin"
10:30 UTC - PutBucketPolicy - s3://data-bucket 设为公开(外泄)
遏制措施
[x] 原始访问密钥已禁用
[x] 用户策略已设为 AWSDenyAll
[x] 后门 IAM 用户 "backup-admin" 已删除
[x] 12 个挖矿实例已终止(所有区域)
[x] S3 存储桶策略已恢复为私有
财务影响
未授权 EC2:$2,847(4 小时 x 12 x c5.4xlarge)
数据传输: $127(S3 公开访问数据出口)
合计: $2,974
事件后加固
1. GitHub 密钥扫描已启用
2. 访问密钥轮换策略已实施
3. 防止 CloudTrail 禁用的 SCP 已部署
4. GuardDuty 自动修复 Lambda 已配置
testing
设计并执行社会工程学渗透测试,包括钓鱼、语音钓鱼、短信钓鱼和物理借口活动,以衡量人员安全韧性并识别培训差距。
testing
主持结构化的事件后审查,以识别根本原因、记录有效和无效的措施,并提出可操作的改进建议以提升未来的事件响应能力。
testing
通过分析举报的邮件、提取指标、评估凭据受攻陷情况、在全组织范围隔离恶意邮件并修复受影响账号来响应网络钓鱼事件。涵盖邮件头分析、URL/附件沙箱检测和邮箱范围清除操作。适用于网络钓鱼响应、邮件事件、凭据钓鱼、鱼叉式网络钓鱼调查或钓鱼修复相关请求。
tools
票据传递(Pass-the-Ticket,PtT)是一种横向移动技术,使用窃取的 Kerberos 票据(TGT 或 TGS)在不知道用户密码的情况下向服务进行认证。通过从已控制的主机内存中提取 Kerberos 票据,攻击者可以将这些票据注入自己的会话以模拟票据所有者。