安全性测试(securitytesting):就是在软件研发和维护过程中,通过不同的测试方法,发现安全性的问题,包括下列各类问题:
信息泄露、破坏信息的完整性
信息泄露、破坏信息的完整性
拒绝服务
非法使用(非授权访问)、窃听
业务数据流分析
假冒、旁路控制
授权侵犯(内部攻击)
抵赖(来自用户的攻击)
计算机病毒、恶意软件
信息安全法律法规不完善
检验系统是否满足安全性要求:
真实性:保证信息来源真实可靠
保密性:确保信息只被授权人访问,信息即使被截取也不能了解信息的真实含义
完整性:保护信息和信息处理方法的准确性和原始性,包括数据的一致性,防止数据被非法用户篡改
可用性:确保授权的用户在需要时可以访问信息
不可抵赖性:用户对其行为不可否定
可追溯性(Accountability):确保实体的行动可被跟踪
可控制性:对信息的传播及内容具有控制能力
可审查性:对出现的网络安全问题提供调查的依据和手段
常用的测试方法有:
基于模型的安全功能测试
基于故障注入的安全性测试
模糊测试(FuzzTesting)
基于白盒的安全测试
威胁模型与攻击树理论
形式化安全测试方法
语法测试
基于属性的测试
动态污点分析方法(DynamicTaintAnalysis)
基于风险的安全测试