我的 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 访问。
- 打开 Amazon EC2 控制台。
- 在新选项卡中打开 GuardDuty 控制台。
- 在 EC2 控制台中,选择 Security Groups(安全组),再选择一个安全组,然后选择 Inbound(入站)选项卡。
- 在导航窗格中,选择 Instances(实例),然后在新选项卡中打开实例窗格。
- 选择您的实例,然后复制 Instance ID(实例 ID)。
- 在 GuardDuty 控制台中,选择 Add filter criteria(添加筛选条件),然后选择 Instance ID(实例 ID)。
- 将 **Instance ID(实例 ID)**粘贴到搜索框中,然后选择 Apply(应用)。
- 在 **Finding Type(查找类型)**中,选择 **Last seen(上次显示)**列中记录的最新查找结果。
- 滚动到 **Actor(角色)**部分,然后复制攻击的源 IP address(IP 地址)。
- 打开 EC2 Linux 实例上的终端,打开 /var/log/secure 目录,然后打开安全文件。 **注意:**安全文件包含 SSH 登录名。
- 输入步骤 9 中的源 IP 地址。
**注意:**Amazon Linux AMI SSH 日志包含要连接到实例的所有身份验证尝试。
- 打开 AWS Config 控制台,选择 Rules(规则),再选择 Add rule(添加规则),然后在搜索框中输入 restricted。
- 选择 restricted-ssh,然后选择 Save(保存)。 **注意:**restricted-ssh 规则检查安全组是否禁止无限制传入 SSH 流量。
- 在 **Rule name(规则名称)**中的 **Compliance(合规性)**字段下,等待 restricted-ssh 规则从 **Evaluating(评估)**变为 noncompliant resource(s)(不合规资源)。您也可以选择刷新图标。
- 选择 restricted-ssh 查看不合规的安全组。
- 在 **Manage resource(管理资源)**中,选择不合规的安全组,然后选择 **Inbound(入站)**选项卡。
在此示例中,安全组是不合规的,因为它允许来自所有源的 SSH 连接。要限制 SSH 流量,请参阅为 Linux 实例添加入站 SSH 流量规则。
有关更多信息,请参阅修复遭盗用的 EC2 实例。
**注意:**要使用 Amazon CloudWatch 查看 Linux 日志,请参阅快速入门:在运行的 EC2 Linux 实例上安装和配置 CloudWatch Logs 代理。
相关信息
Amazon GuardDuty – 持续安全监控和威胁检测
如何跨多个账户管理 Amazon GuardDuty 安全发现结果