开了 GuardDuty 一周,发现 EC2 被人暴力破解 SSH 了

开了 GuardDuty 一周,发现 EC2 被人暴力破解 SSH 了

跑 OpenClaw 龙虾的 EC2 服务器,凌晨 3 点收到了一堆 SSH 登录失败记录。

这事我完全不知道。是翻 CloudTrail 日志时偶然看到的------有人拿暴力破解工具在试密码。虽然我用密钥登录(密码早关了),但问题是,如果不翻日志,这种事永远不会知道

后来配了 Amazon GuardDuty,开启后它帮我自动检测各种威胁:暴力破解、异常 API 调用、恶意出站流量,都能发现并告警。

这篇记录一下怎么给 AI Agent 服务器配 GuardDuty,以及实际开了之后发现了什么。

GuardDuty 干嘛的

Amazon GuardDuty 是亚马逊云科技的托管威胁检测服务

它分析三种数据源:

  • CloudTrail 日志:哪个 IP 调了什么 API(比如凌晨从陌生 IP 调了 Bedrock)
  • VPC Flow Logs:哪台机器和哪个 IP 通信了(比如和矿池 IP 建了连接)
  • DNS 日志:解析了什么域名(比如解析了已知恶意域名)

不需要装 Agent,不需要写规则,开了就自动跑。内置威胁情报 + 机器学习模型,把发现的可疑行为输出为 Finding(告警)。

跑 AI Agent 的 EC2 面临什么威胁

说实话,我之前觉得"就一台 EC2 跑跑 OpenClaw,谁会盯上我"。

实际情况是------互联网上的自动扫描器 24 小时在跑,只要你的 EC2 有公网 IP,就会被扫到。

GuardDuty 能帮你检测的典型场景:

威胁 说明 GuardDuty Finding 类型
SSH 暴力破解 有人在试你的密码 UnauthorizedAccess:EC2/SSHBruteForce
端口扫描 扫描器在探测你的开放端口 Recon:EC2/PortProbeUnprotectedPort
凭证被盗用 IAM 密钥从异常位置被使用 UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
挖矿 EC2 被植入矿机 CryptoCurrency:EC2/BitcoinTool.B
恶意出站 和 C&C 服务器通信 Trojan:EC2/BlackholeTraffic
Bedrock 异常 AI 安全防护被移除、模型被盗用 Bedrock 相关 Finding

最后一条重要------GuardDuty 能检测 Amazon Bedrock 相关的异常行为。如果有人偷了你的 IAM 凭证去调大模型(花你的钱),或者 AI 安全防护被异常移除,GuardDuty 都能发现。

一行命令开启

bash 复制代码
aws guardduty create-detector --enable --finding-publishing-frequency FIFTEEN_MINUTES

FIFTEEN_MINUTES 是告警发布频率(默认 6 小时,太慢了)。

开了之后不需要其他配置。GuardDuty 会自动分析你账号下的 CloudTrail、VPC Flow Logs、DNS 日志。

开额外保护模块

GuardDuty 有几个可选的增强模块,建议都开上:

bash 复制代码
# 先拿 detector ID
DETECTOR_ID=$(aws guardduty list-detectors --query 'DetectorIds[0]' --output text)

# EBS 恶意软件扫描------EC2 被入侵后自动扫描磁盘
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --features '[{"Name":"EBS_MALWARE_PROTECTION","Status":"ENABLED"}]'

# Runtime Monitoring------监控 EC2 上的进程/文件/网络行为
aws guardduty update-detector \
  --detector-id $DETECTOR_ID \
  --features '[{"Name":"RUNTIME_MONITORING","Status":"ENABLED","AdditionalConfiguration":[{"Name":"EC2_AGENT_MANAGEMENT","Status":"ENABLED"}]}]'

Runtime Monitoring 会在 EC2 上自动部署一个轻量级 Agent,监控运行时行为。如果 AI Agent 被 Prompt 注入后执行了可疑命令(比如反弹 shell),Runtime Monitoring 能抓到。

配告警推送

GuardDuty 发现威胁后生成 Finding,但你得配通知才能收到。

EventBridge + SNS

bash 复制代码
# 创建通知主题
aws sns create-topic --name guardduty-alerts
aws sns subscribe \
  --topic-arn arn:aws:sns:us-west-2:123456789012:guardduty-alerts \
  --protocol email \
  --notification-endpoint your@email.com

# EventBridge 规则:只推送严重性 ≥ 7 的高危告警
aws events put-rule \
  --name guardduty-high-severity \
  --event-pattern '{
    "source": ["aws.guardduty"],
    "detail-type": ["GuardDuty Finding"],
    "detail": {
      "severity": [{"numeric": [">=", 7]}]
    }
  }'

# 关联 SNS
aws events put-targets \
  --rule guardduty-high-severity \
  --targets '[{"Id":"sns-target","Arn":"arn:aws:sns:us-west-2:123456789012:guardduty-alerts"}]'

为什么只推 ≥ 7?因为低危的(端口扫描之类的)天天都有,推了也是噪音。高危的才需要立即处理。低危的每天汇总看就行。

我实际收到的 Finding

开了 GuardDuty 一周,实际收到这些:

1. SSH 暴力破解(严重性 Medium)

yaml 复制代码
Finding Type: UnauthorizedAccess:EC2/SSHBruteForce
Description: EC2 instance is being probed with SSH brute force attacks
Actor: 185.xxx.xxx.xxx (Netherlands, ISP: OVH)
Target Port: 22
Count: 847 attempts in 6 hours

847 次尝试,来自荷兰的 IP。如果我用的是弱密码,早被破了。

2. 端口扫描(严重性 Low)

yaml 复制代码
Finding Type: Recon:EC2/PortProbeUnprotectedPort
Description: Unprotected port on EC2 instance is being probed
Probed Ports: 3389, 8080, 9090, 6379

扫描器在试 RDP、常见 Web 端口、Redis 端口。好在安全组只开了 22 和 443。

3. DNS 异常查询(严重性 Info)

这个是误报------GuardDuty 把一些正常的 DNS 查询标记了。可以设 Suppression Rule 过滤掉。

查看和管理 Finding

bash 复制代码
# 列出最近的 Finding
aws guardduty list-findings \
  --detector-id $DETECTOR_ID \
  --finding-criteria '{
    "Criterion": {
      "severity": {"Gte": 4}
    }
  }' \
  --sort-criteria '{"AttributeName":"severity","OrderBy":"DESC"}'

# 查看 Finding 详情
aws guardduty get-findings \
  --detector-id $DETECTOR_ID \
  --finding-ids '["finding-id-here"]'

# 标记误报(Archive)
aws guardduty archive-findings \
  --detector-id $DETECTOR_ID \
  --finding-ids '["finding-id-here"]'

# 设置 Suppression Rule(过滤噪音)
aws guardduty create-filter \
  --detector-id $DETECTOR_ID \
  --name "suppress-low-severity" \
  --action ARCHIVE \
  --finding-criteria '{
    "Criterion": {
      "severity": {"Lt": 4}
    }
  }'

成本

数据源 大概费用
CloudTrail 管理事件 免费(已包含)
VPC Flow Logs 分析 每百万事件约 $1
DNS 日志 每百万查询约 $1
EBS 扫描 按扫描量
Runtime Monitoring 按 vCPU 小时

单台 EC2 跑 AI Agent 的场景:每月大约 $3-10。和 OpenClaw 龙虾每天调 Bedrock 大模型的花费比,这个几乎可以忽略。

前 30 天免费试用,建议先开了看看。

小结

给 AI Agent 服务器开 GuardDuty,解决的核心问题是------被攻击了你能知道

不开 GuardDuty 的情况下:SSH 被暴力破解、凭证被盗用、EC2 被植入矿机------除非你天天翻日志,否则可能过了几周才发现(或者账单暴涨了才发现)。

开了之后,高危事件 15 分钟内推送到你手机。

配合前面几篇的 IAM 权限控制、VPC Endpoint 网络隔离、Secrets Manager 密钥管理、CloudTrail 审计日志,GuardDuty 补上了自动检测这一环。

一行命令的事,没理由不开。


以上配置在亚马逊云科技上验证。GuardDuty 提供 30 天免费试用。

相关推荐
我是小邵3 小时前
从 Supabase 迁移到 AWS 的云架构演进实践
架构·云计算·aws
炸裂狸花猫5 小时前
开源身份认证与访问管理平台 - Keycloak(三)公有云Console集成实践(AWS / 阿里云 / OCI)
阿里云·云原生·keycloak·aws·oci·sso
xixixi7777719 小时前
AI的“账号”与“钱包”:AWS与Circle同日出手,AI正从工具进化
人工智能·安全·ai·大模型·云计算·aws
China_Yanhy1 天前
【云原生 AI 实战(二)】大模型训练的“深水区”:从 Pod 成功拉起到 GPU 性能监控与模型导出
人工智能·云原生·aws
翼龙云_cloud1 天前
亚马逊云代理商:DeepSeek V4海外使用指南 AWS部署方案
人工智能·云计算·aws·ai智能体·deepseek v4
因_果_律2 天前
Claude Platform on AWS 的四大亮点功能
ai·云计算·aws
zhojiew3 天前
AWS云上Glue Schema Registry在MSK实时数据流中的schema管理实践
云计算·aws
XD7429716363 天前
科技晚报|2026年5月12日:Claude 进 AWS,AI 落地拼控制面
人工智能·科技·aws·科技新闻·科技晚报
yyuuuzz3 天前
企业出海aws运维常见问题梳理
运维·服务器·网络·数据库·aws
亚马逊云开发者3 天前
亚马逊云科技发布 Quick 桌面端——能读本地文件、连 MCP、还会主动提醒的 AI 助手
aws