ImageVerifierCode 换一换
格式:PDF , 页数:4 ,大小:6.66MB ,
资源ID:621554      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/621554.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于Dependency-Check的开源漏洞扫描系统设计与实现.pdf)为本站上传会员【自信****多点】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于Dependency-Check的开源漏洞扫描系统设计与实现.pdf

1、信息记录材料 2023 年 7 月 第 24 卷第 7 期基于 Dependency-Check 的开源漏洞扫描系统设计与实现刘宇博(湖南师范大学信息科学与工程学院 湖南 长沙 410081)【摘摘要要】随着科学技术的快速发展,互联网极大地改善了社会生活质量,越来越多的中小型互联网企业应运而生,但随之衍生的开源代码漏洞入侵问题也愈见增多。针对如何保障现代软件开发过程中,来自第三方的开源组件安全问题,介绍了开源漏洞以及漏洞检测的理论概念,分析了 Dependency-Check 漏洞扫描工具的组成成分及其代码结构,提出并实现了一个基于 Dependency-Check 的开源漏洞扫描系统。该系统

2、由漏洞数据库、扫描引擎、Web 页面三个部分组成。根据测试结果显示,该系统能够对第三方的开源组件进行全面有效的扫描,并生成最终的扫描报告。【关关键键词词】网网络络安安全全;开开源源漏漏洞洞;D De ep pe en nd de en nc cy y-C Ch he ec ck k 插插件件库库【中中图图分分类类号号】TP31 【文文献献标标识识码码】A 【文文章章编编号号】1009-5624(2023)07-0118-040 引言现代软件的开发 80%的代码都来自第三方资源库或组件,各种软件产品对第三方开源组件的依赖性很强。然而在程序开发设计阶段,开发者又经常忽略了开源代码的漏洞审查,从根本

3、上就缺乏了安全审计。如果某个资源库文件存在漏洞,那么大量使用了该库文件的软件程序都将面临安全威胁1。如 OpenSSL 出 现的心脏滴 血漏洞(Heartbleed)、Strusts2 出现的 Rce 漏洞和 Java 中的反序列化漏洞等,这些都是实际应用程序中,存在第三方资源库或应用框架漏洞的典型案例。这些开源代码很多都应用于信息系统的底层,且应用范围广泛,因此漏洞带来的安全危害非同一般。面对如此大规模的开源组件安全威胁,本文主要研究了基于 Dependency-Check 的开源组件漏洞检测技术,主要工作如下:(1)建立开源漏洞库。该漏洞库主要给扫描引擎提供漏洞特征。(2)分析 Depen

4、dency-Check 扫描组件,对漏洞进行特征匹配。对分析器扫描得到的源码、资源文件,通过与漏洞数据库的特征条目(如漏洞版本、通用名称 CVE、公告日期等)进行特征匹配,以此判断该开源组件是否存在安全隐患。(3)搭建 Web 界面。以 B/S(浏览器/客户端)的形式,将第三方组件以压缩包(rar/zip)的形式上传、检测和展示。1 开源漏洞及其相关知识1.1 漏洞及其成因漏洞,是指在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而使攻击者能够在未授权的情况下访问或破坏系统。即某个程序在设计时未考虑周全,当程序遇到一个看似合理,但实际无法处理的问题时,引发的不可预见的错误。一旦这些错

5、误被黑客或不法分子利用,就会造成不可挽回的损失。开源漏洞,即公开披露的、已知的漏洞。根据漏洞的危害程度可将漏洞等级分为 A、B、C 三个等级2。1.2 开源漏洞检测方法目前常用于开源漏洞的检测方法主要是通过安全扫描技术,检测组件中是否存在已公布的安全漏洞。安全扫描,也称为脆弱性评估,其基本原理是通过一系列文件分析器对文件进行扫描搜集信息,从而对检测目标可能存在的已知安全漏洞进行逐项检查。本文所设计的检测系统使用 Dependenncy-Check 中所包含的文件分析器来分析第三方组件中的组成成分,再采用特征匹配的方法,根据已知漏洞的特征定位到关键应用程序编程接口(application pro

6、gramming interface,API),并通过分析上下文环境来判断第三方组件中是否存在开源漏洞。2 系统设计本文系统采用 Dependency-Check 作为服务器程序,将Dependency-Check 二进制版本封装为 Web 接口。使用者只需登录浏览器网站便可以对第三方组件进行开源漏洞检测,并生成漏洞扫描报告。该漏洞扫描系统由以下几部分组成。2.1 漏洞数据库开源漏洞从公开披露到被纳入美国国家漏洞数据库(national vulnerability database,NVD)需要相当一段时间,这给使用开源软件相关组织带来极大的安全隐患。因此,一个专门针对开源漏洞的数据库是十分必

7、要的。针对开源漏洞的特点,开源漏洞数据库应具备以下几个特点:(1)更新及时,避免因漏洞纳入延迟而造成的危害。(2)提供精确的开源漏洞特征数据,提高漏洞扫描的准确率。(3)漏洞报告简单,减少收录发布漏洞时的工作量。本文设计的开源漏洞数据库主要依据中国国家信息安全 漏洞库(CNNVD),同 时参考 CNNVD 共享 平 台、WhiteSource 漏洞数据库(WSVD)等大型漏洞数据库,通过爬虫定期抓取 CNNVD、WSVD 的漏洞信息用于更新本地811信息记录材料 2023 年 7 月 第 24 卷第 7 期漏洞数据库。漏洞数据库包含扫描结果存储表和漏洞迹象表两部分。扫描结果存储表用于接收扫描引

8、擎返回的结果,便于结果的展示以及报告的生成。漏洞特征信息库用于存储漏洞特征信息,为漏洞扫描引擎模块提供必要的漏洞特征信息。2.2 扫描引擎扫描引擎模块通过文件分析器,分析组件成分生成分析结果,将分析结果与漏洞特征信息库中的数据作为输入数据,通过字符串搜索引擎进行特征匹配,进而完成第三方组件的开源漏洞检测,最后将扫描结果数据存储到扫描结果存储表中。2.2.1 扫描引擎设计与实现本文设计的扫描引擎模块基于 Dependency-Check 包含的文件分析器,对文件进行扫描搜集信息。我们将搜集到的信息称之为迹象;搜集了三种类型的迹象,分别是 vendor(供应商),product(产品)和 vers

9、ion(版本)。例如,jarAnalyzer 将从 jar 文件包中的 Mainfest、pom.xml 和包名进行信息搜集,并将从各个来源搜集到的信息放到一个或者多个漏洞迹象表中3。在漏洞迹象表中,每个漏洞都有一个 CVE 名称,每个 CVE 条目都有一个易受攻击的软件列表,这些易受攻击软件的 CPE(标准化名称 标 识)条 目 为“cpe:/Entry Type:Vendor:Product:Version:-Revision”。通过搜集到的迹象与迹象表中的 CPE 条目进行字符串匹配,如果匹配成功,分析器将会对相应的文件添加标识符并添加到扫描结果存储表中;一旦确认 CPE 条目后,关联的

10、 CVE 条目也将添加到扫描结果存储表中,并输出 XML 格式的分析报告,如图 1 所示。图 1 漏洞的 CVE 条目 2.2.2 文件分析器文件分析,是指对计算机外部存储设备中的某项调查活动形成的数据和程序运用电子计算机技术进行研究考察,以达到认识调查材料本质的目的。作为一个开发人员,查看文件的编码、开发工具以及类型是必不可少的;作为一个普通用户,了解未知的文件类型以及真实扩展名能间接地防止病毒的入侵和认识文件的用途4-5。本系统扫描引擎模块的核心在于文件分析器对文件的组成成分分析,从文件中提取关键的标识信息。本系统中的文件分析器及其扫描文件类型与分析方法如表 1 所示。表 1 文件分析器及

11、其扫描文件类型与分析方法分析器扫描的文件类型分析方法Archive压缩文件格式(.zip,.ear,.war,.jar,.sar,.apk);磁带存档格式(.tar);Gzip 格式(.gz,.tgz);Bzip2 格式(.bz2,.tbz2);RPM 格式(.rpm)提取压缩文件内容,使用所有可用的分析器扫描内容Assembly.NET 程序集(.exe,.dll)使用 GrokAssembly.exe,JarJava 存档文件(.jar);Web 应用程序归档文件(.war)检查档案RetireJSJavaScript 文件使用 RetireJS 数据库分析 JavaScript 文件No

12、de.JSNPM 软件包规范文件(package.json)解析 package.json 以收集 Node JS 项目的清单Node Audit使用 Node Audit 接口报告已知的易受到攻击的 Node.JS 库;需要互联网连接NugetconfNuget packages.config 文件使用 Xpath 解析规范 XMLNuspecNuget 软件包规范文件(.nuspec)使用 Xpath 解析规范 XM。OpenSSLOpenSSL 版本源头文件(opensslv.h)OPENSSL_VERSION_NUMBER 宏定义的正则表达式解析OSS Index使用 OSS Inde

13、x 接口报告 NVD 中未发现的漏洞;需要互联网连接RubyBundler-auditRuby Gemfile.lock 文件执行捆绑包审核并将结果合并到漏洞检测报告中 2.3 Web 页面 Web 页面设计的目的在于为用户提供可视化界面的操作接口,简化操作流程。其主要页面包括登录页面、文件上传页面、扫描结果页面等,如图 2 所示。911信息记录材料 2023 年 7 月 第 24 卷第 7 期图 2 Web 界面工作流程2.3.1 工作流程系统的整体工作流程如下:Step1:用户登录或注册账号;Step2:用户在 web 客户端发起扫描漏洞任务操作;Step3:服务器端接收 socket 传

14、递过来的任务 id 后,将用户上传的扫描信息存储至本地漏洞库;Step4:控制 dependecy-check 后台,创建扫描任务;Step5:dependency-check 对扫描目标进行扫描任务并将结果返回至控制后台;Step6:控制后台对扫描结果进行 xml 解析工作,并将解析后的内容存储至数据库中;Step7:用户从数据库中取出扫描结果报告。3 实验测试3.1 漏洞匹配的数据来源开源软件漏洞检测方法需要基于一定的漏洞集合,因此需要构建开源软件漏洞库。本文设计的开源软件漏洞库主要依据 CNNVD,通过爬虫定期抓取 CNNVD 的漏洞信息用于更新漏洞数据库。根据爬虫获取到的目标信息与开源

15、软件漏洞库进行特征比对、分析,我们将漏洞库大体分为输入验证、缓冲区溢出、API 误用、内存管理和信息泄露这 5 大类漏洞问题。本文采用的 7 大类漏洞问题的部分关键点如表 2 所示。表 2 漏洞问题及其对应关键函数漏洞问题对应关键函数输入验证insect,create,select,alter,update,exec,order,cookie,subject,system,command,open,close缓冲区溢出strcpy,strlen,strcat,strchr,scanf,sprintf,strerror,strcoll,sbumpc,strcnpy,cin,gets,fgets,

16、getchat,getc,getpass,malloc,istream,API 误用cin,gets,fgets,getchat,getc,getpass,memcpy,malloc,getParameter,equals,getProperty,read内存管理malloc,calloc,realloc,alloca,free,new,delete,memcpy,memmove,memcmp,memchr信息泄露malloc,calloc,realloc,alloca,memcpy3.2 测试结果展示首次使用 dependency-check 时会自动去 NVD 同步他的漏洞库,同步完成后

17、dependency-check 会对数据包进行扫描并与数据库中的漏洞进行匹配,最终生成该数据库的漏洞报告,如图 3 所示。图 3 iot-dc3-master 漏洞报告 该漏洞报告会指出包括依赖检查版本、报告生成时间、扫描的依赖项、易受攻击的依赖项以及最重要的发现的漏洞的数量多少。此时显示已发现的漏洞有四处并说明该漏洞的危害如何,如图 4 所示。4 结语针对广泛存在的开源漏洞问题,本文设计并实现了基于 Dependency-Check 的漏洞开源扫描系统,系统由漏洞数据库、扫描引擎、Web 页面三个部分组成,漏洞库主要给扫描引擎提供漏洞特征,扫描引擎完成信息提取、特征匹配、021信息记录材料

18、 2023 年 7 月 第 24 卷第 7 期图 4 iot-dc3-master 漏洞展示漏洞扫描等操作,Web 页面则优化丰富了用户的操作体验,提供可视化操作接口和详细的分析报告。通过实验测试得出的结束,该系统能够满足用户的需求,该系统的建立与测试得到国家级大学生创新创业训练项目支持,在实际应用场景中具备一定的可行性。【参考文献】1 王景中,王雷硕.基于 Nessus 的漏洞扫描系统设计与实现J.网络安全技术与应用,2012(11):21-23.2 贾培养,孙鸿宇,曹婉莹,等.开源软件漏洞库综述J.信息安全研究,2021,7(6):566-574.3 吴丹,刘嘉勇,贾鹏,等.基于特征匹配的 Android App 漏洞检测系统设计与实现J.网络安全技术与应用,2017(1):93-95.4 王博瑞.分布式漏洞扫描系统的设计与实现D.西安:西安电子科技大学,2015.5 赵书博.基于 OpenVAS 的漏洞扫描系统设计与实现 D.济南:济南大学,2016.基金项目:国家级大学生创新创业训练计划支持项目:基于Dependency-Check 的 开 源 漏 洞 扫 描 系 统 设 计 与 实 现(S20210542030)。作者简介:刘宇博(2001),男,内蒙古呼和浩特,本科,研究方向:计算机软件 Web 网页开发。121

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服