[发明专利]基于二进制代码特征的第三方组件漏洞检测方法有效
申请号: | 201711122245.1 | 申请日: | 2017-11-14 |
公开(公告)号: | CN107844705B | 公开(公告)日: | 2021-04-02 |
发明(设计)人: | 但吉兵;陈都;陈虹兵 | 申请(专利权)人: | 苏州棱镜七彩信息科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56;G06F16/901;G06F16/903 |
代理公司: | 北京同辉知识产权代理事务所(普通合伙) 11357 | 代理人: | 刘洪勋 |
地址: | 215000 江苏省苏州市工业*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 二进制 代码 特征 第三 组件 漏洞 检测 方法 | ||
1.基于二进制代码特征的第三方组件漏洞检测方法,其特征在于包括以下步骤:
步骤一,抽取第三方组件的多维度特征,构建第三方组件的特征库,
抽取第三方组件中的二进制代码特征,选择从源代码与编译到二进制代码这一过程中的不变量,存储于特征库中,所述不变量包括常量字符串、数字常量、函数签名数字化向量中的一种或是多种,
根据第三方组件源码的语言类型,选择对应的词法分析器抽取字符串常量和数字常量特征,
所述词法分析器,根据源代码语言类型,从源文件中提取字符串常量及数字常量特征,并将其作为主键,包含该特征的组件列表作为值,存储于倒排索引的特征库中,
采用语法分析器,分析每一个文件包含的函数个数,每一个函数包含的参数个数,形成一个数字向量,同样存储于特征库中;
步骤二,抽取待检测文件的二进制代码特征,搜索匹配到相应的第三方组件,
通过定位jump指令,并查看参数压栈条数,得出函数签名的数字化常量特征,
对每个匹配到的特征评分,再对每一个找到特征的组件,将其所有特征的评分加起来作为组件评分,采用如下公式:
,
其中,s为找到的特征,length(s)是特征字符串的长度,pkg(s)为包含s的开源组件数目,α是一个常量,当包含s的组件数目提升时,分母数值会快速提升,分数快速降低;
随后,根据匹配到的所有组件的分数进行排名,设置阈值来截断排名列表,在阈值之上的,设为其存在于该待检测文件中,通过控制打分参数α和阈值threshold来控制检测算法的精度;
步骤三,根据更细维度的特征,确定组件版本号,通过进一步细粒度,匹配不同版本的控制流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州棱镜七彩信息科技有限公司,未经苏州棱镜七彩信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711122245.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于防止干燥斑点的方法和车辆清洗设施
- 下一篇:电解水生成器