web系统安全分析教程文件_第1页
web系统安全分析教程文件_第2页
web系统安全分析教程文件_第3页
web系统安全分析教程文件_第4页
web系统安全分析教程文件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Good is good, but better carries it.精益求精,善益求善。web系统安全分析Web系统安全分析报告编写人:编写时间:2013.8.1部门名:技术部-测试组目录TOCo1-3hzuHYPERLINKl_Toc363399262Web系统安全概述PAGEREF_Toc363399262h3HYPERLINKl_Toc363399263Web攻击的分类PAGEREF_Toc363399263h4HYPERLINKl_Toc363399264基于用户输入的攻击PAGEREF_Toc363399264h4HYPERLINKl_Toc363399265基于会话状态的攻击。

2、PAGEREF_Toc363399265h4HYPERLINKl_Toc363399266Web攻击的分类分析PAGEREF_Toc363399266h4HYPERLINKl_Toc363399267基于用户输入攻击:PAGEREF_Toc363399267h4HYPERLINKl_Toc363399268(1)SQL注入攻击PAGEREF_Toc363399268h4HYPERLINKl_Toc363399269(2)跨站脚本攻击(XSS)PAGEREF_Toc363399269h6HYPERLINKl_Toc363399270基于会话状态的攻击:PAGEREF_Toc363399270h7

3、HYPERLINKl_Toc363399271保障web系统安全性的方法总结:PAGEREF_Toc363399271h8HYPERLINKl_Toc363399272Web系统的安全性测试PAGEREF_Toc363399272h10HYPERLINKl_Toc363399273IBMRationalAppScan简介PAGEREF_Toc363399273h11HYPERLINKl_Toc363399274IBMRationalAppScan的使用范围PAGEREF_Toc363399274h12HYPERLINKl_Toc363399275开发人员使用AppScanPAGEREF_Toc

4、363399275h12HYPERLINKl_Toc363399276测试人员使用AppScanPAGEREF_Toc363399276h13HYPERLINKl_Toc363399277文档说明:PAGEREF_Toc363399277h13Web系统安全概述随着互联网的迅猛发展,web应用的数量急剧增加。与此同时,web站点被攻击的现象呈逐年上升趋势,这主要由于多数站点所提供的安全服务有限,使得web系统的安全性非常脆弱,存在很多的安全漏洞。而这些漏洞的存在,使得web应用程序很容易被攻击者利用,进而破坏web系统的安全性。Web安全漏洞可以分为两类:第一类是web服务器程序存在的安全漏洞

5、,如:IIS、Apache或NetscapeServer存在的漏洞。第二类是web应用程序存在的漏洞,这主要是因为程序员在使用ASP、Perl等脚本对web系统进行的编程过程中,由于缺乏安全意识或有着不良的编程习惯,最终导致程序出现可能被利用的漏洞。注:第一类的安全漏洞可以通过对服务器进行定期的检查,维护来防止安全漏洞的出现。所以本报告主要对第二类的web安全漏洞进行分析。Web攻击的分类对于web应用程序存在的漏洞,攻击者针对不同的安全威胁有相对应的攻击方式,主要可分为两大类:一、基于用户输入的攻击根据国际组织OWASP统计,排在前两位的web攻击手段分别是脚本注入攻击(SQLinjecti

6、on)和跨站脚本攻击(CSS/XSS),这两者均属于网站未对用户输入进行安全验证而导致的结果。二、基于会话状态的攻击web应用程序在会话管理机制方面存在的缺陷,往往也会导致攻击者通过提升权限来对网站进行破坏。Web攻击的分类分析一、基于用户输入攻击:(1)SQL注入攻击脚本注入(SQLinjection)指的是将SQL代码传递到一个并非开发人员所预期的服务程序中,试图操纵程序的数据库的攻击方式。产生SQL注入的大部分原因是因为应用程序没有对用户输入做严格的检查。通过脚本注入,攻击者不仅可以获取网站管理员权限,对网站进行肆意操作。而且攻击者可以上传木马程序,从而控制网站所在的服务器。虽然SQL注

7、入攻击的危害很大。但是,程序员在系统的开发过程中,可从以下几个方面防范SQL注入攻击:1、全面检查输入的参数设置例如:如果要用户输入数值方面的数据时,必须确保在执行查询前,其输入的只是数值数据,如果输入包含其他字母,符号等数据则一律拒绝查询,此外,还可以更进一步执行一些额外的检测,确保输入数值的长度合法、有效等。2、加强执行SQL查询账户的权限管理最好采用最低权限标准。如果某个账户执行了一些不属于其权限范围内的查询,例如删除表格等,该查询将不会成功执行。还可以用不同的用户账户执行查询、插入、更新、删除操作。由于隔离了不同账户可执行的操作,因而也就防止了原本执行select命令的地方却被用于执行

8、Insert、Update或Delete命令。3、设置数据库特定的存储过程如果只允许执行特定的存储过程,那么所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难发生注入式攻击了。4、限制表单或查询字符串输入的长度如果用户的登录名字最多只有20个字符,那么不要认可表单中输入的20个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。(2)跨站脚本攻击(XSS)跨站脚本攻击指的是攻击者往网站的web页面里插入恶意HTML代码,当用户浏览该网页时,这段HTML代码会被执行,从而获取用户的敏感信息。跨站脚本攻击的威胁程度已经跃居所有安全威胁之首,导致的后果极其严重,影响面也十分广

9、泛。系统开发人员和系统维护人员可从以下方面防范XSS攻击:1、黑表过滤也就是说将不可以接受的数据过滤掉。比如“.”标签等等。2、设置白表由黑表过滤机制可知,将黑表中记录的所有非法输入进行过滤几乎是不可能的,因为可能在HTML中以标签方式执行的脚本类型层出不穷,编码方式也不断更新。因此,与其过滤掉数据中不应该被接受的部分,不如设置白表,将所有可以接受的数据记录下来,这样只允许输入白表中设置的数据类型,其他类型均不允许输入。3、字符转换如果能够不把用户输入看成代码而只看成文本的话,就能避免跨站脚本攻击。比如我们见到的跨站脚本几乎都是以HTML标签执行的,都需要在代码中加入尖括号“”,如果将尖括号进

10、行转换,转换为一个文本字符,则即使被浏览器解释,也是无法执行的。二、基于会话状态的攻击:HTTP协议最初的设计用于以不连续的请求方式从服务器间断地向客户机传输信息,它并没有考虑在web应用程序中应该如何管理和跟踪用户的会话。但对于现在很多的网站来讲,对用户身份的识别并响应用户的所有请求是它所提供的基本服务,因此必须管理与跟踪所有与子联系的用户会话。如果开发者和web站点的设计者在设计管理会话策略时考虑不周,就可能留下被攻击者攻击的漏洞。基于会话状态的攻击就是针对那些没有正确实现用户会话管理的应用程序的漏洞攻击。但是,系统开发人员可从以下方面考虑,制定安全的会话管理机制:1、会话系统对于会话标识

11、号的分配必须可靠。所谓的可靠主要体现在两方面:一是标识号的生成要随机。在不了解随机算法的前提下,攻击者很难猜出随机的标识号;二是要保证标识号的长度充足。如果一个网站同时会话用户很多,而标识号长度又短,那么攻击者很容易遍历查找标识号。2、使用cookie保存会话变量。与隐藏字段或URL参数相比,cookie一般更难更改而且可以通过设置标志变量等机制加以保护。另外还可以限制某个网站甚至是网站某个部分的cookie,或另它们自动删除。3、禁止用户选择会话表示。有些会话管理系统允许拥有合法会话ID的用户在ID号删除后自己进行恢复,这样完全可以重新生成一个保留原有状态信息的新会话。4、会话标识要设有效期

12、,超过有效期的会话标识不能再被使用。服务器段存储的会话变量使得web应用程序能够记录会话的名称和创建时间,如果会话在一段时间内未被使用,应该被服务器删除。5、允许用户注销并清除会话。当用户注销时,注销动作将在服务器和客户端同时删除会话的标识。保障web系统安全性的方法总结:一、会话处理1、安全创建会话标识。会话标识要尽可能随机,这样可以阻止欺骗攻击。2、应用程序要能够追踪或防止发生同时登录。这能阻止会话重放攻击。3、应用程序要能够追踪到用户在服务器会话时间;当会话静止时间超过有效期,要自动中止该会话并删除会话标识。二、错误处理1、在可能的情况下,应用程序可以捕获到HTTP500错误。同时避免返

13、回给用户的错误处理页面中包含任何内部状态信息,如变量名、文件名或数据库查询。2、应用程序将数据写入一个自定义错误日志。该日志能提供调试应用程序及识别恶意行为的有用信息。三、数据库处理1、与数据库链接的口令要以安全方式存储。如果连接数据库的口令必须以明文形式存储在文件中,那么该文件就应该设置严格的读取权限。同时,该文件不应存储在web的根目录中。2、应用程序尽可能使用低权限的数据库账户来执行SQL查询。换言之,该账户可以创建并修改与应用程序有关的表,但是不可以执行类似重启数据库或修改数据库表的操作。3、SQL查询不通过变量的字符串链接来创建,应使用存储过程或自定义的视图。4、数据通过强类型变量进

14、行传递。四、文件处理1、应用程序只能从一个特定的目录中取回文件,且这个目录不包括应用程序代码本身。2、文件上传目录不允许文件运行。3、分开文件上传目录和下载目录。五、应用程序审核事件1、应用程序应记录验证成功和失败的用户ID和IP地址。2、应用程序记录修改敏感资料信息的用户ID和IP地址。3、应用程序记录明显的恶意输入和IP地址。4、应用程序记录的事件信息应该足以识别用户或行为。六、输入验证1、输入过滤器在应用之前,数据标准化到一个标准的字符集中。所有的URL编码字符都进行解释,所有的Unicode或其他编码字符都使用预期的字符表现形式。2、验证过滤器应用到整个输入字符串。3、数据是强类型的。

15、预期的输入与某种数据类型相匹配,如varchar、整数、字符串、布尔型或自定义类型。4、检查数据的有效类型,检查参数值的正确性。5、检查数据长度。附加字符会被应用程序截断和忽略。6、检查数据中的无效内容,包括符号“”,“;”,“”,“”等。Web系统的安全性测试Web系统在开发的过程中以及上线之前,我们需要对系统进行安全性测试。所谓安全性测试(securitytesting)是指有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。随着越来多的重要数据都存储在web应用上,以及网络事务数量的增长,基于程序的安全性测试变得相当重要。根据网络上不同的攻击方式,系统安全测试人员可针对性的对web系统

16、进行手动的安全测试。但是,这样的测试成本相对较高,效率却非常低下。所以测试人员可以利用开源的安全测试软件替代人工完成测试工作。安全测试方面的开源软件很多,本报告选择其中较为有名的一款Appscan进行介绍。IBMRationalAppScan简介IBMRationalAppScan,是对Web应用和WebServices进行自动化安全扫描的黑盒工具,它不但可以简化企业发现和修复Web应用安全隐患的过程,还可以根据发现的安全隐患,提出针对性的修复建议,并能形成多种符合法规、行业标准的报告,方便相关人员全面了解企业应用的安全状况。AppScan包括了测试版,Build版,标准版,企业版。标准版是一

17、个单机版工具,个人可以利用它针对Web应用进行黑盒测试。AppScan拥有一个庞大完整的攻击规则库,也称为特征库,通过在httprequest中插入测试用例的方法实现几百种应用攻击,再通过分析httpresponse判断该应用是否存在相应的漏洞。特征库是可以随时添加的。它的扫描分为两个阶段:阶段一:探测阶段。探测站点下有多少个Web页面。并列出来。阶段二:测试阶段。针对探测到的页面,应用特征库实施扫描。扫描完毕,会给出一个漏洞的详细报告。界面分为五大区域:(1)视图区(2)Web应用程序树形列表区(3)结果列表区(4)漏洞统计区(5)漏洞详细信息区IBMRationalAppScan解决方案能够在Web开发、测试、维护、运营的整个生命周期中,帮助企业高效的发现、解决安全漏洞,最大限度的保证应用的安全性。IBMRationalAppScan的使用范围(1)开发人员使用AppScan开发人员在开发过程中可以使用AppScan或者专用插件,随时开发随时测试,最大化的保证个人开发程序的安全性。越早发现问题,解决问题的成本就越低,这为Web应用的安全提供了最为坚实的基础保障。(2)测试人员使用AppScan系统测试人员使用A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论