首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 140 毫秒
1.
内核是操作系统的核心,它构建了操作系统各类程序运行时需要的基础环境:如进程调度、存储管理、文件系统、设备驱动和网络通信等。操作系统内核漏洞的存在可能使得计算机系统遭受拒绝服务、信息泄露、超级用户权限提升等攻击,因此,针对内核的漏洞挖掘一直是网络安全领域的研究热点。本文在现有的研究基础上,提出一种基于覆盖率制导的内核漏洞并行模糊测试模型,该模型以代码覆盖率为导向,以计算节点和控制节点组成的星型结构作为并行模型,各计算节点通过代码覆盖率对系统内核持续测试,控制节点完成计算节点间代码覆盖率的收集与交互,突破了传统测试模型对计算资源要求限制和数据竞争的瓶颈,极大的提升了代码覆盖率及测试速度,加快了漏洞挖掘的效率。为了验证模型的实用性及有效性,利用Diskaller与Syzkaller和Triforce进行对比,一定条件下Diskaller覆盖率较Syzkaller提升12.8%,执行速率提升229%,较Triforce覆盖率提升335%,执行速率提升450%,并且发现了Linux内核中两个先前未被发现的漏洞。  相似文献   

2.
主流区块链平台以太坊上频繁发现由不安全编程引起的智能合约安全漏洞。为了提高模糊测试对合约代码的覆盖率,以更全面地检测安全漏洞,提出了一种智能合约模糊测试方法。首先构造智能合约交易序列数据集,再基于深度学习构建智能合约交易生成模型以生成模糊测试初始种子;然后根据覆盖率和分支距离信息,对智能合约进行信息反馈引导的模糊测试,提出了特定的测试用例染色体编码方式,并设计实现了相应的交叉和变异算子。所提方法能有效覆盖智能合约的深层次状态以及严格条件守卫的分支代码。在500个智能合约上进行实验,结果表明,所提方法的代码覆盖率为93.73%,漏洞检测率为93.93%,与ILF,sFuzz, Echidna方法相比,所提方法的代码覆盖率提高了3.80%~25.49%,漏洞检测率提高了4.64%~24.02%。所提方法有助于提升以太坊智能合约安全测试的有效性,具有参考价值。  相似文献   

3.
模糊测试被广泛应用于各种软件和系统的漏洞挖掘中.而模糊测试的效果与其采用的变异策略以及初始种子文件的代码覆盖率有直接的关系.本文提出了一种基于深度学习的种子文件生成方法,分析并学习初始种子文件和其在目标程序中的执行路径之间的关系,最终输出可能覆盖新执行路径的种子文件,从而提高初始种子文件集合的代码覆盖率.我们以PDF阅读器作为目标程序进行了实验,实验结果表明该方法所生成的种子文件保证了良好的通过率,而且明显提高了代码覆盖率.同时实验证明该方法在针对多种PDF阅读器进行模糊测试时都获得了更高的代码覆盖率.  相似文献   

4.
模糊测试是一种有效的自动化漏洞挖掘技术,主流模糊测试技术采用遗传算法生成测试用例,存在早熟现象,导致路径覆盖率不足。针对该问题,提出一种基于动态适应度函数的模糊测试方法。综合考虑了种子新度和路径深度因素,设计了根据测试阶段不同而动态变化的适应度函数,实现了基于动态适应度函数的模糊测试工具DynFuzzer。在BegBunch和CGC提供的测试集上进行实验,结果表明与现有模糊测试工具相比,DynFuzzer路径覆盖率提高了40%,多发现了10%的bug。基于动态适应度函数的模糊测试方法能有效克服早熟问题,提高路径覆盖率,发现更多的bug。  相似文献   

5.
为解决模糊测试在Windows平台执行过程缓慢、漏洞识别误报率与漏报率均较高的问题,提出一种基于动态能量优化的模糊测试系统。利用静态污点分析在敏感位置进行风险判定与标记;依据不同属性标准将输入文件划分为3种状态进行样本能量的动态优化;设计一种有效性度量机制针对低效输入截断。通过对4类应用进行实验,验证了在覆盖率和漏洞检测方面相较目前先进的模糊测试引擎最高提升67.6%与50.8%,并发现了5个未公开漏洞,其中两个获得CNVD编号,一个获得CVE编号,验证了系统的有效性。  相似文献   

6.
JavaScript作为Web应用的主要编程语言之一,其解释执行、动态类型、面向原型等特性成为限制Web应用性能的主要因素。为了加快JavaScript运行速度,提升Web应用性能,本文提出一种采用预先编译的V8引擎优化方法。该方法将Web应用第一次解释执行过程中热点函数的字节码或机器码进行保存,Web应用下次运行时可以直接运行热点函数已保存的字节码或机器码,避免了热点函数的解释代价和编译代价,而且提出了新的代价模型来确定保存热点函数字节码或机器码带来的时间增益和空间代价。本文在V8引擎最新编译架构上实现了基于字节码的预先编译方法,并使用标准JavaScript引擎测试集进行了性能测试,实验结果表明在Kraken、Octane测试集上分别可以取得11%和13.6%的性能提升。  相似文献   

7.
网络协议是现代通信系统中不可缺少的部分,其实现程序的安全性不容忽视。模糊测试已经成为现代漏洞挖掘的主流方式,并在软件安全领域中取得了较大的成功。网络协议模糊测试通常指对网络协议实现程序进行模糊测试,然而传统模糊测试在此类程序的测试上仍存在一些问题。首先,由于网络协议实现程序中不同状态对应不同代码,传统灰盒模糊测试中使用的代码覆盖不能表示网络协议实现程序的内部状态。其次现有灰盒协议模糊器中的状态引导机制依赖于代码覆盖率,不能很好地挖掘网络协议实现程序的状态间关系。对此,文章提出了一种由协议状态间关系和程序代码覆盖率共同引导模糊测试过程从而提升模糊测试效果的模糊器AFLNeTrans,其利用状态间关系作为主要引导机制,引导模糊测试快速探索协议实现程序更多的状态空间,并在Profuzzbench上对其进行了评估实验。实验结果表明,AFLNeTrans在发现状态转移数量上有较明显的提升,并且在代码覆盖率和unique_crash数量上相比现有工具也有提升。  相似文献   

8.
针对当前统一可扩展固件接口(UEFI)固件漏洞大幅增多,且缺乏高效漏洞检测系统的问题,提出面向UEFI固件的模糊测试系统,采用模糊测试技术检测固件漏洞。该系统复用了原UEFI下自我认证测试系统的测试框架,同时使用专门的子系统生成高针对性的测试数据,并基于UEFI固件的驱动-协议模型为测试用例提供统一的编程接口。以一个UEFI下实际的固件安全漏洞为例,揭示该系统检测固件安全漏洞的能力。实验结果表明,该模糊测试系统不仅可以简化测试用例的开发,而且编写的测试用例比自我认证测试系统提升了15%的代码覆盖率,能有效应用于UEFI固件深层、高危安全漏洞的检测。  相似文献   

9.
针对JavaScript引擎在即时编译模式下的开销过高和网页加载时间过长的问题,改进JavaScript引擎中即时编译模式的编译方式,设计一种对JavaScript代码的动态编译方式,只对JavaScript代码中频繁执行的热点区域进行即时编译,其余代码则运行在解释模式下,合理地利用了即时编译模式。实验测试结果表明,动态编译方式能够减少JavaScript引擎的开销耗费,加快网页的加载速度。  相似文献   

10.
基于网络信息安全漏洞问题越来越受重视,针对漏洞研究中测试代码覆盖率和漏洞挖掘效率问题,设计并实现了基于混合符号执行的Fuzzing测试系统;该系统采用了指令动态追踪、混合符号执行、约束求解、测试用例生成及动态测试5个模块,通过对系统各个环节优化处理提高效率,并实验验证系统代码覆盖率较传统Fuzzing测试工具也有较大提高,得出了该系统能适用于大型应用软件测试的结论。  相似文献   

11.
龚伟刚  游伟  李赞  石文昌  梁彬 《计算机科学》2017,44(11):22-26, 49
目前,静态分析技术已被广泛用于JavaScript程序的安全性分析。但是由于JavaScript支持通过eval等方法在运行时动态生成代码,仅靠静态分析难以取得动态生成代码。一种可行的解决方法是通过动态运行目标程序取得动态生成代码,再对其进行静态分析。然而,动态运行目标程序只能覆盖有限的执行路径,会遗漏其他执行路径中的动态生成代码。针对这一问题,基于动态插桩实现了一个反事实执行方法。该方法通过修改JavaScript引擎,在其语法解析阶段动态插入反事实执行体,使条件不成立的分支路径和当前执行路径均能够得到执行。通过该插桩方式,即使嵌套调用eval等方法,也能在其动态生成代码中完成插桩。同时,还实现了一种按需undo方法,以消除反事实执行体中赋值操作带来的影响,且能够避免冗余操作。实验结果表明,实现的方法能够有效地扩大动态分析中执行路径的覆盖面。  相似文献   

12.
由于语言特性导致的JavaScript引擎漏洞是当今应用软件软件安全的重要威胁之一,攻击者通常间接利用JavaScript引擎漏洞造成远程命令执行,获得系统的控制权。介绍了引擎的基本信息,对引擎中经常出现的漏洞进行了分类,分别综述了静态和动态分析检测的基本步骤和发展脉络,提出了针对JavaScript引擎漏洞的检测基本框架,讨论了制约检测效率瓶颈问题以及可能的解决方法,结合最新的技术应用指出了未来的发展趋势和亟待解决的问题。  相似文献   

13.
Developers commonly make use of a web search engine such as Google to locate online resources to improve their productivity. A better understanding of what developers search for could help us understand their behaviors and the problems that they meet during the software development process. Unfortunately, we have a limited understanding of what developers frequently search for and of the search tasks that they often find challenging. To address this gap, we collected search queries from 60 developers, surveyed 235 software engineers from more than 21 countries across five continents. In particular, we asked our survey participants to rate the frequency and difficulty of 34 search tasks which are grouped along the following seven dimensions: general search, debugging and bug fixing, programming, third party code reuse, tools, database, and testing. We find that searching for explanations for unknown terminologies, explanations for exceptions/error messages (e.g., HTTP 404), reusable code snippets, solutions to common programming bugs, and suitable third-party libraries/services are the most frequent search tasks that developers perform, while searching for solutions to performance bugs, solutions to multi-threading bugs, public datasets to test newly developed algorithms or systems, reusable code snippets, best industrial practices, database optimization solutions, solutions to security bugs, and solutions to software configuration bugs are the most difficult search tasks that developers consider. Our study sheds light as to why practitioners often perform some of these tasks and why they find some of them to be challenging. We also discuss the implications of our findings to future research in several research areas, e.g., code search engines, domain-specific search engines, and automated generation and refinement of search queries.  相似文献   

14.
Hop is a multi-tier programming language where the behavior of interacting servers and clients are expressed by a single program. Hop adheres to the standard web programming style where servers elaborate HTML pages containing JavaScript code. This JavaScript code responds locally to user’s interactions but also (following the so-called Ajax style) requests services from remote servers. These services bring back new HTML fragments containing additional JavaScript code replacing or modifying the state of the client. This paper presents a continuation-based denotational semantics for a sequential subset of Hop. Though restricted to a single server and a single client, this semantics takes into account the key feature of Hop namely that the server elaborates client code to be run in the client’s browser. This new client-code dynamically requests services from the server which, again, elaborate new client code to be run in the client’s browser. This semantics details the programming model advocated by Hop and provides a sound basis for future studies such as security of web applications and web continuations.  相似文献   

15.
提出一种表单Ajax信息项提取方法。该方法在独立于浏览器运行的程序中嵌入JavaScript引擎,本地化构建DOM对象和Ajax应用对象,利用JavaScript引擎跟踪执行脚本代码,模拟执行用户在浏览器下的操作,从而自动获取表单Ajax信息项数据。实验结果表明,该方法可以完整获取Deep Web查询接口的表单信息,提高搜索准确率。  相似文献   

16.
JavaScript emerges today as one of the most important programming languages for the development of client-side web applications. Therefore, it is essential that browsers be able to execute JavaScript programs efficiently. However, the dynamic nature of this programming language makes it very challenging to achieve this much needed efficiency. In this paper we propose parameter-based value specialization as a way to improve the quality of the code produced by JIT engines. We have empirically observed that almost 60% of the JavaScript functions found in the world's 100 most popular websites are called only once, or are called with the same parameters. Capitalizing on this observation, we adapt a number of classic compiler optimizations to specialize code based on the runtime values of function's actual parameters. We have implemented the techniques proposed in this paper in IonMonkey, an industrial quality JavaScript JIT compiler developed at the Mozilla Foundation. Our experiments, run across three popular JavaScript benchmarks, SunSpider, V8 and Kraken, show that, in spite of its highly speculative nature, our optimization pays for itself. As an example, we have been able to speed up V8 by 4.83%, and to reduce the size of its generated native code by 18.84%.  相似文献   

17.
基于预测的JavaScript类型系统研究   总被引:1,自引:0,他引:1  
随着互联网和万维网的流行以及JavaScript在Web浏览器中的作用越来越重要,对JavaScript程序的执行行为的研究将有利于提高浏览器的性能,改善用户的体验.传统的研究认为JavaScript语言的动态性是其性能的主要瓶颈,因此大部分主流的JavaScript执行引擎都将优化集中在其动态性的处理上.为了更深入的研究JavaScript程序的动态性,提出了两种算法:类型预测算法和基于位置的内联缓存算法,分别用于处理JavaScript程序中元数据和对象的类型.以这些算法为基础,在SunSpider测试程序集上系统地研究了JavaScript的类型系统.实验表明,算法平均能够正确识别或者预测99%的类型实例,因此可以认为,尽管JavaScript语言提供了丰富的动态性,实际的应用程序所使用到的动态行为是有限的.这是已知文献中首次提出类似的观点.  相似文献   

18.
模糊测试被广泛应用于浏览器的漏洞挖掘,其效果好坏的决定因素之一是测试者编写的测试模式.针对特定测试模式实现成本高、生存时间短等问题,本文提出了一种基于模式生成的浏览器模糊测试器自动构造方法,通过解析已知漏洞触发样本,自动提取测试模式,对模式中每个模块应用传统的变异策略,完成畸形样本的自动生成.实验表明,针对5款浏览器的1089个已知漏洞触发样本,平均仅用时11.168秒即可完成1089个不同模糊测试器的自动构建,远低于人为编写的时间消耗;随机选取其中10个模糊测试器分别对IE 10、IE 11、Firefox 54.0的全补丁版本进行测试,共产生57个不同的崩溃样本,发现1个高危未知漏洞,证明本方法具有较好的未知漏洞发现能力.  相似文献   

19.
程勇  秦丹  杨光 《计算机应用》2017,37(4):1143-1148
针对JavaScript浏览器兼容性问题缺乏有效的测试方法的问题,基于变异测试技术,对Web应用程序中的JavaScript语言在主流浏览器中的兼容性进行了分析,设计了18个针对浏览器兼容性错误的变异算子并开发了自动化的测试工具Compatibility Mutator。该程序使用抽象语法树(AST)分析JavaScript语法,使用Selenium WebDriver自动调用多个浏览器核心并行执行变异测试。通过对7个广泛使用的JavaScript框架的实验,验证了此方法对每一个框架都能够生成一定数量的变异体,其中对jQuery和YUI框架的变异测试的变异得分分别为43.06%和7.69%,表明了所设计的变异算子能够触发浏览器兼容性方面的错误,并且能够评估测试用例集的完备性。  相似文献   

20.
Metasearch engines offer better coverage and are more fault-tolerant and expandable than single search engines. A metasearch engine is required to post queries with and obtain retrieval results from several other Internet search engines. In this paper, we describe the use of the extensible style language (XSL) to support metasearches. We show how XSL can transform a query, expressed in XML, into different forms for different search engines. We show how the retrieval results could be transformed into a standard format so that the metasearch engine can interpret the retrieved data, filtering the irrelevant information (e.g. advertisement). The proposed structure treats the metasearch engine and the individual search engines as separate modules with a clearly defined communication structure through XSL. Thus, the system is more extensible than coding the structure and syntactic transformation processes. It allows other new search engines to be included just through plug-and-play, requiring only that the new transformation of XML for this search engine be included in the XSL.  相似文献   

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

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