根据is08402的定义,安全性是“使伤害或损害的风险限制在可接受的水平内”。所以直观地说,软件的安全性是软件的一种内在的属性。安全性的英文术语是safety,另一个英文术语security,也有安全的含义,但是它主要是指文件、数据、资料的保密问麒。
软件安全性和可靠性有非常紧密的联系,安全事故是危害度最大的失效事件t因此软件可靠性要求通常包括了安全性的要求。但是软件的可靠性不能完全取代软件的安全性,因为安全性要求包括在非正常条件下不发生安全事故的能力。
安全性测试是检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如:
· 想方设法截取或破译口令。
· 专门开发软件来破坏系统的保护机制。
· 故意导致系统失败,企图趁恢复之机非法进入。
· 试图通过浏览非保密数据,推导所需信息等。
理论上讲,只要有足够的时间和资源,没有无法进入的系统。因此系统安全设计的准则是使非法侵入的代价超过被保护信息的价值,此时非法侵入者已无利图。
1两种级别的安全性
安全性一般分为两个层次,即应用程序级别的安全性和系统级别的安全性,它们的关系如下:
· 应用程序级别的安全性,包括对数据或业务功能的访问;系统级别的安全性,包括对系统的髓录或远程访问。
· 应用程序级别的安全性可确保在预期的安全性情况下,操作者只能访问特定的功能或用例,或者只能访问有限的数据。例如,某财务系统可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保“用户类型一能够看到所有客户消息(包括财务数据),而“用户类型二”只能看见同一客户的统计数据。
· 系统级别的安全性可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。
2.测试目标
应用程序级别的安全性:核实操作者只能访问其所属用户类型已被授权访问的那些功能或数据。
系统级别的安全性:核实只有具备系统和应用程序访问权限的操作者才能访问系统和应用程序。
3测试范围
确定并列出各用户类型及其被授权访问的功能或数据。为各用户类型创建测试,并通过创建各用户类型所特有的事务来核实其权限,修改用户类型并为相同的用户重新运行测试。对于每种用户类型,确保正确地提供或拒绝这些附加的功能或数据。
4完成标准
各种已知的操作类型都可访问相应的功能或数据,而且所有事务都按照预期的方式运行,并在先前的应用程序功能测试中运行了所有的事务。