软件安全测试介绍 网站安全测试
软件安全在当今互联网应用普及的今天,软件的安全性是越来越被重视。如何保证软件应用的安全性,在软件测试过程中的安全性测试就尤为显得重要了。那么什么是软件安全呢?软件安全总是与被保护的信息和服务、攻击者的技术和资源、潜在的保证安全方法的开销有关系。 安全是风险管理的一个锻炼,风险分析,尤其是在设计层面的风险分析可以帮助我们只别潜在的安全问题和他们的影响。 通过识别和锁定软件风险,可以帮助和指导软件安全测试。 软件可能被攻击的弱点都存在哪里呢?软件安全的弱点是有很多种类型,安全弱点在软件系统中分布在从软件的本地实现错误,至交互过程接口错误,到更高层的设计层面错误。软件弱点大致分布在两个范畴——在实现层的bug和设计层面的缺点。
风险管理和安全测试: 软件安全工人员执行很多不同的任务去管理软件安全风险,包括:
● 创建安全的abuse/misuse 用例
● 列出正常的安全需求
● 执行架构风险分析
● 建立基于风险的安全测试计划
● 运用静态分析工具
● 执行安全测试
● 执行渗透测试在最终环境
● 清理安全破坏后的环境
其中架构风险分析 基于风险的安全测试计划和安全测试 是尤其紧密相关联的三个部分。
如何执行安全测试: 谁去做安全测试,因为安全测试包括两种方法,谁去做这个问题有两种答案。标准测试组织用上写方法能够执行功能安全测试。例如确认访问控制方法是否正常工作的测试就是一类功能安全测试。 另一个方面,传统QA人员去执行基于风险的安全测试是很困难的,问题是安全测试是一个专门知识。首先安全测试的困难是测试设计者必须用一个攻击者的思维去思考。第二,安全测试不经常导致直接的安全业绩和显示出被发掘的问题。所以说基于风险的安全测试依赖于更多专门的知识和更多的经验。
怎么去做安全测试:把自己想象一个攻击者,按攻击者的思路去设计测试。白盒,黑盒测试和分析方法两者都是去理解软件,但是他们用不同的方法依区别是否分析人员和测试者已经访问源代码。白盒测试分析包括分析和理解源代码和设计。他是非常典型和有效的发现程序错误的方法(bug-自动扫描代码,缺点-做风险分析)。黑盒分析是通过输入不同输入值,来分析到正在运行的程序。这种测试只需要运行程序,不需要分析源代码在安全范例中,恶意的输入是一个有效的方法去破坏程序。如果程序真的被破坏了,那么我们可能真的发现了一个安全问题。只要测试人员能提供可能的输入并且能观察到测试效果,那么黑盒测试就可行。
常见的安全测试技术:
1. 网络扫描:
2. 弱点扫描
3. 密码破解
4. 日志检查
5. 文件完整性检查
6. 病毒探测
7. 无线网络测试
8. 渗透测试
9. 事后测试