文 / 中国邮政储蓄银行软件研发中心高级信息技术专家 潘华
中国邮政储蓄银行软件研发中心 王齐峰 李北川 张国峥
近年来,随着人工智能、大数据、云计算等技术迅猛发展,新兴技术与传统场景互相融合,数字化进程在各领域加速推进。当前企业信息系统上云规模持续扩大,系统架构呈现微服务、分布式的趋势,由于系统在软件开发全流程成熟度水平存在不同,可能导致系统安全水平、业务能力存在差异。业务安全数据要素已经成为企业在网络安全方面亟待解决的重要问题,同时,企业内外部面临着多元化全方位的网络安全威胁,如高级持续性威胁(APT)、内部威胁、供应链污染、外部实时资产探测等。面临海量且异质的系统如何保障软件安全减少安全事件发生的风险至关重要。
渗透测试发展现状
渗透测试通过模拟真实攻击,全面评估系统和网络是否存在安全缺陷,并及时采取补救措施,从而显著提高组织的网络安全防护能力。目前比较公认的测试类型分为白盒测试、灰盒测试和黑盒测试。当前业务安全渗透测试,较依赖经验丰富的渗透测试人员。渗透测试工具在业务逻辑上发现缺陷漏洞与理想的目标要求存在较大差距,要求工具能够拟人思维理解业务流程,通过机器学习和深度学习算法,在常规业务流程的基础上实现攻防对抗,要实现自动化业务安全渗透测试存在以下难点。
1.技术上具有挑战性。不同的信息系统开发技术栈和业务流程存在较大差异,其次传统的漏洞扫描产品是基于发现特征匹配漏洞验证方式,业务安全渗透测试需要通过混合模式实现,难以通过单一工具或技术上设定完成全量的业务安全渗透测试。
2.测试准确性难以保证。漏洞的多样性需要综合多种检测手段,传统的规则匹配手段缺乏自主学习能力,导致无法跟上不断变化的攻击手段。
3.测试效率低下。传统的业务安全渗透测试多依赖于人工操作,测试效率较低。测试人员需要手动执行测试用例,导致测试周期较长不能快速完成安全威胁测试。
4.资源投入大。为尽量覆盖到业务安全渗透测试面,需要大量的人力和时间资源来完成测试工作,从而推高业务安全渗透测试的人力成本。
虽然业务安全自动化渗透测试在技术上面临着一些挑战,但随着技术的不断创新和进步,相信这些问题将得到逐步解决。企业需要加强技术研发和创新,提高测试人员的专业素质和技能水平,并推动制定统一的测试标准和规范,以应对日益复杂的网络安全威胁。
设计思路
旨在为企业提供一套高效、准确的业务安全自动化渗透测试框架(见图1),采用有针对性的测试用例设计,提高测试的准确性和有效性。框架包括调度控制中心、测试用例知识库、漏洞检测模块、安全评价模块组成。调度控制中心管理攻击溯源、智能中心、攻防靶场等模块,用来实现智能调度编排与业务安全自动化渗透测试管理。测试用例知识库依托先进的AI智能技术,从大量的行业测试用例数据、行内测试用例数据、公共信息漏洞共享平台、项目需求设计文档、测试用例数据反馈学习等方式训练模型,使用AI智能生成完整且准确的测试用例集。漏洞检测模块负责管理测试任务、资产、漏洞检测等工作。安全评价模块由测试覆盖率评价、通过覆盖率评价、测试综合评价组成,根据调度控制中心的测试结果与业务权重进行评价,用以判断测试产品风险等级及是否达到上线标准,确保银行产品的业务安全。
图1 业务安全自动化渗透测试框架
业务安全自动化渗透测试框架设计
1.调度控制中心设计。调度控制中心用于实现业务安全自动化渗透测试框架内各模块之间的调用与管理,制定检测计划和优先级,调度各模块的工作流程。具备可视化的操作界面,支持手动干预和自动化运行。负责管理攻击溯源、智能中心、攻防靶场等工作,通过调度控制中心统一管理实现业务安全自动化渗透测试框架。
攻击溯源模块负责追踪分析攻击路径,利用时间序列技术重建攻击场景,同时基于混沌工程,不断优化检测策略。
智能中心集成多模态,在工程设计前期导入业务需求、业务设计文档以及提供相应对话能力,通过调用不同模型学习和生成业务场景渗透测试用例,并通过不断地学习和调整,生成完整的业务安全测试用例知识库,包括测试路径、测试方法等内容。
攻防靶场利用可重构的虚拟靶场环境,验证工具的稳定性。持续优化检测策略也可以用于实战演练提高企业网络安全防护水平。
2.测试用例知识库设计。业务安全渗透测试用例知识库数据来源与组成,对接行业数据、行内用例数据、信息共享漏洞平台数据、项目业务需求文档、持续收集业务用例优化数据等。使用大数据治理工具进行数据治理,形成完整的业务安全渗透测试用例知识库,其目的实现智能生成业务安全渗透测试用例。引入AIGC基于深度学习训练模型,利用大量的业务安全渗透测试用例数据训练完善智能模型,使其具备根据功能需求智能化生成业务安全渗透测试用例。
测试用例知识库为用户提供智能测试用例生成服务,根据用户待测产品需求生成测试用例,用户可以根据产品需求进行抽取智能生成测试用例,形成新的测试用例模板,用户对新的测试用例模板进行微调,形成符合产品需求的测试用例。最终目标建立金融行业特性的业务安全渗透测试用例知识库。
3.漏洞检测模块设计。漏洞检测模块负责接收调度控制中心下发的渗透测试任务,根据渗透测试用例执行漏洞检测,渗透测试需要与业务关联资产情况进行业务安全渗透测试,将渗透测试结果反馈到调度控制中心。
任务管理指根据控制中心的任务,对接收到的业务安全渗透测试用例执行测试。资产发现模块基于主动探测和被动监控相结合的方式,自动发现测试系统网络拓扑、应用服务端口信息、组件信息及其依赖关系构建完整的资产视图。漏洞检测集成多种漏洞检测技术,包括静态代码分析、Web层动态监测等技术并加入AIagent,根据检测业务系统业务场景不同给出对应的检测方法;同时支持插件化的检测引擎扩展机制。
4.业务安全渗透测试评价设计。业务安全渗透测试评价为渗透测试中检测到的漏洞进行安全风险评价,根据业务产品关联要素进行综合评价,也是保障业务安全的有效方式。综合评价前需要测试用例覆盖率与测试用例测试通过率达到预设标准,理想状态下希望测试覆盖率与测试通过率接近或等于100%。但在生产过程中由于很多客观原因,包括业务方向、产品设计思路、研发问题等原因,难以做到业务安全渗透测试全面覆盖。为解决项目生产中客观存在的问题,设计覆盖率与权重相结合的方法进行业务安全渗透测试评价(见图2)。
图2 业务安全自动化渗透测试评价流程
步骤一,用例覆盖率与用例权重两个维度评价,获得业务安全测试用例覆盖率评价,拟定生成测试用例与用例权重两个维度百分比大于95%时,认定业务安全测试用例为符合标准。步骤二,测试通过率与测试用例权重通过率两个维度评价,获得业务安全测试用例通过率评价,拟定测试用例通过率与权重两个维度百分比大于90%时,认定业务安全测试用例通过率符合标准。步骤三,在满足步骤一与步骤二的前提下,引入评价等级分类与企业《安全管理规范》对测试结果汇总的业务安全漏洞进行综合评价,综合评价结果最终决定业务是否能够测试通过。
采用多因素验证来保证测试用例的健壮性以及测试结果的安全性,为后续便于理解测试用例覆盖率与测试用例通过率计算,进行统一命名规范(见表1)。
表1 业务安全自动化渗透测试评价模型对照表
(1)测试用例覆盖率评价设计。用户根据待测项目业务需求中涉及的各功能点,利用智能用例知识库生成推荐测试用例,用户可以选择实际需要的测试用例,确保测试用例满足业务安全渗透测试标准。业务安全渗透测试用例覆盖率公式,实际测试用例除以推荐测试用例得到用例覆盖率,根据上述对照表,UCC为测试用例覆盖率、ATC为实际测试用例、RTC为知识库推荐测试用例。
利用AI智能对业务安全渗透测试用例进行大数据分析,并参考银行安全与测试规范,当用例覆盖率与用例权重大于等于95%时,业务安全渗透测试用例的安全等级最优,满足业务安全渗透测试标准,用户在模板中填写测试用例数据,使其测试用例数据保持完整,可以进入自动化测试模块。
(2)测试用例通过率评价设计。计算测试用例与测试用例通过比例,使用实际测试用例数据、测试通过用例数据、用例权重相结合评价测试用例通过率。根据测试结果计算测试用例覆盖通过率与测试用例权重通过率。测试通过用例数TPUC除以实际测试用例数ATC,TPR为测试用例通过率。
根据测试用例通过数统计其通过权重,沿用知识库权重,W等级分为高、中、低,测试用例等级权重W1、W2、W3、Wn等。规定权重系数之和依然为1,同样便于计算权重比例,并遵循测试用例风险越高权重越高原则。权重W,实际测试用例数ATC,实际测试通过用例数TPUC,上述规则W权重系数除以实际测试用例ATC,然后乘以实际测试通过用例数TPUC,得到的测试用例权重通过率TCWPR。
沿用AI智能大数据分析结果,当测试用例通过率与用例权重通过率大于等于90%以上,业务安全渗透测试结果满足安全标准。
(3)漏洞等级综合评价设计。根据综合评价规则评价检测到漏洞的风险等级,结合银行或企业《安全管理规范》生成测试报告,同时也是能否上线的依据。综合评价规则将外部漏洞风险预警与内部发现的安全问题结合,并且统一规范风险等级,使用基础评分(外部公共漏洞共享平台预警)、环境评分、系统类型、业务数据安全维度进行组合评分,将漏洞分为四个级别,即超危、高危、中危、低危。基础评分来源于外部漏洞预警包括CVE、CNVD、CNNVD等,环境评分来源于网络设备与运行环境,系统类型来源承载测试产品的系统类型,业务数据安全来源于数据安全等级。
业务类型漏洞采用基础评分、环境评分、系统类型、业务数据安全组合评分,计算方法为:基础评分×基础权重+环境评分×环境权重+系统类型×系统权重+业务数据安全评分×业务数据安全权重。根据各维度的风险程度设定分值与权重分值,使其评分取值范围在0—10之间。将漏洞风险等级分值代入漏洞风险等级规则表(见表2)进行匹配,得到业务漏洞风险等级。然后将漏洞风险等级数量代入上线判断规则表(见表3),判断是否可以上线。
表2 漏洞风险等级规则表
表3 上线判断规则表
根据银行或企业《安全管理规范》以及行业相关安全细则制定,设计上线判断规则表,此表可以根据企业实际情况进行调整,以满足企业对各类软件业务安全测试应用。如果等级数量未满足上线判断的规则,即使测试用例覆盖率与权重大于95%,测试用例通过率与权重大于90%也不能通过测试,需要进行漏洞修复后重新测试。通过漏洞风险综合评价后系统根据测试结果生成测试报告。
考虑到模型应用的广泛性,知识库权重、模板覆盖率、模板权重评价阈值、漏洞风险判断规则,企业可以根据自身实际情况,对上线判断规则表进行调优,确保业务安全自动化渗透测试用例评价的安全性与科学性。
框架应用场景
业务安全自动化渗透测试框架应用场景涵盖面广,在企业信息系统开发过程都需要业务安全渗透测试,在不同行业应用只需要调整参数,符合行业或企业的安全管理规范即可,因此应用场景的验证自然设定在金融行业,规范也同样也需要遵循金融行业软件安全管理规范。
设定软件开发完成后需要申请业务安全渗透测试,可以通过智能测试用例知识库应用、测试用例覆盖率计算、测试用例通过率计算、综合评价、测试报告生成环节,演示应用场景全流程。
1.信息系统安全评估应用场景。系统工程上线前持续开展安全评估,将自动化渗透测试框架集成到DevSecOps环境中,确保在每次代码提交和部署时开展安全测试,及时发现和修复信息系统中存在的安全漏洞与风险点,也可以为研发人员提供安全的改进措施;通过设计和应用自动化渗透测试框架,显著提高安全测试的效率和覆盖面。
2.攻防演练应用场景。攻防演练是模拟真实环境下的网络攻击,对目标业务系统进行全面的网络安全渗透测试,发现业务系统中存在的网络漏洞和安全隐患,检验和提升组织的网络安全防护能力。通过使用自动化渗透测试框架实现持续、自动化的威胁模拟,提高演练的效率和效果实现跨部门协作。攻防演练还能够检验智能安全测试用例模型,通过攻防演练测试自动生成用例的缺陷,通过持续优化训练数据和权限进行自动化生成测试用例校准,同时提升员工的安全意识和应急响应能力,为企业和组织的业务系统安全提供牢固的安全保障。
3.业务安全渗透测试应用场景。业务渗透测试应用场景比较广泛,项目上线或项目迭代都需要进行业务安全渗透测试,通过渗透测试及时发现业务系统内部和外部潜在的安全风险,避免因漏洞原因给企业带来无法估量的经济与信誉损失。
业务安全渗透测试模型在测试用例撰写方面很优秀,测试用例知识库协助测试人员编写测试用例,提高了测试用例的编写质量,降低编写测试用例对测试人员的经验要求,规避因测试用例设计缺陷造成的漏测风险。业务安全自动化渗透测试用例评价模型对企业来说很重要。它能够全面评估系统的安全性并发现潜在威胁,能够指导测试团队进行有针对性、全面性的测试,提高系统的整体安全性;同时增强员工的安全意识,完善安全策略和降低法律风险等方面具有显著优点。
结束语
业务安全自动化渗透测试框架采用分层解耦的架构设计,提高可扩展性的同时,支持插件式的检测引擎扩展机制,允许根据具体业务需求和系统特点进行调整,确保测试用例评价模型的灵活性和实用性,通过参数与权重的调整,可以广泛应用在不同行业的软件测试中。
未来业务安全自动化渗透测试评价模型,针对业务系统识别并检测出业务系统中可能存在的安全威胁。通过对测试结果的深入分析,可以评估潜在业务风险的范围和业务漏洞路径,进一步揭示系统的弱点,便于开发人员解决业务上存在的未知安全问题。能够发现企业在安全策略和流程方面存在的问题,有针对性地完善安全策略,提升系统的防御能力,并持续加入更多新兴领域技术,融入主动防御、智能响应等新型安全能力,打造企业级的业务安全自动化渗透测试平台。
(此文刊发于《金融电子化》2024年10月上半月刊)
新媒体中心
主任 / 邝源
编辑 / 姚亮宇 傅甜甜 张珺 邰思琪