|
|
.解读firefox安全神话 | |
为什么Firefox比IE更安全 |
|
无论是从网上公布的安全漏洞的数量和危险程度上来说,firefox都比IE要安全得多。有人说可能是IE使用的人较多,目标大,所以研究的人多,因此IE的安全漏洞暴露得就更多了。使用firefox的人相对较少,人们研究的也很少,或许有很多安全漏洞都没有暴露出来,这种说法似乎有一定的道理。但事实可能并不是那样。firefox是开放源代码的,做开发的朋友都知道,如果程序中有什么问题,从源代码中查找比从反汇编代码中查找要容易得多,做测试的朋友都知道,白盒测试比黑盒测试更容易发现问题。Firefox跟Linux内核的源代码一样,正是在全球无数的程序员的检验下,才变得更加安全。正如加密算法中的RSA,DES等公开的算法反而是更安全的。 Firefox的安全性还在于它设计的科学性。由于它比较新,既继承了Netscape深厚的技术底蕴,又吸收了一些IE的先进技术,因此,代码结构很严谨,很规范,底层的一些库函数,如字符串构造,内存管理释放都进行了封装,并且严格检查,由于根基比较牢固,构建在它之上的应用程序也比较安全,出现内存泄漏或者缓冲区溢出的几率比较小。 Firefox中的XPCOM组件非常类似于windows的COM组件,而COM及ActiveX正是在IE中所广泛使用的IE本身就是一个ActiveX控件(开发基于IE的浏览器)。由于IE跟Windows系统的紧密结合,因此它就变得更加脆弱,因为不仅仅是它自身的安全漏洞,windows系统的漏洞以及其他一些应用程序的漏洞都会影响到它。比如前一段时间出现的GDI+缓冲区溢出,word文档的缓冲区溢出,png文件格式的缓冲区溢出漏洞,这些软然不是IE的错,但是IE却充当了“杀手”,IE中庞大的ActiveX库也可能隐含了更多的安全隐患。更糟糕的是,允许IE在网页中使用ActiveX控件,虽然在后续的windows版本或者补丁中默认禁止使用ActiveX空间,但是在某些特定的情况下仍然会触发其漏洞。 Firefox比IE更安全的另一个原因是第三方控件的广泛流行,由于IE中允许使用第三方控件的使用,现在的控件成千上万,而且有些网站还限制了如果不启用ActiveX就没法浏览,虽然说这些网站可以保证自己的控件没有问题,但是这么一启用就等于给病毒网站开了绿色通道,更何况有些较正规的网站的控件本身就具有很多类似病毒的特性。firefox也允许第三方的控件,但是,由于它跟系统结合得不是很紧密,控件的安装都是在你的控制之下的。比如flash控件,你确信它是安全的,所以你装上了。还有其他的一些插件,如realplayer插件,你觉得很有用,所以你装上了,决不会在你不知情的情况下莫名奇妙的给你装上。这样虽然失去了ActiveX的灵活性,但是总比你的邮箱突然被盗,信用卡里面突然少了几百幸运得多。当然,firefox的插件可以分为好多种,一种是增强界面功能,使操作更方便的,一种是打开特殊文档诸如视频文件,flash文档的,还有一种就是XPCOM组件,它能够更好的增强浏览器的功能,一点不比ActiveX逊色。重要的是插件的安装都是你可以控制的,使用的时候也会受到严格的安全检查。 所以firefox比IE更安全绝不是神话,而是事实。不过firefox也有一定的缺陷,无论是在windows上面还是在Linux上面,firefox都是以当前用户的权限启动的。如果存在缓冲区溢出或者越权访问的漏洞,并且是以administrator或者root身份运行的话,破坏性可能更大,而IE在windows上面是以Internet来宾帐户启动的,程序本身出了问题被攻击的可能性更小,然而,这些对一个专业的黑客来说,几乎不是障碍。更何况firefox出现类似的漏洞的可能性很小,如果出现,幸运的话,你还可以赚到500$. Albatross安全吗?Albatross是安全的,因为它是基于firefox开发的。Albatross虽然对firefox的很多功能进行了扩展,但是它保留了firefox的安全特性。比如对ActivXObject函数的支持。只是为了满足特殊的需要,利用firefox的HTTPRequest和XMLDocument模拟了IE的MSXML.Httprequest和Microsoft.XMLDocument,增加了对大小写不敏感的支持,使一些非W3C标准的网页浏览器效果更好一些。当然根据需要还会模拟其他的ActiveX,但这些都是安全的,因为它用的还是Firefox的组件。 |