新闻动态
news information
新闻动态
news information
正安研究院丨软件供应链安全测评“五步曲”
2023年05月01日

近年来,软件供应链网络安全威胁层出不穷,无论是开源软件频繁曝出的高危漏洞,还是软件厂家为维护便利内置了默认权限或后门,亦或是源代码泄露造成的0Day、nDay漏洞攻击事件,面对堡垒高筑的广大客户,攻击者将更多的目光盯在了软件供应链上。一方面,供应链攻击可以帮助攻击者绕开层层封堵的安全防护措施,直接从内网进行破坏,甚至能够在上下游单位间来回渗透;另一方面,由于信息泄露、管控手段覆盖面不足等问题,供应链的安全风险也变得越发复杂且难以控制,成为网络安全管理的一大难题。


系统性地解决软件供应链所面临的安全威胁往往需要花费巨大的代价,需要在软件开发、交付和使用等各阶段,从技术和管理两个方面建立完善的供应链治理体系,依据GB/T 36637-2018《信息安全技术 ICT供应链安全风险管理指南》等标准开展全面供应链安全风险评估。

本着效用优先、成本可控、满足实战的原则,分析软件代码在开发、交付和使用等阶段安全质量评价要素,结合实战攻防技术手法和软件安全质量特性,北方实验室正安研究院基于技术层面总结出供应链安全测评“五步曲”,旨在以此直接、快速、高效暴露软件供应链所面临的高危安全风险,也为供应链安全治理提供可落地解决思路。下面将分别就“五步曲”进行详细说明。

第一步 · 信息侦查 }

信息侦查的目的是找到源代码、可执行文件和安装程序等敏感文件包,通常通过定向目标检索+社工检索相结合的方式开展侦查工作,现就侦查过程和使用的主要工具说明如下。

1、寻找要测试的目标产品代码特征,这主要包括产品名称、开发单位名称、特殊的文件名称、特殊的字符片段;

2、广域搜索。基于代码特征,通过搜索引擎(百度、谷歌、必应)查找是否有源代码泄露;

3、代码库定向搜索。基于代码特征,通过国内外主流代码托管平台(github、gitlab、BitBucket、SourceForge、gitee、腾讯云Coding、CSDN Code、百度效率云)搜索代码,查找是否有源代码泄露;

4、网盘定向搜索。基于代码特征,通过主流网盘(百度网盘、天翼云盘、阿里云盘、115网盘、迅雷云盘、腾讯微盘、夸克网盘、移动云盘、蓝奏网盘)查找是否有源代码泄露;

5、去产品的官方网站下载获取产品安装程序或执行程序。

第二步 · 网络渗透 }

网络渗透必须是在取得授权的情况下开展,通常是通过工具扫描+定向渗透+社工结合的方式开展渗透工作目,的是找到存放供应链产品源代码、可执行文件和安装程序的系统或网络漏洞突破口,进而通过漏洞利用获取源代码等敏感文件。现就渗透过程和使用的主要工具说明如下。

1、利用NSFocus、自动化渗透测试等工具对产品厂家开展大范围的突破口探测工作,包括但不限于暴力猜解、迂回绕过、越权访问、木马上传、代码下载、命令执行、秘钥攻击等,寻找可以突破的漏洞点,进而获取源代码或执行程序等;

2、利用Api接口模糊测试、流量代理等工具对目标客户正在运行的产品系统开展定向应用渗透,主要集中于接口未授权、敏感信息泄露、危险命令执行等,利用漏洞获取系统权限后拿到源代码或执行程序;

3、利用指纹库查找正在使用该供应链产品的关联客户,通过隐蔽渠道旁路获取相应供应链产品安装或执行程序。

第三步 · 代码分析 }

代码分析是指在获取到源代码、可执行文件或安装程序后,通过工具自动化或半自动化对源代码、伪代码、二进制代码进行分析的过程,目的是为下一步代码审计和漏洞挖掘提供信息支撑。分析主要包括开源组件成分分析、依赖关系分析和代码逆向分析。现就分析过程和使用的主要工具说明如下。

1、利用开源组件分析工具对源代码、伪代码和二进制代码开展成分分析,识别供应链产品软件物料清单;

2、利用开源组件依赖分析工具,对已形成的开源组件物料清单进行深度依赖分析,对于使用不同语言/包管理工具的项目,采用项目构建或直接对包管理文件进行解析的方式,来准确获取到项目的依赖信息,并构建开源组件依赖网络拓扑;

3、利用IDA软件对可执行程序、安装程序开展代码逆向分析,通过线性扫描反汇编和递归下降反汇编等方法,对代码进行反汇编和逻辑识别分析,包括指令断点分析、程序运行分析、堆栈分析、地址分析等。

第四步 · 漏洞审计 }

漏洞审计是指对分析过程形成的源代码、伪代码、二进制逆向代码开展开源代码漏洞扫描和软件代码安全审计,判断代码是否存在已知漏洞和未知缺陷。现就审计过程和使用的主要工具说明如下。

1、开源组件漏洞扫描,通过不断的收集、挖掘和整理形成了完善的安全漏洞库,涵盖了操作系统、主流的cms、网络设备、安全设备、编辑器、数据库、中间件等多类产品的安全漏洞,主要检测 Java(Maven)、JavaScript(npm)、Go(gomod)、Python(pip) 等代码中引入的nDay缺陷组件;

2、代码静态分析,使用专业的工具进行静态代码分析,利用深度数据流分析技术,静态地跨类、跨文件地查找软件运行时缺陷、错误和安全漏洞,包括SQL注入、被污染的数据、缓存溢出、弱代码实现及其它多种常见应用安全漏洞;

3、0Day漏洞挖掘,对系统代码进行人工审计,使用漏洞挖掘系统发现代码后门和内核级漏洞,重点包括远程任意代码执行、本地权限提升、远程拒绝服务、内存数据篡改、缓冲区溢出、反序列命令执行等。

第五步 · 实战验证 }

实战验证是供应链安全测试的最后一步,也是收官的一步,前期发现的开源漏洞、nDay漏洞和0Day漏洞很大可能存在误报,需要结合具体的实际环境进行实战化验证。现就实战验证过程和使用的主要工具说明如下。

1、POC编写,通过漏洞审计分析,形成针对特定漏洞的专属POC利用载荷,并结合实际客户系统基于灰盒测试技术进行动态调试,不断改良POC,使之可以对产品漏洞进行通用性测试;

2、通过指纹库找到其他关联客户系统,对已形成的POC进行泛在验证,确定漏洞存在的普遍性和影响范围;

通过以上“五步曲”可以对供应链安全进行精准、深入的技术检测,检测过程一定要确保在授权下安全开展,全部信息应安全可控,最终发现的已知漏洞需要和客户联系进行修复,0Day漏洞需要上报国家漏洞库,在全局影响范围内尽快开发补丁并促进广泛使用者的升级修复。

【 研究员介绍 】

刘文志

北方实验室正安研究院副院长,沈阳市认定拔尖人才、高水平技术创新人才,高级等级保护测评师、商用密码应用安全性评估师、系统分析师,资深安全顾问、攻防渗透专家。
正安研究院简介

正安研究院是北方实验室(沈阳)股份有限公司设立的技术研发机构,下设信创适配验证中心、渗透测试中心、商密应用中心、国家工程研究中心智造网络安全分中心等专门技术研究中心。正安研究院在探索网络安全领域前沿科技的同时,支撑北方实验室的技术创新与业务创新。
北方实验室是以网络安全检测评估为主营业务的网络安全服务提供商。公司是国家级专精特新小巨人”企业、国家中小企业公共服务示范平台、国家高新技术企业、瞪羚企业,为辽宁省商密协会会长单位,拥有辽宁鳃鹏生态创新中心、辽宁省信创适配验证创新中心、辽宁省企业技术中心等多个技术创新平台。