绿坝悄悄打补丁,用户仍易受攻击


所有跟贴·加跟贴·新语丝读书论坛

送交者: aliastwo 于 2009-06-19, 12:29:44:

aliastwo译自http://www.cse.umich.edu/~jhalderm/pub/gd/#add1

增补-1 :绿坝悄悄打补丁,用户仍易受攻击

Scott Wolchok, Randy Yao, and J. Alex Halderman
2009年6月18日

  在我们公布最初的分析报告之后,绿坝生产商至少发布了一个安全更新和两个过滤更新。这些更新试图解决我们原先提到的网页过滤方面的安全漏洞,同时也关闭了一些从CyberSitter程序里抄袭来的黑名单,并使该软件符合OpenCV许可证的要求。

  不幸的是,在打了补丁的版本里,我们还是发现了额外的可以被远程利用的安全漏洞。即使安装了最新版本,任何网站照样可以利用这个问题来控制访客的电脑。我们继续建议用户立即卸载绿坝以保护自己。

  虽然绿坝开发者很快地对软件进行了修复,但是程序里漏洞的一再出现,说明其运行的安全问题根深蒂固。我们担心,一些更深入的问题不可能在7月1日之前得到解决。7月1日是PC制造商为在中国销售的电脑预装绿坝的截止日期。

绿坝安全补丁

  在6月17日我们注意到,绿坝更新了其安装程序,以解决我们原先报告里描述的的网页过滤方面的安全漏洞。更新似乎是在6月13日格林尼治标准时间12:00发布的。不知道为什么,此项更新似乎是悄悄进行的。程序版本依然是3.17,至今也未见对该修改有任何正式宣布。经检测,旧的安装程序大小为10,355,637字节,SHA-1校验码为4aaa6cec69b4dfd952eda3512a0b45c1f34a0f7c;新的安装程序则为10,200,230字节,SHA-1校验码为ee93d0ead4982b53d489b4766d6f96e7618fcd6e。由于这些变化没有正式的版本号码,我们将把新版本称为3.17a。到目前为止,新的版本只能从软件商的网站重新下载,而不能通过该软件的内部机制自动更新。

  绿坝3.17a对程序作了修改以解决一些安全漏洞,包括我们上文所述的原先的模拟攻击。尽管有这些安全加固的尝试,我们还是在打了补丁的程序里找到了新的可被远程利用的漏洞。我们只花了一个小时多一点的时间就找到这个新漏洞,又花了大约5个小时开发了一个漏洞演示。

新的网页过滤漏洞

  绿坝用一个叫做SurfGd.dll的动态链接库来对互联网流通进行拦截。即使在安全修补之后,SurfGd.dll还是使用一个固定长度的缓冲来处理网站的要求,恶意网站仍然可以触发缓冲区的溢出从而接管程序的执行。现在的程序总算是检查了URL的长度和各HTTP请求标头,但总长度被错误地允许超出缓冲区的大小。攻击者可以用一个很长的URL和一个很长的“主机” HTTP标头来攻击新版本。怀疑更新之前的3.17版,也就是我们原先的报告中检测过的版本,同样会受到这种攻击。

  针对这个新漏洞,我们实现了第二个示范攻击。 网页中嵌入了一个Flash,通过它发出一个非法格式的HTTP请求。如果你在运行绿坝3.17或3.17a而且系统安装了Flash的话,一旦载入演示页面你的浏览器将会立即崩溃。我们的示范仅仅是造成崩溃而已,真正的恶意网站可以利用这个漏洞控制你的电脑。我们继续建议用户立即卸载绿坝以保护自己。

  虽然我们的演示利用了Flash,但这个漏洞并不仅限于安装了Flash的计算机。攻击者也可能利用其他的浏览器插件,例如Silverlight或者Java。更糟糕的是,由于绿坝监测每一个使用Socket API的程序,它会试图过滤任何一个有类似于HTTP请求结构的出口消息(outgoing message),不管它是否真的来自浏览器。因此,任何一个可用来通过TCP发送受攻击者控制的数据的程序,都暴露在这两个网页过滤漏洞之下。我们预计这些缺陷可能会被用于各种网络程序中。

  我们对绿坝开发者如此之快地更新程序感到鼓舞,这表明他们对安全问题的重视。不过,即使在最新的修正之后,任何网站仍可以利用其他安全问题控制绿坝用户的计算机。正如我们在原来的报告中指出那样,该程序采用了不安全的编程做法,很可能有更多尚未发现的问题。因此,要保证绿坝安全将需要大量的修改和仔细的测试。距离新PC强制预装绿坝的7月1日截止日期太近,要在剩下的12天里完成所需的修改是不太可能的。

黑名单,白名单和文档的更新

  绿坝的厂商已经通过软件的内部更新机制发布了两个过滤器更新。在默认情况下,这些更新不会被自动安装。但是用户可以点击绿坝设置程序里的按钮手动更新,也可以把绿坝设成自动更新。更新3.173在6月12日左右发布,更新3.174则是在6月17日左右。

更新3.173中的变化

  随着Update 3.173的安装,绿坝似乎不再利用来自CyberSitter的黑名单文件,取而代之的是更新过的adwapp.dat中的黑名单。这份清单似乎并不基于CyberSitter:它的长度超过6000多行,但只有5行与任何CyberSitter中黑名单相同。

  经检查更新文件(kwupdate.dat),我们确定版本3.173将黑名单文件auctfil.dat,bsnlist.dat和gblfil.dat从C:\Windows\system32转移到C:\Windows,并且更新了文件wfile.dat,TrustUrl.dat和adwapp.dat。开发人员在adwapp.dat中增加了三个新条目:两个色情网址和一个叫cmd5.com的网站,该网站目前存放着如何把绿坝的密码改回到默认值的说明。更新后的wfile.dat关闭了CyberSitter的黑名单,只留下adwapp.dat的黑名单仍然有效。不过,更新之后,从CyberSitter复制过来的黑名单本身在依然留用户计算机上;而从软件商的网站下载的新版3.17a仍在使用几个CyberSitter的黑名单。

  该更新还从不受过滤的网站白名单中(TrustUrl.dat)删除了603个条目。该白名单上引人注目的网站包括aol.com,ibm.com,download.com,abcnews.com,symantec.com,dell.com,china.com,zdnet.com,*.gov.cn,apple.com,filterdam.com,lssw365.*,doubleclick.net,time.com,nokia.com.cn,amazon.com,ebay.com.cn,icq.com,以及tucows.com。奇怪的是,“lssw365”囊括了所有的顶级域名,使他们免受过滤。这包括lssw365.org,一个致力于反对绿坝的中文网站。

更新3.174中的变化

  更新3.174改变了程序的帮助文件kw.chm,并将该文件从C:\Windows移到C:\Windows\Help。此更新在绿坝的帮助文件里添加了OpenCV开源项目所需的许可文本,如下面的截图所示:


  更新3.174在绿坝的帮助文件里增加了OpenCV许可协议(点击放大) 。

  OpenCV是由英特尔开发的一种开源计算机视觉软件包。绿坝用它来识别网上包含裸露的图片。根据其授权许可,OpenCV允许免费用于商业和教育途径,但要求程序包括一许可文本。经检查,我们发现绿坝包含了源自OpenCV版本1.0rc1中的代码库和配置文件,证实了早先在SourceForge上的报道。尤其是,经分别比较绿坝的xcore.dll,Xcv.dll与Xtool.dll和OpenCV 1.0rc1的cxcore099.dll,cv099.dll,highgui099.dll,我们发现了惊人的相似之处。此外,除了顶部的许可文字(2到44行)缺如之外,绿坝的XFimage.xml与haarcascade_frontalface_alt2.xml也一模一样。

  虽然3.174过滤器的更新补充了所需的许可,但绿坝3.174之前的版本仍可能违反了OpenCV许可。而可直接从软件商网站下载的新版3.17a仍旧看不到许可证。




所有跟贴:


加跟贴

笔名: 密码: 注册笔名请按这里

标题:

内容: (BBCode使用说明