在您的服务器上使用端口欺骗工具来迷惑攻击者是否明智?

信息安全 港口 网络扫描仪 欺骗
2021-09-02 07:39:25

我最近遇到了这个工具 https://github.com/drk1wi/portspoof

使用它来迷惑进行端口扫描的黑客的效率如何?如果它实际上会非常有效,为什么到目前为止还没有赶上?也就是5年189星不好。

3个回答

这里有多个问题。

  1. 动态端口响应——如果我从两个不同的 IP 扫描你并比较这两个响应,我会得到一个有效的端口列表吗?如果是这样,这是一个非常薄弱的​​防御。

  2. 您正在消耗 CPU 以响应攻击的侦察阶段。这可以用来对付你。根据设置的方式,我可以通过强制您的欺骗程序消耗机器上的所有 CPU 来杀死您的服务器。

  3. 您确定portspoof 没有您的应用程序没有的任何额外奖励漏洞吗?

  4. 我可以放慢可能的非真实端口,看看还有什么停止响应以过滤掉垃圾邮件吗?

  5. 如果您正在运行此程序,并且我获得了立足点并打开了一个远程命令端口-您会注意到,还是会迷失在自己的垃圾邮件中?

我认为效果将非常有限。

首先,利用端口扫描工具很少有用,因为大多数渗透测试者在进行任何攻击时都会使用虚拟机和其他受限环境。

其次,目前还不清楚混淆哪些端口是真正开放的。如果您仍然有运行这些服务显然必须正确响应。只有 65536 个端口,所以尝试所有端口没什么大不了的。无论如何,您通常必须宣布服务在哪些端口上运行,因为您希望人们找到它们!你为什么还要运行它们?

第三,回答所有端口上的所有查询实际上可能会产生相当多的无用工作。您可能希望将这些时钟周期花在其他地方。

所以,这些是我想到的第一个原因。我没有使用过这个工具,但也许其他人也有类似的想法,这就是它没有被广泛采用的原因。

该软件的作者说我喜欢一件事:

而不是通知攻击者特定端口处于 CLOSED 或 FILTERED 状态 [...]

扫描不会告诉黑客一个端口是否真的打开了。这是一个好主意,我通过我的 iptables 设置使用它。

我在防火墙中所做的是让用户立即连接到我的常规服务或DROP数据包。通过丢弃数据包,您不会立即告诉用户端口是打开还是关闭。这类似于尝试使用错误密码登录。它会暂停 1 秒左右,然后您可以重试。通过这样做,它可以采取nmap. 假设客户端等待回复长达 1 秒,那么扫描 65536 个端口将需要 18 多个小时。

当然,我的防火墙会阻止所有端口,除了我想打开的极少数端口(例如 22、80 和 443)。因此,如果您尝试使用端口 5432 或 3306,DROP即使我确实打开了这些端口,您也会得到

除此之外,正如许多人指出的那样,这更有可能消耗大量 CPU 时间,因为黑客工具可能会一遍又一遍地尝试连接到所有令人满意的端口(即类似 HTTP 的服务),直到他们决定这不值得……这可能需要很长时间。我的计算机遭受了 6 个月以上的 SMTP 中继攻击。这对我来说很棒,因为我可以在我的软件中测试各种东西,并确保它与真实的(但安全的)攻击一起工作。

自我提醒:机器人已经脑死亡。