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

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

所以ZIP文件不应该是我的networking服务器的任何风险,对吧?

如果他们确实压缩了Windows的exe文件,那么他们应该对你的Linux系统无害,除非你有像Wine这样的可以尝试执行的东西。

但是,如果他们在您的networkingpath,他们可能是恶意软件,并为您的网站的访问者构成一个巨大的风险(反过来,如果你最终被标记为恶意软件的来源和用户遇到难看的警告,当他们试图访问现场)。

由于我能够解压缩我的Mac上的文件,我认为这些是真正的zip文件,而不只是像重命名的PHP文件的东西。

虽然在这种情况下你可能是正确的,但你的假设可能并不总是成立。 即使您将任意数据添加到 ZIP压缩文件中,ZIP压缩文件仍然有效 ,因此可以创build一个同时包含无害数据和恶意PHP脚本的有效ZIP压缩文件。 这不是特别困难。 只需连接PHP代码和ZIP文件,并确保(例如使用__halt_compiler() )PHP不会尝试parsing附加的ZIP归档数据。

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

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

至less应该考虑两个值得注意的事项:

  1. 如果这些文件分布在您的网站上,如果有人从您的网站获取恶意软件,您可能会被追究责任。 至less你的网站可能被标记为恶意软件。 如果您决定忽略恶意软件扫描程序警告,则至less应通知上传者和可能的下载者该文件可能是有害的(因为有时从Internet上下载的EXE)。
  2. 除了恶意软件扫描以外,您是否对这些文件进行任何处理? 自动处理附件或其他这样的上传总是潜在的危险,因为文件内容可以是任何东西。 你甚至不需要执行EXE文件,如果你的实用软件容易受到一些利用和看似漂亮的zip / EXE包含有害的内容针对你的工具。 我不会让我的服务器处理任何无法扫描恶意软件的东西。

所以,取决于你的服务器的文件可能会对你的服务器或其他用户有害。 由于我非常警惕从互联网上下载的EXE,我想说下载者可能是最有潜在风险的用户。

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

已经有embedded数据的攻击,仍然存在有效的文件。 在configuration错误的服务器或错误编码的应用程序中,这些可能导致代码在您的服务器上执行。

所以,小心一点。

您可以通过使用file FILENAME.exe命令检查文件是否正好在Linux服务器上运行。 精灵二进制文件(在Linux上使用的可执行格式)可以命名为.exe扩展名,以混淆不知情的Linuxpipe理员,所以在盲目地相信这些文件不能运行之前进行检查可能是个好主意。

我很惊讶,没有人提到任何数据都可能碰巧(或者被制造成)对任何(错误的)程序都有害。 这是模糊的基础。 例如,您可能有一个JPEG(或类似JPEG的)文件,导致(特定的?)JPEG解码器上发生缓冲区溢出,导致任何拒绝服务和任意代码执行。 这是关于颠覆现有的数据处理程序; 无需引入新的可执行文件! 这就是为什么需要沙盒,input消毒和最低权限原则的原因。

所以,就你的情况而言,你可能会有一个ZIP文件在(特定的)ZIP解码引擎上引起问题。 不需要ZIP文件包含一个本机可执行文件,因为它是有害的。

话虽如此,您的扫描仪正在另一个较粗糙的级别工作。 如果我说的那种风险存在于这些文件中,那么当你处理它们的时候你就已经被击中了:)。

理想情况下应该放置一个额外的检查应该是php finfo方法来检查用户上传的文件是否真的是你允许的,而不是用户重命名文件来欺骗系统。

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