您的位置:首页 > 其它

从 Window 不安全dll加载 漏洞 来看Windows系统漏洞

2010-11-30 16:28 330 查看
动态库,一直伴随着windows操作系统, 属于windows系统设计框架的一部分, 从这两年流行的后门木马病毒来看, 一大部分利用了此漏洞,可以说这是Windows设计的失误.

1.主要原因是:过于灵活的接口制造成的。

因函数调用通过固定顺序排列的函数入口表来执行代码,所以只要模拟一个动态库一模一样的DLL文件,即可欺骗调用着来执行恶意代码。

2.另一个原因是,使用了固定的动态库文件搜寻加载方式,只要将需要欺骗的动态库放在exe当前文件夹下,即可,对于用户而言,根本不知道那是危险文件。

虽然系统保护了系统所需要的动态库文件,可是保护不了所有应用程序层的动态库

问题1.解决方案:
1.对动态库加载前进行MD5校验,对系统的PE Loader进行升级,或者有开发着,自己手动编写验证代码.
2.由编译器对动态库的调用改为偏移地址直接调用,而非通过函数转表间接调用.
只要不改变原来的结构,调用就没有问题,如果dll升级扩展 ?(想知道请关注)

问题2.解决方案:
1.编写代码时不要用LoadLibrary() GetProcAddress() 来动态调用
2.使用通过系统变量取得固定路径调用系统提供的动态库
3.在EXE/DLL导入表增加导入库的路径标志,比如:0,从系统目录寻找,1.从当前目录寻找
第3点需要系统的 PE Loader 来支持
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: