摘要:为响应国家网络安全战略,浙江网商银行积极落实金融行业的软件供应链安全监管要求,针对数字金融面临的软件供应链安全风险,开发了一套软件供应链安全主动免疫系统。该系统旨在应对网络入侵、勒索攻击及数据泄露等关键问题,为数字资产提供更加全面的安全保障。
文/浙江网商银行信息科技部总经理 马晓航
浙江网商银行信息科技部 张园超 高佩明
为响应国家网络安全战略,浙江网商银行积极落实金融行业的软件供应链安全监管要求,针对数字金融面临的软件供应链安全风险,开发了一套软件供应链安全主动免疫系统。该系统旨在应对网络入侵、勒索攻击及数据泄露等关键问题,为数字资产提供更加全面的安全保障。
该项目引入了多层动态软件后门检测技术,并结合AOS与参数智能推断,显著提升软件后门的检测效率,并有效降低误报率。通过分阶段代码属性图分析,实现了0Day漏洞的自动化挖掘,检测效率相比人工提升了五倍。
在技术创新方面,通过自主研发的可信纵深防御技术利用机器学习生成软件行为白名单策略,以较高的准确率抵御未知漏洞和后门威胁。此外,通过策略智能生成与自适应更新能力的结合,构建了应用预期行为图谱,实现了策略配置与升级的自动化,帮助系统快速适应不断变化的安全环境。
同时,我们搭建了可信安全底座,从系统启动到运行行为进行严格控制,构建了多层可信防护能力。在面对潜在威胁时,基于信任链的传递机制确保系统的安全性,形成了一种可信纵深防御的防护体系,以满足金融机构对系统安全性的基本要求。
浙江网商银行的主动免疫系统为金融行业提供了一种新颖的安全解决方案,力求对行业软件供应链安全水平的提升发挥积极作用。期望通过这一创新,助力金融行业在网络安全防护上实现更加稳健的进步,为构建安全、稳定的数字金融生态环境贡献力量。
浙江网商银行利用0Day漏洞自动挖掘、软件后门自动检测、容器及主机可信、应用运行时可信防护、移动App运行时可信防护和终端软件行为可信等前沿技术,自研并投产了贯穿软件研发全生命周期的软件供应链安全主动免疫系统,解决了金融行业面临的因软件供应链安全风险导致的网络入侵、勒索攻击和数据泄露等突出问题,切实有效做到软件投产前安全风险规避和软件运行时安全风险主动免疫,建立健全软件供应链安全风险防范能力(详见图1)。
图1 软件供应链安全主动免疫系统架构图
浙江网商银行信息科技部总经理 马晓航
软件供应链是基于供应关系,通过资源和过程将软件产品或服务从供方传递给需方的网链系统。针对软件供应链产品在引入、研发、运行等阶段所面临的漏洞、后门植入等安全风险,本项目运用自研的面向对象语言的代码属性图、基于图数据库的分阶段程序分析引擎、软件运行时可信行为控制技术、策略智能生成与自适应更新技术、基于AOS的全栈原生高效管控技术、基于威胁等级灵活适配的可信纵深防御技术、默认安全控制技术等创新技术,构建了贯穿软件研发全生命周期的软件供应链安全主动免疫系统,以此来保障软件供应链安全可信。该系统主要由6个子系统组成,分别是软件投产前的0Day漏洞自动挖掘系统、软件后门自动检测系统,以及软件运行时的容器及主机可信系统、应用运行时可信防护系统、移动App运行时可信防护系统及终端软件行为可信系统。
1. 基于安全凭据和可信管控的默认安全控制技术。该技术利用DHCP和802.1x入网认证,确立不可绕过的控制点,仅准许经过严格认证的可信设备连接至网络,结合软件研发全生命周期颁发的安全凭据,确保软件一定经过安全评估和默认接入安全防护,实现软件一旦投产,主动免疫能力即刻全面覆盖。
2. 面向对象语言的代码属性图构建。增加了新的图表达,防止图上的语义缺失,同时剔除了AST(抽象语法树)和CFG(控制流图),将其简化为带污点的MCG(函数调用图),用于后续污点路径检索,这种方式能够大幅降低图数据库存储,提高分析和路径检索速率。而传统代码属性图构建方案,主要以面向过程语言的语义为基础进行设计,图数据库存储冗余量大,造成检索速率缓慢,且遗漏了面向对象语言的特殊语义,导致其最终生成的代码属性图缺少相关语义表达。
3. 基于图数据库的分阶段程序分析引擎。结合图数据库重新设计了基于缓存的污点分析技术,支持多种数据结构输入,包括WAR、JAR等编译后文件,相比国外CodeQL、GadgetInspector产品,在支持挖掘的漏洞类型和使用体验上有突出表现,为目前工业界首创的实现方案。该技术将语义缓存信息分为函数摘要信息和图上的污点转移信息,其中函数摘要信息对每个函数按规则进行摘要,同时支持外部的专家规则输入;图上的污点转移信息则结合了图数据库的路径检索优势,在调用边上进行污点的传播,剔除不符合污点传播的函数调用,达到动态剪枝的效果。
4. 软件运行时可信行为控制技术。仅允许系统运行正常业务预期内的代码、系统调用、函数、参数、网络行为,实现默认拦截漏洞利用代码和后门行为,达到未知漏洞与后门的“主动免疫”效果。
5. 策略智能生成与自适应更新技术。对应用的各项关键行为数据进行自动化采集,结合语义级分析算法与安全大模型等能力对数据自动进行动态分析与刻画,确保全面且精准地构建应用预期行为图谱,最终生成非预期行为的管控策略。同时通过策略管控中心构建低成本的独立于业务逻辑的下发通道,实现无人值守的动态策略配置与升级。
6. 基于AOS的全栈原生高效管控技术。构建与业务正交融合支持多开发语言、技术栈的原生策略控制点,实现安全管控与业务的逻辑解耦,安全加固免改造。精选利用原生策略控制点性能优势,结合强大的软件内视和管控能力,实时监控业务软件、进程和系统指标,高效、精准规避安全、性能和稳定性风险。
7. 基于威胁等级可灵活适配的防御技术。设计提出了可根据不同威胁等级灵活适配的可信防御技术方案,可结合自身IT架构底层技术栈,选配适用其安全威胁等级的可信纵深防御能力,将防御能力扩展至应用层,甚至硬件层,实现全面可信防护。
1. 0Day漏洞自动挖掘系统。该系统通过静态程序分析技术和图数据库路径遍历技术,实现了基于代码属性图的分阶段程序分析引擎(详见图2)。通过静态程序分析技术,抽取代码语义信息并生成自主设计的面向对象的代码属性图,包括对象关系图、函数别名图和函数调用图。同时,经过污点分析技术,将语义缓存信息添加到函数调用图中,形成带污点的代码属性图存储到图数据库中;在图生成的基础上,通过编写图数据库路径遍历的插件。该插件使用图中的污点信息在遍历路径的同时进行动态剪枝,最终输出一条正确的污点传递的函数调用链。通过这两个步骤,安全专家可以编写对应的图数据库查询语句来查询特定的漏洞链路,具备动态可扩展、结果输出准确的优点,减少代码审计所耗费的时间和精力成本。
图2 基于代码属性图的分阶段程序分析引擎架构图
2. 软件后门自动检测系统。该系统通过语义智能分析、沙箱隔离、智能决策等技术,融合静态检测、动态检测、风险决策于一体,并与内部软件仓库实时联动,一旦发现恶意投毒的软件包,即实时同步给内部Maven、NPM、PyPI仓库,禁止恶意软件包下载,实现供应链投毒攻击快速、准确发现,软件仓库实时下架的防护效果。
一是基于控制流、数据流分析和推断式规则的静态检测技术。首先通过语义分析技术,从入口代码解析软件包程序语义,分析得到程序控制流和数据流逻辑,初步定位可疑后门代码特征。接着根据与后门投毒攻击高关联度的一系列启发式规则,例如curl、dig、/dev/tcp等系统命令和ceye.io、ngork.io等常见恶意域名,对可疑后门代码特征进一步筛选,得到较高精确度的后门代码静态特征。
二是基于参数智能推断的多层动态检测技术。软件后门为了规避静态检测,攻击者常常会加入各种混淆、加密等干扰程序分析的手段,甚至将恶意代码打包为二进制文件进行分发,这种情况下纯静态检测能力就会出现瓶颈,需要引入动态检测以作补充。动态检测实现方式为,在沙箱内部署主机层和应用层监听模块,在沙箱环境中模拟受害者触发恶意代码,监控沙箱的网络、进程、文件访问行为,根据行为判断是否为恶意投毒攻击。部分攻击者为了规避动态检测技术,会将后门代码隐藏在软件包的特定函数内,或在后门代码前增加分支逻辑。本项目动态检测方案增加应用层模糊测试模块,动态解析软件包内的类与函数并进行模糊测试,增强动态检测深度。
三是依托AI和海量样本训练的风险决策方案。风险决策方案在结合前述静态、动态检测结果及过程数据的基础上,还增加了软件元数据要素。经过分析软件后门在代码之外的特征,我们发现绝大多数软件后门文件体积通常较小,软件包内目录数量、文件数量较少,历史版本数量、下载数量较少,且大部分没有填写代码库地址和官网,即便有少数填写了的,且其代码库关注、提交数量也较少。我们可以根据这些特征,建立基于安全风险分的决策机制,计算每个组件的历史版本数量,文件大小、代码库关注/提交数量等元数据,设定不同权重进行评分,对于多个元数据都偏低的,其风险就高。此外,风险决策还引入了基于4000万海量软件包样本训练的AI模型,综合分析静态、动态检测过程数据、软件元数据,最终判定软件是否存在后门,有效解决传统方案对软件正常行为误报率高、运营成本高的问题(详见图3)。
图3 融合AI和AOS的后门定位技术架构图
3. 应用运行时可信防护系统。该系统通过字节码注入、可信控制点等技术,实现了将安全防护策略深入集成到应用程序的代码和运行环境中,在应用程序执行时进行实时监控和行为分析,利用复杂的攻击检测算法来识别可能的安全威胁,同时依托于上下文感知能力,精确地区分正常行为和潜在的恶意操作。通过自动响应机制,应用运行时可信防护系统可以在攻击发生之际立即采取行动,从而有效防止安全漏洞被利用。这种响应不仅包括阻断攻击,还涉及清理输入数据、隔离会话等措施。
借助自适应策略和AI技术,该系统能够学习应用的正常行为数据。将日常获取到的应用行为数据通过类型识别、数据去重、语义拆分与聚类算法的处理,自动生成并优化安全策略,推荐的安全策略经安全专家评估后下发。同时还具备安全事件记录和报告功能,使得安全团队能够进行有效的事后分析和审计,了解攻击的来源、方法和潜在影响。这些记录对于改进策略和提高系统的整体防护能力至关重要。为了确保安全措施不会对用户体验产生负面影响,该系统的设计注重性能优化,力图在提供强力安全保护的同时,保持应用程序的响应速度和稳定性。应用运行时可信防护技术支持广泛的编程语言和应用框架,这使得它能够适应多样化的开发生态,保护各种类型的应用程序免受攻击。它既适用于传统的企业应用,也适用于最新的云原生应用和微服务架构,为当今快速发展的应用安全领域提供了一种适应性强、兼具智能和效率的解决方案(详见图4)。
图4 应用运行时可信防御架构图
4. 容器及主机可信系统。该系统实现了可信管控核心模块,可以在容器主机系统调用层面进行风险识别和管理。该模块能够监控和控制容器内的函数运行时行为,并通过标准化的接口提供风险发现与响应能力。容器和主机的安全策略是由管控模块和插件根据安全容器方案进行设计实现的,以建立一套可信安全防御体系。
此外,利用主机硬件特性作为可信设备身份标识,软件层的管控模块签名作为软件环境的验证,结合DHCP和802.1x协议构建双要素认证机制,确保只有可信设备且安装了可信管控模块才允许接入网络。接着,可信管控模块根据设备入网、软件安全评估和测试、软件接入主动免疫系统等阶段颁发的安全凭据,管控软件运行状态,实现只有经过安全评估和测试、接入主动免疫系统的软件才能在可信设备上运行,从而确保整个网络环境的安全性。
同时,可根据不同威胁等级灵活选配可信防御技术方案,如需应对更高强度威胁,可结合IT系统技术栈现状,将防御能力可扩展至硬件层,实现基础设施可信。基础设施可信可基于硬件可信芯片或软件密码模块作为信任根,针对使用的物理节点建立可信管控体系,消除传统对于BIOS、内核等基础设施软硬件和组件的隐式信任,确保物理机节点在启动时的硬件、BIOS、内核等均是符合预期的、可信的,进一步针对物理机节点中的二进制文件建立可信验证和管控机制,确保物理机上启动和运行的二进制文件也均是符合预期的。同时充分利用硬件可信芯片的可信存储和密码技术构建完备的信任链,将信任机制由可信芯片或软密码模块逐层传递至基础设施层、应用层、终端层,实现全链路的安全可信。
浙江网商银行的软件供应链安全主动免疫系统通过多层动态软件后门检测、0Day漏洞自动挖掘、可信纵深防御技术等多种创新技术,为金融行业提供了一种全新的安全解决方案。该系统不仅提高了软件供应链的安全性,还显著降低了误报率,提升了检测效率。通过策略智能生成与自适应更新能力,系统能够快速适应不断变化的安全环境,为金融行业的数字化转型提供了坚实的安全保障。未来,我们将继续深化技术创新,不断完善系统功能,为构建安全、稳定的数字金融生态环境贡献力量。
来源:金融电子化