当前位置: > Linux安全 >

CIO必须知道的一个安全真相!

时间:2015-02-27 09:58来源:linux.it.net.cn 作者:IT
近日,国外安全实验室Bromium Labs发布了2014安全报告,其中微软IE浏览器成为众多易受攻击的应用程序之一。这份报告也透露IE漏洞也在过去一年内增幅100%,数量级大幅翻倍。而IE浏览器“力压”Flash、Java等程序,成为2014年度最大“漏洞王”、“补丁王”。
    为了进一步提高IE的安全性,微软决定封杀旧版ActiveX控件。ActiveX控件在IE中的存在由来已久,大多数第三方插件,如大家熟知的Adobe Flash和Java applet。微软表示,2013年利用Java漏洞进行的攻击多达84.6%-98.5%,尽管Java已经更新修复了这些漏洞,但是用户经常会忽略更新,使得系统出于危险之中。
    这对于管理软件行业而言无疑是一个做空的消息!无论国外的SAP、Oracle还是国内的用友金蝶,其软件应用都需要安装插件,即通常所指的“胖客户端”。SAP将新功能通过Addon插件的形式提供给用户,ORACLE、用友、金蝶无一例外:如果不安装插件,系统根本无法运行。
    那么问题来了,无插件技术到底哪家强?
    答案是Javascript。JavaScript 和Java applet虽然名字都带有Java,但它们是两种不同的语言,也可以说是两种互不相干的语言:前者是一种基于对象的脚本语言,可以嵌在网页代码里实现交互及控制功能,而后者是一种面向对象的编程语言,可用在桌面应用程序、Internet 服务器、中间件、嵌入式设备以及其他众多环境。直观的说JavaScript 是Netscape 公司的产品,而Java包括Java applet是Sun公司的产品,后被Oracle收购。
    Yigo研究院负责人表示,“博科所有软件产品客户端都是纯Web方式展示,无需安装任何插件!之所以坚持这么做,是基于提升用户安全与体验的考量。”
    1.JavaScript作为互联网客户端最常用的编程语言,先天就有安全性的考虑:不能从用户处读取或写文件,不能跨域名访问网页;没有服务器端脚本的帮助,不能在服务器上写文件,不能访问数据库等等,由于有了这些限制,开发商使用JavaScript作恶的可能性大大降低,这也是近几年病毒传播减少的原因之一.而包括Java applet在内的插件都由高级语言编写,可以说它无所不能,当然留下了安全性的隐患.
    2.JavaScript的安全性可检测,因为JavaScript是一个解释型语言,其代码可直接被检测工具读取并分析,如果包含潜在威胁可以被各种检测工具包括第三方软件识别,透明的机制确保了其合理的安全边界;而插件往往是编译后的二进制形式,无法进行检测,这也是当前主流浏览器默认。而插件是以字节代码的形式传递,通过外部插件进行装载,用户一旦信任该程序,检测工具根本无法识别其是否安全。这也是微软禁止插件的重要原因.
    我们有理由相信,是否B/S模式和是否需要安装插件之于企业管理信息系统,是CIO们关注的首要问题!

    安全性问题
    Java Applet在运行时需要依赖本地安装的JRE(Java运行环境),而Java运行环境总体来说包含了非常多的内容(参考http://docs.oracle.com/javase/7/docs/api/, JDK 7 包含超过4000个类,分布在200多个packages中,内容从桌面显示、本地文件处理、直到网络访问、CORBA、数据库、加密解密,包罗万象),这些程序之中很多仅适合在受控的服务器环境中运行,因此,作为客户端运行的Applet程序,往往受到JER本身的影响,存在多种安全风险。

    下表是来自http://www.oracle.com/technetwork/topics/security/alerts-086861.html(Oracle官方Critical Patch Updates and Security Alerts),可以看到Java运行环境存在频繁的严重问题升级情况:

 Yigo研究院负责人表示,“博科所有软件产品客户端都是纯Web方式展示,无需安装任何插件!

    同样可以观察该页面的另一个表格(Security Alerts),可以看到共13项安全警告信息中,至少5项和Java运行环境相关:

 Yigo研究院负责人表示,“博科所有软件产品客户端都是纯Web方式展示,无需安装任何插件!

    在实际使用中,JRE是一个需要单独安装的程序,因此不同用户的机器上安装的往往是不同的版本(典型情况是小版本号各不相同),从系统管理角度,对不同用户机器上具体安装版本的管控很难有效和及时进行,这种不能及时更新到最新安全版本的情况,进一步加剧了Applet应用在安全性方面的隐患。

    另外,除了JRE自身造成的安全问题,在实际的应用系统中,Applet尤其是被信任的Applet客户端(很多管理软件的客户端恰恰会通过证书签名等手段获得“信任”)可以访问客户端本地文件、打印机、网络等各种资源,一旦应用软件本身存在缺陷,就很容易在Web访问的情况下被利用,造成安全问题。

    用户体验和系统可靠性问题
    正因为Applet不够安全,现代的主流浏览器(包括IE 7+、Firefox、Chrome)都提高了浏览器的默认安全等级,在这些浏览器上,默认设置为禁用Applet运行(参考http://java.com/en/download/help/enable_browser.xml ),所以,如果使用Applet作为客户端,就需要手工降低系统的安全等级,这样会造成整个系统安全性的进一步下降,比如降低浏览器安全等级后,访问其他非Applet应用的安全风险也加大了。

    即使通过手工设置系统的安全等级在现代浏览器可以运行Applet,用户仍然会面对大量的系统警告(如下图的安全警告,在每次访问系统时都会出现),这会进一步造成普通用户使用的难度和操作繁琐程度,并造成不可预知的“Java升级后不能使用系统”的风险(事实上,现在仍然有大量的Java Applet程序被“建议”运行在Java 6版本上,就是因为升级到Java 7版本上之后,那些系统无法在更严格的安全等级条件下顺利运行):

 Yigo研究院负责人表示,“博科所有软件产品客户端都是纯Web方式展示,无需安装任何插件!

    随着浏览器、操作系统厂商对Applet运行限制的进一步加强,包括Oracle本身对JER安全性提升,Applet将越来越不能适应在桌面环境运行,以后桌面Applet可能只会存在于一些特殊的本地应用环境中,而大量的管理软件则会选择在服务器端(受控的环境)运行Java,并以网站和服务的形式提供PC桌面、平板、手机等多种客户端访问。

 

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容