|
知识路径: > 测试技术的分类 > 安全测试与评估 >
|
被考次数:10次
被考频率:高频率
总体答错率:47%  
知识难度系数:
|
由 软考在线 用户真实做题大数据统计生成
|
相关知识点:29个
|
|
|
|
软件产品安全测试侧重于以下方面:用户对数据或业务功能的访问控制,数据存储和数据通信的远程安全控制。
|
|
|
|
|
对于应用软件来说,用户权限的控制是比较重要的,一个用户能够访问一个应用系统的权限,通常我们认为来源于三个方面,即:应用软件本身、操作系统和数据库。应用软件产品在开发的过程中,主要采用用户名和密码登录的方式完成。对于安全强度较高的软件也可采用指纹认证、智能卡认证等方式进行。对于测试者来说,应当注意以下几个方面。首先应当评价用户权限控制的体系合理性,是否采用三层架构的管理模式,即系统管理员、业务领导和操作人员三级分离;用户名称基本采用中文和英文两种,对于测试来说,对于用户名称的测试关键在于测试用户名称的惟一性。惟一性的体现基本基于以下两个方面。
|
|
|
①同时存在的用户名称在不考虑大小写的状态下,不能够同名;
|
|
|
②对于关键领域的软件产品和安全性要求较高的软件,应当同时保证使用过的用户在用户删除或停用后,保留该用户记录,并且新用户不得与该用户同名。
|
|
|
用户口令应当满足当前流行的控制模式,注意测试用户口令的强度和口令存储的位置和加密强度,如下所示。
|
|
|
|
②最小口令时效:指定在修改口令之前,用户必须保留口令的时间。
|
|
|
③口令历史:确定系统将要记住的口令的数量。如果用户选择的口令存在于口令历史数据库中,系统将强制用户选择其他口令。
|
|
|
④最小口令长度:对于用户口令,可以包含的最少的可以接受的字符数目。
|
|
|
⑤口令复杂度:在口令中要求用户使用非字母数字的字符或大写字母。
|
|
|
|
⑦口令锁定:口令锁定是被用来对付猜测口令的主要工具。在输入的非法口令达到规定的次数之后,系统将禁用这个账户。这种技术在对付远程暴力攻击的时候特别有效。
|
|
|
⑧账户复位:账户锁定后定义是否可以在规定时间间隔后自动恢复,可以减轻系统管理员的工作强度。
|
|
|
用户权限分配方式是否合理,用户认证的目的在于访问控制,对于软件产品来说,主要是用户能够使用某些功能或访问某些数据的能力。从软件测试的角度来说,应当结合黑盒功能测试,首先测试软件用户权限系统本身权限分配的细致程度,比如,对于查询功能来说,查询的数据是否能够按照业务需求进行细致划分,然后对特定权限用户访问系统功能的能力进行测试,该部分测试应当充分利用等价值划分方法进行案例设计,避免重复测试。
|
|
|
|
操作系统本身的安全性对应用软件存在影响,测试中要考察:是否关闭或卸载了不必要的服务和程序;是否存在不必要的账户;权限设置是否合理;安装相应的安全补丁程序的情况;操作系统日志管理等。
|
|
|
|
数据库权限管理目前存在较多问题,该部分的测试有如下三个方面。
|
|
|
①应用软件部署后,数据库管理用户的设置应当注意对账号的保护,超级用户的口令不得为空或默认口令。对数据库的账号和组的权限作相应设置,如锁定一些默认的数据库用户;撤销不必要的权限。
|
|
|
②数据库中关于应用软件用户权限和口令存储的相关表格,尽量采用加密算法进行加密。
|
|
|
③软件企业在进行软件产品开发时,开发人员通常为了开发方便,在客户端与数据库通信时,均使用超级用户及默认密码(例如:username=“sa”,password=“”)访问数据库,这种方式将会带来严重的安全隐患,测试人员可以通过网络侦听的技术,或使用白盒测试方法进行测试,并且应当建议开发者,根据不同程序访问数据库的功能,使用不同的数据库用户进行连接,且必须设置复杂的密码。
|
|
|
|
通信加密是保证数据在传输过程中数据的保密性和一致性的测试,软件产品在技术上通常使用链路加密、数据加密的方式进行,目前使用的加密技术包括VPN技术、对称加密算法、非对称加密算法、HASH算法等。
|
|
|
VPN技术通常使用Kebores加密算法结合IPSec加密协议,实现通信链路的加密,加密强度较高,多用于广域网中的数据安全传输,但是操作较复杂。
|
|
|
对称加密算法和非对称加密算法主要包括RSA、DSA(非对称)、DES(对称),使用上述算法的主要目的在于解决数据的保密性传输。
|
|
|
HASH算法的目的在于保护数据内容的一致性,防止数据在传输过程中被篡改。
|
|
|
通信加密测试的目的主要是,保证软件产品确实在开发过程中,按照设计要求使用了上述方法进行了通信的加密,通常使用验证和侦听技术完成。另外还需要注意的是,如果开发过程中使用上述标准对加密函数进行加密,加密强度是受密钥的复杂度等因素影响的,无须对本身算法加密强度进行论证,如果使用自定义的加密函数,测试人员应当使用破解技术对算法本身的加密强度进行论证,或将自定义加密算法提交特定机构进行测试和认证。
|
|
|
|
我们上面已经提到,安全日志是软件产品被动防范的措施,是重要的安全功能,因此需要在软件测试过程中重点测试。
|
|
|
日志应当记录所有用户访问系统的操作内容,包括登录用户名称、登录时间、浏览数据动作、修改数据动作、删除数据动作、退出时间、登录机器的IP等。
|
|
|
测试人员应该根据业主要求或设计需求,对日志的完整性、正确性进行测试,测试安全日志是否包含上述全部内容,是否正确,并且对于大型应用软件来说,系统是否提供了安全日志的智能统计分析能力,是否可以按照各种特征项进行日志统计,分析潜在的安全隐患,并且及时发现非法行为。
|
|
|