[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ESYA5SMTS57YVQ2MKSYTPQ":3,"skill-same:01M6ESYA5SMTS57YVQ2MKSYTPQ":93},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6ESYA5SMTS57YVQ2MKSYTPQ","conducting-cloud-incident-response",null,"Responds to security incidents in cloud environments (AWS, Azure, GCP) by performing identity-based containment, cloud-native log analysis, resource isolation, and forensic evidence acquisition adapted for ephemeral cloud infrastructure. Activates for requests involving cloud incident response, AWS security incident, Azure compromise, GCP breach, cloud forensics, or cloud identity compromise.","luokai0\u002Fai-agent-skills-by-luo-kai","luokai0","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F266954973?v=4","01M6E16VNT42JB8B3X3254QWJ7","luo kai","01M6E16VTFVP6S5XJF1V1MPV90",14,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F08-pinkpixel-collection\u002Fconducting-cloud-incident-response\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"incident response","incident","cloud","conducting cloud incident response","analysis","native","isolation","log","cloud-native","evidence","log analysis","aws security","acquisition","security","containment","gcp","infrastructure","azure","identity","cybersecurity","2026-11-10 10:12:30",false,"---\nname: conducting-cloud-incident-response\ndescription: >\n  Responds to security incidents in cloud environments (AWS, Azure, GCP) by performing\n  identity-based containment, cloud-native log analysis, resource isolation, and forensic\n  evidence acquisition adapted for ephemeral cloud infrastructure. Activates for requests\n  involving cloud incident response, AWS security incident, Azure compromise, GCP breach,\n  cloud forensics, or cloud identity compromise.\ndomain: cybersecurity\nsubdomain: incident-response\ntags: [cloud-IR, AWS-forensics, Azure-incident-response, GCP-security, identity-containment]\nversion: 1.0.0\nauthor: mahipal\nlicense: Apache-2.0\n---\n\n# Conducting Cloud Incident Response\n\n## When to Use\n\n- Cloud security posture management (CSPM) alerts on unauthorized resource changes\n- CloudTrail, Azure Activity Logs, or GCP Audit Logs show suspicious API calls\n- Cloud access keys or service principal credentials are suspected compromised\n- Unauthorized compute instances, storage buckets, or IAM changes are detected\n- A cloud-hosted application is breached and attacker activity spans cloud services\n\n**Do not use** for on-premises-only incidents with no cloud component; use standard enterprise IR procedures.\n\n## Prerequisites\n\n- Cloud-native logging enabled and centralized: AWS CloudTrail (all regions), Azure Activity\u002FSign-in Logs, GCP Cloud Audit Logs\n- IR-specific cloud IAM roles pre-provisioned with read-only forensic access\n- Isolated forensic account\u002Fsubscription\u002Fproject for evidence preservation\n- Cloud incident response runbooks specific to each cloud provider\n- Cloud-native security tools: AWS GuardDuty, Azure Defender for Cloud, GCP Security Command Center\n- Network traffic logging: VPC Flow Logs (AWS\u002FGCP), NSG Flow Logs (Azure)\n\n## Workflow\n\n### Step 1: Detect and Confirm the Cloud Incident\n\nIdentify the scope and nature of the compromise:\n\n**AWS Indicators:**\n```\nCloudTrail suspicious events to investigate:\n- ConsoleLogin from unexpected geolocation or IP\n- CreateAccessKey for existing IAM user (persistence)\n- RunInstances for crypto-mining (large instance types)\n- PutBucketPolicy making S3 bucket public\n- AssumeRole to cross-account roles\n- DeleteTrail or StopLogging (defense evasion)\n- CreateUser or AttachUserPolicy (privilege escalation)\n```\n\n**Azure Indicators:**\n```\nAzure Activity Log events to investigate:\n- Sign-in from anonymous IP or TOR exit node\n- Service principal credential added\n- Role assignment changes (Owner, Contributor added)\n- VM created in unusual region\n- Storage account access key regenerated\n- Conditional Access policy modified or deleted\n- MFA disabled for user account\n```\n\n**GCP Indicators:**\n```\nGCP Audit Log events to investigate:\n- SetIamPolicy changes granting broad access\n- CreateServiceAccountKey for existing SA\n- InsertInstance in unexpected zone\n- SetBucketIamPolicy with allUsers\n- DeleteLog or UpdateSink (log tampering)\n```\n\n### Step 2: Contain Cloud Identity Compromise\n\nCloud containment is primarily an identity operation:\n\n**AWS Containment:**\n```bash\n# Disable compromised IAM access keys\naws iam update-access-key --user-name compromised-user \\\n  --access-key-id AKIA... --status Inactive\n\n# Attach deny-all policy to compromised user\naws iam attach-user-policy --user-name compromised-user \\\n  --policy-arn arn:aws:iam::aws:policy\u002FAWSDenyAll\n\n# Revoke all active sessions for compromised IAM role\naws iam put-role-policy --role-name compromised-role \\\n  --policy-name RevokeOlderSessions --policy-document '{\n    \"Version\":\"2012-10-17\",\n    \"Statement\":[{\n      \"Effect\":\"Deny\",\n      \"Action\":\"*\",\n      \"Resource\":\"*\",\n      \"Condition\":{\"DateLessThan\":\n        {\"aws:TokenIssueTime\":\"2025-11-15T15:00:00Z\"}}\n    }]\n  }'\n\n# Isolate compromised EC2 instance\naws ec2 modify-instance-attribute --instance-id i-0abc123 \\\n  --groups sg-isolate-forensic\n```\n\n**Azure Containment:**\n```powershell\n# Disable compromised user\nSet-AzureADUser -ObjectId \"user@tenant.onmicrosoft.com\" -AccountEnabled $false\n\n# Revoke all sessions\nRevoke-AzureADUserAllRefreshToken -ObjectId \"user-object-id\"\n\n# Remove role assignments\nRemove-AzRoleAssignment -ObjectId \"sp-object-id\" -RoleDefinitionName \"Contributor\"\n\n# Isolate VM with NSG deny-all rule\n$nsg = New-AzNetworkSecurityGroup -Name \"isolate-nsg\" -ResourceGroupName \"rg\" -Location \"eastus\"\n$nsg | Add-AzNetworkSecurityRuleConfig -Name \"DenyAll\" -Priority 100 -Direction Inbound `\n  -Access Deny -Protocol * -SourceAddressPrefix * -SourcePortRange * `\n  -DestinationAddressPrefix * -DestinationPortRange *\n```\n\n### Step 3: Preserve Cloud Evidence\n\nCollect evidence before ephemeral resources are terminated or logs rotate:\n\n**AWS Evidence Collection:**\n- Export CloudTrail events to S3 in the forensic account\n- Snapshot EBS volumes of compromised EC2 instances\n- Copy S3 access logs and object versions\n- Export VPC Flow Logs for the affected VPC\n- Capture IAM credential reports and access advisor data\n\n**Azure Evidence Collection:**\n- Export Azure Activity Logs and Sign-in Logs (90-day retention by default)\n- Snapshot managed disks of compromised VMs\n- Export Azure AD audit logs\n- Capture NSG flow logs\n- Export Conditional Access sign-in details\n\n**GCP Evidence Collection:**\n- Export Cloud Audit Logs to a forensic storage bucket\n- Snapshot persistent disks of compromised VMs\n- Export VPC Flow Logs\n- Capture IAM policy snapshots\n\n### Step 4: Investigate Cloud-Specific Attack Patterns\n\nAnalyze logs for common cloud attack techniques:\n\n```\nCommon Cloud Attack Patterns:\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n1. Credential Compromise → IAM Privilege Escalation → Resource Abuse\n2. Public S3\u002FBlob → Data Exfiltration\n3. SSRF from Web App → IMDS Token Theft → Lateral Movement\n4. Compromised CI\u002FCD Pipeline → Malicious Deployment\n5. Cross-Account Role Abuse → Multi-Account Pivot\n6. Lambda\u002FFunction Abuse → Crypto-mining or Data Processing\n```\n\n**IMDS Token Theft Investigation (AWS):**\n```bash\n# Search CloudTrail for API calls using instance role credentials from external IP\naws cloudtrail lookup-events --lookup-attributes \\\n  AttributeKey=EventSource,AttributeValue=ec2.amazonaws.com \\\n  --start-time 2025-11-14 --end-time 2025-11-16 \\\n  | jq '.Events[] | select(.CloudTrailEvent | fromjson | .sourceIPAddress != \"internal\")'\n```\n\n### Step 5: Eradicate and Recover\n\nRemove adversary access and restore secure state:\n\n- Rotate all compromised credentials (access keys, passwords, service principal secrets)\n- Remove unauthorized IAM users, roles, policies, and access keys created by the attacker\n- Terminate unauthorized compute instances (crypto-miners, C2 servers)\n- Restore modified S3 bucket policies and storage access policies to pre-incident state\n- Re-enable security controls that were disabled (CloudTrail, GuardDuty, Defender for Cloud)\n- Review and restore Conditional Access policies and MFA configurations\n\n### Step 6: Post-Incident Cloud Hardening\n\nImplement controls to prevent recurrence:\n\n- Enable MFA for all IAM users and require MFA for sensitive API calls\n- Implement SCPs (AWS) or Azure Policy to prevent logging disablement\n- Enable GuardDuty \u002F Defender for Cloud \u002F Security Command Center with auto-remediation\n- Implement least-privilege IAM policies using access analyzer data\n- Enable IMDS v2 (token-required) on all EC2 instances to prevent SSRF-based token theft\n- Configure budget alerts to detect crypto-mining cost spikes\n\n## Key Concepts\n\n| Term | Definition |\n|------|------------|\n| **IMDS (Instance Metadata Service)** | Cloud service providing instance credentials accessible from within a VM; SSRF attacks target IMDS to steal tokens |\n| **CloudTrail** | AWS service logging all API calls across the AWS account; primary evidence source for AWS incident response |\n| **Service Principal** | Non-human identity in Azure AD used by applications and services; compromise enables persistent API access |\n| **SCP (Service Control Policy)** | AWS Organizations policy that limits the maximum permissions available to accounts; useful for guardrails |\n| **Ephemeral Infrastructure** | Cloud resources (containers, functions, auto-scaled instances) that may be terminated before evidence can be collected |\n| **Cross-Account Role Assumption** | AWS mechanism allowing one account to temporarily access resources in another; attackers pivot through assumed roles |\n\n## Tools & Systems\n\n- **AWS CloudTrail \u002F Azure Activity Logs \u002F GCP Audit Logs**: Cloud-native API logging services providing the primary audit trail\n- **Cado Response**: Cloud-native forensics platform for automated evidence capture from AWS, Azure, and GCP\n- **Prowler (AWS) \u002F ScoutSuite (multi-cloud)**: Open-source cloud security assessment tools for post-incident posture review\n- **Steampipe**: Open-source SQL-based tool for querying cloud APIs to investigate IAM configurations and resource states\n- **Cartography (Lyft)**: Open-source tool for mapping cloud infrastructure relationships and identifying attack paths\n\n## Common Scenarios\n\n### Scenario: AWS Access Key Compromised via Public GitHub Repository\n\n**Context**: AWS GuardDuty alerts on API calls from an unexpected IP address using an IAM user's access key. The key was accidentally committed to a public GitHub repository 4 hours ago.\n\n**Approach**:\n1. Immediately disable the compromised access key via AWS IAM\n2. Attach AWSDenyAll policy to the affected IAM user\n3. Query CloudTrail for all API calls made with the compromised key since exposure\n4. Identify resources created or modified by the attacker (EC2 instances for crypto-mining, new IAM users for persistence)\n5. Terminate unauthorized resources and remove backdoor IAM entities\n6. Rotate all credentials the compromised user had access to\n7. Enable GitHub secret scanning to prevent future credential leaks\n\n**Pitfalls**:\n- Only disabling the access key without checking for new access keys or IAM users created as persistence\n- Not checking all AWS regions for attacker-created resources (crypto-miners deployed in every region)\n- Forgetting to revoke temporary credentials from assumed roles (STS tokens remain valid until expiry)\n- Not calculating the financial impact of unauthorized resource usage for insurance claims\n\n## Output Format\n\n```\nCLOUD INCIDENT RESPONSE REPORT\n================================\nIncident:          INC-2025-1705\nCloud Provider:    AWS (Account: 123456789012)\nDate Detected:     2025-11-15T14:00:00Z\nDetection Source:  GuardDuty - UnauthorizedAccess:IAMUser\u002FInstanceCredentialExfiltration\n\nCOMPROMISE SUMMARY\nInitial Access:    IAM access key exposed in public GitHub repo\nAffected Identity: iam-user: deploy-bot (AKIA...)\nAttacker IP:       203.0.113.42 (VPN exit node, Netherlands)\nDuration:          4 hours (10:00 UTC - 14:00 UTC)\n\nATTACKER ACTIVITY (from CloudTrail)\n10:15 UTC - DescribeInstances (reconnaissance)\n10:18 UTC - RunInstances x 12 (c5.4xlarge, all regions - crypto-mining)\n10:22 UTC - CreateUser \"backup-admin\" (persistence)\n10:23 UTC - CreateAccessKey for \"backup-admin\"\n10:25 UTC - AttachUserPolicy - AdministratorAccess to \"backup-admin\"\n10:30 UTC - PutBucketPolicy - s3:\u002F\u002Fdata-bucket made public (exfiltration)\n\nCONTAINMENT ACTIONS\n[x] Original access key disabled\n[x] User policy set to AWSDenyAll\n[x] Backdoor IAM user \"backup-admin\" deleted\n[x] 12 crypto-mining instances terminated (all regions)\n[x] S3 bucket policy restored to private\n\nFINANCIAL IMPACT\nUnauthorized EC2: $2,847 (4 hours x 12 x c5.4xlarge)\nData Transfer:    $127 (S3 public access data egress)\nTotal:            $2,974\n\nPOST-INCIDENT HARDENING\n1. GitHub secret scanning enabled\n2. Access key rotation policy implemented\n3. SCP preventing CloudTrail disablement deployed\n4. GuardDuty auto-remediation Lambda configured\n```\n","# Conducting Cloud Incident Response\n\n## When to Use\n\n- Cloud security posture management (CSPM) alerts on unauthorized resource changes\n- CloudTrail, Azure Activity Logs, or GCP Audit Logs show suspicious API calls\n- Cloud access keys or service principal credentials are suspected compromised\n- Unauthorized compute instances, storage buckets, or IAM changes are detected\n- A cloud-hosted application is breached and attacker activity spans cloud services\n\n**Do not use** for on-premises-only incidents with no cloud component; use standard enterprise IR procedures.\n\n## Prerequisites\n\n- Cloud-native logging enabled and centralized: AWS CloudTrail (all regions), Azure Activity\u002FSign-in Logs, GCP Cloud Audit Logs\n- IR-specific cloud IAM roles pre-provisioned with read-only forensic access\n- Isolated forensic account\u002Fsubscription\u002Fproject for evidence preservation\n- Cloud incident response runbooks specific to each cloud provider\n- Cloud-native security tools: AWS GuardDuty, Azure Defender for Cloud, GCP Security Command Center\n- Network traffic logging: VPC Flow Logs (AWS\u002FGCP), NSG Flow Logs (Azure)\n\n## Workflow\n\n### Step 1: Detect and Confirm the Cloud Incident\n\nIdentify the scope and nature of the compromise:\n\n**AWS Indicators:**\n```\nCloudTrail suspicious events to investigate:\n- ConsoleLogin from unexpected geolocation or IP\n- CreateAccessKey for existing IAM user (persistence)\n- RunInstances for crypto-mining (large instance types)\n- PutBucketPolicy making S3 bucket public\n- AssumeRole to cross-account roles\n- DeleteTrail or StopLogging (defense evasion)\n- CreateUser or AttachUserPolicy (privilege escalation)\n```\n\n**Azure Indicators:**\n```\nAzure Activity Log events to investigate:\n- Sign-in from anonymous IP or TOR exit node\n- Service principal credential added\n- Role assignment changes (Owner, Contributor added)\n- VM created in unusual region\n- Storage account access key regenerated\n- Conditional Access policy modified or deleted\n- MFA disabled for user account\n```\n\n**GCP Indicators:**\n```\nGCP Audit Log events to investigate:\n- SetIamPolicy changes granting broad access\n- CreateServiceAccountKey for existing SA\n- InsertInstance in unexpected zone\n- SetBucketIamPolicy with allUsers\n- DeleteLog or UpdateSink (log tampering)\n```\n\n### Step 2: Contain Cloud Identity Compromise\n\nCloud containment is primarily an identity operation:\n\n**AWS Containment:**\n```bash\n# Disable compromised IAM access keys\naws iam update-access-key --user-name compromised-user \\\n  --access-key-id AKIA... --status Inactive\n\n# Attach deny-all policy to compromised user\naws iam attach-user-policy --user-name compromised-user \\\n  --policy-arn arn:aws:iam::aws:policy\u002FAWSDenyAll\n\n# Revoke all active sessions for compromised IAM role\naws iam put-role-policy --role-name compromised-role \\\n  --policy-name RevokeOlderSessions --policy-document '{\n    \"Version\":\"2012-10-17\",\n    \"Statement\":[{\n      \"Effect\":\"Deny\",\n      \"Action\":\"*\",\n      \"Resource\":\"*\",\n      \"Condition\":{\"DateLessThan\":\n        {\"aws:TokenIssueTime\":\"2025-11-15T15:00:00Z\"}}\n    }]\n  }'\n\n# Isolate compromised EC2 instance\naws ec2 modify-instance-attribute --instance-id i-0abc123 \\\n  --groups sg-isolate-forensic\n```\n\n**Azure Containment:**\n```powershell\n# Disable compromised user\nSet-AzureADUser -ObjectId \"user@tenant.onmicrosoft.com\" -AccountEnabled $false\n\n# Revoke all sessions\nRevoke-AzureADUserAllRefreshToken -ObjectId \"user-object-id\"\n\n# Remove role assignments\nRemove-AzRoleAssignment -ObjectId \"sp-object-id\" -RoleDefinitionName \"Contributor\"\n\n# Isolate VM with NSG deny-all rule\n$nsg = New-AzNetworkSecurityGroup -Name \"isolate-nsg\" -ResourceGroupName \"rg\" -Location \"eastus\"\n$nsg | Add-AzNetworkSecurityRuleConfig -Name \"DenyAll\" -Priority 100 -Direction Inbound `\n  -Access Deny -Protocol * -SourceAddressPrefix * -SourcePortRange * `\n  -DestinationAddressPrefix * -DestinationPortRange *\n```\n\n### Step 3: Preserve Cloud Evidence\n\nCollect evidence before ephemeral resources are terminated or logs rotate:\n\n**AWS Evidence Collection:**\n- Export CloudTrail events to S3 in the forensic account\n- Snapshot EBS volumes of compromised EC2 instances\n- Copy S3 access logs and object versions\n- Export VPC Flow Logs for the affected VPC\n- Capture IAM credential reports and access advisor data\n\n**Azure Evidence Collection:**\n- Export Azure Activity Logs and Sign-in Logs (90-day retention by default)\n- Snapshot managed disks of compromised VMs\n- Export Azure AD audit logs\n- Capture NSG flow logs\n- Export Conditional Access sign-in details\n\n**GCP Evidence Collection:**\n- Export Cloud Audit Logs to a forensic storage bucket\n- Snapshot persistent disks of compromised VMs\n- Export VPC Flow Logs\n- Capture IAM policy snapshots\n\n### Step 4: Investigate Cloud-Specific Attack Patterns\n\nAnalyze logs for common cloud attack techniques:\n\n```\nCommon Cloud Attack Patterns:\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n1. Credential Compromise → IAM Privilege Escalation → Resource Abuse\n2. Public S3\u002FBlob → Data Exfiltration\n3. SSRF from Web App → IMDS Token Theft → Lateral Movement\n4. Compromised CI\u002FCD Pipeline → Malicious Deployment\n5. Cross-Account Role Abuse → Multi-Account Pivot\n6. Lambda\u002FFunction Abuse → Crypto-mining or Data Processing\n```\n\n**IMDS Token Theft Investigation (AWS):**\n```bash\n# Search CloudTrail for API calls using instance role credentials from external IP\naws cloudtrail lookup-events --lookup-attributes \\\n  AttributeKey=EventSource,AttributeValue=ec2.amazonaws.com \\\n  --start-time 2025-11-14 --end-time 2025-11-16 \\\n  | jq '.Events[] | select(.CloudTrailEvent | fromjson | .sourceIPAddress != \"internal\")'\n```\n\n### Step 5: Eradicate and Recover\n\nRemove adversary access and restore secure state:\n\n- Rotate all compromised credentials (access keys, passwords, service principal secrets)\n- Remove unauthorized IAM users, roles, policies, and access keys created by the attacker\n- Terminate unauthorized compute instances (crypto-miners, C2 servers)\n- Restore modified S3 bucket policies and storage access policies to pre-incident state\n- Re-enable security controls that were disabled (CloudTrail, GuardDuty, Defender for Cloud)\n- Review and restore Conditional Access policies and MFA configurations\n\n### Step 6: Post-Incident Cloud Hardening\n\nImplement controls to prevent recurrence:\n\n- Enable MFA for all IAM users and require MFA for sensitive API calls\n- Implement SCPs (AWS) or Azure Policy to prevent logging disablement\n- Enable GuardDuty \u002F Defender for Cloud \u002F Security Command Center with auto-remediation\n- Implement least-privilege IAM policies using access analyzer data\n- Enable IMDS v2 (token-required) on all EC2 instances to prevent SSRF-based token theft\n- Configure budget alerts to detect crypto-mining cost spikes\n\n## Key Concepts\n\n| Term | Definition |\n|------|------------|\n| **IMDS (Instance Metadata Service)** | Cloud service providing instance credentials accessible from within a VM; SSRF attacks target IMDS to steal tokens |\n| **CloudTrail** | AWS service logging all API calls across the AWS account; primary evidence source for AWS incident response |\n| **Service Principal** | Non-human identity in Azure AD used by applications and services; compromise enables persistent API access |\n| **SCP (Service Control Policy)** | AWS Organizations policy that limits the maximum permissions available to accounts; useful for guardrails |\n| **Ephemeral Infrastructure** | Cloud resources (containers, functions, auto-scaled instances) that may be terminated before evidence can be collected |\n| **Cross-Account Role Assumption** | AWS mechanism allowing one account to temporarily access resources in another; attackers pivot through assumed roles |\n\n## Tools & Systems\n\n- **AWS CloudTrail \u002F Azure Activity Logs \u002F GCP Audit Logs**: Cloud-native API logging services providing the primary audit trail\n- **Cado Response**: Cloud-native forensics platform for automated evidence capture from AWS, Azure, and GCP\n- **Prowler (AWS) \u002F ScoutSuite (multi-cloud)**: Open-source cloud security assessment tools for post-incident posture review\n- **Steampipe**: Open-source SQL-based tool for querying cloud APIs to investigate IAM configurations and resource states\n- **Cartography (Lyft)**: Open-source tool for mapping cloud infrastructure relationships and identifying attack paths\n\n## Common Scenarios\n\n### Scenario: AWS Access Key Compromised via Public GitHub Repository\n\n**Context**: AWS GuardDuty alerts on API calls from an unexpected IP address using an IAM user's access key. The key was accidentally committed to a public GitHub repository 4 hours ago.\n\n**Approach**:\n1. Immediately disable the compromised access key via AWS IAM\n2. Attach AWSDenyAll policy to the affected IAM user\n3. Query CloudTrail for all API calls made with the compromised key since exposure\n4. Identify resources created or modified by the attacker (EC2 instances for crypto-mining, new IAM users for persistence)\n5. Terminate unauthorized resources and remove backdoor IAM entities\n6. Rotate all credentials the compromised user had access to\n7. Enable GitHub secret scanning to prevent future credential leaks\n\n**Pitfalls**:\n- Only disabling the access key without checking for new access keys or IAM users created as persistence\n- Not checking all AWS regions for attacker-created resources (crypto-miners deployed in every region)\n- Forgetting to revoke temporary credentials from assumed roles (STS tokens remain valid until expiry)\n- Not calculating the financial impact of unauthorized resource usage for insurance claims\n\n## Output Format\n\n```\nCLOUD INCIDENT RESPONSE REPORT\n================================\nIncident:          INC-2025-1705\nCloud Provider:    AWS (Account: 123456789012)\nDate Detected:     2025-11-15T14:00:00Z\nDetection Source:  GuardDuty - UnauthorizedAccess:IAMUser\u002FInstanceCredentialExfiltration\n\nCOMPROMISE SUMMARY\nInitial Access:    IAM access key exposed in public GitHub repo\nAffected Identity: iam-user: deploy-bot (AKIA...)\nAttacker IP:       203.0.113.42 (VPN exit node, Netherlands)\nDuration:          4 hours (10:00 UTC - 14:00 UTC)\n\nATTACKER ACTIVITY (from CloudTrail)\n10:15 UTC - DescribeInstances (reconnaissance)\n10:18 UTC - RunInstances x 12 (c5.4xlarge, all regions - crypto-mining)\n10:22 UTC - CreateUser \"backup-admin\" (persistence)\n10:23 UTC - CreateAccessKey for \"backup-admin\"\n10:25 UTC - AttachUserPolicy - AdministratorAccess to \"backup-admin\"\n10:30 UTC - PutBucketPolicy - s3:\u002F\u002Fdata-bucket made public (exfiltration)\n\nCONTAINMENT ACTIONS\n[x] Original access key disabled\n[x] User policy set to AWSDenyAll\n[x] Backdoor IAM user \"backup-admin\" deleted\n[x] 12 crypto-mining instances terminated (all regions)\n[x] S3 bucket policy restored to private\n\nFINANCIAL IMPACT\nUnauthorized EC2: $2,847 (4 hours x 12 x c5.4xlarge)\nData Transfer:    $127 (S3 public access data egress)\nTotal:            $2,974\n\nPOST-INCIDENT HARDENING\n1. GitHub secret scanning enabled\n2. Access key rotation policy implemented\n3. SCP preventing CloudTrail disablement deployed\n4. GuardDuty auto-remediation Lambda configured\n```\n",{"name":5,"tags":44,"author":50,"domain":38,"license":15,"version":51,"subdomain":52,"description":53},[45,46,47,48,49],"cloud-IR","AWS-forensics","Azure-incident-response","GCP-security","identity-containment","mahipal","1.0.0","incident-response","Responds to security incidents in cloud environments (AWS, Azure, GCP) by performing identity-based containment, cloud-native log analysis, resource isolation, and forensic evidence acquisition adapted for ephemeral cloud infrastructure. Activates for requests involving cloud incident response, AWS security incident, Azure compromise, GCP breach, cloud forensics, or cloud identity compromise.\n","main","4d2fb89cdfb75f3f6fd3c6c5ec9ad90ea129eb3c","ai-agent-skills\u002F21-external-registries\u002F08-pinkpixel-collection\u002Fconducting-cloud-incident-response",1,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai","https:\u002F\u002Fgithub.com\u002Fluokai0","a solo builder.","2026-05-06 04:29:04",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill conducting-cloud-incident-response",{"tool":68,"command":69},"bunx","bunx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill conducting-cloud-incident-response",{"tool":71,"command":72},"pnpm","pnpm dlx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill conducting-cloud-incident-response","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F08-pinkpixel-collection\u002Fconducting-cloud-incident-response\u002FSKILL.md",true,[76,81,87],{"path":77,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"LICENSE","许可证",11255,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F08-pinkpixel-collection\u002Fconducting-cloud-incident-response\u002FLICENSE",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"references\u002Fapi-reference.md","REFERENCE","参考文档",2464,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F08-pinkpixel-collection\u002Fconducting-cloud-incident-response\u002Freferences\u002Fapi-reference.md",{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"scripts\u002Fagent.py","SCRIPT","脚本",7627,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F21-external-registries\u002F08-pinkpixel-collection\u002Fconducting-cloud-incident-response\u002Fscripts\u002Fagent.py",[94,122,139,169,202,239],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":98,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":39},"01M6F2SKTE208174C7S7JJCZC7","write-contracts","Generates secure Aptos Move V2 smart contracts with Object model, Digital Asset integration, security patterns, and storage type guidance. Includes comprehensive storage decision framework for optimal data structure selection. Triggers on: 'write contract', 'create NFT collection', 'build marketplace', 'implement minting', 'generate Move module', 'create token contract', 'build DAO', 'implement staking'. Ask storage questions when: 'store', 'track', 'registry', 'mapping', 'list', 'collection'.","MIT","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fwrite-contracts\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121],"write","contracts","write contracts","storage","secure","create","generate","collection","model","decision","ask","smart-contracts","selection","objects","structure","nft","token","aptos","critical","move",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":98,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":39},"01M6F2RFXJ6T9MKW0A7N7GM45B","web-search","通用网络搜索技能，支持多引擎搜索（百度、必应、DuckDuckGo），无需API密钥即可获取实时信息","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fweb-search-ex-skill\u002FSKILL.md",[],[129,130,131,132,133,134,135,136,137,138],"web","search","web search","搜索","baidu","bing","duckduckgo","百度","多引擎","internet",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":98,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":150,"publishedAt":39},"01M6F2K968G1FZEZFPW2E6B222","solo-build","Execute implementation plan tasks with TDD workflow, auto-commit, and phase gates. Use when user says \"build it\", \"start building\", \"execute plan\", \"implement tasks\", \"ship it\", or references a track ID. Do NOT use for planning (use \u002Fplan) or scaffolding (use \u002Fscaffold).","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fsolo-build\u002FSKILL.md",[145],{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[151,152,153,154,155,156,157,158,130,159,160,161,102,162,163,164,165,166,167,168],"build","solo","solo build","MCP","workflow","commit","tasks","code","Bash","plan","read","auto","references","context7","query","scaffolding","ship it","project",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":98,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":181,"publishedAt":39},"01M6F2GKN39SGHSPWYB3662YC8","react-email","Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Freact-email-skills\u002FSKILL.md",[175,178],{"categoryNo":176,"categoryName":177,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":179,"categoryName":180,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000009","前端开发",[182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201],"react","email","react email","github","editor","components","react components","component","welcome","https","notifications","password","node","use","html","resend","visual","emails","rendering","with",{"skillNo":203,"name":204,"nameZh":6,"description":205,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":98,"licenseFileUrl":6,"sourceHtmlUrl":206,"categories":207,"keywords":220,"publishedAt":39},"01M6F2FBVGVDFSG8SSFJGXA40C","APITester Agent-Driven API Testing","Test API endpoints and document responses. Define tests in plain English, run them, get formatted results. Agent-driven Postman alternative.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fopenclaw-api-tester\u002FSKILL.md",[208,211,214,215],{"categoryNo":209,"categoryName":210,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":212,"categoryName":213,"taxonomyType":148,"taxonomyTypeDesc":149},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":146,"categoryName":147,"taxonomyType":148,"taxonomyTypeDesc":149},{"categoryNo":216,"categoryName":217,"taxonomyType":218,"taxonomyTypeDesc":219},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238],"testing","api","api testing","driven","APITester Agent Driven API Testing","test","run","postman","results","plain english","tester","endpoints","document","get","define","tests","english","api-tester",{"skillNo":240,"name":241,"nameZh":6,"description":242,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":98,"licenseFileUrl":6,"sourceHtmlUrl":243,"categories":244,"keywords":245,"publishedAt":39},"01M6F273Y3NGAPVJZ608BC0G9G","hubspot-implementation-plan","Generate a phased implementation plan from a HubSpot audit report. Creates prioritized, sequenced cleanup processes with effort estimates, dependencies, and automation feasibility. Use after running \u002Fhubspot-audit.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fhubspot-implementation-plan\u002FSKILL.md",[],[160,246,247,248,249,250,251,108,252,253,254,255,256,195,257,258,201,259],"implementation","hubspot","hubspot implementation plan","automation","feasibility","cleanup","planning","report","audit","audit report","phased implementation","dependencies","processes","hubspot audit"]