正是由于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安全研究的出发点。
满意请采纳
一、SQL注入漏洞
SQL 注入攻击( SQL Injection ),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、更改、删除,以及进一步导致网站被嵌入恶意代码、被植入后门程序等危害。
通常情况下, SQL 注入的位置包括:
(1)表单提交,主要是POST 请求,也包括GET 请求;
(2)URL 参数提交,主要为GET 请求参数;
(3)Cookie 参数提交;
(4)HTTP 请求头部的一些可修改的值,比如Referer 、User_Agent 等;
(5)一些边缘的输入点,比如.mp3 文件的一些文件信息等。
SQL注入的危害不仅体现在数据库层面上, 还有可能危及承载数据库的操作系统;如果SQL 注入被用来挂马,还可能用来传播恶意软件等,这些危害包括但不局限于:
(1)数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。作为数据的存储中心,数据库里往往保存着各类的隐私信息, SQL 注入攻击能导致这些隐私信息透明于攻击者。
(2)网页篡改:通过操作数据库对特定网页进行篡改。
(3)网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
(4)数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被篡改。
(5)服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
(6)破坏硬盘数据,瘫痪全系统。
二、跨站脚本漏洞
跨站脚本攻击(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。
XSS攻击使用到的技术主要为HTML和Javascript,也包括VBScript和ActionScript等。XSS攻击对WEB服务器虽无直接危害,但是它借助网站进行传播,使网站的使用用户受到攻击,导致网站用户帐号被窃取,从而对网站也产生了较严重的危害。
XSS类型包括:
(1)非持久型跨站:即反射型跨站脚本漏洞,是目前最普遍的跨站类型。跨站代码一般存在于链接中,请求这样的链接时,跨站代码经过服务端反射回来,这类跨站的代码不存储到服务端(比如数据库中)。上面章节所举的例子就是这类情况。 (2)持久型跨站:这是危害最直接的跨站类型,跨站代码存储于服务端(比如数据库中)。常见情况是某用户在论坛发贴,如果论坛没有过滤用户输入的Javascript代码数据,就会导致其他浏览此贴的用户的浏览器会执行发贴人所嵌入的Javascript代码。 (3)DOM跨站(DOM XSS):是一种发生在客户端DOM(Document Object Model文档对象模型)中的跨站漏洞,很大原因是因为客户端脚本处理逻辑导致的安全问题。
三、弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。设置密码通常遵循以下原则:
(1)不使用空口令或系统缺省的口令,这些口令众所周知,为典型的弱口令。
(2)口令长度不小于8个字符。
(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
四、HTTP报头追踪漏洞
HTTP/1.1(RFC2616)规范定义了HTTP TRACE方法,主要是用于客户端通过向Web服务器提交TRACE请求来进行测试或获得诊断信息。当Web服务器启用TRACE时,提交的请求头会在服务器响应的内容(Body)中完整的返回,其中HTTP头很可能包括Session Token、Cookies或其它认证信息。
攻击者可以利用此漏洞来欺骗合法用户并得到他们的私人信息。该漏洞往往与其它方式配合来进行有效攻击,由于HTTP TRACE请求可以通过客户浏览器脚本发起(如XMLHttpRequest),并可以通过DOM接口来访问,因此很容易被攻击者利用。
五、Struts2远程命令执行漏洞
ApacheStruts是一款建立Java web应用程序的开放源代码架构。Apache Struts存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java代码。 网站存在远程代码执行漏洞的大部分原因是由于网站采用了Apache Struts Xwork作为网站应用框架,由于该软件存在远程代码执高危漏洞,导致网站面临安全风险。
六、文件上传漏洞
文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,攻击者可通过Web访问的目录上传任意文件,包括网站后门文件( webshell ),进而远程控制网站服务器。因此,在开发网站及应用程序过程中,需严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关目录的执行权限,防范webshell攻击。
七、私有IP地址泄露漏洞
IP地址是网络用户的重要标示,是攻击者进行攻击前需要了解的。获取的方法较多,攻击者也会因不同的网络情况采取不同的方法,如:在局域网内使用Ping指令, Ping对方在网络中的名称而获得IP;在Internet上使用IP版的QQ直接显示。最有效的办法是截获并分析对方的网络数据包。攻击者可以找到并直接通过软件解析截获后的数据包的IP 包头信息,再根据这些信息了解具体的IP。
针对最有效的“数据包分析方法”而言,就可以安装能够自动去掉发送数据包包头IP信息的一些软件。不过使用这些软件有些缺点, 譬如:耗费资源严重,降低计算机性能;访问一些论坛或者网站时会受影响;不适合网吧用户使用等等。
现在的个人用户采用最普及隐藏IP 的方法应该是使用代理,由于使用代理服务器后,“转址服务”会对发送出去的数据包有所修改,致使“数据包分析”的方法失效。一些容易泄漏用户IP 的网络软件(QQ 、MSN 、IE 等)都支持使用代理方式连接Internet ,特别是QQ 使用“ ezProxy ”等代理软件连接后, IP版的QQ都无法显示该IP地址。虽然代理可以有效地隐藏用户IP,但攻击者亦可以绕过代理, 查找到对方的真实IP地址,用户在何种情况下使用何种方法隐藏IP,也要因情况而论。
八、未加密登录请求
由于Web 配置不安全, 登陆请求把诸如用户名和密码等敏感字段未加密进行传输,攻击者可以窃听网络以劫获这些敏感信息。
九、敏感信息泄露漏洞
SQL 注入、XSS、目录遍历、弱口令等均可导致敏感信息泄露,攻击者可以通过漏洞获得敏感信息。
Web应用漏洞原理
Web应用攻击是攻击者通过浏览器或攻击工具,在URL或者其它输入区域(如表单等),向Web服务器发送特殊请求,从中发现Web应用程序存在的漏洞,从而进一步操纵和控制网站,查看、修改未授权的信息。
评论列表(0条)