问:你能解释什么是动态链接库,以及它对应用程序安全有什么影响吗?恶意的DLL仍然是一个常用的攻击载体吗? 答:什么是DLL呢?动态链接库(dynamic-link library,即DLL)是微软提出的共享库概念,它是一个在应用程序间共享资源的常用方法,它通常是一个DLL文件类型或者是OCX文件类型(对于含有ActiveX控制的库而言),亦或者是DRV文件(对于系统驱动而言)。就像可执行的*.exe文件类型一样,这些文件可以包含代码、数据以及一些资源文件(如,图像),但是两者之间的区别在于DLL文件可以同时被多个程序调用。 用共享库有很多好处,包括:模块化、代码重用、减少磁盘空间、增加……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
问:你能解释什么是动态链接库,以及它对应用程序安全有什么影响吗?恶意的DLL仍然是一个常用的攻击载体吗?
答:什么是DLL呢?动态链接库(dynamic-link library,即DLL)是微软提出的共享库概念,它是一个在应用程序间共享资源的常用方法,它通常是一个DLL文件类型或者是OCX文件类型(对于含有ActiveX控制的库而言),亦或者是DRV文件(对于系统驱动而言)。就像可执行的*.exe文件类型一样,这些文件可以包含代码、数据以及一些资源文件(如,图像),但是两者之间的区别在于DLL文件可以同时被多个程序调用。
用共享库有很多好处,包括:模块化、代码重用、减少磁盘空间、增加内存使用效率和加快载入时间。模块只有在功能或者资源被请求的时候才会被加载。重要的是,模块化编程允许修改被多个程序共享的DLL,这样就无需对每个应用程序单独地进行修改。例如,comdlg32 DLL处理在windows系统中打开一个对话框,任何在Windows系统上运行的应用程序都可以通过调用该DLL来实现那个功能,这样就允许微软在对comdlg32.dll做任何改变的时候确保一致的用户接口,而不强制要求使用该DLL的其他所有第三方应用程序重建或者是重新安装。
当微软最初引入DLL的时候,引起了相容性和依赖性的问题,即所谓的“DLL hell”。这种情况在Windows 95上有了显著的改善,在Windows 2000的时候,每一个进程只能在它自己的地址空间内运行,且推出了Windows文件保护来防止覆盖系统DLL文件。然而,就像任何包含可执行代码的文件一样,黑客们可以操纵DLL来运行恶意代码。
事实上,DLL文件加载的方式产生了一个特定的攻击载体,被称作“DLL预加载攻击”,它在过去的这个夏天上了新闻。如果一个应用程序动态地加载DLL而没有指定的完全合格的路径名,Windows会试图通过搜索明确定义的目录集合来定位该DLL文件。如果一个攻击者可以复制含恶意代码的DLL文件到这些目录中的任意一个,应用程序就会加载并执行这个恶意的DLL。这也说明了黑客是怎样寻找滥用系统设计的任何方面,以创造一个新的攻击载体。
注意:微软已经在其安全响应中心的网站上发布了关于这个漏洞的更新,你也可以下载一个工具来修改DLL的搜索顺序。
作者
翻译
相关推荐
-
英特尔AMT是如何绕过Windows防火墙的?
微软研究人员发现一个黑客团伙的文件传输工具可利用英特尔的Active Management Technology来绕过Windows内置防火墙。那么,英特尔AMT是如何绕过Windows防火墙的呢?
-
GhostHook是如何绕过微软PatchGuard的?
GhostHook攻击技术可绕过微软的PatchGuard,不过微软还没有修复这一漏洞。在本文中,专家Michael Cobb解释了这种攻击的工作机制。
-
为何Windows快捷方式文件容易受到攻击?
微软Windows中的一个漏洞可使攻击者在快捷方式文件中自动执行代码,这个攻击的工作原理是什么,如何防范?
-
面对卡巴斯基压力 微软改变防病毒政策
近日微软承诺在未来Windows更新中更改饱受争议的防病毒政策,而卡巴斯基也已经同意撤回针对微软的反垄断诉讼。