DLL 劫持漏洞攻击、预防和检测

DLL代表动态链接库,是在(Dynamic Link Libraries)Windows或任何其他操作系统上运行的应用程序的外部部分。大多数应用程序本身并不完整,并将代码存储在不同的文件中。如果需要代码,则将相关文件加载到内存中并使用。这减少了应用程序文件的大小,同时优化了RAM的使用。本文解释了什么是DLL 劫持(DLL Hijacking)以及如何检测和防止它。

什么是 DLL文件(Files)动态链接库(Dynamic Link Libraries)

DLL 劫持

DLL文件是动态链接库(Dynamic Link Libraries),从名称可以看出,是不同应用程序的扩展。我们使用的任何应用程序可能会或可能不会使用某些代码。这些代码存储在不同的文件中,只有在需要相关代码时才会调用或加载到RAM中。(RAM)因此,它可以防止应用程序文件变得太大,并防止应用程序占用资源。

DLL文件的路径由Windows操作系统设置。路径是使用全局环境变量(Global Environmental Variables)设置的。默认情况下,如果应用程序请求DLL文件,操作系统会查看存储应用程序的同一文件夹。如果在那里找不到,它将转到由全局变量设置的其他文件夹。路径有优先级,它有助于Windows确定要查找DLL(DLLs)的文件夹。这就是DLL劫持的用武之地。

什么是 DLL 劫持

由于DLL(DLLs)是扩展,并且对于在您的计算机上使用几乎所有应用程序都是必需的,因此它们存在于计算机上的不同文件夹中,如所解释的那样。如果将原始DLL文件替换为包含恶意代码的虚假DLL文件,则称为DLL 劫持(DLL Hijacking)

如前所述,操作系统在何处查找DLL文件具有优先级。首先(First),它查看与应用程序文件夹相同的文件夹,然后根据操作系统的环境变量设置的优先级进行搜索。因此,如果 good.dll 文件位于SysWOW64文件夹中,并且有人将 bad.dll 放置在比(SysWOW64)SysWOW64文件夹具有更高优先级的文件夹中,则操作系统将使用 bad.dll 文件,因为它与DLL同名应用程序要求的。一旦进入RAM,它就可以执行文件中包含的恶意代码,并可能危及您的计算机或网络。

如何检测 DLL 劫持

检测和防止DLL劫持的最简单方法是使用第三方工具。市场上有一些很好的免费工具可以帮助检测和阻止DLL黑客攻击。

一个这样的程序是DLL Hijack Auditor,但它只支持 32 位应用程序。您可以将它安装在您的计算机上并扫描您的所有 Windows 应用程序,以查看所有应用程序易受DLL劫持的影响。界面简单且不言自明。此应用程序的唯一缺点是您无法扫描 64 位应用程序。

另一个用于检测DLL劫持的 程序DLL_HIJACK_DETECT可通过GitHub获得。该程序检查应用程序以查看它们是否容易受到DLL劫持。如果是,程序会通知用户。该应用程序有两个版本 - x86 和x64,因此您可以使用每个版本分别扫描 32 位和 64 位应用程序。

需要注意的是,上述程序只是对Windows平台上的应用程序进行漏洞扫描,并不能真正防止DLL文件被劫持。

如何防止 DLL 劫持

程序员应该首先解决这个问题,因为除了加强安全系统之外,您无能为力。如果程序员开始使用绝对路径而不是相对路径,那么漏洞将会减少。读取绝对路径,Windows或任何其他操作系统将不依赖于路径的系统变量,而是直接进入预期的DLL ,从而消除了在更高优先级路径中加载同名DLL的机会。(DLL)这种方法也不是万无一失的,因为如果系统受到威胁,并且网络犯罪分子知道DLL的确切路径,他们会将原始DLL替换为假DLL. 这将覆盖文件,以便将原始DLL更改为恶意代码。但同样,网络犯罪分子需要知道调用DLL的应用程序中提到的确切绝对路径。这个过程对于网络犯罪分子来说是艰难的,因此可以指望。

回到你能做的事情上,试着扩展你的安全系统以更好地保护你的 Windows 系统(secure your Windows system)。使用好的防火墙(firewall)。如果可能,请使用硬件防火墙或打开路由器防火墙。使用良好的入侵检测系统,以便您知道是否有人试图玩弄您的计算机。

如果您要对计算机进行故障排除,您还可以执行以下操作来提高安全性:

  1. 禁用从远程网络共享加载DLL
  2. 禁用从WebDAV(WebDAV)加载DLL文件
  3. 完全禁用WebClient服务或将其设置为手动
  4. 阻止(Block)TCP端口 445 和 139 ,因为它们最常用于危害计算机
  5. 安装操作系统和安全软件的最新更新。

微软(Microsoft)发布了一个工具来阻止DLL负载劫持攻击。该工具通过防止应用程序不安全地从DLL文件加载代码来降低DLL劫持攻击的风险。

如果您想在文章中添加任何内容,请在下面发表评论。(If you would like to add anything to the article, please comment below.)



About the author

我是一位强烈推荐的 Windows 10 专家,我专注于帮助人们个性化他们的计算机外观并使他们的 Office 工具更加用户友好。我利用自己的技能帮助他人找到使用 Microsoft Office 的最有效方法,包括如何格式化文本和图形以进行在线打印、如何为 Outlook 创建自定义主题,甚至如何自定义桌面任务栏的外观计算机。



Related posts