本文共 2426 字,大约阅读时间需要 8 分钟。
本章重点包括:
作为软件测试员很重要的一点是要了解为什么有人要攻击你的软件。了解动机能帮助软件测试员考虑到测试的软件中有哪些安全方面的漏洞。
安全产品是指产品在系统的所有者或者管理员的控制下,保护用户信息的保密性、完整性、可获得性,以及处理资源的完整性和可获得性。
安全漏洞是指使产品不可行的缺陷——即使是正确地使用产品——防止攻击者窃取系统的用户权限、调节操作、破坏数据,或建立未授权的信任。
黑客是指精通计算机编程和使用的人、电脑玩家,使用编程技能来获得对计算机网络或文件的非法访问的人。
黑客想获得系统访问权限的5个动机是:
威胁模式分析用于评估软件系统的安全问题。在这个过程中,目的是由评审小组查找产品特性设置方面可能会引起安全漏洞的地方。根据这些信息,小组可以选择对产品做修改,花更多的努力设计特定的功能,或者集中精力测试潜在的故障点。最终,这些做法会使产品更加安全。
执行威胁模式分析并非软件测试员的责任。这个责任应该落到项目经理的任务清单上,并且项目小组的每个成员都要参与。
威胁模型分析过程的步骤如下:
- 潜在的损害——如果这部分被黑了,损害有多大?
- 可反复性——黑客不间断利用漏洞的容易度如何?
- 可利用性——获得对系统或数据访问的技术难度有多大?是可以通过互联网用电子邮件发送,或用几行简单的BASIC写的宏代码,还是需要具有专业编程技能的人员来实现?
- 受影响的用户——如果黑客成功入侵,有多少用户会受到影响?
- 可发现性——黑客发现漏洞的可能性有多大?
软件测试员需要带上“失效性测试”的帽子,像黑客一样攻击被测试的软件——假定每一项功能都有一个安全漏洞,并且作为测试员,这是你的工作是发现并利用它。
在任何软件产品中都有一个安全问题——缓冲区溢出。
下表显示了不安全函数及其替代函数的清单。
项目小组在进行代码评审或者白盒测试时,注意关注不安全的函数及其使用。显然,小组程序员应该使用安全版本的函数。但是如果没有使用,代码评审就要更加严格地进行,以确保任何可能的安全漏洞都被发现并解决。用户变更时未被删除的保留数据叫做潜在数据。潜在数据是潜在的安全漏洞,需要在小组采用的任何威胁模型分析中进行讨论。也许这些数据不会被看成是产品的问题,而被看成是一个大问题。
从本章中得到的一个体会应该是:没有计算机系统时安全的。我们应该假定计算机系统一直处于受攻击的状态,攻击者或者想控制计算机,或者想访问上面的数据。为帮助设计一个安全的系统,在产品设计的开始就必须注意安全的问题。测试员仅能测试软件的安全性,软件安全必须先计划、评审、设计,然后才是测试。使用具有反复性的软件开发过程,例如螺旋模式,可以确保在整个开发过程中安全的问题被再次提到。
跟踪最新的计算机安全问题的最有参考价值的网站是www.securifocus.com。如果在负责软件安全的测试,或者甚至没有,定期浏览该网站是个好办法,看看黑客们在干什么,以及他们是如何破坏大大小小的系统的。
转载地址:http://zcyki.baihongyu.com/