【5.20】五、安全测试——概念与漏洞

目录

5.1 安全测试概述

5.1.1 什么是安全测试

5.1.2 安全测试的基本原则

5.2 常见的安全漏洞

5.2.1 SQL注入

5.2.2 XSS跨站脚本攻击

5.2.3 CSRF攻击


软件安全测试是软件测试的重要研究领域,它是保证软件能够安全使用的最主要手段,做好软件安全测试的必要条件有2个,一是充分了解软件安全漏洞,二是拥有高效的软件安全测试技术和测试工具

5.1 安全测试概述

5.1.1 什么是安全测试

安全测试是在IT软件产品的生命周期中,对产品进行检验以验证产品符合安全需求定义产品质量标准的过程。

【5.20】五、安全测试——概念与漏洞_第1张图片 

(1)测试目标不同:普通测试以发现Bug为目标;安全测试以发现安全隐患为目标。

(2)假设条件不同:普通测试假设导致问题的数据是用户不小心造成的,接口一般只考虑用户界面;安全测试假设导致问题的数据是攻击者处心积虑构造的,需要考虑所有可能的攻击途径。

(3)思考域不同:普通测试以系统所具有的功能为思考域;安全测试的思考域不但包括系统的功能,还有系统的机制、外部环境、应用和数据自身安全风险与安全属性等。

(4)问题发现模式不同:普通测试以违反功能定义为判断依据;安全测试以违反权限与能力的约束为判断依据。

5.1.2 安全测试的基本原则

完全避免软件安全缺陷问题是不切实际的,但通过安全测试可以发现并修复软件大部分安全缺陷。

1. 培养正确的思维方式:只有跳出常规思维定式才能成功执行安全测试。

2. 尽早测试和经常测试:越早发现修复成本越低。

3. 选择正确的测试工具:模拟黑客行为就要求安全测试人员擅长使用各种工具,如漏洞扫描工具、模拟数据流行为的前后台相关工具、数据包抓取工具等。

4. 可能情况下使用源代码:黑盒的渗透测试和白盒的源代码扫描内外结合,可以使软件的安全性得到极大程度的提高。

5. 测试结果文档化:将测试行动和结果清晰准确地记录在文档中,产生一份测试报告。该报告最好包括漏洞类型、问题引起的安全威胁及严重程度、用于发现问题的测试技术、漏洞的修复、漏洞风险等。

5.2 常见的安全漏洞

5.2.1 SQL注入

SQL注入就是把SQL命令人为地输入URL、表格域或者其他动态生成的SQL查询语句的输入参数中,最终达到欺骗服务器执行恶意的SQL命令

由于SQL注入攻击的Web应用程序处于应用层,因此大多防火墙不会进行拦截。除了完善应用代码外,还可以在数据库服务器端进行防御,对数据库服务器进行权限设置,降低Web程序连接数据库的权限,撤销不必要的公共许可,使用强大的加密技术保护敏感数据,并对被读取走的敏感数据进行审查跟踪等。

5.2.2 XSS跨站脚本攻击

XSS(Cross Site Scripting)是Web应用系统最常见的安全漏洞之一,它主要源于Web应用程序对用户输入检查和过滤不足。攻击者可以利用XSS漏洞把恶意代码(HTML代码或JavaScript脚本)注入网站中,当有用户浏览该网站时,这些恶意代码就会被执行,从而达到攻击的目的。

【5.20】五、安全测试——概念与漏洞_第2张图片

5.2.3 CSRF攻击

CSRF(Cross-Site Request Forgery)为跨站请求伪造,它是一种针对Web应用程序的攻击方式,攻击者利用CSRF漏洞伪装成受信任用户的请求访问受攻击的网站。在CSRF攻击中,当用户访问一个信任网站时,在没有退出会话的情况下,攻击者诱使用户点击恶意网站,恶意网站会返回攻击代码,同时要求访问信任网站,这样用户就在不知情的情况下将恶意网站的代码发送到了信任网站。

【5.20】五、安全测试——概念与漏洞_第3张图片 

XSS是盗取用户信息伪装成用户执行恶意活动,而CSRF则是通过用户向网站发起攻击。如果将XSS攻击过程比喻为小偷偷取了用户的身份证去办理非法业务,那CSRF攻击则是骗子“劫持”了用户,让用户自己去办理非法业务,以达到自己的目的。

CSRF漏洞产生的原因主要是对用户请求缺少更安全的验证机制。防范CSRF漏洞的主要思路就是加强后台对用户及用户请求的验证,而不能仅限于Cookie的识别。


WASC和OWASP:Web Application Security Consortium(Web应用程序安全组织)和 Open Web Application Security Project(开放式Web应用程序安全项目)。

你可能感兴趣的:(软件测试,安全性测试)