detecting-cloud-cryptomining-activity

通过分析计算使用异常、到挖矿池的网络流量、GuardDuty 发现以及使用 AWS、Azure 和 GCP 原生安全服务检测容器工作负载行为,检测云环境中的未授权加密货币挖矿活动。

9 stars

Best use case

detecting-cloud-cryptomining-activity is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

通过分析计算使用异常、到挖矿池的网络流量、GuardDuty 发现以及使用 AWS、Azure 和 GCP 原生安全服务检测容器工作负载行为,检测云环境中的未授权加密货币挖矿活动。

Teams using detecting-cloud-cryptomining-activity should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/detecting-cloud-cryptomining-activity/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/detecting-cloud-cryptomining-activity/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/detecting-cloud-cryptomining-activity/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How detecting-cloud-cryptomining-activity Compares

Feature / Agentdetecting-cloud-cryptomining-activityStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

通过分析计算使用异常、到挖矿池的网络流量、GuardDuty 发现以及使用 AWS、Azure 和 GCP 原生安全服务检测容器工作负载行为,检测云环境中的未授权加密货币挖矿活动。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 检测云加密货币挖矿活动

## 适用场景

- 调查云计算成本或 CPU 利用率意外峰值时
- GuardDuty、Defender for Cloud 或 SCC 报告与加密货币相关的发现时
- 监控被盗凭据用于启动挖矿实例时
- 为云环境中的未授权工作负载部署构建检测规则时
- 响应有关连接到已知挖矿池基础设施的网络告警时

**不适用于**:检测终端或本地服务器上的加密货币挖矿(使用 EDR 工具)、调查挖矿的财务影响(使用云成本管理工具),或在网络层面封锁挖矿(使用 DNS 过滤和防火墙规则)。

## 前置条件

- 跨所有账户和区域启用的 AWS GuardDuty
- 启用了服务器和容器计划的 Azure Defender for Cloud
- 启用了事件威胁检测的 GCP Security Command Center
- 启用 CloudTrail、Azure Activity Log 和 GCP Audit Log 用于 API 监控
- 配置了云成本监控和告警(AWS Cost Anomaly Detection、Azure Cost Management)
- 启用了网络流日志(VPC Flow Logs、NSG Flow Logs)

## 工作流程

### 步骤 1:识别 GuardDuty 加密货币发现(AWS)

查询 GuardDuty 中表示挖矿活动的加密货币专用发现类型。

```bash
# 列出活跃的加密货币相关发现
aws guardduty list-findings \
  --detector-id $(aws guardduty list-detectors --query 'DetectorIds[0]' --output text) \
  --finding-criteria '{
    "Criterion": {
      "type": {
        "Eq": [
          "CryptoCurrency:EC2/BitcoinTool.B!DNS",
          "CryptoCurrency:EC2/BitcoinTool.B",
          "CryptoCurrency:Runtime/BitcoinTool.B!DNS",
          "CryptoCurrency:Runtime/BitcoinTool.B",
          "CryptoCurrency:Lambda/BitcoinTool.B"
        ]
      },
      "service.archived": {"Eq": ["false"]}
    }
  }' --output json

# 获取详细发现
FINDING_IDS=$(aws guardduty list-findings \
  --detector-id $(aws guardduty list-detectors --query 'DetectorIds[0]' --output text) \
  --finding-criteria '{"Criterion":{"type":{"Eq":["CryptoCurrency:EC2/BitcoinTool.B!DNS"]}}}' \
  --query 'FindingIds' --output json)

aws guardduty get-findings \
  --detector-id $(aws guardduty list-detectors --query 'DetectorIds[0]' --output text) \
  --finding-ids $FINDING_IDS \
  --query 'Findings[*].{Type:Type,Severity:Severity,Resource:Resource.InstanceDetails.InstanceId,RemoteIP:Service.Action.NetworkConnectionAction.RemoteIpDetails.IpAddressV4,Domain:Service.Action.DnsRequestAction.Domain}' \
  --output table
```

### 步骤 2:检测计算使用异常

监控意外的计算资源配置和 CPU 利用率峰值,这些可能表明挖矿活动。

```bash
# AWS: 查找最近启动的大型实例(挖矿通常使用 c5/p3/g4 实例)
aws ec2 describe-instances \
  --filters "Name=instance-state-name,Values=running" \
  --query 'Reservations[*].Instances[*].[InstanceId,InstanceType,LaunchTime,Tags[?Key==`Name`].Value|[0]]' \
  --output table | grep -E "c5\.|c6\.|p3\.|p4\.|g4\.|g5\."

# AWS: 检查高 CPU 利用率
aws cloudwatch get-metric-statistics \
  --namespace AWS/EC2 \
  --metric-name CPUUtilization \
  --dimensions Name=InstanceId,Value=i-SUSPECT_INSTANCE \
  --start-time 2026-02-22T00:00:00Z \
  --end-time 2026-02-23T00:00:00Z \
  --period 3600 \
  --statistics Average \
  --query 'Datapoints[*].[Timestamp,Average]' --output table

# AWS: 检查 Cost Anomaly Detection
aws ce get-anomalies \
  --date-interval '{"StartDate":"2026-02-16","EndDate":"2026-02-23"}' \
  --query 'Anomalies[*].[AnomalyId,AnomalyScore.MaxScore,Impact.TotalImpact,RootCauses[0].Service]' \
  --output table

# Azure: 查找具有异常 CPU 模式的虚拟机
az monitor metrics list \
  --resource /subscriptions/SUB_ID/resourceGroups/RG/providers/Microsoft.Compute/virtualMachines/VM_NAME \
  --metric "Percentage CPU" \
  --interval PT1H \
  --start-time 2026-02-22T00:00:00Z \
  --end-time 2026-02-23T00:00:00Z
```

### 步骤 3:分析到挖矿池的网络流量

识别到已知加密货币挖矿池和 Stratum 协议流量的网络连接。

```bash
# 查询 VPC Flow Logs 中到已知挖矿池端口(3333、4444、8333、14444)的连接
# AWS: 使用 CloudWatch Logs Insights
aws logs start-query \
  --log-group-name vpc-flow-logs \
  --start-time $(date -d "24 hours ago" +%s) \
  --end-time $(date +%s) \
  --query-string '
    fields @timestamp, srcAddr, dstAddr, dstPort, bytes
    | filter dstPort in [3333, 4444, 8333, 14444, 14433, 45700]
    | sort bytes desc
    | limit 100
  '

# 检查挖矿池域名的 DNS 查询
aws logs start-query \
  --log-group-name route53-resolver-logs \
  --start-time $(date -d "24 hours ago" +%s) \
  --end-time $(date +%s) \
  --query-string '
    fields @timestamp, query_name, srcids.instance
    | filter query_name like /pool|mining|xmr|monero|nicehash|ethermine|f2pool|nanopool/
    | limit 100
  '

# GCP: 查询 VPC 流日志中的挖矿连接
gcloud logging read '
  resource.type="gce_subnetwork"
  AND jsonPayload.connection.dest_port=(3333 OR 4444 OR 8333 OR 14444)
  AND timestamp>="2026-02-22T00:00:00Z"
' --limit=50 --format=json
```

### 步骤 4:调查容器和无服务器挖矿

检查容器工作负载和无服务器函数中的加密货币挖矿。

```bash
# EKS/Kubernetes: 查找 CPU 使用率高的 Pod
kubectl top pods --all-namespaces --sort-by=cpu | head -20

# 查找可疑的容器镜像
kubectl get pods --all-namespaces -o json | python3 -c "
import json, sys
data = json.load(sys.stdin)
suspicious = ['xmrig', 'monero', 'miner', 'crypto', 'pool', 'hashrate']
for pod in data['items']:
    ns = pod['metadata']['namespace']
    name = pod['metadata']['name']
    for container in pod['spec'].get('containers', []):
        image = container.get('image', '').lower()
        if any(s in image for s in suspicious):
            print(f'可疑: {ns}/{name} -> 镜像: {container[\"image\"]}')
"

# 检查 Lambda 函数是否存在挖矿(异常持续时间和内存)
aws lambda list-functions --query 'Functions[*].[FunctionName,MemorySize,Timeout]' --output table
aws cloudwatch get-metric-statistics \
  --namespace AWS/Lambda \
  --metric-name Duration \
  --dimensions Name=FunctionName,Value=SUSPECT_FUNCTION \
  --start-time 2026-02-22T00:00:00Z \
  --end-time 2026-02-23T00:00:00Z \
  --period 3600 \
  --statistics Average Maximum
```

### 步骤 5:追踪攻击向量

通过分析 API 日志和凭据使用情况,调查挖矿基础设施的部署方式。

```bash
# AWS: 查找谁启动了可疑实例
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::Instance \
  --start-time 2026-02-20T00:00:00Z \
  --query 'Events[?contains(Resources[0].ResourceName, `i-SUSPECT`)].[EventTime,EventName,Username,SourceIPAddress]' \
  --output table

# 检查泄露的凭据是否被使用
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=AccessKeyId,AttributeValue=AKIA_SUSPECT_KEY \
  --query 'Events[*].[EventTime,EventName,SourceIPAddress,EventSource]' \
  --output table

# 检查异常的 API 调用(来自新 IP 的 RunInstances)
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances \
  --start-time 2026-02-20T00:00:00Z \
  --query 'Events[*].[EventTime,Username,SourceIPAddress]' \
  --output table
```

### 步骤 6:遏制和修复

隔离挖矿资源,撤销被入侵的凭据,并实施预防控制。

```bash
# 终止挖矿实例
aws ec2 terminate-instances --instance-ids i-MINING_INSTANCE_1 i-MINING_INSTANCE_2

# 停用被入侵的凭据
aws iam update-access-key --user-name compromised-user \
  --access-key-id AKIA_COMPROMISED --status Inactive

# 添加 SCP 以阻止非生产账户中的大型实例类型
cat > mining-prevention-scp.json << 'EOF'
{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Deny",
    "Action": "ec2:RunInstances",
    "Resource": "arn:aws:ec2:*:*:instance/*",
    "Condition": {
      "ForAnyValue:StringLike": {
        "ec2:InstanceType": ["p3.*", "p4.*", "g4.*", "g5.*"]
      }
    }
  }]
}
EOF

# 设置账单告警以提早检测
aws cloudwatch put-metric-alarm \
  --alarm-name high-ec2-spend \
  --metric-name EstimatedCharges \
  --namespace AWS/Billing \
  --statistic Maximum \
  --period 21600 \
  --threshold 500 \
  --comparison-operator GreaterThanThreshold \
  --alarm-actions arn:aws:sns:us-east-1:ACCOUNT:billing-alerts
```

## 核心概念

| 术语 | 定义 |
|------|------|
| 加密货币挖矿(Cryptomining) | 未授权使用云计算资源挖掘加密货币,通常使用门罗币(XMR),因为其 CPU 挖矿效率和隐私特性 |
| Stratum 协议(Stratum Protocol) | 挖矿池通信协议,通常在端口 3333、4444 或 14444 上运行,用于在矿工和矿池之间协调挖矿工作 |
| GuardDuty 加密货币发现(GuardDuty CryptoCurrency Finding) | AWS 威胁检测发现,标识与已知加密货币挖矿基础设施通信的 EC2、EKS 或 Lambda 资源 |
| Cost Anomaly Detection | AWS 服务,使用机器学习检测可能指示未授权资源配置的异常消费模式 |
| 计算滥用(Compute Abuse) | 未授权使用云计算资源,通常通过被入侵的凭据或被利用的应用程序,用于加密货币挖矿或其他目的 |
| 服务控制策略(Service Control Policy) | AWS Organizations 策略,可限制实例类型或区域,防止攻击者启动 GPU/计算优化型挖矿实例 |

## 工具与系统

- **AWS GuardDuty**:威胁检测服务,包含针对 EC2、EKS 和 Lambda 上加密货币挖矿活动的专用发现类型
- **Azure Defender for Cloud**:通过行为分析和网络威胁情报检测加密货币挖矿
- **GCP Event Threat Detection**:SCC 组件,通过网络分析和进程监控识别加密货币挖矿
- **CloudTrail / Activity Log / Audit Log**:用于追踪挖矿资源如何配置的 API 审计日志
- **VPC Flow Logs**:用于识别到挖矿池基础设施连接的网络流数据

## 常见场景

### 场景:被入侵的 AWS 访问密钥用于启动 GPU 挖矿集群

**场景背景**:账单告警在周末从每天 200 美元激增到 15,000 美元后触发。调查发现 50 个 p3.8xlarge 实例在四个区域运行,全部由一名开发者的访问密钥启动。

**方法**:
1. 查询 GuardDuty 的 CryptoCurrency 发现以确认挖矿活动
2. 立即终止所有区域的所有挖矿实例
3. 停用被入侵的访问密钥,并通过 CloudTrail 检查源 IP
4. 发现密钥通过 TruffleHog 扫描在公开 GitHub 仓库中暴露
5. 轮换被入侵用户的所有凭据
6. 实施 SCP 以拒绝非生产账户中的 GPU 实例类型
7. 启用具有自动告警的 AWS Cost Anomaly Detection
8. 在整个开发团队中设置 git-secrets 预提交钩子

**常见陷阱**:加密货币矿工通常在账户没有监控的区域启动实例。在所有区域启用 GuardDuty。挖矿实例可能使用在实例终止后仍然存在的竞价请求,因此还需取消攻击者创建的任何活跃的竞价机群请求和自动扩展组。

## 输出格式

```
云加密货币挖矿事件报告
=====================================
账户: 123456789012(生产环境)
检测日期: 2026-02-23
告警来源: AWS Cost Anomaly Detection + GuardDuty

事件摘要:
  启动的挖矿实例: 50 个(p3.8xlarge)
  受影响区域: us-east-1, us-west-2, eu-west-1, ap-southeast-1
  持续时间: 约 48 小时(2月21日 14:00 UTC 至 2月23日 10:00 UTC)
  估计成本影响: 28,400 美元
  挖掘的加密货币: 门罗币(XMR)

攻击向量:
  被入侵的凭据: AKIA...WXYZ(developer-user)
  暴露方式: 硬编码在公开 GitHub 仓库中
  首次未授权 API 调用: 2月21日 13:47 UTC 来自 IP 185.x.x.x

GUARDDUTY 发现:
  CryptoCurrency:EC2/BitcoinTool.B!DNS: 50 个发现
  UnauthorizedAccess:EC2/TorIPCaller: 3 个发现

遏制操作:
  [x] 所有挖矿实例已终止
  [x] 被入侵的访问密钥已停用
  [x] 通过 Secrets Manager 颁发了新访问密钥
  [x] SCP 已应用以拒绝 GPU 实例类型
  [x] 已配置成本异常告警
  [x] 已在所有区域启用 GuardDuty
```

Related Skills

securing-kubernetes-on-cloud

9
from killvxk/cybersecurity-skills-zh

本技能涵盖通过实施 Pod 安全标准(Pod Security Standards)、网络策略、工作负载身份、RBAC 权限控制、镜像准入控制和运行时安全监控,对 EKS、AKS 和 GKE 上的托管 Kubernetes 集群进行加固。涉及云平台特定安全功能,包括 EKS 的 IRSA、GKE 的工作负载身份(Workload Identity)以及 AKS 的托管身份(Managed Identity)。

performing-cloud-storage-forensic-acquisition

9
from killvxk/cybersecurity-skills-zh

通过收集 API 远程数据和端点设备本地同步客户端制品,对 Google Drive、OneDrive、Dropbox 和 Box 等云存储服务执行取证获取和分析。

performing-cloud-penetration-testing

9
from killvxk/cybersecurity-skills-zh

对 AWS、Azure 和 GCP 云环境执行授权渗透测试,识别 IAM 错误配置、暴露的存储桶、过度宽松的安全组、 无服务器函数漏洞以及从初始访问到账户沦陷的云特定攻击路径。测试人员使用云原生工具及 Pacu、 ScoutSuite 等专用框架枚举并利用云基础设施。适用于云渗透测试、AWS 安全评估、Azure 渗透测试 或云基础设施安全测试等请求场景。

performing-cloud-penetration-testing-with-pacu

9
from killvxk/cybersecurity-skills-zh

使用开源 AWS 利用框架 Pacu 执行已授权的 AWS 渗透测试,枚举 IAM 配置、发现权限提升路径、测试凭据收集,并通过系统化的攻击模拟验证安全控制。

performing-cloud-native-forensics-with-falco

9
from killvxk/cybersecurity-skills-zh

使用 Falco YAML 规则在容器和 Kubernetes 中进行运行时威胁检测,监控系统调用以检测 shell 生成、文件篡改、网络异常和权限提升。通过 Falco gRPC API 管理 Falco 规则并解析 Falco 告警输出。适用于构建容器运行时安全或调查 k8s 集群入侵。

performing-cloud-incident-containment-procedures

9
from killvxk/cybersecurity-skills-zh

在 AWS、Azure 和 GCP 中执行云原生事件遏制,包括隔离受攻陷资源、撤销凭据、保全取证证据,以及应用安全组限制以防止横向移动。

performing-cloud-forensics-with-aws-cloudtrail

9
from killvxk/cybersecurity-skills-zh

使用 CloudTrail 日志对 AWS 环境执行取证调查,重建攻击者活动、识别受损凭据并分析 API 调用模式。

performing-cloud-forensics-investigation

9
from killvxk/cybersecurity-skills-zh

通过收集和分析来自 AWS、Azure 和 GCP 服务的日志、快照和元数据,在云环境中开展取证调查。

performing-cloud-asset-inventory-with-cartography

9
from killvxk/cybersecurity-skills-zh

使用 Cartography 执行全面的云资产清单和关系映射,在 AWS、GCP 和 Azure 中构建包含基础设施资产、IAM 权限和攻击路径的 Neo4j 安全图谱。

managing-cloud-identity-with-okta

9
from killvxk/cybersecurity-skills-zh

本技能涵盖将 Okta 部署为云环境集中身份提供商,配置与 AWS、Azure 和 GCP 的 SSO 集成,使用 Okta FastPass 部署抗钓鱼 MFA,管理用户预配置和取消配置的生命周期自动化,以及基于设备态势和风险信号实施自适应访问策略。

implementing-zero-trust-in-cloud

9
from killvxk/cybersecurity-skills-zh

本技能指导组织按照 NIST SP 800-207 和 Google BeyondCorp 原则在云环境中实施零信任(Zero Trust)架构,涵盖以身份为中心的访问控制、微分段(Micro-Segmentation)、持续验证、设备信任评估,以及部署身份感知代理(Identity-Aware Proxy)以消除 AWS、Azure 和 GCP 环境中的隐式网络信任。

implementing-ddos-mitigation-with-cloudflare

9
from killvxk/cybersecurity-skills-zh

配置 Cloudflare DDoS 防护,包括托管规则集、速率限制、WAF 规则、Bot 管理和源站保护,以缓解容量型、协议型和应用层攻击。