软件安全测试
报名入口来源:中国教育在线 2022-06-02
1)模糊测试
也称Fuzzing测试,一种通过提供非预期的输入并监视异常结果来发现软件故障的方法
黑盒测试,不关心被测试目标的内部实现,而是利用构造畸形的输入数据引发被测试目标产生异常,从而发现相应的安全漏洞.
强制软件程序使用恶意/破坏性的数据并进行观察结果的一种测试方法:不够强壮的程序会崩溃、编码良好的程序正常运行。
模糊测试的关键点
测试点:数据通道入口、可信边界点
样本选择:选择覆盖面广、便于测试的多个样本
数据关联性:智能模糊测试
自动化框架
异常监控与异常恢复
分析评估
2)渗透测试
通过模拟恶意攻击者进行攻击,来评估系统安全的一种评估方法
从攻击的角度测试软件系统是否安全
使用自动化工具或者人工的方法模拟攻击者的输入,找出运行时刻目标系统所存在的安全漏洞
优点:找出来的问题都是真实的,也是较为严重的
缺点:只能到达有限的测试点,覆盖率较低
深度防御战略 3个核心要素
4个焦点领域
IATF的特点 及其他安全原则
10.3 软件安全实现 - 10.3.1 安全编码原则 13条
最小特权原则
权限分离原则
最少共享机制原则
完全中立原则
心理可接受度原则
默认故障处理保护原则
经济机制原则
不信任原则
纵深防御原则
保护最薄弱环节原则
公开设计原则
隐私保护原则
攻击面最小化原则
N个模型
软件可维护性度量,
7个质量特性:可理解性,可测试性,可修改,可靠性,可移植性,可使用和效率其中可理解性和可测试性互相促进。
软件开发
10.1.3软件开发生命周期模型
1,微软SDL 7个阶段17个安全服务
培训→需求→设计→实施→验证→发布→响应
3,CMMI软件能力成熟度模型,美国国防部资助,卡耐基梅隆大学软件工程所建立,共5个1级,初始级,2可管理级3,定义级,4,量化管理级5优化管理级 - -
4,SAMM目前由OWASP组织作为开放项目来维护,3个成熟度一个0起点.109个活动映射72个安全活动
4个核心业务功能:治理,构建,验证,部署。