一种电力固件同源二进制文件关联方法及系统技术方案

技术编号:24036094 阅读:26 留言:0更新日期:2020-05-07 01:56
本发明专利技术公开了一种电力固件同源二进制文件关联方法及系统;所述方法包括:提取待查询二进制文件的字符串信息;过滤所述字符串信息的代码段字符串及库符号表字符串得到字符串序列;将所述字符串序列进行编码,得到编码向量;将所述编码向量生成相似度哈希签名,将所述相似度哈希签名在预设的哈希签名数据库中进行检索,得到所述哈希签名数据库中所有满足阈值条件的同源二进制文件;所述方法及系统通过深度学习网络编码二进制文件中的可读字符串生成编码向量,然后对编码向量生成相似度哈希签名从而实现快速高效关联,兼顾匹配的精度和速度,具有广阔的应用前景。

A binary file association method and system of power firmware

【技术实现步骤摘要】
一种电力固件同源二进制文件关联方法及系统
本专利技术涉及漏洞挖掘与分析领域,具体涉及电力设备固件中同源二进制文件关联方法及系统。
技术介绍
最近的网络安全事件表明,来自于同一厂商甚至不同厂商的多种电力设备会被相同的恶意软件感染。造成这种现象的主要原因为近年来设备厂商越来越多地使用同源代码进行开发,而正是由于电力设备固件中存在广泛的代码重用,当某个固件被爆出漏洞二进制文件时,包含该同源二进制文件的其他固件也将处于高风险中。例如被蠕虫SHELLBIND所利用的SambaCry漏洞(CVE-2017-7494)影响设备长达七年之久,直到2017年5月才被安全研究人员发现。因此当安全事件发生时,知道哪些设备的固件中包含有相关组件对于电力设备安全应急响应意义重大。
技术实现思路
为了解决
技术介绍
存在的电力设备固件因广泛的代码重用导致某个固件因漏洞二进制文件被恶意软件感染时,包含同源二进制文件的其他固件也处于高风险状态的问题,本专利技术提供了一种电力固件同源二进制文件关联方法及系统,所述方法及系统通过深度学习网络编码二进制文件中的可读字符串来生成编码向量,然后对编码向量生成相似度哈希签名从而实现快速高效关联,同时兼顾匹配的精度和速度,所述一种电力固件同源二进制文件关联方法包括:提取待查询二进制文件的字符串信息;过滤所述字符串信息的代码段字符串及库符号表字符串得到字符串序列;将所述字符串序列进行编码,得到编码向量;通过所述编码向量生成相似度哈希签名,将所述相似度哈希签名在预设的哈希签名数据库中进行检索,得到所述哈希签名数据库中所有满足阈值条件的同源二进制文件。进一步的,所述待查询二进制文件的可读字符串包括数据段中的ASCII格式字符串、数据段中的Unicode格式字符串及代码段中的ASCII格式字符串;提取字符串信息的方法包括:通过Linux下的字符串提取工具strings提取所述数据段中的ASCII格式字符串;通过判断是否包含连续一致语系编码的字节单元来识别Unicode格式的字符串;通过识别连续入栈指令,提取所述连续入栈指令中的操作数,根据所述操作数构造栈帧字节流,判断所述栈帧字节流中是否有连续可读的ASCII格式字符,若有则将它们拼接成可读字符串。进一步的,所述字符串信息的代码段字符串过滤方法包括:所述待查询二进制文件含有ELF头时,直接提取所述待查询二进制文件数据段中的字符串信息作为特征过滤文件;所述待查询二进制文件不含ELF头时,过滤所述待查询二进制文件代码段中的字符串信息,将所述过滤后字符串信息作为特征过滤文件。进一步的,库符号表字符串过滤方法包括:将内核级和系统级的符号表字符串加入黑名单列表中,对经过代码段字符串过滤后的所述特征过滤文件运用该黑名单作进一步过滤,得到所述字符串序列;所述库符号表包含相应库中存放的函数名称和全局变量信息;所述内核级符号表包含能被系统程序和用户程序调用的库函数名和变量信息;所述系统级符号表包含能够被用户程序调用的库函数名及变量信息。进一步的,所述字符串序列通过字符串编码模型进行编码,所述字符串编码模型包括词嵌入网络、单层双向循环神经网络和全连接编码网络三部分;所述词嵌入网络通过查表方式查询系统预设的字符串语料库,将所述字符串序列按照字符串的原始序列将查找的编码组成词向量序列;所述单层双向循环神经网络根据输入的所述词向量序列生成第一临时张量,根据输入的反序后所述词向量序列生成第二临时张量,然后将所述第一临时张量与所述第二临时张量合并,生成结果张量,最后将结果张量中的最后一列抽取出来得到最终的特征向量;所述全连接编码网络将所述特征向量映射为固定编码长度的编码向量。进一步的,所述预设的字符串语料库通过对收集到的电力设备固件进行解压逆向,提取其字符串,并对提取到的字符串进行构建生成;所述字符串语料库对应的编码初始值为随机值。进一步的,所述哈希签名数据库为通过对所述字符串语料库中的每个字符串用训练好的所述字符串编码模型编码成特征向量,然后使用事先构造好的面向余弦距离的局部敏感哈希函数族计算出所述每个特征向量的相似度哈希签名,最后以给定的同源性阈值为参数对所述相似度哈希签名构造生成。进一步的,所述编码向量根据面向余弦距离的局部敏感哈希函数族生成相似度哈希签名;所述相似度哈希签名在预设的哈希签名数据库中进行的检索为时间复杂度为O(N)的检索。所述一种电力固件同源二进制文件关联系统包括字符串提取单元,字符串过滤单元,字符串编码模型单元,相似度哈希计算单元及哈希签名数据库;所述字符串提取单元用于提取待查询二进制文件的字符串信息;所述字符串过滤单元用于过滤所述字符串信息的代码段字符串及库符号表字符串得到字符串序列;字符串编码模型单元用于将所述字符串序列进行编码,得到编码向量;相似度哈希计算单元用于通过所述编码向量生成相似度哈希签名,将所述相似度哈希签名在预设的哈希签名数据库中进行检索,得到所述哈希签名数据库中所有满足阈值条件的同源二进制文件;哈希签名数据库用于对所述相似度哈希签名通过时间复杂度为O(N)的检索找到同源二进制文件。进一步的,所述字符串提取单元包括数据段中的ASCII格式字符串提取模块、数据段中的Unicode格式的字符串提取模块及代码段中的ASCII格式字符串提取模块;所述数据段中的ASCII格式字符串提取模块采用Linux下的字符串提取工具strings实现数据段中的ASCII格式字符串提取;所述数据段中的Unicode格式的字符串提取模块通过判断是否包含连续一致语系编码的字节单元实现数据段中的Unicode格式的字符串提取;所述代码段中的ASCII格式字符串提取模块通过识别连续入栈指令,提取所述连续入栈指令中的操作数,根据所述操作数构造栈帧字节流,判断所述栈帧字节流中是否有连续可读的ASCII格式字符,若有则将它们拼接成可读字符串,实现代码段中的ASCII格式字符串提取。进一步的,所述字符串过滤单元包括代码段字符串过滤模块,所述代码段字符串过滤模块用于过滤所述字符串信息中的代码段字符串;所述待查询二进制文件含有ELF头时,所述代码段字符串过滤模块直接提取所述待查询二进制文件数据段中的字符串信息作为特征过滤文件;所述待查询二进制文件不含ELF头时,所述代码段字符串过滤模块过滤所述待查询二进制文件代码段中的字符串信息,将所述过滤后字符串信息作为特征过滤文件。进一步的,所述字符串过滤单元包括库符号表字符串过滤模块,所述库符号表字符串过滤模块用于过滤所述字符串信息中的库符号表字符串;所述库符号表字符串过滤模块将内核级和系统级的符号表字符串加入黑名单列表中,对经过代码段字符串过滤后的所述特征过滤文件运用该黑名单作进一步过滤,得到所述字符串序列;所述库符号表包含相应库中存放的函数名称和全局变量信息;<本文档来自技高网...

【技术保护点】
1.一种电力固件同源二进制文件关联方法,所述方法包括:/n提取待查询二进制文件的字符串信息;/n过滤所述字符串信息的代码段字符串及库符号表字符串得到字符串序列;/n将所述字符串序列进行编码,得到编码向量;/n通过所述编码向量生成相似度哈希签名,将所述相似度哈希签名在预设的哈希签名数据库中进行检索,得到所述哈希签名数据库中所有满足阈值条件的同源二进制文件。/n

【技术特征摘要】
1.一种电力固件同源二进制文件关联方法,所述方法包括:
提取待查询二进制文件的字符串信息;
过滤所述字符串信息的代码段字符串及库符号表字符串得到字符串序列;
将所述字符串序列进行编码,得到编码向量;
通过所述编码向量生成相似度哈希签名,将所述相似度哈希签名在预设的哈希签名数据库中进行检索,得到所述哈希签名数据库中所有满足阈值条件的同源二进制文件。


2.根据权利要求1所述的方法,其特征在于,所述待查询二进制文件的可读字符串包括数据段中的ASCII格式字符串、数据段中的Unicode格式字符串及代码段中的ASCII格式字符串;
提取字符串信息的方法包括:
通过Linux下的字符串提取工具strings提取所述数据段中的ASCII格式字符串;
通过判断是否包含连续一致语系编码的字节单元来识别Unicode格式的字符串;
通过识别连续入栈指令,提取所述连续入栈指令中的操作数,根据所述操作数构造栈帧字节流,判断所述栈帧字节流中是否有连续可读的ASCII格式字符,若有则将它们拼接成可读字符串。


3.根据权利要求1所述的方法,其特征在于,所述字符串信息的代码段字符串过滤方法包括:
所述待查询二进制文件含有ELF头时,直接提取所述待查询二进制文件数据段中的字符串信息作为特征过滤文件;
所述待查询二进制文件不含ELF头时,过滤所述待查询二进制文件代码段中的字符串信息,将所述过滤后字符串信息作为特征过滤文件。


4.根据权利要求3所述的方法,其特征在于,库符号表字符串过滤方法包括:
将内核级和系统级的符号表字符串加入黑名单列表中,对经过代码段字符串过滤后的所述特征过滤文件运用该黑名单作进一步过滤,得到所述字符串序列;
所述库符号表包含相应库中存放的函数名称和全局变量信息;
所述内核级符号表包含能被系统程序和用户程序调用的库函数名和变量信息;
所述系统级符号表包含能够被用户程序调用的库函数名及变量信息。


5.根据权利要求1所述的方法,其特征在于:
所述字符串序列通过字符串编码模型进行编码,所述字符串编码模型包括词嵌入网络、单层双向循环神经网络和全连接编码网络三部分;
所述词嵌入网络通过查表方式查询系统预设的字符串语料库,将所述字符串序列按照字符串的原始序列将查找的编码组成词向量序列;
所述单层双向循环神经网络根据输入的所述词向量序列生成第一临时张量,根据输入的反序后所述词向量序列生成第二临时张量,然后将所述第一临时张量与所述第二临时张量合并,生成结果张量,最后将结果张量中的最后一列抽取出来得到最终的特征向量;
所述全连接编码网络将所述特征向量映射为固定编码长度的编码向量。


6.根据权利要求5所述的方法,其特征在于:
所述预设的字符串语料库通过对收集到的电力设备固件进行解压逆向,提取其字符串,并对提取到的字符串进行构建生成;所述字符串语料库对应的编码初始值为随机值。


7.根据权利要求5所述的方法,其特征在于:
所述哈希签名数据库为通过对所述字符串语料库中的每个字符串用训练好的所述字符串编码模型编码成特征向量,然后使用事先构造好的面向余弦距离的局部敏感哈希函数族计算出所述每个特征向量的相似度哈希签名,最后以给定的同源性阈值为参数对所述相似度哈希签名构造生成。


8.根据权利要求1所述的方法,其特征在于:
所述编码向量根据面向余弦距离的局部敏感哈希函数族生成相似度哈希签名;
所述相似度哈希签名在预设的哈希签名数据库中进行的检索为时间复杂度为O(N)的检索。


9.一种电力固件同源二进制文件关联系统,所述系统包括字符串提取单元,字符串过滤单元,字符串编码模型单元,相似度哈希计算单元及哈希签名数据库;
所述字符串提取单元用于提取待查询二进制文件的字符串信息;
所述字符串过滤单元用于过滤所述字符串信息的代码段字符串及库符号表字符串得到字符串序列;
所述字符串编码模型单元用于将所述字符串序列进行编码,得到编码向量;
所...

【专利技术属性】
技术研发人员:朱朝阳马原周亮石志强缪思薇孙利民应欢韩丽芳王海翔
申请(专利权)人:中国电力科学研究院有限公司中国科学院信息工程研究所国家电网有限公司国网浙江省电力有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1