免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3764 | 回复: 6
打印 上一主题 下一主题

彻底保护你的网站不受RDS攻击的威胁 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-26 09:39 |只看该作者 |倒序浏览
----[ 1. 问题 \r\nRDS攻击不是一个简单的问题,虽然IIS 4.0存在许多各种各样的安全漏洞, \r\n但是微软从来没有为同一个安全漏洞发布过如此多的补丁程序,一共是发布了三个不同的补丁程序,但是RDS仍然存在问题。 \r\n所以我们需要的是真正掌握什么是RDS。然后你就会知道如何来自己修补 \r\n这个问题。这个问题从根本上说,是由于Jet 3.5允许调用VBA的shell()函数造成的。 \r\n该函数允许你执行外壳命令,具体的过程我想还是不详细介绍了。 \r\n现在的问题是,IIS 4.0默认的情况下是安装有MDAC 1.5的,它包含有RDS, \r\n从而允许通过浏览器远程访问ODBC组件,具体的实现是通过一个位 \r\n于/msadc/msadcs.dll \r\n的特定的dll文件来实现的。现在你应该可以明白,问题其实是由两部分组成。其实还有个“第三者”,那就是跟随RDS SDK包安装附带的例子程序组件VbBusObj,它可以允许你 \r\n饶过那些就是已经安装了微软发布的RDS补丁的情况。 \r\n下面将分别就上面三种情况做详细的解决方案描述。 \r\n\r\n----[ 2. 解决方案 \r\n问题是目前有许多种方法来解决,同时这些方法还可以被不同的组合使用。 \r\n在这里尽量描述详细。 \r\n-解决方案 #1: 移走cmd.exe (ULG推荐的补丁方法) \r\nhttp://www.aviary-mag.com/News/P ... LG_Fix/ulg_fix.html \r\n\r\n我推荐ULG的解决方法,虽然该方法仍然存在问题。因为虽然mdac.pl是使用了 \r\ncmd.exe \r\n来实现RDS攻击的,但是,要知道 \r\nCMD.EXE并不是RDS攻击方法的唯一实现途径

论坛徽章:
0
2 [报告]
发表于 2007-03-26 09:39 |只看该作者
-解决方案 #2: 升级MDAC 1.5 到 2.0 \r\n\r\nMDAC 2.0将Jet 3.5升级到Jet 3.52。但是仍然存在VBA shell()攻击问题(而这恰好是 \r\nRDS攻击的必要条件),并且默认情况下还是支持使用RDS的。事实上,就是你删除了RDS系统还是会重新安装的,其中一些应该注意的事情是: \r\n\r\n* 默认的Jet引擎变成了3.52 (仍然有安全漏洞) \r\n* 允许自定义处理 (可以解决匿名RDS使用问题) \r\n* 生成 Microsoft.Jet.OLEDB.3.51* 提供 \r\n注意这种解决方法,它的默认设置不是非常好。你需要修改注册表来限制自定义使用RDS处理。注册表中位置是: \r\nHKEY_LOCAL_MACHINE\\Software\\Microsoft\\DataFactory\\HandlerInfo\\ \r\n\r\nKeyname: HandlerRequired \r\nValue: DWORD:1 (safe) or 0 (unsafe) \r\n推荐是将它的数值改成1。这其实也是使用微软提供的补丁\'handsafe.exe/.reg\'完成的。 \r\n现在,你可以保护你的系统不被远程RDS攻击了,但是你仍然存在被ODBC其他方式攻击的可能性, \r\n包括Excel, Word, 和 Access木马文件等。所以这个解决方案也有一些不足。

论坛徽章:
0
3 [报告]
发表于 2007-03-26 09:39 |只看该作者
-解决方案 #3: 升级你的MDAC 1.5 到 2.1 \r\n\r\nMDAC 2.1 将Jet 3.5 升级到Jet 4.0引擎,这个引擎不存在RDS攻击安全漏洞。 \r\n但是同时也印证了一个亘古不变的法则,东西越安全它的兼容性能也就越差, \r\n由于3.5和4.0之间存在太大的差异,许多人不愿意为了这些兼容性能而升级。 \r\n因为一旦升级后许多现在正在使用的程序将完全不能够使用。具体细节是: \r\n\r\n* 默认的数据库引擎为Jet 4.0 (没有这个安全漏洞) \r\n* 支持自定义处理 (可以禁止匿名使用RDS) \r\n\r\n但是,自定义处理默认的情况下并不是使用的。你同样需要象上面一样来修改注册表。

论坛徽章:
0
4 [报告]
发表于 2007-03-26 09:40 |只看该作者
解决方案 #4: 升级你的MDAC 1.5到2.0,然后再到2.1 \r\n现在,如果你是一个优秀的管理员,你应该保证你一直升级你的系统。如果你经常升级,就应该服从按顺序升级的次序。虽然同样你需要修改注册表使 \r\n能\'HandlerRequired\' \r\n,同样由于使用了2.1的Jet 4.0(没有漏洞)作为默认的数据库引擎。但是由于你是通过 \r\n从2。0的升级,所以你将拥有Microsoft.Jet.OLEDB.3.51. \r\n这意味着你的运用程序(包括RDS)对数据库的调用情况都能够被日志记录下来。而那些 \r\n老版本的OLEDB是实现不了的。 \r\n你应该从注册表中将老的hooks/providers数值去掉。一个方法是删除下面的键值入口: \r\nHKEY_CLASSES_ROOT\\Microsoft.Jet.OLEDB.3.51 \r\nHKEY_CLASSES_ROOT\\Microsoft.Jet.OLEDB.3.51Errors \r\n但是,你仍然需要面对的问题是兼容性能问题。

论坛徽章:
0
5 [报告]
发表于 2007-03-26 09:40 |只看该作者
-解决方案 #5: 安装JetCopkg.exe (见微软发布的安全公告MS99-030) \r\n\r\nJetCopkg.exe是一个修改过的Jet 3.5引擎,它增强了更多的安全特性来防止被攻击。 \r\n它主要是对注册表中下列键值的修改: \r\nHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Jet\\3.5\\engines\\SandboxMode \r\n它的值如下: \r\n0 禁止一切 \r\n1 使能访问ACCESS,但是禁止其它 \r\n2 禁止访问ACCESS,但是使能其他 \r\n3 使能一切 \r\n\r\n(详细的解释可以参考 \r\nhttp://support.microsoft.com/support/kb/articles/q239/1/04.asp) \r\n值得注意的是,默认的允许修改键值权限是不安全的。你必须只能够让有权限的 \r\n帐号才能够修改该键值。不然该键值会带来很多安全上的隐患。切记,切记。 \r\n只要将键值该成2或则3就可以将一切对RDS的攻击拒绝了。所以,这个解决方案是最好的。 \r\n并且由于它仍然使用的是Jet 3.5引擎,所以你不用担心兼容性能的问题。并且同时你还是可以 \r\n使用RDS的,虽然已经不能够再使用RDS进行攻击了,但是问题是匿名使用RDS还是会将你的数据库中的信息给 \r\n泄露出去的。所以你需要对RDS有较深入的编程基础,我可以建议你禁止使用RDS或则将ODBC升级到 \r\nMDAC 2.0,这样你就可以只让有权限的人才能够使用RDS,而拒绝匿名用户使用。

论坛徽章:
0
6 [报告]
发表于 2007-03-26 09:40 |只看该作者
解决方案 #6: 删除/禁止RDS功能 \r\n就是我在本文最开始的位置提到的方法,删除下面这个文件: \r\n?:\\Program Files\\Common Files\\System\\Msadc\\msadcs.dll \r\n就是它提供了RDS的调用接口。下面是一些更详细彻底清除RDS(如果你确信你的网站不需要该功能的话)的步骤: \r\n\r\n* 从IIS控制台删除/msadc虚拟目录 \r\n* 删除下面的注册表键值: \r\nHKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\W3SVC\\Parameters\\ \r\nADCLaunch \r\n* 删除下面这个文件目录 \r\n?:\\Program Files\\Common Files\\System\\Msadc

论坛徽章:
0
7 [报告]
发表于 2007-03-26 09:41 |只看该作者
----[ 3. 情况 \r\n-情况 #1: 我确实需要RDS \r\n首先你需要升级你的系统到MDAC 2.0。记住别忘了安装JetCopkg,或者你直接升级到MDAC 2.1. \r\n确保你修改了\'HandlerRequired\'注册表中的数值,解释见上。同时确保你已经删除了所有的 \r\nRDS的例子程序。同时取消匿名帐号对/msadc目录的访问权限,而使用自定义帐号来进行处理。 \r\n详细的步骤可以参考: \r\nhttp://www.microsoft.com/Data/ado/rds/custhand.htm \r\n\r\n-情况 #2:我还是想使用那些例子该怎么办? \r\n那么唯一的方法就是你必须禁止匿名帐号对RDS的访问权限。但是例子中的 \r\nVbBusObjcls会跳过自定义 \r\n访问的限制,如果例子是安装在 \r\n?:\\Program Files\\Common Files\\System\\Msadc\\Samples \r\n的话,那么你应该按照下面的步骤来解决: \r\n*删除下面这个目录下所有的东西 \r\n?:\\Progam Files\\Comman Files\\System\\Msadc\\Samples \r\n* 删除注册表中的键值 \r\nHKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\W3SVC\\Parameters\\ \r\nADCLaunch\\VbBusObj.VbBusObjCls
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP