WWW安全威胁分析*

发布时间:2003-11-26 作者:李志江 Li Zhijiang 李明柱 Li Mingzhu 杨义先 Yang Yixian 胡正名 Hu Zhengming 阅读量:

文章编号:1009-6868(2001)05-0023-03 文献标识码:A 中图分类号:TP393.08

  *国家重点基础研究发展规划项目(编号:G1999035805)、国家杰出青年基金项目(批准号:69425001)和国家自然科学基金项目(批准号:69882002,60073049)以及高等学校骨干教师资助计划。

  正是由于WWW的普及才使得Internet能够飞速发展,Internet的飞速发展又使得诸如网上拍卖、网上商场、网上炒股、信息管理、数据库操作等基于WWW的应用层出不穷。与此同时,诸如Web页面被非法篡改、信用卡号被盗、Web服务器上机密信息泄漏、客户端被恶意页面攻击等WWW安全问题也越来越受到人们的关注。在某种程度上,安全问题已经限制了某些WWW应用。本文分析了Web应用面临的各种安全威胁,根据容易遭受的的各种攻击方法,给出了相应的安全对策。本文重点讨论的是Web应用所特有的安全威胁,诸如病毒防治、操作系统漏洞攻击、底层网络协议漏洞攻击,都不在本文讨论范围之内。

  1 WWW应用面临的安全威胁

  1.1 客户端与服务器之间传输的数据被非法截获窃取

  通常WWW服务器与浏览器之间的通信是以明文传输的,数据流经过的任何节点如WWW代理服务器、ISP都可以看到传输的内容。没有理由相信他们是可靠的,因而对于如口令、密钥及其他敏感信息在网络中传输时一定要利用密码技术以密文形式传输以防泄密。目前,大多数WWW服务器与浏览器都支持RC2、RC4、DES、3DES等密码算法。
  
  1.2 服务器端的安全问题

  WWW服务器端的安全问题向来是管理员与软件提供商头痛的问题,这些问题一方面是由于服务器端操作系统的安全漏洞造成的,而另一方面是由于WWW服务软件本身存在问题,系统管理员所能做的就是积极关注所使用软件的相关漏洞报告,先于黑客了解到有关安全漏洞并采取补救措施,这样就能够有效地防止黑客利用软件漏洞进行攻击。服务器端的错误配置是WWW服务器端遭受安全攻击的又一原因。有时并不是因为管理员的业务水平低,造成错误配置。错误配置的原因是因为WWW服务器软件的维护配置文档太复杂太庞大,甚至凌乱,有时即使是WWW服务软件提供商也不能提供一种合理的安全配置。

  WWW服务器端安全威胁的另一来源就是服务器端的CGI(公共网关接口)程序的漏洞。CGI给WWW页面带来了活力的同时,也成为WWW服务器的一个潜在危险。几乎所有的CGI漏洞均来自于用户的交互,别有用心的客户端可以精心设计自己的数据录入方式、数据内容,然后调用服务器端的CGI程序进行恶意攻击。

  1.3 客户端安全问题

  (1)客户端随意从WWW站点下载应用程序在本地运行

  在WWW站点上有许多免费应用程序可供下载,免费应用程序是WWW站点吸引客户浏览的一个重要手段。通过从WWW站点下载免费的各种应用程序,客户端既可以节省资金也可以提高工作效率,这正是WWW站点提供免费应用程序的初衷。然而,在这种高效与经济诱惑的背后却可能隐藏着灾难与杀机。一般来说,WWW站点提供的免费应用程序特别是一些小的工具程序都没有程序发布者的真实信息,很难保障程序中没有病毒,诸如木马或其它破坏客户端系统的恶意代码。

  如果客户端主机下载并执行了含有恶意代码的应用程序,其后果不堪设想。不下载使用来源不明的应用程序是保证WWW客户端安全的基本要求,然而有些应用程序是需要通过从WWW站点下载执行的,如一些应用程序的升级、补丁,以及浏览器的外部阅读器、插件等。如何保证这类程序没有被非法替换或篡改,让下载者能够确认程序来源的真实性,确认程序内容的完整性,是代码签名技术主要解决的问题。

  代码签名技术的主要思想是让软件的发布者在认证机构注册,由认证机构为其签发公钥证书。当软件发布者开发好新的应用程序准备在WWW站点上供他人下载时,它使用自己的私钥对应用程序进行数字签名。然后将自己的公钥证书、自己对程序的数字签名,与应用程序一同公布在WWW站点,供使用者下载。下载者下载之后,通过使用公钥证书中的公钥验证数字签名的有效性,如果验证通过则可以确信软件发布者的真实身份。

  目前,代码签名技术并未在Internet中得到广泛应用,但是随着Internet安全问题特别是WWW客户端安全问题的日益突出,代码签名技术最终将会得到业界的认可。

  有人提出,让下载的身份不明的应用程序的执行权限限定在特定范围,限制可疑程序的运行权限。这种想法仍旧处于探讨阶段,目前没有哪一个操作系统能够满足这一需求。

  (2)JavaScript与Java Applet的威胁

  JavaScript是现在流行的脚本语言,其代码驻留在HTML文件中。Netscape Navigator 和Microsoft Explore 都支持JavaScript。JavaScript代码常常用于操纵浏览器,利用JavaScript可以生成一个新的窗口,填写表单中的数据,跳转到另一个URL地址,本地处理图像,改变HTML的内容等。如通过在HTML文件中嵌入JavaScript,可以控制浏览器的可视原件是否显示,也可以控制浏览器状态栏中显示的信息。从理论上讲,JavaScript是安全的,因为JavaScript没有访问客户端文件系统的方法,同时也没有到其他计算机网络系统的连接方法。但是利用JavaScript对客户端攻击的成功攻击案例已经很多。最简单的攻击就是使用JavaScript来耗尽客户端资源使客户端瘫痪不得不重新启动,这种攻击没有什么意义只是恶作剧而已。但是有些恶意页面利用JavaScript可以收集客户端信息,伪造虚假页面让客户端上当。

  在HTML文件中嵌入Java Applet可以使WWW服务器发挥更强大的功能,Java Applet 运行在浏览器中的Java虚拟机(JVM)中。JVM采用“沙盒技术”限制Java Applet的诸如系统调用等危险行为。这大大提高了WWW客户端的安全性,然而这并不意味着Java Applet 并不存在安全威胁。这主要表现为JVM在实现上的安全漏洞给别有用心的人提供了可乘之机。F.De Paoli等人通过在HTML文件中嵌入Java Applet已经成功地实现了诸如收集客户端用户个人信息,截获用户输入表单中的数据等对WWW客户端的攻击。D.Martin等人发现利用Java Applet可以绕过防火墙的某些限制进行连接。

  有关JavaScript和Java Applet 对WWW的客户端进行攻击的例子越来越多,然而有效防止这种攻击的方法却很少。现今客户端所能做的就是当对所浏览的站点表示怀疑时,通过设置浏览器禁用JavaScript与Java Applet来防止可能的威胁。

  2 加强WWW安全的相关措施

  加强WWW安全的相关措施主要有:

  (1)提高系统管理员安全意识与反黑水平,尽量防止由于错误配置而给黑客留下可乘之机。当前有许多黑客论坛。黑客之间交流经验、切磋技艺真可谓红红火火,可见黑客的情绪是多么的高涨。但关于如何防御的论坛却不怎么红火,可见多数管理员并不是积极主动地提高自己的反黑水平。系统管理员必须系统地理解自己所管理的WWW平台的各项技术特征与安全问题。

  (2)WWW软件提供商要给出建议性的安全配置示范。

  (3)软件提供商对出现的安全漏洞要尽快提供解决办法或给出补丁程序。

  (4)WWW服务器端所使用CGI程序要经过严格检查,借鉴已有的CGI安全问题,保证CGI程序的健壮性。

  (5)用于重要业务的浏览器端绝对不要下载、运行来源不明的应用程序,以防治系统被植入木马或者病毒。

  (6)利用现有安全产品,提高安全系数。目前的安全工具有防火墙产品、反病毒产品、入侵检测产品、漏洞检测产品、木马检测产品等等。

  3 结束语

  目前关于WWW安全的研究主要集中在反病毒、防火墙、入侵检测、系统漏洞检测、木马检测等领域,而且根据研究成果已经有了比较成熟的产品。而对于CGI程序安全、脚本语言安全、Java Applet安全、插件安全的研究仍处于危害性的分析实验阶段,如果能够寻找出有害代码的特征建立特征库,根据特征库来检查代码的安全性将会使CGI、脚本语言、Java Applet及插件的应用具有安全保证。

  现有的密码技术、认证技术、接入控制技术,从理论上讲完全可以保证通信安全。然而WWW安全问题日益严重,这主要是由于WWW安全涉及到服务器端安全、浏览器端安全及通信安全、主机安全及底层通信协议的安全。协调各个模块之间的关系,加强各个模块自身的安全性应作为今后WWW安全研究的出发点。

[摘要] 文章分析了WWW应用中服务器端、客户端及网络传输所面临的各种安全威胁,并根据WWW容易遭受的攻击,给出了相应的安全对策。

[关键词] WWW安全 CGI安全 代码 黑客

[Abstract] Different kinds of security threats to the server end, client end and network transmission in WWW applications are analyzed, and relevant security countermeasures against possible attacks on WWW are given in this paper.

[Keywords] WWW security CGI security Code Hacker