原创|基于行为差异化与细颗粒的软件供应链感染检测方案

admin 2022年4月27日11:41:11评论38 views字数 3301阅读11分0秒阅读模式
本方案保留知识产权,转载与引用请注明来源。方案限制商业性应用,相关网络安全监管单位应用并不受此限制。

●  背    景    分    析  


随着国家大力度网络安全规划推进与信创产业的逐步实施,境外敌对势力针对我国的高级威胁攻击计划也在更新换代,软件供应链威胁由此而生。从攻击视角看供应链威胁,它具备隐蔽度高、防御难、攻击精准、持久度高、影响目标广泛等特点,是APT攻击环节的终极“武器”。供应链攻击前首先会对行业/产业/项目进行摸底,通过产业链条找到最具有“价值”的核心供应商,受国内OEM体系影响,最底层的核心供应商在网络与信息安全建设方面是最薄弱的,并且在事件追溯环节上是周期最漫长的,境外敌对势力的APT攻击团伙往往可以在受影响的时间差内窃取到其目的理想的信息。


●  总    体    设    计  

有效地保障软件供应链安全,需要构建软件供应链的测评体系、监测体系以及检测方法与标准。供应链安全问题主要体现于软件供应链感染这个角度上,通过行为记忆与软件行为模型匹配等手段构建软件版本细颗粒比对系统,利用异常行为感知与研判技术,发现供应链安全问题是比较合理的检测方法。

应用软件感染由三种方法构成:源代码感染,例如早期的induc病毒感染delphi源代码导致编译后的文件自带病毒;二进制感染,例如早期的感染型病毒,alman曾感染tp-link官网发布的驱动程序,现阶段FinSpy间谍软件也具备感染应用程序触发恶意代码的能力;、重打包分发,将正常软件与恶意软件重新打包,并打包后的文件伪装成被打包的正常应用原有形态,例如APT-C-59攻击过程中对应用软件重打包分发的技术;侧加载组件劫持或替换,俗称白加黑攻击方式。针对的应用不同,感染的方法与位置也会不同,例如:将具备恶意性质的代码植入用户经常点击的一个按钮触发的事件例程中、在网络连接中掺杂其他的外连、针对目标特定场景设置恶意代码启停开关等,故检测方式需要做到:1是有效行为细颗粒;2是软件属性成模型;3是研判算法规则化,方可对软件供应链感染进行有效地比对,捕获异常行为,快速辅助预警。


有效行为细颗粒

有效行为细颗粒主要体现在三个方面,1是行为可以详细至行为细节,比如API的调用序列、重要API参数的收集、调用者的识别等;2是对无人环境下应用程序不可被执行的功能进行执行,例如菜单、对话框、按钮操作的自动化编排响应;3是逐步实现重要先决条件的模拟,例如触发试用到期注册、U盘接入或ukey消息通知等所需的外设条件、激活特定窗口或进程等所需的操作系统条件;4是抓取应用程序对操作系统的影响,例如操作系统日志、进程树、注册表数据、网络数据等。


软件属性成模型

软件属性成模型主要体现在软件类型分类角度,通过规范化软件类型限制其行为特性,例如系统软件、办公软件、各行业软件、视频影音软件、安全软件等等;对软件设置分发标签,例如开源、共享、收费、开源引用、定制等;对软件设置开发者标签,例如境外、国内、合资等;对软件设置业务标签,比如联网(境内外、流量持续度、应用到的协议、连接并发数区间等),系统修改(例如默认安装目录、注册表项、修改的系统配置文件,注册各类hook或通知等),内存应用(例如申请内存的大小、变更内存的属性、被修改内存的领空等),作业对象(例如进程、线程、守护进程、作业等),启动方法(例如快捷方式、开机自启、系统驻留、计划任务等),工作环境(例如操作系统、硬件平台等)、交互环境(前台交互、后台静默、条件触发等)


研判算法规则化

研判算法规则化遵循机器执行、人可审阅的模式,利用规则模型分析各组件细粒度的差异,得出应用程序运行的异常点,清晰化的告知同版本应用软件或差异版本的应用软件功能差距在哪里,这些差距是合理的还是具备风险的。


●  技    术    路    线  


软件模型信息提取部分
过程一为无人环境软件自动化编排验证环节,利用编排脚本等技术手段实现包含但不限于软件自动化安装、菜单、按钮、对话框点击以及文件的输入、保存等功能,并通过编排技术触发软件注册、外设接入通知、激活特定窗口或进程的必要条件,使其可以自动化响应。
过程二为软件行为及特征细颗粒提取,通过动态行为监测技术将过程一所述的过程按照时间维度序列化对使用的API调用者、API以及API参数保存;抓取操作系统被影响的数据,包含但不限于操作系统日志、进程树、注册表、网络通信数据等。
过程三为提取标签信息,可直接提取的开发者信息标签包含但不限于文件说明、文件版本、产品名称、产品版本、版权信息、语言信息、图标信息、数字证书信息。可通过过程二提取的包含但不限于业务标签,包含但不限于联网属性标签,例如:联网地址在境内、联网地址在境外、流量持续度、传输使用的协议、并发连接数区间等;系统修改标签,例如:默认安装目录、注册表项、修改的系统配置文件,注册各类hook或通知等;内存应用标签:例如申请内存的大小、变更内存的属性、被修改内存的领空等;作业对象标签,例如:进程、线程、守护进程、作业等;启动方法标签,例如:快捷方式、开机自启、系统驻留、计划任务等;工作环境标签,例如:操作系统、硬件平台等;交互环境标签,例如:前台交互、后台静默、条件触发等。
过程四为录入标签信息,可通过录入的标签包含但不限于软件类型,例如:系统软件、办公软件、各行业软件、视频影音软件、安全软件等;分发标签,例如:开源、共享、收费、开源引用、定制等;开发者标签,例如:境外、国内、合资等。
通过上述过程一、过程二、过程三、过程四最终生成软件模型信息库。


检测逻辑部分
过程一,传入待输入文件,获取其开发者信息标签,标签包含但不限于文件说明、文件版本、产品名称、产品版本、版权信息、语言信息、图标信息、数字证书信息。
过程二,开发者信息标签包含的文件说明、产品名称、版权信息数据与软件模型信息库中存放的信息进行比对,命中则进行过程三,非命中则退出
过程三,对被传入文件使用软件模型信息提取部分中的过程一、过程二、过程三最终获取可自动化获取的标签信息。
过程四,将被传入文件自动化获取的标签信息与软件模型信息库中所存放的标签进行比对、API调度序列进行异常比对,异常比对可选择顺序比对,遇到不同则抛出异常继续比对下一组的形式,最终抛出所有不同值,最终将标签信息与行为序列的差异数据输出。
过程五,判断联网属性标签、系统修改标签、内存应用标签、作业对象标签、启动方法标签、交互环境标签是否相同,如果相同则定义行为标签相同并展示差异化的行为序列,如果不同则定义具体不同的属性标签,并进行过程七展示风险值。
过程六、判断开发者信息标签文件版本、产品版本、语言信息、图标信息、数字证书信息是否不同,如果不同定义版本存在差异标签并展示,如果相同则定义不存在版本差异标签并展示。
过程七,输出风险值,风险值按照标签不同的个数与属性进行加权计算,例如联网属性标签占总权值50%,并对属性内的标签进行权值细分;系统修改标签占总权值10%,并对属性内的标签进行权值细分;内存应用标签占总权值12%,并对属性内的标签进行权值细分;作业对象标签占总权值6%,并对属性内的标签进行权值细分;启动方法标签占总权值8%,并对属性内的标签进行权值细分;交互环境标签占总权值14%,并对属性内的标签进行权值细分,根据不同的异常点得出最后加权的风险值,30%以内表示低风险;31%~60%表示中风险;61%~80%表示高风险;80%以上确定具备风险。


原创|基于行为差异化与细颗粒的软件供应链感染检测方案

流程图


●  技    能    储    备  


上述技术要点需要具备以下技能储备:
  • 各类应用软件的特性与原理分析
  • 恶意程序的特性与原理分析
  • 无感的细粒度行为沙箱
  • 持久化的运营能力


●      准    建    议  


从软件供应链安全的长远化发展角度审视,应当呼吁应用软件功能行为规范化,建设《应用软件行为分级分类标准》、《应用软件行为测评标准》、《应用软件互联网监测标准》等相关标准建设,促进软件供应链每一环节合法合规,建立谁测评谁负责制度,保障国家关键基础设施安全。

原文始发于微信公众号(锐眼安全实验室):原创|基于行为差异化与细颗粒的软件供应链感染检测方案

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月27日11:41:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   原创|基于行为差异化与细颗粒的软件供应链感染检测方案http://cn-sec.com/archives/950081.html

发表评论

匿名网友 填写信息