软件安全性测试.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

二十一世纪,智能化的软件成为商业决策、推广等不可缺少的利器,很多软件涉及了客户商业上重要的信息资料,因此客户很关心软件的安全性。往往一个细小的安全漏洞,对客户产生的影响都是巨大的。所以我们需要尽可能的保证软件的安全性,确保软件在安全性方面能满足客户期望。

一、那么什么是软件安全性测试?

安全性测试是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程。应用程序级安全测试的主要目的是查找软件自身程序设计中存在的安全隐患,并检查应用程序对非法侵入的防范能力,根据安全指标不同测试策略也不同。

二、安全性测试又有哪些方法和手段呢?

目前有许多种的测试手段可以进行安全性测试,安全测试方法分主要为三种:

①静态的代码安全测试:主要通过对源代码进行安全扫描,根据程序中数据流、控制流、语义等信息与其特有软件安全规则库进行匹对,从中找出代码中潜在的安全漏洞。静态的源代码安全测试是非常有用的方法,它可以在编码阶段找出所有可能存在安全风险的代码,这样开发人员可以在早期解决潜在的安全问题。而正因为如此,静态代码测试比较适用于早期的代码开发阶段,而不是测试阶段。

②动态的渗透测试:渗透测试也是常用的安全测试方法。是使用自动化工具或者人工的方法模拟黑客的输入,对应用系统进行攻击性测试,从中找出运行时刻所存在的安全漏洞。这种测试的特点就是真实有效,一般找出来的问题都是正确的,也是较为严重的。但渗透测试一个致命的缺点是模拟的测试数据只能到达有限的测试点,覆盖率很低。

③程序数据扫描。一个有高安全性需求的软件,在运行过程中数据是不能遭到破坏的,否则就会导致缓冲区溢出类型的攻击。数据扫描的手段通常是进行内存测试,内存测试可以发现许多诸如缓冲区溢出之类的漏洞,而这类漏洞使用除此之外的测试手段都难以发现。例如,对软件运行时的内存信息进行扫描,看是否存在一些导致隐患的信息,当然这需要专门的工具来进行验证(比如:HPWebInspect、IBMAppscan和AcunetixWebVulnerabilityScanner)。

三、常见的软件安全性缺陷和漏洞有哪些?

软件的安全包含很多方面的内容,主要的安全问题是由软件本身的漏洞造成的,下面我们说说几种常见的软件安全性缺陷和漏洞,大家在程序开发或是测试时不妨考虑或验证一下,我们所开发或是测试的程序,是否存在这些方面的安全隐患。

SQL注入

所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

简单举个小例子,一个登录模块,让你输入用户名密码。我们一般都会老老实实的输入我们的用户名和密码。但如果我们刻意的去绕过登录认证呢?猜想下面这个sql语句,单说用户名,开发人员很可能会这样去数据库里对比:

Select*fromsys_userwhereusername=‘XXX’

当然可能更复杂,假如我们在输入框里输入下面一句特殊的字符会如何?’or‘1=1这是段神奇的字符,因为这样这个sql就变成:

Select*fromsys_userwhereusername=‘’or‘1=1’

这样我们就跳过了用户名的验证,实现了入侵,是不是很简单,看到这里大家不妨动手尝试一下吧。

修改提交数据

曾经某公司做过一个关于在线支付的商城,在安全性测试过程中,发现通过抓包抓到的提交价格(如使用火狐插件:livehttpheaders),经过修改再发包可以通过。简单来说就是本来100块钱买的东西,抓包修改为1块就能成功购买。这就成为了一个巨大的隐患。

跨站脚本攻击

XSS是如何发生的呢?假如有下面一个textbox:

inputtype=textname=address1value=value1fromvalue后面的值是来自用户的输入,如果用户输入/scriptalert(document.cookie)/script!-

那么就会变成

inputtype=textname=address1value=/scriptalert(document.cookie)/script!-

嵌入的JavaScript代码将会被执行或者用户输入的是:onfocus=alert(document.cookie)那么就会变成

inputtype=textname=address1value=onfocus=alert(document.cookie)

事件被触发的时候嵌入的JavaScript代码将会被执行。

缓冲区溢

文档评论(0)

tianya189 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档