首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 234 毫秒
1.
近年来由于代码的交叉复用,同源二进制文件广泛存在于物联网设备固件中.当某个固件被爆出漏洞二进制文件时,则包含该同源二进制文件的其他固件也将处于高风险中.因此同源二进制文件检索对于物联网固件的安全分析与应急响应具有重要意义.然而,目前缺少一种大规模且有效的针对嵌入式设备二进制文件的大规检索方法.传统的基于“一对一”关联匹配的同源检索方法的时间复杂度是O(N),不能满足大规模同源检索的需求.设计和实现了一种时间复杂度为O(lgN)的面向物联网设备固件的同源二进制文件检索方法.该方法的核心思想是通过深度学习网络编码二进制文件中的可读字符串,然后对编码向量生成局部敏感Hash从而实现快速检索.按照16种不同的编译参数编译了893个开源组件,共生成71 129对带标签的二进制文件来训练和测试网络模型.结果表明:该方法的ROC特性好于传统方法.此外,实际应用案例表明:该方法只需不到1 s的时间即可完成一次针对22 594个固件的同源二进制文件检索任务.  相似文献   

2.
目前大多数物联网设备通过Web服务接口进行远程管理,利用Web服务漏洞发起攻击成为当前物联网设备安全面临的主要威胁之一。文章提出一种针对物联网设备Web服务漏洞的静态挖掘方法,首先基于前端脚本文件与边界二进制程序之间的关联性特征,通过对前后端文件进行关联分析,识别固件中的边界二进制程序,确定在边界二进制程序中针对Web输入数据的起始处理位置。然后利用污点分析技术判断输入数据是否会被漏洞触发函数处理,定位程序中的危险函数区域。最后实现固件漏洞静态方法的原型系统FBIR,并对10款固件进行实验,通过定位危险函数的方式验证45个已知漏洞并挖掘出12个零日漏洞。在漏报率只有14.9%的基础上,与传统人工分析的方法对比,文章所提方法将程序函数分析范围平均缩小了86%。  相似文献   

3.
软件二进制插桩是软件性能分析、漏洞挖掘、质量评价领域的关键技术.在嵌入式环境下,传统动态插桩算法受到无操作系统、CPU架构复杂、内存资源紧张等局限,难以展开工作.文章以软件动态二进制插桩算法为研究目的,通过静态特征分析和动态跟踪算法,引入图论算法对固件中的二进制进行分析,提出了嵌入式设备远程调试协议,实现了对软件运行时...  相似文献   

4.
在当今“万物互联”的时代,嵌入式系统逐渐成为接入云端的重要组件,常用于安全和隐私敏感的应用或设备中.然而,其底层软件(即固件)也在频繁遭受着安全漏洞的影响.由于嵌入式设备底层硬件平台的复杂异构,软硬件实现差异较大,且其专用性强、源码/文档等往往不会公开,加之其运行环境受限等原因,使得一些在桌面系统上运行良好的动态测试工具很难(或根本不可能)直接适配到嵌入式设备/固件环境中.近年来,研究人员逐渐开始探索基于二进制相似度分析技术来检测嵌入式设备固件中存在的已知漏洞,并且取得了较大的进展.围绕二进制代码相似度分析面临的关键技术挑战,系统研究了现有的二进制代码相似度分析技术,对其通用流程、技术特征、评估标准进行了综合分析和比较;然后分析并总结了现有二进制代码相似度分析技术在嵌入式设备固件漏洞搜索领域的应用;最后,提出了该领域应用仍然存在的一些技术挑战及未来的一些开放性的研究方向.  相似文献   

5.
《计算机工程》2017,(1):72-78
嵌入式设备的制造过程研产分离,导致不同的固件可能包含相同的第三方库,进而相同设备的不同版本甚至是不同设备的固件中都存在大量相同的已公开漏洞。针对该问题,基于第三方库同源性分析提出一种嵌入式设备固件漏洞检测方法,为固件漏洞修复提供参考,减少不必要的重复分析。通过对固件分类,并采用二进制差量分析、字符串常量匹配、模糊哈希3种方法分析第三方库同源性,从而检测同类固件中存在的漏洞。实验结果表明,该方法能够有效检测D-Link系列路由器固件中的缓冲区溢出和越界漏洞,以及Linksys系列路由器固件中的远程命令注入漏洞。  相似文献   

6.
固件比对是二进制比对技术的重要分支.然而,既往研究关注于函数的表示方法的优化却忽略了对过滤器的设计优化,导致固件常因包含同构函数引发误匹配,以致现有二进制比对技术应用于固件比对时效果不够理想.为此,提出基于社团检测算法的固件比对技术,首次将复杂网络相关理论应用于二进制比对领域.通过社团检测算法将固件内的函数划分为若干社团,利用社团匹配实现过滤器的功能,再根据匹配社团寻找匹配函数;此外,优化了函数相似度计算方法,设计了操作数相似性计算方法.在实现原型系统后,使用1382个固件构建2个数据集进行实验,验证了可行性,分析了基于社团检测算法的固件比对方法的性能,确定了各参数的合理取值,设计了评估指标可信匹配率,并比较了该方法与Bindiff的比对效果.实验表明:该方法可以提升Bindiff比对结果5%~11%的正确率.  相似文献   

7.
基于贪心策略的多目标攻击图生成方法   总被引:2,自引:0,他引:2       下载免费PDF全文
为解决网络脆弱性分析中攻击图生成方法存在的状态组合爆炸问题,使生成的攻击图能用于网络中多个目标主机的脆弱性分析,本文提出了一种基于贪心策略的多目标攻击图生成方法。该方法引入节点关联关系,采用贪心策略精简漏洞集,从所有攻击路径中选取使攻击者以最大概率获取网络节点权限的攻击路径,生成由这些攻击路径所构成的攻击图。算法分析和实验结果表明,该方法的时间和空间复杂度都是网络节点数和节点关联关系数的多项式级别,较好地解决了状态组合爆炸的问题,生成的攻击图覆盖了攻击可达的所有节点,能够用于网络中多个目标主机的脆弱性分析。  相似文献   

8.
当前,越来越多的物联网厂商将第三方代码库编译并部署在不同平台上.现有研究主要集中在同平台固件漏洞关联场景,不能直接用于检测其他平台上的同源漏洞,而跨平台场景的研究则刚刚起步.针对现有跨平台方法准确率低的问题,提出基于神经网络和局部调用结构匹配的2阶段跨平台固件漏洞关联方法(vulnerability detection based on neural networks and structure matching, VDNS).以函数为最小关联单元,对函数间调用图、函数内控制流图、函数基本信息进行特征选择和数值化处理,并采用神经网络计算待匹配函数对的相似程度,在此基础上采用结构化匹配方法进一步提高匹配精度.实验结果表明:该方法在二进制文件OpenSSL上性能指标Top1从32.1%提高至76.49%;采用5个漏洞函数对OpenSSL进行关联的Rank值均为1;采用4个常见的路由器漏洞函数在372个D-Link路由器固件上进行关联获得了良好的实验效果.  相似文献   

9.
刘强  殷建平  蔡志平  程杰仁 《软件学报》2011,22(6):1398-1412
网络漏洞分析是提高网络安全性的重要基础之一.以主机为中心的漏洞分析方法可在多项式时间内生成攻击图,但是没有考虑网络链路本身存在的不确定性.提出了一种基于不确定图的网络漏洞分析方法,采用链路不确定度以准确地描述网络链路状态,使得求解最佳利用链成为可能.在此基础上,提出了一种时间复杂度为O(n4)的不确定攻击图生成算法;基于不确定攻击图提出了一种时间复杂度为O(n3)的最佳利用链生成启发式算法.实验结果表明,该方法能在可接受的时间内生成不确定攻击图,找到一条攻击效益最佳的漏洞利用链.  相似文献   

10.
写污点值到污点地址漏洞模式检测   总被引:1,自引:0,他引:1  
设备驱动是允许高级程序与硬件设备交互的底层程序.通常设备驱动中的漏洞较之应用程序中的漏洞对计算机系统的安全具有更大的破坏性.写污点值到污点地址是Windows设备驱动程序中频繁出现的一种漏洞模式.首次明确地对该种漏洞模式进行描述,提出一种针对二进制驱动程序中该种漏洞模式的自动检测方法,并实现相应的原型工具T2T-B2C.该方法基于反编译和静态污点分析技术,与其他方法相比,既可以分析C代码,也可以分析本地二进制代码.该工具由T2T和B2C两个组件组成:首先B2C基于反编译技术将二进制文件转换为C语言文件;然后T2T基于静态污点分析技术检测B2C生成的C代码中出现写污点值到污点地址漏洞模式的语句.使用多种反病毒程序中的二进制驱动对T2T-B2C进行了评估,发现了6个未公开漏洞.评估结果表明:该工具是一款可实际应用的漏洞检测工具,可应用于对较大规模的程序进行检测.  相似文献   

11.
使用神经网络进行漏洞检测的方案大多基于传统自然语言处理的思路,将源代码当作序列样本处理,忽视了代码中所具有的结构性特征,从而遗漏了可能存在的漏洞.提出了一种基于图神经网络的代码漏洞检测方法,通过中间语言的控制流图特征,实现了函数级别的智能化代码漏洞检测.首先,将源代码编译为中间表示,进而提取其包含结构信息的控制流图,同...  相似文献   

12.
随着软件的复杂程度越来越高,对漏洞检测的研究需求也日益增大.软件漏洞的迅速发现和修补可以将漏洞带来的损失降到最低.基于深度学习的漏洞检测方法作为目前新兴的检测手段,可以从漏洞代码中自动学习其隐含的漏洞模式,节省了大量人力投入.但基于深度学习的漏洞检测方法尚未完善,其中函数级别的检测方法存在检测粒度较粗且检测准确率较低的问题,切片级别的检测方法虽然能够有效减少样本噪声,但是仍存在以下两个方面的问题.一方面现有方法大多采用人工漏洞数据集进行实验,因此其在真实环境中的漏洞检测能力仍然存疑;另一方面,相关工作仅致力于检测出切片样本是否存在漏洞,而缺乏对检测结果可解释性的考虑.针对上述问题,本文提出了基于图神经网络的切片级漏洞检测及解释方法.该方法首先对C/C++源代码进行规范化并提取切片,以减少样本冗余信息干扰;其次采用图神经网络模型进行切片嵌入得到其向量表征,以保留源代码的结构信息和漏洞特征;然后将切片的向量表征输入漏洞检测模型进行训练和预测;最后将训练完成的漏洞检测模型和待解释的漏洞切片输入漏洞解释器得到具体的漏洞代码行.实验结果显示,在漏洞检测方面,该方法对于真实漏洞数据的检测F1分数达到75.1%,相较于对比方法提升了41.2%-110.4%.在漏洞解释方面,该方法在限定前10%的关键节点时准确率可以达到73.6%,相较于两种对比解释器分别提升8.9%和24.9%,且时间开销分别缩短42.5%和15.4%.最后,该方法正确检测并解释了4个开源软件中59个真实漏洞,证明了其在现实世界漏洞发掘方面的实用性.  相似文献   

13.
针对基于PHP语言开发的Web应用程序产生的污点型漏洞,提出一种静态代码分析检测的方法。提出的生成控制流图的算法,基于PHP内置函数解析PHP程序,生成抽象解析树,进而生成控制流图;对内置特征、入口点和敏感点进行建模,精确分析数据流;提出基于有效路径的污点分析方法,提高了分析的准确性,实现了基于变量回溯的路径遍历算法。实现了该方法的原型系统,并对两个广泛使用的PHP应用程序进行测试,发现了6个未公开漏洞和11个已公开漏洞,证明了该系统具有较强的漏洞检测能力。  相似文献   

14.
段旭  吴敬征  罗天悦  杨牧天  武延军 《软件学报》2020,31(11):3404-3420
随着信息安全愈发严峻的趋势,软件漏洞已成为计算机安全的主要威胁之一.如何准确地挖掘程序中存在的漏洞,是信息安全领域的关键问题.然而,现有的静态漏洞挖掘方法在挖掘漏洞特征不明显的漏洞时准确率明显下降.一方面,基于规则的方法通过在目标源程序中匹配专家预先定义的漏洞模式挖掘漏洞,其预定义的漏洞模式较为刻板单一,无法覆盖到细节特征,导致其存在准确率低、误报率高等问题;另一方面,基于学习的方法无法充分地对程序源代码的特征信息进行建模,并且无法有效地捕捉关键特征信息,导致其在面对漏洞特征不明显的漏洞时,无法准确地进行挖掘.针对上述问题,提出了一种基于代码属性图及注意力双向LSTM的源码级漏洞挖掘方法.该方法首先将程序源代码转换为包含语义特征信息的代码属性图,并对其进行切片以剔除与敏感操作无关的冗余信息;其次,使用编码算法将代码属性图编码为特征张量;然后,利用大规模特征数据集训练基于双向LSTM和注意力机制的神经网络;最后,使用训练完毕的神经网络实现对目标程序中的漏洞进行挖掘.实验结果显示,在SARD缓冲区错误数据集、SARD资源管理错误数据集及它们两个C语言程序构成的子集上,该方法的F1分数分别达...  相似文献   

15.

内存错误漏洞仍是当前网络攻击中造成危害最严重的漏洞之一.内存错误漏洞的产生往往与对内存拷贝类函数的误用有关.目前针对内存拷贝类函数的识别主要借助于符号表和代码特征模式匹配,具有较高的误报率和漏报率,并且适用性较差.提出了一种内存拷贝类函数识别技术CPYFinder(copy function finder).该技术在内存拷贝类函数控制流特征的基础上,将二进制代码转换为中间语言表示VEX IR(intermediate representation)进行数据流的构建和分析,根据内存拷贝类函数在数据流上的特征进行识别.该技术能够在较低的运行时间下对多种指令集架构(x86,ARM,MIPS,PowerPC)的二进制程序中的内存拷贝类函数进行识别.实验结果表明,相比于最新的工作BootStomp和SaTC,CPYFinder在对内存拷贝类函数识别上具有更好的表现,在精准率和召回率上得到更好的平衡,并且运行时间与SaTC几乎相等,仅相当于BootStomp耗时的19%.此外,CPYFinder在漏洞函数识别上也具有更好的表现.

  相似文献   

16.
针对开源软件漏洞,提出一种基于深度聚类算法的软件源代码漏洞检测方法。该方法利用代码图模型构造开源软件代码属性图,遍历得到关键代码节点并提取出应用程序编程接口(API)序列,将其嵌入向量空间,以关键代码为中心进行聚类,根据聚类结果计算每个函数的异常值,生成检测报告并匹配漏洞库,从而检测出源代码中的漏洞。实验结果表明,该方法能够定位开源软件中漏洞所在的关键代码段并检测出相应漏洞。  相似文献   

17.
现在软件规模越来越庞大和复杂,脆弱性形式也更趋向多样化,传统的脆弱性检测方法存在人工参与度高、对未知脆弱性检测能力弱的缺点,已无法满足对多样化脆弱性的检测要求.为了提高对未知脆弱性的检测效果,大量机器学习方法被应用到软件脆弱性检测领域.由于现有方法在代码表征过程中存在着较高的语法和语义信息的损失,导致误报率和漏报率较高.针对这一问题,提出了一种基于代码属性图和Bi-GRU的软件脆弱性检测方法.该方法通过从函数的代码属性图中提取出抽象语法树序列、控制流图序列作为函数表征的表征方式,减少代码表征过程中的信息的损失,并通过选取Bi-GRU来构建特征提取模型,提高对脆弱性代码的特征提取能力.实验结果表明,与以抽象语法树为表征方式的方法相比,该方法最大可提高35%的精确率和22%的召回率,可改善面向多个软件源代码混合的真实数据集的脆弱性检测效果,有效降低误报率和漏报率.  相似文献   

18.
骨干级网络设备作为关键基础设施, 一直是网络攻防中的焦点, 与此同时, 其作为一个封闭、复杂的信息系统, 漏洞的公开研究资料相对较少、漏洞细节缺失较多。补丁对比是一种有效的漏洞分析手段, 而骨干级网络设备固件解包后通常具有单体式可执行文件, 这类文件具有函数数量多、文件规模大、调试符号信息缺失等特点, 直接进行补丁比对会产生大量待确认的误报差异, 同时启发式算法可能将两个不相关的函数错误匹配, 导致正确的安全修补缺失及漏报。传统的补丁比对方法无法有效地解决这类文件的补丁分析问题, 漏洞细节的分析遇到挑战。本文提出了一种针对单体式可执行文件中已知漏洞的定位方法MDiff, 通过漏洞公告描述中的子系统概念与目标二进制文件的内部模块结构对目标进行了拆分, 在基于局部性的二进制比对技术之上, 利用语义相似度衡量方法对比对结果进行筛选排序。具体来讲, MDiff首先利用入口函数及局部性原理识别存在漏洞的网络协议服务代码, 即粗粒度定位阶段。其次针对已识别出的、存在漏洞的网络协议服务代码模块中存在差异的函数进行动静态结合的语义信息分析, 包括基于扩展局部轨迹的安全修补识别, 基于代码度量的安全修补排序等步骤, 即细粒度定位阶段。基于该两阶段漏洞定位方法, 我们实现了一个原型系统, 对4个厂商设备中已经披露的15个漏洞进行实验。实验结果表明, 本文提出的漏洞定位方法可以提高网络设备的补丁分析效率, 支持研究人员发现已知漏洞细节。  相似文献   

19.
Java反序列化漏洞已经成为当下Java应用安全的常见威胁,其中能够找到反序列化利用链是该类型漏洞能否利用的关键。由于Java应用及依赖库的代码空间大和Java本身多态的问题,人工分析Java反序列化利用链,需消耗大量的时间和精力,且高度依赖分析人员的经验知识。因此,研究如何高效且准确地自动化挖掘反序列化利用链至关重要。提出了基于混合分析的Java反序列化利用链挖掘方法。根据变量声明类型构造调用图,通过调用图分析筛选可能到达危险函数的反序列化入口函数。将筛选出的入口函数作为混合信息流分析的入口,开展同时面向指针和污点变量的混合信息流分析,对隐式创建的对象标记污点,在传播指针信息的同时传播污点信息,构建混合信息流图。基于混合信息流图判断外部污点数据传播到危险函数的可达性。根据污点传播路径构造相应的反序列化利用链。混合分析兼顾了调用图分析的速度和混合信息流分析的精度。基于提出的混合分析方法,实现相应的静态分析工具——GadgetSearch。GadgetSearch在Ysoserial、Marshalsec、Jackson历史CVE、XStream历史CVE4个数据集上的误报率和漏报率比现...  相似文献   

20.

当前基于深度学习的源代码漏洞检测是一种效率较高的漏洞分析方式,但其面临2个挑战:容量较大的数据集和有效的学习方式. 针对这2个挑战做了2方面的研究工作:首先基于SARD数据集构建了样本容量为280793的多漏洞数据集,包含150种CWE漏洞类型. 其次提出基于比较学习的深度学习方法. 其核心思想是为深度学习训练集中每一个样本构建1个类型相同的样本集合,以及1个类型不相同的样本集合,形成一种比较学习的氛围. 基于该思想创建的训练数据集,深度学习模型在训练的过程中,不但可以学习同类型样本大量的、细微的特征,还可以提取不同类型样本中区分性较强的特征. 经过实验验证,基于所创建的数据集和提出的学习方法训练的深度学习模型可以识别150种CWE漏洞类型,准确率可以达到92.0%,平均PR值可以达到0.85,平均ROC-AUC值可以达到0.96. 此外,也对基于深度学习的漏洞分析技术中普遍使用的代码符号化技术进行分析与讨论. 实验表明,深度学习训练过程中,是否对代码进行符号化,并不会影响深度学习模型的漏洞识别准确率.

  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号