如何使用 GuardDuty 标识 Linux 实例受到的 SSH 暴力攻击?

1 分钟阅读
0

我的 Amazon Elastic Compute Cloud(Amazon EC2)Linux 实例受到 SSH 暴力攻击。我想要使用 Amazon GuardDuty 阻止这些攻击。

简短描述

攻击可能会发生,因为类型 SSH 的规则允许来自端口范围 22 上的所有源 (0.0.0.0/0) 的连接。允许端口范围 22 上的 0.0.0.0/0 将带来安全风险。

通常,这些攻击来自正在寻找目标以入侵 EC2 实例的自动程序。您可以通过限制 SSH 访问来减少入侵的风险。最佳实践是将安全组配置为仅允许来自您拥有的特定源(例如,堡垒主机)的 SSH 访问。

解决方法

您可以使用 GuardDuty 来监视和检测 AWS 环境中的可疑行为。以下示例使用 GuardDuty 对受到 SSH 暴力攻击的 EC2 实例进行问题排查。在此示例中,安全组允许通过互联网从来源进行 SSH 访问。

  1. 打开 Amazon EC2 控制台
  2. 在新选项卡中打开 GuardDuty 控制台
  3. EC2 控制台中,选择 Security Groups(安全组),再选择一个安全组,然后选择 Inbound(入站)选项卡。
  4. 在导航窗格中,选择 Instances(实例),然后在新选项卡中打开实例窗格。
  5. 选择您的实例,然后复制 Instance ID(实例 ID)
  6. GuardDuty 控制台中,选择 Add filter criteria(添加筛选条件),然后选择 Instance ID(实例 ID)。
  7. 将 **Instance ID(实例 ID)**粘贴到搜索框中,然后选择 Apply(应用)
  8. 在 **Finding Type(查找类型)**中,选择 **Last seen(上次显示)**列中记录的最新查找结果。
  9. 滚动到 **Actor(角色)**部分,然后复制攻击的源 IP address(IP 地址)
  10. 打开 EC2 Linux 实例上的终端,打开 /var/log/secure 目录,然后打开安全文件。 **注意:**安全文件包含 SSH 登录名。
  11. 输入步骤 9 中的源 IP 地址
    **注意:**Amazon Linux AMI SSH 日志包含要连接到实例的所有身份验证尝试。
  12. 打开 AWS Config 控制台,选择 Rules(规则),再选择 Add rule(添加规则),然后在搜索框中输入 restricted
  13. 选择 restricted-ssh,然后选择 Save(保存)。 **注意:**restricted-ssh 规则检查安全组是否禁止无限制传入 SSH 流量。
  14. 在 **Rule name(规则名称)**中的 **Compliance(合规性)**字段下,等待 restricted-ssh 规则从 **Evaluating(评估)**变为 noncompliant resource(s)(不合规资源)。您也可以选择刷新图标。
  15. 选择 restricted-ssh 查看不合规的安全组。
  16. 在 **Manage resource(管理资源)**中,选择不合规的安全组,然后选择 **Inbound(入站)**选项卡。

在此示例中,安全组是不合规的,因为它允许来自所有源的 SSH 连接。要限制 SSH 流量,请参阅为 Linux 实例添加入站 SSH 流量规则

有关更多信息,请参阅修复遭盗用的 EC2 实例

**注意:**要使用 Amazon CloudWatch 查看 Linux 日志,请参阅快速入门:在运行的 EC2 Linux 实例上安装和配置 CloudWatch Logs 代理


相关信息

Amazon GuardDuty – 持续安全监控和威胁检测

如何跨多个账户管理 Amazon GuardDuty 安全发现结果

AWS 官方
AWS 官方已更新 1 年前