论文部分内容阅读
摘要: 随着计算机技术的飞速发展,网络技术也得到广泛的应用,但随之而来的就是网络安全问题的出现。在研究与实践的基础上,详细总结并论述目前较为流行的网络攻击方法的原理及其有针对性的防护技术,对加强网络安全,实现安全上网有重要意义。
关键词: Web攻击;安全防护;网络技术
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2011)0210030-01
随着信息化技术的发展,网络技术得到了广泛的应用,其中Web成为主流的网络和应用技术。但网络安全问题目前已成为世界范围内不容忽视的问题。
1 网络安全现状
CNCERT/CC网络安全监测系统对流量数据进行的抽样统计显示,Web应用流量占整个TCP流量的81.1%。但随之而来的网络安全问题也成为了人们关注的焦点。信息安全国际权威机构SANS曾经年发布的全球20大安全风险排行榜上,Web应用安全漏洞名列前茅,近几年网络攻击案例屡见不鲜,高中生黑掉瑞安建设局网、云南晋宁县政府网站被黑首页满屏“躲猫猫”、湖北荆州商务局网站被黑、男子入侵地震局网站篡改数据散布地震谣言等等。由此可见,研究web攻击与防护技术,做好网络安全,事关重大。通过多年网络安全工作的研究与实践,总结出目前网络上普遍存在的攻击方法,并针对这些攻击方法,研究出有效的防护技术。
2 攻防原理与方法
1)SQL注入:利用WEB应用对用户输入验证设计上的疏忽,或验证的不严格,从而使用户输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让WEB应用用户有机会直接对后台数据库系统下达指令,实施入侵行为。SQL注入的产生主要是由动态字符串构建和不安全的数据库配置产生,其中动态字符串构建主要是由不正确的处理转义字符、不正确的处理类型、不正确的处理联合查询、不正确的处理错误和不正确的处理多次提交构成。不安全的数据库配置产生主要是由默认预先安装的用户、以root,SYSTEM或者Administrator权限系统用户来运行和默认允许很多系统函数(如xp_cmdshell,OPENROWSET等)构成。
主要防护方法两种:
① 代码级防护:主要有使用参数化的语句、验证输入、编码输出、规范化和其他技巧,包括使用存储过程、使用抽象层、加密敏感数据、避免明显的对象名字、设置数据库蜜罐等。
② 平台级别防护:在运行期间实施保护,安全配置数据库和使用WAF、使用URL/Page-Level策略等。
2)跨站脚本攻击(XSS)攻击者向Web页面中插入恶意的日丁ML代码没有被网站过滤,当用户浏览该页面时,嵌入其中的日丁ML代码就会执行,从而达到恶意用户的特殊目的这类攻击不会对网站主机木身有任何威胁,恶意攻击者使用某些语言(脚木)跨过网站主机对使用者进行攻击,所以才被稱为跨站脚木攻击。主要涉及到三方:即攻击者、客户端与网站。攻击方法为先锁定目标,在存在漏洞网页的URL中插入脚木程序(获取cookie并发送)构造URL;执行XSS,将URL通过邮件等发送给用户(钓鱼);当用户点击链接时,攻击者得到脚木信息;处理接收到的cookie,使用Websleuth之类的工具得到cookie中的帐尸界码等信息。还有一种方式,将正常网站的页面拷贝挂载在恶意程序。
最佳的防护应该结合验证所有输入数据和对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。
3)远程文件包含也有称之为远程代码包含,一些恶意用户利用网站服务器对文件包含过滤不严格而强行使网站上的代码包含恶意用户自己的文件,以实现执行特定脚木,达到对网站进行攻击的目的。PHP常见的包含文件的函数有include(),require()和inclladeonce()、reqmreonce()等所有的cgi程序都可能受到这样的攻击。Web应用程序引入来自外部(远程)的恶意文件或者将未经确认的输入字符串联成文件或流函数并执行其内容造成的漏洞。
主要防护方法为完善错误信息,避免“包含文件”信息泄露对输入变量进行过滤,对特殊字符进行替换、编码,如“/”。
4)目录遍历攻击指攻击者利用系统漏洞访问合法应用之外的数据或文件目录,导致数据泄露或被篡改。最常见的就是利用“双句点代表父目录”机制进行攻击:“../../../../../..//etc/passwd”。防护方法主要是利用应用配置文档,阻止含有路径穿越的访问,并强迫只能访问设计发布的网页,从而阻止非法访问不合法的网页或目录。以及修补web服务器漏洞。
5)操作系统命令注入攻击利用WEB应用对用户输入验证设计上的疏失,或者说验证的不严格,在HTML代码中,使用一些函数调用操作系统命令,对系统进行操作,造成入侵行为。执行文件操作、系统命令操作、执行系统程序等。
防护方法主要是由尽量不要执行外部命令运用safe_mode_exec_dir指定可执行文件的路径。
6)分布式拒绝服务攻击(DDoS)利用网络协议存在的固有漏洞,伪造合理的服务请求,消耗有限的网络带宽或占用过多的服务资源,使网络或者服务无法响应用户的正常请求,造成网络服务瘫痪。资源耗尽型有:UDPDNSQueryFlood,ConnectionFlood,HTTPGetFlood等等,流量型有:syn_flood,ackflood,rst_flood,udp_flood,icmp一lood等。防护方法主要有系统优化、网络设备优化、采用DNS轮循,或者通过负载均衡、Cluster等技术增加响应主机数量,增加系统资源,从而提升抗打击能力和抗DDoS网关等网络安全设备。
7)损坏的认证和会话管理指Web应用程序中自行撰写的身份验证相关功能有缺陷,可能导致session或cookies内所存之数据泄漏,造成使用者或管理者的身份ID被盗取。比如提供了“记住我”、“忘记密码”等功能的容易造成此漏洞。具体的攻击类型有:sessionfixation、sessionhijack、Cookiepoisoning等。
防护方法主要有代码级,不要将session的数据以URL方式传送至server端,使用SSL来保护密码和sessionid建立自动注销机制,确保“注销登录”的动作能够关闭所有的会话,用户登录成功后,系统应生成新会话,程序应减少使用cookies当作使用者之身份验证,对cookie进行加密签名并进行验证,使用工具扫描相关漏洞。
8)不安全的对象引用。当开发者向用户暴露一个对网站内部部署对象的引用时,如一个文件、目录、数据库键值等,若系统没有访问控制检查或者其他的保护措施,攻击者则能能伪造引用实现对没有授权数据的访问伪造引用实现对没有授权数据的访问。基本的攻击原理就是根据己有的对象引用,推测其他未授权对象的引用。当网站地址或者其他参数包含了文件、目录、数据库记录或者关键字等参照物时就可能发生这种攻击。
9)跨站请求伪造(CSRF)。这是一种挟制终端用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。攻击者只要借助少许的社会工程诡计,例如通过电子邮件或者是聊天软件发送的链接,攻击者就能迫使一个Web应用程序的用户去执行攻击者选择的操作。
防护方法:用户使用Web应用程序之后立即登出不要让浏览器保存用户名/口令,不要使用同一个浏览器同时访问敏感的应用程序和随意冲浪。开发者将持久化的授权方法切换为瞬时的授权方法,在non-GET请求中使用Securitytoken,不要滥用$_REQUEST类变量。
3 结束语
该文对Web攻击及Web网站安全技术进行了比较详细地分析,通过本文,可以了解到信息系统外网网站中存在的普遍安全漏洞。网站的安全稳定运行,应侧重于预防,不断增强安全意识,采取各种预防措施,才能及时有效地排除安全隐患。
参考文献:
[1]冉晓雯,Web服务安全技术与原理,清华大学出版社,2007,9,1.
[2]程科峰,警惕SQL注入的危险[J].计算机安全,2004(2):84-87.
[3]刘凯、曹剑光、谢政,在应用层次上保证Web Server的安全[J].计算机应用,2004,24(S2):45-46.
[4]趋势科技(中国)有限公司,网络安全与病毒防范(第三版),上海交通大学出版社,2007,2,23.
作者简介:
张玲(1977-),新疆人,女,汉,硕士,助理工程师,就职于中电投新疆能源有限公司,信息管理专责;刘晓波,硕士研究生,主要研究方向:计算机信息处理、数据分析,就职于中电投新疆能源有限公司。
关键词: Web攻击;安全防护;网络技术
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2011)0210030-01
随着信息化技术的发展,网络技术得到了广泛的应用,其中Web成为主流的网络和应用技术。但网络安全问题目前已成为世界范围内不容忽视的问题。
1 网络安全现状
CNCERT/CC网络安全监测系统对流量数据进行的抽样统计显示,Web应用流量占整个TCP流量的81.1%。但随之而来的网络安全问题也成为了人们关注的焦点。信息安全国际权威机构SANS曾经年发布的全球20大安全风险排行榜上,Web应用安全漏洞名列前茅,近几年网络攻击案例屡见不鲜,高中生黑掉瑞安建设局网、云南晋宁县政府网站被黑首页满屏“躲猫猫”、湖北荆州商务局网站被黑、男子入侵地震局网站篡改数据散布地震谣言等等。由此可见,研究web攻击与防护技术,做好网络安全,事关重大。通过多年网络安全工作的研究与实践,总结出目前网络上普遍存在的攻击方法,并针对这些攻击方法,研究出有效的防护技术。
2 攻防原理与方法
1)SQL注入:利用WEB应用对用户输入验证设计上的疏忽,或验证的不严格,从而使用户输入的数据中包含对某些数据库系统有特殊意义的符号或命令,让WEB应用用户有机会直接对后台数据库系统下达指令,实施入侵行为。SQL注入的产生主要是由动态字符串构建和不安全的数据库配置产生,其中动态字符串构建主要是由不正确的处理转义字符、不正确的处理类型、不正确的处理联合查询、不正确的处理错误和不正确的处理多次提交构成。不安全的数据库配置产生主要是由默认预先安装的用户、以root,SYSTEM或者Administrator权限系统用户来运行和默认允许很多系统函数(如xp_cmdshell,OPENROWSET等)构成。
主要防护方法两种:
① 代码级防护:主要有使用参数化的语句、验证输入、编码输出、规范化和其他技巧,包括使用存储过程、使用抽象层、加密敏感数据、避免明显的对象名字、设置数据库蜜罐等。
② 平台级别防护:在运行期间实施保护,安全配置数据库和使用WAF、使用URL/Page-Level策略等。
2)跨站脚本攻击(XSS)攻击者向Web页面中插入恶意的日丁ML代码没有被网站过滤,当用户浏览该页面时,嵌入其中的日丁ML代码就会执行,从而达到恶意用户的特殊目的这类攻击不会对网站主机木身有任何威胁,恶意攻击者使用某些语言(脚木)跨过网站主机对使用者进行攻击,所以才被稱为跨站脚木攻击。主要涉及到三方:即攻击者、客户端与网站。攻击方法为先锁定目标,在存在漏洞网页的URL中插入脚木程序(获取cookie并发送)构造URL;执行XSS,将URL通过邮件等发送给用户(钓鱼);当用户点击链接时,攻击者得到脚木信息;处理接收到的cookie,使用Websleuth之类的工具得到cookie中的帐尸界码等信息。还有一种方式,将正常网站的页面拷贝挂载在恶意程序。
最佳的防护应该结合验证所有输入数据和对所有输出数据进行适当的编码,以防止任何已成功注入的脚本在浏览器端运行。
3)远程文件包含也有称之为远程代码包含,一些恶意用户利用网站服务器对文件包含过滤不严格而强行使网站上的代码包含恶意用户自己的文件,以实现执行特定脚木,达到对网站进行攻击的目的。PHP常见的包含文件的函数有include(),require()和inclladeonce()、reqmreonce()等所有的cgi程序都可能受到这样的攻击。Web应用程序引入来自外部(远程)的恶意文件或者将未经确认的输入字符串联成文件或流函数并执行其内容造成的漏洞。
主要防护方法为完善错误信息,避免“包含文件”信息泄露对输入变量进行过滤,对特殊字符进行替换、编码,如“/”。
4)目录遍历攻击指攻击者利用系统漏洞访问合法应用之外的数据或文件目录,导致数据泄露或被篡改。最常见的就是利用“双句点代表父目录”机制进行攻击:“../../../../../..//etc/passwd”。防护方法主要是利用应用配置文档,阻止含有路径穿越的访问,并强迫只能访问设计发布的网页,从而阻止非法访问不合法的网页或目录。以及修补web服务器漏洞。
5)操作系统命令注入攻击利用WEB应用对用户输入验证设计上的疏失,或者说验证的不严格,在HTML代码中,使用一些函数调用操作系统命令,对系统进行操作,造成入侵行为。执行文件操作、系统命令操作、执行系统程序等。
防护方法主要是由尽量不要执行外部命令运用safe_mode_exec_dir指定可执行文件的路径。
6)分布式拒绝服务攻击(DDoS)利用网络协议存在的固有漏洞,伪造合理的服务请求,消耗有限的网络带宽或占用过多的服务资源,使网络或者服务无法响应用户的正常请求,造成网络服务瘫痪。资源耗尽型有:UDPDNSQueryFlood,ConnectionFlood,HTTPGetFlood等等,流量型有:syn_flood,ackflood,rst_flood,udp_flood,icmp一lood等。防护方法主要有系统优化、网络设备优化、采用DNS轮循,或者通过负载均衡、Cluster等技术增加响应主机数量,增加系统资源,从而提升抗打击能力和抗DDoS网关等网络安全设备。
7)损坏的认证和会话管理指Web应用程序中自行撰写的身份验证相关功能有缺陷,可能导致session或cookies内所存之数据泄漏,造成使用者或管理者的身份ID被盗取。比如提供了“记住我”、“忘记密码”等功能的容易造成此漏洞。具体的攻击类型有:sessionfixation、sessionhijack、Cookiepoisoning等。
防护方法主要有代码级,不要将session的数据以URL方式传送至server端,使用SSL来保护密码和sessionid建立自动注销机制,确保“注销登录”的动作能够关闭所有的会话,用户登录成功后,系统应生成新会话,程序应减少使用cookies当作使用者之身份验证,对cookie进行加密签名并进行验证,使用工具扫描相关漏洞。
8)不安全的对象引用。当开发者向用户暴露一个对网站内部部署对象的引用时,如一个文件、目录、数据库键值等,若系统没有访问控制检查或者其他的保护措施,攻击者则能能伪造引用实现对没有授权数据的访问伪造引用实现对没有授权数据的访问。基本的攻击原理就是根据己有的对象引用,推测其他未授权对象的引用。当网站地址或者其他参数包含了文件、目录、数据库记录或者关键字等参照物时就可能发生这种攻击。
9)跨站请求伪造(CSRF)。这是一种挟制终端用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。攻击者只要借助少许的社会工程诡计,例如通过电子邮件或者是聊天软件发送的链接,攻击者就能迫使一个Web应用程序的用户去执行攻击者选择的操作。
防护方法:用户使用Web应用程序之后立即登出不要让浏览器保存用户名/口令,不要使用同一个浏览器同时访问敏感的应用程序和随意冲浪。开发者将持久化的授权方法切换为瞬时的授权方法,在non-GET请求中使用Securitytoken,不要滥用$_REQUEST类变量。
3 结束语
该文对Web攻击及Web网站安全技术进行了比较详细地分析,通过本文,可以了解到信息系统外网网站中存在的普遍安全漏洞。网站的安全稳定运行,应侧重于预防,不断增强安全意识,采取各种预防措施,才能及时有效地排除安全隐患。
参考文献:
[1]冉晓雯,Web服务安全技术与原理,清华大学出版社,2007,9,1.
[2]程科峰,警惕SQL注入的危险[J].计算机安全,2004(2):84-87.
[3]刘凯、曹剑光、谢政,在应用层次上保证Web Server的安全[J].计算机应用,2004,24(S2):45-46.
[4]趋势科技(中国)有限公司,网络安全与病毒防范(第三版),上海交通大学出版社,2007,2,23.
作者简介:
张玲(1977-),新疆人,女,汉,硕士,助理工程师,就职于中电投新疆能源有限公司,信息管理专责;刘晓波,硕士研究生,主要研究方向:计算机信息处理、数据分析,就职于中电投新疆能源有限公司。