基于服务器的Java安全产品

1/5/2008来源:Java教程人气:5459


  假如您认为java的设计可以保证Java小程序的安全与友善的话,您应该再好好想一想。对数字签名的伪造以及难以驾驭的ActiveX控制功能的出现极大地降低了Java的安全性。
  
    任何人只要拥有一个合法的E-mail地址就可以获得一个1类数字签名(Class 1 Digital Signature),而获得一个1类签名所需的不过是一个信用调查,它一般可以由一个像Equifax这样的信用报告公司来提供。
    动机不良的人可以通过伪造的驾驶执照、护照和信用卡来获得假的身份。在信用报告公司的数据库中的每一个假身份都可以用来获得一个2类数字身份证(Class 2 Digital ID),而这只需每年花20美元就可以办到。
    这真是一幕可怕的情景,但是先不要把你的企业网与Internet断开。对遭碰到Internet上的攻击性软件的危险性的评估是非常复杂的。一方面,现在已知的恶意的Java小程序和ActiveX组件只有250种(相比之下,世界上有约15000种已知的计算机病毒),而且,Java小程序的应用环境中包含有很多严格的内建安全措施。
    另一方面,对Java的安全性问题又不能掉以轻心。Internet上的恶意代码可以成为工业间谍活动的一种重要形式——假如它可以被执行,无论是经过数字认证了的Java小程序还是ActiveX组件都可以在你的本地机上执行任何它们的主人希望执行的操作。这些带有签名的Java小程序或ActiveX组件甚至可以访问你的文件服务器。
    尽管我们经常将病毒斥之为某个在其孩提时代受到过父母虐待的程序员的一种恶意发泄,但是,一个在Internet上传播的Java小程序或ActiveX组件比起它来可能要危险得多,因为你的竞争对手利用它们可以有机会在网上窥探、改动或删除你的文件。病毒可以改变你的主引导扇区,删除或修改文件并且显示骚扰信息,但埋藏在Internet上的 Web页面中的恶意程序不会只进行像病毒所进行的这种破坏,它会将它窥探到的东西向其Web服务器主机汇报。
    假如您担心您的与Internet相连的企业网会成为一条竞争对手窥探您的核心数据的管道并想为此而加强保护措施的话,您可能会购买安全工具以将非法入侵者拒之门外。为此,我们对这类安全性产品进行了评测,评测的重点主要是那些承诺可以在服务器上识别并消除恶意的Java小程序、javascript、VBScript和ActiveX组件的产品。它们是:
    eSafe技术公司(eSafe Technologies)的eSafe PRotect Enterprise 1.21;
    Finjan公司的SurfinGate 4.0;
    Security-7软件公司(Security-7 Software)的SafeGate 2.1(Beta版);
    Trend Micro公司的Interscan AppletTrap(Bate版)。
    一些客户端的产品也可以消除病毒与恶意Java小程序的威胁,但我们觉得假如能够在网关服务器上将那些具有潜在毁灭性的或是企图进行非法查询的外部软件拒之门外就再好不过了,因为这样那些恶意代码便无法靠近客户机了。
    在评测中,我们发现Security-7软件公司的SafeGate 2.1提供了针对恶意代码的最佳保护。它的速度非常快,可以保证客户机的安全,非常易于治理并且其性价比也是最高的,因此它获得了我们的编辑选择奖。所有产品都在安全性方面达到了要求。
  
  Security-7软件公司的SafeGate 2.1(Beta)
  
    SafeGate完全基于服务器的架构及其高水准的安全特性给我们留下了深刻的印象。它检查我们的HTTP流量中的Java小程序、ActiveX组件、Javascript和VBScript并对其进行过滤。它还对通过Java的ZIP、JAR和CAB文件进行解压并检查其文件内容,从而使得隐藏在其中的恶意代码难以蒙混过关。我们喜欢它对网络数据包所进行的实时的、基于内核的处理,这种处理方式可以帮助它迅速找出有害代码。它可以迅速地校验带有签名的ActiveX信用证和小应用程序,而且它一般只需要不到一秒种的时间就可以完成对每个Java小程序(无论有害的还是无害的)的检查。更令人称道的是,它丝毫也不会影响客户机的处理速度。
    对于封装在Html文件中的javascript程序,SafeGate也提供了优秀灵活的安全手段。它使用的基于加密和密码规则的认证方式的内部安全特性起到了锦上添花的作用。该产品使不受欢迎的Internet代码远离我们的客户机,而这正是我们希望它做的。
    SafeGate的安装过程不费吹灰之力。由于我们用不着访问每一个客户机或使用登录脚本来安装客户机组件,因此安装过程被简化了许多。我们可以选择在每台客户机上加载一个“通告程序”(Notifier)组件,它可以让SafeGate在客户机打开一个窗口,并通过该窗口告知使用者某个当前的浏览器操作正在被终止,因为它隐含着一个恶意程序。
    SafeGate由4套组件构成:运行于Windows NT之上的网关内容检查服务、中心控制中心治理控制台、策略治理器用户界面和侦听监视器。在2.1版中还包含有一个用于治理私人信用证书的治理工具。我们按类型对进入的文件进行了过滤(例如动态链接库、可执行文件和OLE控制等),我们可以根据几条原则选择将未经签名的Java小程序、未经签名的ActiveX组件和javascript堵住。SafeGate上的一个薄弱点在于——它需要你预先装入Microsoft IE 4.0,因为它要使用IE中的加密API动态链接库,但是,Windows NT Server与IE之间的组合并没有达到其应该达到的性能。
    我们很喜欢SafeGate直观的用户界面。SafeGate的拖放能力使得像输入授权认证证书这样的治理工作非常便捷。在我们的测试中,我们使用策略治理器来为个人用户和被命名的工作组用户生成并编辑安全规划。侦听监视器可以显示SafeGate的侦听日志,并使我们可以对破坏安全性的操作和网关检查报告进行跟踪。在我们安装了网关用户界面之后,我们很快发现它对于检验内容、检查服务的操作和连通性非常有用,它可以使我们实时地看到被分析的内容。然而,网关界面只能记录很短的内容,因此控制中心和侦听监视器还是我们用来了解通过的和被拒绝的对象情况的主要信息来源。
    SafeGate使用微软的数据访问对象(Data access Object,DAO)技术来存储安全规划。通过选择ODBC(Open Database Connectivity,开放式数据库连接)选项并使用NT服务器的ODBC治理器来生成数据库式连接,我们可以很方便地将Microsoft SQL Server 6.5作为SafeGate的存储数据库来使用。
    另外,借助于Check Point公司的企业级安全连接开放平台(Open PlatFORM for Security Enterprise Connectivity)API,SafeGate可以与Check Point软件技术公司的FireWall-1防火墙产品配合使用。在这一模式下,SafeGate自己的基于内核的检查引擎要让位于FireWall-1的数据包检查进程,而后者的运行速度要比SafeGate自己的代码检查器慢。
  
  Trend Micro公司的InterScan AppletTrap(Beta版)
  
    我们很喜欢Trend Micro公司的InterScan AppletTrap,因为它发现可疑代码的方法极具创造性。它非常出色地完成了保护我们的客户机免受攻击的任务,并且在易于治理方面与SafeGate几乎不相上下。它的界面也非常直观,但缺乏像SafeGate那样的拖放界面。与SafeGate一样,我们所测试的InterScan AppletTrap还只是一个Bate版的产品。
    我们发现AppletTrap并不是一个单纯的服务器端软件。它包含了客户机与服务器两个部分,每一个Java小程序都运行在客户机上可配置的沙箱环境中,我们通过测试证实了这种环境是安全的。我们为工作组用户与个人用户分别设定了不同的安全策略。AppletTrap会拒绝对某些目录的访问、禁止对磁盘的读写并终止那些打开的窗口数超过了一定数量的小应用程序。但是,这种占用客户机的处理能力来检测每一个可疑的小应用程序的做法使我们难以认同。我们更欣赏那种由服务器来“杀死”不良代码的设计方式。
    AppletTrap是一个很少有多余成分的HTTP代理服务器,并且具有在Trend Micro公司自己的保护性Java代码中封装Java小程序的独特能力。被封装的Java小程序(Trend Micro公司把那些被封装了的Java小程序称为“被工具化的”)被发往客户机。在那里,封装保护性代码首先建立起一个环境,使那些可疑的Java小程序可以安全地在我们所配置的安全策略的限制范围内运行,其结果是运行每个Java小程序的平均时间增加了1.75秒。在可疑的Java小程序运行时,一旦它违反了由用户配置的安全策略的规则,保护性代码就会中止程序的运行。AppletTrap让我们来决定是让用户能够继续运行Java小程序还是中止Java小程序中的被激活的线程。AppletTrap通过这种方式将安全性工作的工作负担在客户机与服务器之间平均地进行分配。
    当某个Java小程序违反了我们所建立的安全规则时,AppletTrap会记录下这一有害程序或javascript代码的身份并将该信息存入其数据库中。我们可以选择是让AppletTrap不加通知地中止Java小程序的运行还是在中止它之前向用户询问是否继续运行这一小应用程序。一旦客户机用该Java小程序的身份更新了数据库,服务器就会阻止继之而来的任何客户机对含有该Java小程序的Web页面的访问企图。美中不足的是,尽管我们可以对Java小程序运用这些安全策略,对ActiveX组件我们却无法这样做。
    在服务器上,AppletTrap会挡住已知的恶意Java小程序以及那些没有合法证书的Java小程序。服务器组件通过对Java小程序的大小、校验以及其它特性进行鉴别,并与其数据库中储存的已知的恶意代码的特征进行比较来决定是否阻挡它。这一过程平均要花1/3秒的时间。由于AppletTrap使用其自带的保护性代码来对原始小应用程序进行封装,毁坏了原始小应用程序所携带的数字签名,AppletTrap随机地在小应用程序中插入其数字ID以便使代码可以在客户机上运行。
    AppletTrap服务器可以周期性地访问Trend Micro公司的Web站点(www.antivirus.com),并自动地更新其数据库中存放的已知恶意程序的信息。我们所测试的其它产品也都拥有类似的自动更新恶意程序代码列表的功能。
    我们通过AppletTrap的基于