压缩的EXE文件对Linux服务器无害吗?


49

我在自己的网站上运行了一个恶意软件扫描程序,并将一堆压缩的EXE文件标记为潜在风险文件(这些文件由用户上传)。由于我能够在Mac上解压缩文件,因此我认为这些文件是真实的ZIP文件,而不仅仅是重命名的PHP文件。

因此,ZIP文件对我的Web服务器不应该有任何风险,对吗?


1
听起来像垃圾恶意软件扫描程序。
尼克T

11
您知道可以使用来测试它们是否为ZIP格式file foo.zip,甚至可以测试它们是否有效7z t foo.zip(例如,解压缩并验证CRC校验和,而无需提取到磁盘上的本地文件)。(7z使用有点类似于的语法tar。)或unzip -l foo.zip列出内容。无论如何,我只是觉得很奇怪,当您可以轻松地在服务器上检查文件时,您谈论在另一台计算机上检查文件。
彼得·科德斯

6
您要托管哪种网站?将用户提交的内容和您的前向Web服务器放在同一盒子上听起来不是一个好主意。
oldmud0

@NickT自解压ZIP文件可能将附加的恶意代码附加到可执行部分。
chrylis-罢工-16

Answers:


84

如果它们确实是压缩的Windows exe文件,则它们对Linux系统应无害,除非您已安装Wine之类的东西来尝试执行它们。

但是,如果它们在您的Web路径中,则可能是恶意软件,并且会对您网站的访问者造成很大的风险(反过来,如果您最终被标记为恶意软件来源,并且用户在尝试访问您的网站时收到了难看的警告,那么您也可能受到威胁)现场)。


3
我想知道托管此类“用户”上载的垃圾是否会导致Google将您的网站标记为“该网站可能已被黑客入侵”,或触发Chrome显示一个红色的巨大警告页面。那么“无害”可能有点用词不当。
尼克T

11
@NickT:绝对可以,这就是我在第二段中提到的内容。
斯文

4
从理论上讲,也可以创建格式错误的.zip文件,以针对特定的解压缩实现中的缺陷。
jamesdlin '16

3
Mono比Wine更有可能安装在服务器上,并且可以执行CLR .exe文件。
Rhymoid '16

62

由于我能够解压缩Mac上的文件,因此我认为这些文件是真实的zip文件,而不仅仅是重命名的php文件。

尽管在这种情况下您可能对的,但您的假设可能并不总是成立。即使您添加了任意数据, ZIP存档仍然保持有效,因此很有可能创建一个文件,该文件同时是包含无害数据的有效ZIP存档和恶意PHP脚本。甚至还不是特别难。只需将PHP代码和ZIP文件连接起来,并确保(例如使用__halt_compiler())PHP将不会尝试解析附加的ZIP归档数据。

该技巧被合法地用于创建自解压ZIP文件,但是完全可以以相同的方式将其他任何隐藏数据或可执行代码添加到ZIP文件中。某些程序可能会拒绝打开此类修改后的ZIP文件(但如果这样做,则在技术上违反了ZIP格式规范),或者默认情况下,它们可能会将文件标识为ZIP以外的其他文件,但通常,如果您提供此类文件,文件转换为需要ZIP文件的代码,可能会被接受为一个。

此类技巧的更常见的恶意使用是将基于ZIP的容器(例如JAR文件)中的漏洞利用代码伪装成无害的东西(如GIFAR漏洞中的GIF图像),但没有理由不能也可以在另一个方向上使用,例如绕过幼稚的文件上传过滤器,该过滤器禁止上传PHP脚本,但允许ZIP文件,而无需检查上传的文件是否可能同时存在。


GIFAR的+1,在实践中很有趣地知道此漏洞的具体示例。
caesay

11

您应至少考虑两个值得注意的注意事项:

  1. 如果这些文件散布在您的网站上,那么如果有人从您的网站上获取了恶意软件,您可能要承担责任。至少可以将您的站点标记为恶意软件。如果您决定忽略恶意软件扫描程序警告,则至少应通知上传者和可能的下载者该文件可能有害(因为有时是从Internet下载的EXE)。
  2. 除了恶意软件扫描以外,您还对这些文件进行任何处理吗?附件或其他此类上载的自动处理始终具有潜在的危险,因为文件内容可能是任何东西。如果您的实用程序软件容易受到某些利用,并且看起来不错的zip / exe包含针对您的实用程序的有害内容,则您甚至无需执行EXE文件。我不会让我的服务器处理无法进行恶意软件扫描的任何内容。

因此,根据你的服务器执行该文件可能潜在地会损害您的服务器或其他用户。由于我非常警惕从Internet下载的EXE,因此我想说,可能的下载器是这里最大的潜在用户。


2

您可以通过简单地使用file FILENAME.exe命令检查文件来检查文件是否在Linux服务器上可运行。可以使用.exe扩展名来命名Elf二进制文件(在Linux上使用的可执行格式),以使一个毫无戒心的Linux管理员感到困惑,因此,最好在盲目地相信这些文件不可运行之前进行检查。


2

令我惊讶的是,没有人提到任何数据都可能对(程序)程序有害(或使其变得有害)。这就是模糊的基础。例如,您可能拥有一个JPEG(或类似JPEG)文件,该文件导致(特定于?)JPEG解码器上的缓冲区溢出,从而导致从拒绝服务到任意代码执行的所有事务。这是关于颠覆现有的数据处理程序;无需引入新的可执行文件!这就是为什么需要沙箱处理,输入清理和最小特权原则的原因。

因此,就您而言,您可能有一个ZIP文件,导致(特定的)ZIP解码引擎出现问题。不需要ZIP文件包含本机可执行文件,因为它是有害的。

话虽如此,您的扫描仪仍在另一个更高的层次上工作。如果这些文件中存在我要说的那种风险,那么在处理它们的那一刻您就已经被打击了:)。


1

由于我能够在Mac上解压缩文件,因此我认为这些文件是真实的ZIP文件,而不仅仅是重命名的PHP文件。

曾经发生过嵌入数据并仍然将文件显示为有效文件的攻击。在配置错误的服务器中或在编码错误的应用程序中,这些可能导致代码在您的服务器中执行。

因此,也要小心。



-6

解压缩的.exe对Linux服务器也无害。


23
不一定是这样- .exe仅仅是文件名的一部分,也可以选择它作为ELF二进制文件的名称。
斯文

此外,可能已安装WINE。当然,大多数针对Windows的恶意软件可能无法在WINE下正常运行,但存在风险。充其量,Linux上的未压缩.exe文件基本上是无害的。

@Ray取决于配置。如果由于某种原因安装了Mono或Wine,则可能配置了binfmt_misc,以便.exe实际上是可执行的。
Rhymoid '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.