首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到17条相似文献,搜索用时 187 毫秒
1.
开源代码托管平台为软件开发行业带来了活力和机遇,但存在诸多安全隐患。开源代码的不规范性、项目依赖库的复杂性、漏洞披露平台收集漏洞的被动性等问题都影响着开源项目及引入开源组件的闭源项目的安全,大部分漏洞修复行为无法及时被察觉和识别,进而将各类项目的安全风险直接暴露给攻击者。为了全面且及时地发现开源项目中的漏洞修复行为,设计并实现了基于项目版本差异性的漏洞识别系统—VpatchFinder。系统自动获取开源项目中的更新代码及内容数据,对更新前后代码和文本描述信息进行提取分析。提出了基于安全行为与代码特征的差异性特征,提取了包括项目注释信息特征组、页面统计特征组、代码统计特征组以及漏洞类型特征组的共40个特征构建特征集,采用随机森林算法来训练可识别漏洞的分类器。通过真实漏洞数据进行测试,VpatchFinder的精确率为84.35%,准确率为85.46%,召回率为85.09%,优于其他常见的机器学习算法模型。进一步通过整理的历年部分开源软件CVE漏洞数据进行实验,其结果表明68.07%的软件漏洞能够提前被VpatchFinder发现。该研究结果可以为软件安全架构设计、开发及成分分析等领域提供...  相似文献   

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

3.
软件在国民经济的各个领域占据越来越重要的地位.万物互联的大背景下,信息之间的交互、分析、协同变得越来越普遍,程序/软件之间的依赖关系逐渐增多,这使得人们对系统可靠性和健壮性提出了更高的要求.由开源组件和第三方组件构成的软件供应链,其所面临的安全问题近年来成为了学术界和工业界共同关注的焦点.库函数作为开源软件的重要组成部分,与软件供应链安全有着密切的联系.为了提高软件开发效率,软件库或应用程序编程接口(API)在程序编写过程中会被频繁使用,但库函数中存在的错误或漏洞可能会被攻击者利用,从而损害软件供应链安全.这些错误或漏洞往往与库函数中存在的异常有关,因此本文对适用于库函数的异常分析方法从精度和效率两方面分别进行总结归纳,对于每种异常分析方法的基本思想和重要过程进行阐述,并针对库函数异常分析面临的挑战给出了初步解决思路.对软件供应链中的库函数进行异常分析有助于增强软件系统的健壮性,进而保障软件供应链的安全.  相似文献   

4.
<正>从2020年12月的太阳风Solar Winds供应链攻击,到2021年11月苹果、推特和亚马逊遭受到开源日志组件Log4j内重大漏洞引发的供应链攻击,一系列供应链安全事件的发生,使全球化信息化趋势下的供应链安全问题日益引发各国关注。为提高我国党政机关、关键信息基础设施(Critical Information Infrastructure,简称CII)运营者采购使用云计算服务的安全可控水平,国家互联网信息办公室等四部委于2019年7月2日发布了《云计算服务安全评估办法》。  相似文献   

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

6.
张宇霞 《计算机科学》2017,44(4):21-23, 55
软件可追踪性为软件工程的很多活动提供了非常重要的支持,如变更影响分析、回归测试、版本控制以及一致性检验等。在开源软件项目中,缺陷数据和版本数据之间的缺陷修复关联是一种重要的软件追踪关系。研究开源软件项目缺陷和版本两种制品间的缺陷修复关联,选取大型开源项目Mozilla作为研究对象,在深入了解所获得数据的整体分布情况后,针对Mozilla项目的产品Firefox浏览器,利用Fellegi-Sunter模型挖掘缺陷数据与commit数据之间的缺陷修复关联并建立二者之间的追踪关系,最后对挖掘出的缺陷修复追踪关系进行结果分析。该项工作为开源项目制品间追踪关系的研究提供了经验参考。  相似文献   

7.
唐艳武  蒋凡 《计算机工程》2010,36(17):51-53,56
针对自动提取软件漏洞模式方法对漏洞模式的描述不太精确的问题,提出利用软件的程序依赖图表示上下文相关的软件漏洞模式。通过从软件开发历史库中提取相邻版本进行自动比对,生成与修补对应的依赖子图表示漏洞模式。对开源软件Apache代码库进行实验,获得316个有效漏洞模式,利用它们在Apache2.2.8中查找并进行人工分析,确认得到13处未知可疑漏洞,证明了该方法的有效性。  相似文献   

8.
由于软件代码复用和第三方SDK的广泛使用,开源组件普遍存在于物联网设备固件中.威胁固件的安全漏洞往往存在于组件的某些特定版本中,识别物联网设备固件中开源二进制组件的版本信息,对于物联网的安全评估与应急响应意义重大.现有的基于版本字符串的版本信息提取方法不适用于组件版本字符串缺失的情况.设计和实现了一种不依赖于版本字符串的开源组件版本识别方法Protues.该方法的核心思想是通过开源组件相邻版本源码间的差异构造一条版本差异链,从而将版本识别问题转化为待查组件在版本差异链上的滑动查询问题.进一步地,为了提高识别准确率,采用条件判断表达式来表征版本差异链上的节点.为了验证该方法的实用性,对来自于4种开源组件Samba,Msmtp,Nginx和Libgcrypt的共428个二进制文件进行了版本识别实验,实验结果表明,该方法能够准确识别的版本数达到418个,识别准确率约为98%.  相似文献   

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

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

11.
Web applications are widely adopted and their correct functioning is mission critical for many businesses. At the same time, Web applications tend to be error prone and implementation vulnerabilities are readily and commonly exploited by attackers. The design of countermeasures that detect or prevent such vulnerabilities or protect against their exploitation is an important research challenge for the fields of software engineering and security engineering. In this paper, we focus on one specific type of implementation vulnerability, namely, broken dependencies on session data. This vulnerability can lead to a variety of erroneous behavior at runtime and can easily be triggered by a malicious user by applying attack techniques such as forceful browsing. This paper shows how to guarantee the absence of runtime errors due to broken dependencies on session data in Web applications. The proposed solution combines development-time program annotation, static verification, and runtime checking to provably protect against broken data dependencies. We have developed a prototype implementation of our approach, building on the JML annotation language and the existing static verification tool ESC/Java2, and we successfully applied our approach to a representative J2EE-based e-commerce application. We show that the annotation overhead is very small, that the performance of the fully automatic static verification is acceptable, and that the performance overhead of the runtime checking is limited.  相似文献   

12.
软件脆弱性是系统安全受到各种威胁的根本原因。从软件脆弱性的本质出发,对脆弱性进行研究是一个新课题。本文分析了各种软件脆弱性的定义,并基于脆弱性引入原因、所在部件、产生的影响、修复、验证、检测和攻击等关键属性,提出了对软件脆弱性的多维描述方法。  相似文献   

13.
ContextPassive testing is a technique in which traces collected from the execution of a system under test are examined for evidence of flaws in the system.ObjectiveIn this paper we present a method for detecting the presence of security vulnerabilities by detecting evidence of their causes in execution traces. This is a new approach to security vulnerability detection.MethodOur method uses formal models of vulnerability causes, known as security goal models and vulnerability detection conditions (VDCs). The former are used to identify the causes of vulnerabilities and model their dependencies, and the latter to give a formal interpretation that is suitable for vulnerability detection using passive testing techniques. We have implemented modeling tools for security goal models and vulnerability detection conditions, as well as TestInv-Code, a tool that checks execution traces of compiled programs for evidence of VDCs.ResultsWe present the full definitions of security goal models and vulnerability detection conditions, as well as structured methods for creating both. We describe the design and implementation of TestInv-Code. Finally we show results obtained from running TestInv-Code to detect typical vulnerabilities in several open source projects. By testing versions with known vulnerabilities, we can quantify the effectiveness of the approach.ConclusionAlthough the current implementation has some limitations, passive testing for vulnerability detection works well, and using models as the basis for testing ensures that users of the testing tool can easily extend it to handle new vulnerabilities.  相似文献   

14.
Input validation vulnerabilities are common in Android apps, especially in inter-component communications. Malicious attacks can exploit this kind of vulnerability to bypass Android security mechanism and compromise the integrity, confidentiality and availability of Android devices. However, so far there is not a sound approach at the source code level for app developers aiming to detect input validation vulnerabilities in Android apps. In this paper, we propose a novel approach for detecting input validation flaws in Android apps and we implement a prototype named EasyIVD, which provides practical static analysis of Java source code. EasyIVD leverages backward program slicing to extract transaction and constraint slices from Java source code. Then EasyIVD validates these slices with predefined security rules to detect vulnerabilities in a known pattern. To detect vulnerabilities in an unknown pattern, EasyIVD extracts implicit security specifications as frequent patterns from the duplicated slices and verifies them. Then EasyIVD semi-automatically confirms the suspicious rule violations and reports the confirmed ones as vulnerabilities. We evaluate EasyIVD on four versions of original Android apps spanning from version 2.2 to 5.0. It detects 58 vulnerabilities including confused deputy attacks and denial of service attacks. Our results prove that EasyIVD can provide a practical defensive solution for app developers.  相似文献   

15.
一种采用接口错误注入的构件安全性测试方法   总被引:3,自引:0,他引:3  
构件特别是第三方构件的安全性是影响构件技术发展的重要因素.当前甚少将构件安全性问题作为一个专门的课题来研究,也没有确实可行的方法和技术用来检测构件安全漏洞.构件的安全性问题仍然没有得到较好的解决.提出一种基于接口错误注入的构件安全性测试方法.方法首先给出构件脆弱性错误注入算子、断言规则库及其脆弱因子,然后基于错误注入算子和断言规则库给出一种构件安全测试算法.算法根据错误注入算子有针对性地产生测试用例并执行测试,动态监测机制能实时监测构件运行状态及异常信息.算法根据断言规则库、脆弱性因子及异常信息给出构件安全异常报告及构件安全等级.最后在一集成测试平台中实现了该方法,同时做了大量实验,并和FUZZ法进行了对比分析.实验结果表明所提出的测试方法可操作性强,且对构件脆弱性具有较好的检测效果.  相似文献   

16.
17.
软件脆弱性是威胁系统安全的根本原因,当软件脆弱性被利用时,会造成各种危害系统安全的影响。本文说明了软件脆弱性的本质,分析了与脆弱性造成影响相关的典型软件脆弱性分类性,提出了基于脆弱性造成的直接和间接影响、受脆弱性影响的对象、实施影响的方法等方面的脆弱性影响模式框架。  相似文献   

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

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