首页 | 官方网站   微博 | 高级检索  
相似文献
 共查询到16条相似文献,搜索用时 218 毫秒
1.
毛天宇  王星宇  常瑞  申文博  任奎 《软件学报》2023,34(6):2628-2640
随着开源软件技术的不断发展,为提高开发效率并降低人力成本,组件化开发模式逐渐得到行业的认可,开发人员可以利用相关工具便捷地使用第三方组件,也可将自己开发的组件贡献给开发社区,从而形成了软件供应链.然而,这种开发模式必然会导致高危漏洞随组件之间的依赖链条扩散到其他组件或项目,从而造成漏洞影响的扩大化,例如2021年底披露的Log4j2漏洞,通过软件供应链对Java生态安全造成了巨大影响.当前针对Java语言软件供应链安全的分析与研究大多是对组件或项目进行抽样调研,这忽略了组件或项目对整个开源生态的影响,无法精准衡量其对生态所产生的影响.为此,本文针对Java语言生态软件供应链安全分析技术展开研究,首次给出了软件供应链安全领域的组件依赖关系和影响力等重要指标的形式化定义,并依据此提出了基于索引文件的增量式组件配置收集和基于POM语义的多核并行依赖解析,设计实现了Java开源生态组件依赖关系提取与解析框架,收集并提取超过880万个组件版本和6500万条依赖关系.在此基础上,本文以受到漏洞影响的日志库Log4j2为例,全面评估其对生态的影响以及修复比例,结果表明该漏洞影响了生态15.12%的组件(71082个)以及16.87%的组件版本(1488971个)同时仅有29.13%的组件在最新版本中进行了修复.  相似文献   

2.
当前,开源已经成为软件开发的重要模式之一。由于开源开发模式具有代码来源多样、依赖关系复杂等特点,使得开源软件面临代码漏洞风险、供应链攻击风险、知识产权风险、可持续维护风险等供应链安全问题,且问题呈现出快速增长态势。本文基于对开源软件供应链中的安全风险分析,提出从开源软件安全漏洞检测、软件成分分析、许可证冲突检测、开源生态可持续治理四个方面进行安全治理的方法,指出构建安全软件供应链面临依赖关系复杂、结构脆弱等挑战,对软件成分分析、供应链构建等未来研究方向进行了展望。  相似文献   

3.
随着软件供应链污染的兴起,Java开源组件的安全性正面临着越来越严峻的挑战,近年来也出现了若干起因Java开源组件被植入后门而导致大规模的软件污染的安全事件。为了更好地检测Java开源组件和Java程序的安全性,本文在大量分析Java后门样本的基础上,构建了Java后门的检测模型作为理论基础;在统计分析实际后门常用Java API的基础上,归纳了一系列适用于检测Java后门的规则;提出了基于功能代码片段的后门分析方法,并且结合自底向上的数据流分析方法,实现了首款面向Java源码的后门检测系统JCAT(Java Code Analysis Tool)。以阿里供应链大赛提供的119个样本验证JCAT的检测能力,取得了准确率90.22%的良好效果,并将漏报率和误报率分别控制在较低水平。  相似文献   

4.
随着近年来开源软件的蓬勃发展,现代化软件的开发和供应模式极大地促进了开源软件自身的快速迭代和演进,也提高了社会效益.新兴的开源协作的软件开发模式,使得软件开发供应流程由较为单一的线条转变为复杂的网络形态.在盘根错节的开源软件供应关系中,总体安全风险趋势显著上升,日益受到学术界和产业界的重视.针对开源软件供应链,厘清了其关键环节,基于近10年的攻击事件,归纳了开源软件供应链的威胁模型和安全趋势,并通过对现有安全研究成果的调研分析,从风险识别和加固防御这两个方面总结了开源软件供应链安全的研究现状,最后对开源软件供应链安全所面临的挑战和未来研究方向进行了展望和总结.  相似文献   

5.
随着软件漏洞的危害性不断增强,软件漏洞分析已经成为了国内外安全研究的热点。已有的工作大致可以分为静态分析和动态分析两类。本文在开源的软件漏洞静态分析工具Bugscam的基础上,提出了一种建立漏洞模型,映射漏洞模型为分析程序,并进行漏洞分析的思路。对于大量的软件漏洞,我们提出,将其分为函数漏洞和逻辑漏洞两类,并分别探讨了两种模型与程序之间的对应关系。最后,对我们编写的一个改进的自动化漏洞分析工具clearBug进行了介绍,并用实验验证了模型与程序的正确性和有效性。  相似文献   

6.
开源代码托管平台为软件开发行业带来了活力和机遇,但存在诸多安全隐患.开源代码的不规范性、项目依赖库的复杂性、漏洞披露平台收集漏洞的被动性等问题都影响着开源项目及引入开源组件的闭源项目的 安全,大部分漏洞修复行为无法及时被察觉和识别,进而将各类项目的 安全风险直接暴露给攻击者.为了全面且及时地发现开源项目中的漏洞修复行为...  相似文献   

7.
基于库函数动态跟踪的Fuzzing测试方法   总被引:1,自引:0,他引:1       下载免费PDF全文
黄奕  曾凡平  曹青 《计算机工程》2010,36(16):39-41
在分析库函数安全性的基础上,提出基于库函数动态跟踪的Fuzzing测试方法,通过动态跟踪目标程序对不安全库函数的调用,并在输入数据中搜索匹配函数调用参数,以此来准确定位错误注入点。设计并实现了基于该方法的测试工具,经过对漏洞软件测试的对比实验,验证了该方法的有效性和高效性。  相似文献   

8.
异常处理机制能增强程序运行的可靠性,提高软件的健壮性.然而,如果异常处理机制使用不当,会带来许多潜在的错误,因而很有必要对程序的异常处理结构进行测试.提出了一种识别被测程序中的所有异常变量"定义-使用"关系的方法,并使用一个异常的定义-捕获度量来计算异常定义-使用链的测试覆盖.最后设计了一种异常分析及测试的原型工具.  相似文献   

9.
随着现代软件规模不断扩大,软件漏洞给计算机系统和软件的安全运行、可靠性造成了极大的威胁,进而给人们的生产生活造成巨大的损失.近年来,随着开源软件的广泛使用,其安全问题受到广泛关注.漏洞感知技术可以有效地帮助开源软件用户在漏洞纰漏之前提前感知到漏洞的存在,从而进行有效防御.与传统软件的漏洞检测不同,开源漏洞的透明性和协同性给开源软件的漏洞感知带来巨大的挑战.因此,有许多学者和从业人员提出多种技术,从代码和开源社区中感知开源软件中潜在的漏洞和风险,以尽早发现开源软件中的漏洞从而降低漏洞所带来的损失.为了促进开源软件漏洞感知技术的发展,对已有研究成果进行系统的梳理、总结和点评.选取45篇开源漏洞感知技术的高水平论文,将其分为3大类:基于代码的漏洞感知技术、基于开源社区讨论的漏洞感知技术和基于软件补丁的漏洞感知技术,并对其进行系统地梳理、归纳和总结.值得注意的是,根据近几年最新研究的总结,首次提出基于开源软件漏洞生命周期的感知技术分类,对已有的漏洞感知技术分类进行补充和完善.最后,探索该领域的挑战,并对未来研究的方向进行展望.  相似文献   

10.
高恺  何昊  谢冰  周明辉 《软件学报》2024,35(2):581-603
开源软件已经成为现代社会的一项关键基础设施,支撑着几乎所有领域的软件开发.通过安装依赖、API调用、项目fork、文件拷贝和代码克隆等形式的代码复用,开源软件之间形成了错综复杂的供应(依赖)关系网络,被称为开源软件供应链.一方面,开源软件供应链为软件开发提供了便利,已然成为软件行业的基石.另一方面,上游软件的风险可以沿着开源软件供应链波及众多的下游软件,使开源软件供应链呈现牵一发而动全身的特点.开源软件供应链近年来逐渐成为学术界和工业界的关注焦点.为了帮助增进研究人员对开源软件供应链的认识,从整体性的角度,对开源软件供应链给出定义和研究框架;然后,对国内外的研究工作进行系统文献调研,总结结构与演化、风险传播与管理、依赖管理3个方面的研究现状;最后,展望开源软件供应链的研究挑战和未来研究方向.  相似文献   

11.
近年来,随着代码复用技术不断成熟和Internet上开源项目不断丰富,软件开发人员的开发行为也逐渐发生了变化。如今,软件开发人员在编程过程中越来越多地依赖于开源软件项目提供的功能。然而,在软件复用活动中,由于开源项目文档的不全面以及代码结构的复杂性,软件开发人员往往只能片面地了解项目的某些功能点,使得复用效率不高。针对开源项目代码丰富而文档较少这一现状,提出了一种基于LDA(Latent Dirichlet Allocation)和静态分析的代码功能识别方法,对传统LDA方法进行了扩展,帮助软件开发人员更全面地了解项目的功能点,从而更好地支持代码复用活动。  相似文献   

12.
许瑾晨  郭绍忠  黄永忠  王磊  周蓓 《软件学报》2015,26(12):3088-3103
异常会造成程序错误,实现完全没有异常的浮点计算软件也很艰难,因此,实现有效的异常处理方法很重要.但现有的异常处理并不针对浮点运算,并且研究重点都集中在整数溢出错误上,而浮点类型运算降低了整数溢出存在的可能.针对上述现象,面向基于汇编实现的数学函数,提出了一种针对浮点运算的分段式异常处理方法.通过将异常类型映射为64位浮点数,以核心运算为中心,将异常处理过程分为3个阶段:输入参数检测(处理INV异常)、特定代码检测(处理DZE异常和INF异常)以及输出结果检测(处理FPF异常和DNO异常),并从数学运算的角度对该方法采用分段式处理的原因进行了证明.实验将该方法应用于Mlib浮点函数库,对库中600多个面向不同平台的浮点函数进行了测试.测试结果表明:该方法能够将出现浮点异常即中断的函数个数从90%降到0%.同时,实验结果验证了该方法的高效性.  相似文献   

13.
A Foreign Function Interface (FFI) allows one host programming language to interoperate with another foreign language. It enables efficient software development by permitting developers to assemble components in different languages. One typical FFI is the Java Native Interface (JNI), through which Java programs can invoke native-code components developed in C, C++, or assembly code. Although FFIs bring convenience to software development, interface code developed in FFIs is often error prone because of the lack of safety and security enforcement. This paper introduces a static-analysis framework, TurboJet, which finds exception-related bugs in JNI applications. It finds bugs of inconsistent exception declarations and bugs of mishandling JNI exceptions. TurboJet is carefully engineered to achieve both high efficiency and accuracy. We have applied TurboJet on a set of benchmark programs and identified many errors. We have also implemented a practical Eclipse plug-in based on TurboJet that can be used by JNI programmers to find errors in their code.  相似文献   

14.
随着信息技术产业的发展和软件开发需求的扩展,软件开发的难度与复杂度不断上升,针对软件供应链的重大安全事件时有发生。这些事件展现了软件供应链攻击低成本而高效的特点以及软件供应链管理的复杂性,使得软件供应链的安全问题受到了广泛的关注,相关领域的研究工作也进入了起步阶段。本文从软件供应链安全的定义以及发展历程入手,介绍了软件供应链安全问题的相关背景,并通过对现有研究成果的调研分析,将软件供应链安全问题分为管理问题和技术问题两个方面,从这两个方面入手介绍了软件供应链安全的研究现状,然后结合研究现状总结了软件供应链安全所面临的现实挑战,并提出了未来可能的研究方向。  相似文献   

15.
Software reliability is one of the research hotspots in the field of software engineering, and failure rate analysis is a typical research method for software reliability. However, the software construction mode has evolved from a single mode to a large-scale collaborative model represented by open source software. As one of the representative products, the operating system includes open source software connected through combinations and dependencies to form a supply network of tens of thousands of nodes. Typical methods lack consideration of supply relationships and cannot accurately identify and evaluate the software reliability issues introduced as a result. This paper extends the concept of supply chain to the field of open source software and proposes a knowledge-based management method for software supply reliability in a collaborative model. The ontological body is designed for the open source software ecosystem firstly, and then the nowledge graph of open source software is constructed to achieve the extraction, storage and management of knowledge; driven by knowledge, combined with traditional supply chain management methods, a set of reliability management methods for open source software supply chain is proposed, which constitutes a management system of open source software supply chain. With the construction of a Linux operating system distribution as an example, the experiment demonstrates how the open source software supply chain supports the reliability of the operating system. Results show that the open source software supply chain will help to clarify and evaluate the reliability risk of large complex system software.  相似文献   

16.
梁冠宇  武延军  吴敬征  赵琛 《软件学报》2020,31(10):3056-3073
软件可靠性是软件工程领域中的研究热点之一,故障率分析是软件可靠性的典型研究方法.然而,软件构建模式已从单体模式演进到以开源软件为代表的规模化协作模式,操作系统作为代表性产物之一,所含开源软件之间通过组合关系和依赖关系,形成了一个包含上万节点的供应关系网络.典型方法缺乏对供应关系的考量,无法准确识别和评估因此而引入的软件可靠性问题.把供应链概念体系拓展到开源软件领域,提出一种基于知识的面向开源协作模式下软件供应可靠性的管理方法:面向开源软件生态进行本体设计,构建开源软件知识图谱,实现知识的提取、存储和管理,以知识为驱动,结合传统的供应链管理方法,提出一组面向开源软件供应链的可靠性管理方法,构成一套开源软件供应链管理系统.实验以Linux操作系统发行版的构建为例,展示了开源软件供应链对操作系统可靠性的支撑能力.结果表明,开源软件供应链将有助于理清和评估大型复杂系统软件的可靠性风险.  相似文献   

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

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

京公网安备 11010802026262号