在所有端口关闭时破坏仅知道 IP 的计算机 - 可能吗?

信息安全 审计
2021-09-01 11:53:43

我正在使用一些专用的 Linux 发行版检查我的设置是否存在安全漏洞。我做的第一件事是扫描所有端口,除此之外 - 似乎它几乎无法破解。由于所有端口都关闭了,我感到很安全,但我想知道 - 我错了吗?

有人可以破解我的设置的唯一方法是通过某种后门恶意软件,考虑到我不下载我不知道的东西,也不访问可疑网站,这不太现实……唯一需要担心的是我是 Skype,但我的端口仍然关闭,所以最多有人能做的就是劫持我的 Skype 帐户,即使这样也可能。

所以这些是我的想法。关于关闭端口和潜在漏洞(不包括您可以下载的内容),我这样认为是对还是错?让我们假设任何想要破解我的人只知道我的 IP(在很多情况下很容易找到)。

2个回答

您可能会被以下行为违反:

  • 浏览器漏洞利用(例如,针对 IE 的漏洞利用)。浏览器漏洞无时无刻不在被发现。
  • 通过恶意消息利用 Skype 漏洞这里的一个只会导致崩溃,但是有时可以进一步开发像这样的漏洞来启用代码执行。
  • 允许攻击者获取代码执行Flash 漏洞。

即使您不直接访问可疑网站,您访问的任何受信任网站也可能已被入侵,或者它们可能无意中托管了包含上述漏洞利用的内容。例如,通过广告或通过这些网站上的用户托管内容。

一旦攻击者获得代码执行权,他们通常可以创建一个“反向外壳”,让您的计算机出站连接到他们的系统 - 不需要传入端口。通过这个 shell 连接,他们可以运行他们想要的任何命令。

运行 Linux 会更安全,因为攻击者不会像使用 Windows 那样将这些系统作为整体目标。但是,仍然可以利用任何客户端漏洞。

理论上 -的,即使所有 TCP 和 UDP 端口都关闭并且您没有运行任何恶意软件,您的计算机仍然可能被黑客入侵。但是,如果所有端口都关闭,那么与 Web 服务器侦听可公开访问端口的系统相比,您的计算机被黑客入侵的几率要低得多。

举个例子,有些协议一开始就没有端口的概念,例如 ICMP、IPv4 或以太网。如果您的操作系统的网络堆栈有错误的 ICMP、IPv4 或以太网实现,那么理论上,此类错误可能被用作后门来获得对您计算机的部分或完全控制。请参阅Ping of Death错误,该错误使攻击者可以控制使用易受攻击的 ICMP 实现的任意计算机,即使没有打开 UDP 或 TCP 端口也是如此。

总的来说,如果一台计算机可以被黑客入侵,那么它总是:

  1. 一个实现错误(例如,软件工程师在他的代码中犯了一个错误。请参阅 OpenSSL Heartbleed 漏洞或 Ping of Death 漏洞);
  2. 设计错误(例如,设计协议的人对身份验证方面考虑得不够仔细;请参阅 SSLv3 POODLE 攻击或 WEP 协议漏洞);或者
  3. 管理员用于配置主机的指令中的错误(例如,使用弱密码;或在不受信任的区域运行某些不强制执行身份验证的软件;或只是 [un] 故意运行旧的和有缺陷的软件)

在评估安全性时,我总是建议其他软件工程师从以下方面考虑

在您的代码将这个 IP 数据包作为恶意丢弃之前,系统攻击者可以控制运行在系统上的代码的执行流量。越早丢弃恶意数据包,系统就越安全。

例如,如果所有端口都关闭,那么攻击者仍然可以“执行”内核空间代码直至 TCP 和 UDP 协议处理,因为没有开放的目标端口,数据包最终会被丢弃 - 虽然不太可能,但仍然可能存在错误在今天没有人知道的内核中的 IP 或 TCP 处理代码中。但是,如果您有开放的端口,那么这意味着攻击者不仅可以尝试利用内核空间中的错误,还可以尝试利用用户空间中的错误(即 HTTP 实现 - Web 服务器侦听端口 80)

此外,另一个答案提到了“客户端”端代码中的潜在安全漏洞,例如 Web 浏览器。这些更难利用,因为攻击者需要在您的主机和它尝试与之通信的服务器之间的路径中;然后拦截 HTTP 会话;并更改通信,以期在您的网络浏览器中暴露潜在的错误。但是,在您的问题中,您的前提是“仅知道 IP 地址”,我将其解释为“来自不同物理位置的另一个人试图破解您的计算机”。但是,如果这个其他人在同一个 L2 广播域中,那么他可以欺骗 ARP突然出现在您的浏览器和服务器之间的路径中;他可以有效地利用浏览器中存在的一组新错误。