收藏 分销(赏)

web系统安全分析.doc

上传人:快乐****生活 文档编号:4857031 上传时间:2024-10-15 格式:DOC 页数:13 大小:61.02KB
下载 相关 举报
web系统安全分析.doc_第1页
第1页 / 共13页
web系统安全分析.doc_第2页
第2页 / 共13页
web系统安全分析.doc_第3页
第3页 / 共13页
web系统安全分析.doc_第4页
第4页 / 共13页
web系统安全分析.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、信息技术有限公司Web系统安全分析报告编 写 人:编写时间:2013.8.1部 门 名:技术部-测试组目录Web系统安全概述3Web攻击的分类4基于用户输入的攻击4基于会话状态的攻击。4Web攻击的分类分析4基于用户输入攻击:4(1)SQL 注入攻击4(2)跨站脚本攻击(XSS)6基于会话状态的攻击:7保障web系统安全性的方法总结:8Web系统的安全性测试10IBM Rational AppScan 简介11IBM Rational AppScan的使用范围12开发人员使用AppScan12测试人员使用AppScan13文档说明:13 Web系统安全概述 随着互联网的迅猛发展,web应用的

2、数量急剧增加。与此同时,web站点被攻击的现象呈逐年上升趋势,这主要由于多数站点所提供的安全服务有限,使得web系统的安全性非常脆弱,存在很多的安全漏洞。而这些漏洞的存在,使得web应用程序很容易被攻击者利用,进而破坏web系统的安全性。Web安全漏洞可以分为两类:第一类是web服务器程序存在的安全漏洞,如:IIS、Apache或Netscape Server存在的漏洞。第二类是web应用程序存在的漏洞,这主要是因为程序员在使用ASP、Perl等脚本对web系统进行的编程过程中,由于缺乏安全意识或有着不良的编程习惯,最终导致程序出现可能被利用的漏洞。注: 第一类的安全漏洞可以通过对服务器进行定

3、期的检查,维护来防止安全漏洞的出现。所以本报告主要对第二类的web安全漏洞进行分析。Web攻击的分类对于web应用程序存在的漏洞,攻击者针对不同的安全威胁有相对应的攻击方式,主要可分为两大类:一、基于用户输入的攻击根据国际组织OWASP统计,排在前两位的web攻击手段分别是脚本注入攻击(SQL injection)和跨站脚本攻击(CSS/XSS),这两者均属于网站未对用户输入进行安全验证而导致的结果。二、基于会话状态的攻击web应用程序在会话管理机制方面存在的缺陷,往往也会导致攻击者通过提升权限来对网站进行破坏。Web攻击的分类分析一、基于用户输入攻击:(1)SQL 注入攻击脚本注入(SQL

4、injection)指的是将SQL代码传递到一个并非开发人员所预期的服务程序中,试图操纵程序的数据库的攻击方式。产生SQL注入的大部分原因是因为应用程序没有对用户输入做严格的检查。通过脚本注入,攻击者不仅可以获取网站管理员权限,对网站进行肆意操作。而且攻击者可以上传木马程序,从而控制网站所在的服务器。虽然SQL注入攻击的危害很大。但是,程序员在系统的开发过程中,可从以下几个方面防范SQL注入攻击:1、全面检查输入的参数设置例如:如果要用户输入数值方面的数据时,必须确保在执行查询前,其输入的只是数值数据,如果输入包含其他字母,符号等数据则一律拒绝查询,此外,还可以更进一步执行一些额外的检测,确保

5、输入数值的长度合法、有效等。2、加强执行SQL查询账户的权限管理最好采用最低权限标准。如果某个账户执行了一些不属于其权限范围内的查询,例如删除表格等,该查询将不会成功执行。还可以用不同的用户账户执行查询、插入、更新、删除操作。由于隔离了不同账户可执行的操作,因而也就防止了原本执行select命令的地方却被用于执行Insert、Update或Delete命令。3、设置数据库特定的存储过程如果只允许执行特定的存储过程,那么所有的用户输入必须遵从被调用的存储过程的安全上下文,这样就很难发生注入式攻击了。4、限制表单或查询字符串输入的长度如果用户的登录名字最多只有20个字符,那么不要认可表单中输入的2

6、0个以上的字符,这将大大增加攻击者在SQL命令中插入有害代码的难度。(2)跨站脚本攻击(XSS)跨站脚本攻击指的是攻击者往网站的web页面里插入恶意HTML代码,当用户浏览该网页时,这段HTML代码会被执行,从而获取用户的敏感信息。跨站脚本攻击的威胁程度已经跃居所有安全威胁之首,导致的后果极其严重,影响面也十分广泛。系统开发人员和系统维护人员可从以下方面防范XSS攻击:1、黑表过滤也就是说将不可以接受的数据过滤掉。比如“.”标签等等。2、设置白表由黑表过滤机制可知,将黑表中记录的所有非法输入进行过滤几乎是不可能的,因为可能在HTML中以标签方式执行的脚本类型层出不穷,编码方式也不断更新。因此,

7、与其过滤掉数据中不应该被接受的部分,不如设置白表,将所有可以接受的数据记录下来,这样只允许输入白表中设置的数据类型,其他类型均不允许输入。3、字符转换如果能够不把用户输入看成代码而只看成文本的话,就能避免跨站脚本攻击。比如我们见到的跨站脚本几乎都是以HTML标签执行的,都需要在代码中加入尖括号“”,如果将尖括号进行转换,转换为一个文本字符,则即使被浏览器解释,也是无法执行的。二、基于会话状态的攻击:HTTP协议最初的设计用于以不连续的请求方式从服务器间断地向客户机传输信息,它并没有考虑在web应用程序中应该如何管理和跟踪用户的会话。但对于现在很多的网站来讲,对用户身份的识别并响应用户的所有请求

8、是它所提供的基本服务,因此必须管理与跟踪所有与子联系的用户会话。如果开发者和web站点的设计者在设计管理会话策略时考虑不周,就可能留下被攻击者攻击的漏洞。基于会话状态的攻击就是针对那些没有正确实现用户会话管理的应用程序的漏洞攻击。但是,系统开发人员可从以下方面考虑,制定安全的会话管理机制:1、会话系统对于会话标识号的分配必须可靠。所谓的可靠主要体现在两方面:一是标识号的生成要随机。在不了解随机算法的前提下,攻击者很难猜出随机的标识号;二是要保证标识号的长度充足。如果一个网站同时会话用户很多,而标识号长度又短,那么攻击者很容易遍历查找标识号。2、使用cookie保存会话变量。与隐藏字段或URL参

9、数相比,cookie一般更难更改而且可以通过设置标志变量等机制加以保护。另外还可以限制某个网站甚至是网站某个部分的cookie,或另它们自动删除。3、禁止用户选择会话表示。有些会话管理系统允许拥有合法会话ID的用户在ID号删除后自己进行恢复,这样完全可以重新生成一个保留原有状态信息的新会话。4、会话标识要设有效期,超过有效期的会话标识不能再被使用。服务器段存储的会话变量使得web应用程序能够记录会话的名称和创建时间,如果会话在一段时间内未被使用,应该被服务器删除。5、允许用户注销并清除会话。当用户注销时,注销动作将在服务器和客户端同时删除会话的标识。保障web系统安全性的方法总结:一、会话处理

10、1、安全创建会话标识。会话标识要尽可能随机,这样可以阻止欺骗攻击。2、应用程序要能够追踪或防止发生同时登录。这能阻止会话重放攻击。3、应用程序要能够追踪到用户在服务器会话时间;当会话静止时间超过有效期,要自动中止该会话并删除会话标识。二、错误处理1、在可能的情况下,应用程序可以捕获到HTTP500错误。同时避免返回给用户的错误处理页面中包含任何内部状态信息,如变量名、文件名或数据库查询。2、应用程序将数据写入一个自定义错误日志。该日志能提供调试应用程序及识别恶意行为的有用信息。三、数据库处理1、与数据库链接的口令要以安全方式存储。如果连接数据库的口令必须以明文形式存储在文件中,那么该文件就应该

11、设置严格的读取权限。同时,该文件不应存储在web的根目录中。2、应用程序尽可能使用低权限的数据库账户来执行SQL查询。换言之,该账户可以创建并修改与应用程序有关的表,但是不可以执行类似重启数据库或修改数据库表的操作。3、SQL查询不通过变量的字符串链接来创建,应使用存储过程或自定义的视图。4、数据通过强类型变量进行传递。四、文件处理1、应用程序只能从一个特定的目录中取回文件,且这个目录不包括应用程序代码本身。2、文件上传目录不允许文件运行。3、分开文件上传目录和下载目录。五、应用程序审核事件1、应用程序应记录验证成功和失败的用户ID和IP地址。2、应用程序记录修改敏感资料信息的用户ID和IP地

12、址。3、应用程序记录明显的恶意输入和IP地址。4、应用程序记录的事件信息应该足以识别用户或行为。六、输入验证1、输入过滤器在应用之前,数据标准化到一个标准的字符集中。所有的URL编码字符都进行解释,所有的Unicode或其他编码字符都使用预期的字符表现形式。2、验证过滤器应用到整个输入字符串。3、数据是强类型的。预期的输入与某种数据类型相匹配,如varchar、整数、字符串、布尔型或自定义类型。4、检查数据的有效类型,检查参数值的正确性。5、检查数据长度。附加字符会被应用程序截断和忽略。6、检查数据中的无效内容,包括符号“”,“;”,“”,“”等。Web系统的安全性测试Web系统在开发的过程中

13、以及上线之前,我们需要对系统进行安全性测试。所谓安全性测试(security testing)是指有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。随着越来多的重要数据都存储在web应用上,以及网络事务数量的增长,基于程序的安全性测试变得相当重要。根据网络上不同的攻击方式,系统安全测试人员可针对性的对web系统进行手动的安全测试。但是,这样的测试成本相对较高,效率却非常低下。所以测试人员可以利用开源的安全测试软件替代人工完成测试工作。安全测试方面的开源软件很多,本报告选择其中较为有名的一款Appscan进行介绍。IBM Rational AppScan 简介IBM Rational App

14、Scan,是对 Web 应用和 Web Services 进行自动化安全扫描的黑盒工具,它不但可以简化企业发现和修复 Web 应用安全隐患的过程,还可以根据发现的安全隐患,提出针对性的修复建议,并能形成多种符合法规、行业标准的报告,方便相关人员全面了解企业应用的安全状况。AppScan包括了测试版,Build版,标准版,企业版。标准版是一个单机版工具,个人可以利用它针对Web应用进行黑盒测试。AppScan拥有一个庞大完整的攻击规则库,也称为特征库,通过在 http request 中插入测试用例的方法实现几百种应用攻击,再通过分析 http response 判断该应用是否存在相应的漏洞。特

15、征库是可以随时添加的。它的扫描分为两个阶段:阶段一:探测阶段。探测站点下有多少个Web页面。并列出来。阶段二:测试阶段。针对探测到的页面,应用特征库实施扫描。扫描完毕,会给出一个漏洞的详细报告。界面分为五大区域:(1)视图区(2)Web应用程序树形列表区(3)结果列表区(4)漏洞统计区(5)漏洞详细信息区IBM Rational AppScan 解决方案能够在 Web 开发、测试、维护、运营的整个生命周期中,帮助企业高效的发现、解决安全漏洞,最大限度的保证应用的安全性。IBM Rational AppScan的使用范围 (1)开发人员使用AppScan开发人员在开发过程中可以使用AppScan

16、或者专用插件,随时开发随时测试,最大化的保证个人开发程序的安全性。越早发现问题,解决问题的成本就越低,这为Web应用的安全提供了最为坚实的基础保障。(2)测试人员使用AppScan系统测试人员使用AppScan对应用做全面的测试,一旦发现问题,可以快速的生成defect,通过与ClearQuest的集成可以实现defect电子化跟踪,再传递到开发人员手中,指导开发人员迅速解决问题。极大的提高了开发团队的开发效率,也提供了完整的沟通平台和解决方案.注:AppScan使用教程很多,在此不做讲解。文档说明:写这份报告之前查阅了很多相关方面的资料。从中学到很多新的知识,对web系统安全也有了更进一步的认识。经过一段时间的学习和总结,写出了这份报告。由于个人学习时间不长,掌握的知识有限。文档中对系统的安全认识不是很全面,很多见解会存在不足之处,望读者见谅。 13 / 13

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服