文件上传对于提高用户工作效率以及许多业务服务和应用程序至关重要。例如,文件上传对于内容管理系统,医疗保健门户网站,保险站点和消息传递应用程序来说是一项重要功能。随着组织转移到远程和遥远的工作区,实施措施以确保文件上传的安全性变得越来越重要,因为不受限制地使文件上传成为恶意行为者的攻击媒介。

文件上传有哪些风险?

允许在您的站点上载文件时,存在三种风险:

  • 对您的基础架构的攻击:
    • 覆盖现有文件–如果上传的文件具有与服务器上现有文件相同的名称和扩展名,则可能会覆盖现有文件。如果被覆盖的文件是关键文件(例如替换htaccess文件),则新文件可能会被用于发起服务器端攻击。这可能导致网站无法正常运行,或者可能危及安全设置,从而使攻击者可以上传其他恶意文件并利用您进行勒索。
    • 恶意内容–如果上载的文件包含可以利用服务器端文件处理中的漏洞的漏洞利用或恶意软件,则该文件可用于控制服务器,从而造成严重的业务后果和声誉损失。
  • 对您的用户的攻击:
    • 恶意内容–如果上传的文件包含漏洞利用,恶意软件,恶意脚本或宏,则该文件可用于控制受感染用户的计算机。
  • 服务中断–如果上传了非常大的文件,则可能导致服务器资源的大量消耗,并中断用户的服务。

如何防止文件上传攻击

为了避免这些类型的文件上传攻击,我们建议以下十种最佳实践:

1.仅允许特定的文件类型–通过限制允许的文件类型列表,可以避免将可执行文件,脚本和其他潜在的恶意内容上传到您的应用程序。

2.验证文件类型–除了限制文件类型外,确保没有文件被“屏蔽”为允许的文件类型也很重要。例如,如果攻击者将一个.exe重命名为.docx,而您的解决方案完全依赖于文件扩展名,则它将绕过您作为Word文档的检查,而实际上并非如此。因此,重要的是 验证文件类型 在允许他们上传之前。

3.扫描恶意软件–为最大程度降低风险,应扫描所有文件中的恶意软件。我们推荐 多次扫描 具有多个反恶意软件引擎(使用签名,启发式方法和机器学习检测方法的组合)的文件,以便获得最高的检测率和最短的暴露恶意软件爆发时间的窗口。

4.消除可能的嵌入式威胁– Microsoft Office,PDF和图像文件之类的文件可能在隐藏的脚本和宏中具有嵌入式威胁,而反恶意软件引擎并不总是能够检测到它们。为了消除风险并确保文件不包含任何隐藏的威胁,最佳实践是使用一种称为 内容撤防和重建(CDR).

5.验证用户身份–为了提高安全性,优良作法是要求用户在上传文件之前先对自己进行身份验证。但是,这不能保证用户的机器本身没有受到损害。

6.设置最大名称长度和最大文件大小–确保设置最大名称长度(如果可能,限制允许的字符)和文件大小,以防止潜在的服务中断。

7.随机上载文件名–随机更改上载的文件名,以使攻击者无法尝试使用上载的文件名访问该文件。使用Deep CDR时,您可以将清理后的文件配置为随机标识符(例如,分析data_id)。

8.将上传的文件存储在Web根文件夹之外–文件上传到的目录应该在网站的公共目录之外,以使攻击者无法通过分配的路径URL执行文件。

9.检查文件中的漏洞–确保您 检查漏洞 在上传软件和固件文件之前。

10.使用简单错误消息–显示文件上载错误时,请勿包括目录路径,服务器配置设置或攻击者可能用来获取进一步进入系统的其他信息。

来自OPSWAT的文件上传安全性

OPSWAT为您提供多种解决方案 文件上传安全性 with MetaDefender是一个高级威胁防御平台,可使用多个反恶意软件引擎,内容撤防和重建(Deep CDR)以及漏洞评估功能,帮助防止恶意文件上传攻击。 MetaDefender 可以通过 API or 与 any 启用ICAP的网络设备 例如Web应用程序防火墙,负载平衡器和应用程序交付控制器。

想更多地了解如何阻止恶意文件上传?阅读我们的白皮书 How to Block Malicious File Uploads 与 OPSWAT APIs.

Source: //www.opswat.com/blog/file-upload-protection-best-practices