1、安全精准测试数字化平台实践陈小凤华为技术有限公司、安全测试领域专家陈小凤华为公司 高级工程师华为公司安全测试专家,主要负责网络安全攻防测试能力建设,包括安全精准测试平台建设和效果落地等听完本次演讲,您将获得什么收益?产品每版本代码变更复杂,如何快速精准识别代码变更?获得代码变更后,如何在不依赖人员经验的情况下分析其安全威胁?获得安全威胁后,如何在不依赖人员经验的情况下快速执行相关用例?执行相关用例后,如何在不依赖人员经验的情况下进行客观质量评估?目录C O N T E N T S1.背景与挑战2.安全精准测试数字化平台总体解决方案3.安全精准测试数字化平台构建4.展望未来背景与挑战01安全领域
2、面临的背景和挑战1,产品版本迭代迅速,代码变更复杂(百万级)新增需求代码仓新增需求分支1分支N2,如何分析版本代码变更带来的的安全威胁?OWASP TOP 10不断变化,网络安全威胁攻击不断演进安全测试如何快速识别威胁,全面防御,快速度量产品安全质量?安全测试领域面临的三大挑战:产品版本迭代迅速,如何快速获取版本间代码变更?可识别 网络安全威胁不断演进,如何快速识别代码变更带来的安全威胁?可分析 如何构建全面防御阵型,实现安全威胁无处遁形?可追溯,可评估3,如何快速防御?产品源码安全精准测试数字化平台总体解决方案02后台(变更百万行级代码)复杂软件面临的背景与挑战业务规模庞大微服务架构复杂变更
3、难识别,影响难评估人工执行策略难以抉择前台(产品千万行级代码)VUEReactangularJSJAVAC+PythonGo产品复杂的业务、复杂的架构、复杂的交互关系以及庞大的规模,导致人工经验分析安全风险不可获得产品继承功能新增功能新增功能修改缺陷优化需求优化架构修改缺陷代码优化全量用例执行工作量大,人力成本高人工挑选用例执行强依赖经验,质量风险高某微服务依赖架构图利用精准测试技术优化传统安全测试流程测试用例测试结果正向追溯精准分析开发人员测试人员程序代码逆向追溯 代码差异识别 变更风险识别用例精准推荐 数据指标自动评估精准测试建立代码逻辑与测试数据的双向关联,引领从经验型方法向技术型方法的
4、转型,实现数据=质量的自动化评估安全精准测试数字化平台整体解决方案配置对比任务执行人员安全精准测试数字化平台设定评估规则结果分析自识别自分析自执行精准测试平台版本构建数据代码仓库基于产品版本基于分支+起始时间基线版本号or代码分支+起始时间代码变更点&变更函数名风险评估引擎变更函数列表高风险函数&对应风险点知识图谱:调用链数据库高风险变更函数高风险变更接口静态分析:源码调用链动态插桩技术补充静态调用链分析动态调用链补充构建获取版本需求代码变更能力获取时间窗范围内代码修改MR,进而获取变更代码及上下文构建安全风险自识别能力根据安全问题的白盒特征,进行核心算法解析,自动分析安全威胁构建函数调用链识
5、别能力利用静态动态源码调用链技术实现安全风险代码追溯到接口风险规则集自评估质量评估看板质量评估模型测试标准覆盖率&通过率构建质量评估模型基于测试覆盖度与通过率构建质量评估模型,实现质量自评估安全精准测试数字化平台构建03传统产品安全测试验证流程新增接口需求设计文档有经验:人工走读代码1、需求量大:每版本海量需求(1000人月),代码变更复杂(百万级)2、识别遗漏:开发/测试人员识别安全风险时有遗漏,且无法防止修改引入3、测试门槛高,效率低:测试人员人工走读代码做识别,门槛高,测试效率低安全问题产品测试蓝军验收测试结果安全实验室验收4、验收问题遗漏测试验收遗漏安全问题攻击路径手工执行测试策略&测
6、试设计测试执行后端验收人工基于经验判断风险接口威胁分析+绘制攻击路径全量接口开发/测试识别涉及安全风险无经验:询问开发代码调用链痛点 代码变更复杂,无法一一覆盖 安全风险识别时有遗漏,强依赖人员经验 渗透测试门槛高,人工走读代码效率低自识别:构建获取版本需求代码变更能力产品相关配置基线版本&测试版本上下文文件、代码变更分支起始时间节点&终止时间节点基于大数据实现极低成本、极低技术难度的需求与代码的关联关系建立,让版本“透明化”解析MR列表大数据平台产品代码仓及commit需求编号问题单号关联技术方案构建获取版本需求代码变更能力 通过版本构建平台获取指定版本的代码仓提交信息 利用版本的代码仓提交