登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于负选择算法的固件漏洞关联检测毕业论文

 2020-02-23 18:22:56  

摘 要

随着互联网与移动互联网的大规模普及,当前信息安全面临越来越严峻的挑战。智能硬件终端在生活中有着广泛的使用,对终端进行操作的固件的使用范围也越来越广。为了提高硬件固件漏洞检测程序的效率和准确性,利用已知的固件漏洞库,结合负选择算法的相关知识,开发出一套基于负选择算法的固件漏洞检测程序。为了方便使用,开发出一套结合了固件漏洞检测程序的可视化固件漏洞管理程软件,实现对用户和漏洞的管理。在利用负选择算法的过程中,对负选择进行了逆用和优化,对传统的负选择算法进行了改进,将传统的检测样本中的正常数据的模式逆用为检测样本之外的异常数据的模式,使之不仅能对正常数据进行检测和识别,也能对异常数据进行检测。通过对漏洞检测程序的调优,最终对一个特定的溢出错误达到了80%以上的检测准确率,检测准确率和检测效率有了较大的提升。通过对可视化管理软件的不断优化,能方便的对用户和检测出的固件漏洞进行管理。

关键词:负选择算法;固件漏洞检测;漏洞管理;可视化管理界面

Abstract

With the popularity of the Internet and mobile Internet, information security is facing more and more severe challenges. Intelligent hardware terminals are widely used in daily life. In order to improve the efficiency and accuracy of the hardware firmware vulnerability detection program, a firmware vulnerability detection program based on the negative selection algorithm is developed by using the known firmware vulnerability library and the knowledge of the negative selection algorithm. In order to facilitate the application, a set of visual firmware vulnerability management software is developed, which combines the firmware vulnerability detection program, and realizes the management of users and vulnerabilities. In the process of using negative selection algorithm, the negative selection algorithm is used and optimized, reverse the traditional pattern of detecting normal data in a sample to a pattern of detecting abnormal data outside the sample, and the traditional negative selection algorithm is improved to detect and recognize not only normal data, but also abnormal data. Through the optimization of the vulnerability detection program, the detection accuracy of a specific overflow error is more than 80%, and the detection accuracy and detection efficiency have been greatly improved. Through the continuous optimization of the visual management software, the user and the detected firmware can be managed conveniently.

Key Words:negative selection algorithm; firmware vulnerability detection; vulnerability management; visual management interface

目 录

第1章 绪论 1

1.1 研究背景及意义 1

1.1.1 固件漏洞的概念 1

1.1.2 固件漏洞的危害 1

1.1.3 研究固件漏洞的原因、意义及难点 2

1.2 国内外研究现状 2

1.3 研究问题及主要工作 2

1.4 论文的主要贡献 3

第2章 负选择算法介绍 4

2.1 基本概念 4

2.1.1 基本原理 4

2.1.2 实现机制 5

2.2 使用方法 5

2.2.1 负选择算法实现框架 5

2.2.2 与固件漏洞检测方法相结合 6

2.3 本章小结 8

第3章 固件漏洞介绍 9

3.1 基本概念 9

3.1.1 固件漏洞概念 9

3.1.2 固件漏洞危害 9

3.2 固件漏洞特征化 9

3.2.1 固件漏洞特征化方法 9

3.2.2 固件漏洞特征化参数 10

3.2.3 本章小结 10

第4章 实验和结果分析 11

4.1 实验思路 11

4.2 实验步骤 11

4.2.1 漏洞数据查找与预处理 11

4.2.2 负选择算法应用与检测器生成 12

4.3 实验结果分析 12

4.3.1评估指标 12

4.3.2 实验环境 12

4.3.3 实验数据采集 12

第5章 可视化管理界面分析 14

5.1 可视化界面需求分析 14

5.2 技术选择 25

5.3 MVC设计模式 25

5.4 设计难点分析与解决方案 26

第6章 结论 27

6.1实验结果与分析 27

6.2 设计不足与改进 28

第1章 绪论

本章主要介绍本研究的背景,包括固件漏洞的概念、固件漏洞的危害、固件漏洞的研究原因、国内外研究现状、本论文的主要研究工作、本论文研究相较于之前研究的贡献等内容。本章主要介绍研究的相关理念以及本文的组织情况,通过阅读本章,读者可以了解当前固件漏洞研究与检测工作的现状,对本文有一个较为全面的认识。

1.1 研究背景及意义

本节主要介绍固件漏洞的相关概念和危害,来说明本文研究的重要性以及需要解决的难点。

1.1.1 固件漏洞的概念

所谓固件,是指固化在硬件中的程序。在用于特定目的的硬件中常用到固件来实现硬件的相关功能,例如个人计算机主板中的CMOS芯片中固化了计算机启动时的引导程序、家用路由器中固化了路由器的网络相关功能固件、个人穿戴式智能设备固化了设备工作时需要用到的功能固件等。固件常用于嵌入式设备的功能化应用,使用非常广泛[1]

同其他软件一样,固件中通常也不可避免的存在一些漏洞。在正常使用时,因为厂家在出厂时已经对产品及固件进行了检测,固件漏洞很少影响到硬件的工作。但如果将固件漏洞暴露在外并长期得不到维护和更新,则加大了黑客对固件漏洞进行利用并通过固件漏洞窃取用户信息、控制用户终端的可能性,使用户暴露在不安全的状态下[1][2]

1.1.2 固件漏洞的危害

固件中出厂时就已经存在的漏洞一般被称为零日漏洞,意指并不是随着软件运行积累出来的而是本身就已经存在的漏洞。零日漏洞如果得不到更新和维护易导致固件崩溃,黑客也会利用零日漏洞入侵系统,获取应用数据,夺取设备的控制权限,从而达到侵犯用户隐私、使设备不能正常工作的目的。因此,固件漏洞对于设备的使用存在极大威胁。

1.1.3 研究固件漏洞的原因、意义及难点

随着物联网设备的普及和物联网技术的成熟,智能设备在日常生活中得到了越来越广泛的使用。手机、打印机、家用路由器、智能摄像头、网络摄像机、PLC都是常见的智能终端联网设备,它们的出现极大地方便了人们的生活。但网络和设备本身具有的安全问题也随着智能设备的普及日益突出。智能终端联网设备更多的是采用嵌入式固件系统,系统和设备本身在开发过程中存在着研产分离的问题,厂商普遍采用客制化(即第三方定制的方式)来进行固件的开发。因此,同一个固件漏洞问题大范围波及其他设备的概率大大增加。据统计,2012 年开始,嵌入式设备漏洞数量呈快速激增态势。因此,及早发现嵌入式设备漏洞并及时补救,已经是刻不容缓的工作。

固件漏洞检测和研究中存在数据量小、人工检测效率低下、漏洞特征化不明显等难点。由于固件高度定制化、与硬件关联度高、底层集成度高等特征的存在,数据量普遍不足,已有数据通常限定于某一特定的硬件平台,难以对固件漏洞进行普遍的特征化。此外,当前的漏洞检测方法主要依赖于人工检测,依据固件安全员的知识和经验对已知固件进行分析,最终查找出固件的漏洞所在。该方法效率低下,且严重依赖于人工的经验,具有极大的主观性。

1.2 国内外研究现状

目前,国内外安全研究人员(尤其是硬件安全研究人员)对固件漏洞的检测、处理、修复等问题进行了大量的研究,也提出了大量的固件漏洞检测方法,主要有静态漏洞检测方法和动态漏洞检测方法两种。静态检测方法是对固件的源代码进行分析,从而找出其中可能存在的漏洞和弱点;而动态检测方法就是在不改变源代码甚至是二进制代码的情况下,通过修改固件的执行环境和情况进行漏洞检测的方法[1][3][5]。无论是静态漏洞检测法还是动态漏洞检测法,都需要专业的安全研究人员跟随系统进行调试,这无疑大大增加了安全研究人员和开发人员的工作量。基于此,如果能够利用某种机制,使程序自动读取固件的二进制文件流,自动对其中可能出现的漏洞进行检测,则可以大大减少重复劳动,降低开发和应用过程中的工作量。

1.3 研究问题及主要工作

本文主要针对乘除溢出漏洞这一常见的软件缺陷进行检测,针对已知的数据样本构建负选择检测器并进行训练,以期达到较高的漏洞特征识别准确率和漏洞数据检测效率。

1.4 论文的主要贡献

论文的主要贡献在于将负选择算法与固件漏洞检测程序结合在一起,并在实验数据样本的基础上对程序检测的准确率进行调优。在根据负选择算法构建检测方法时巧妙地将负选择算法进行逆用,将传统的检测正常数据样本之外的异常的负选择机制逆用为检测异常数据样本之内的模式,从而实现在只有异常数据而没有正常数据的前提下也能实现既定功能。

第2章 负选择算法介绍

本章主要就负选择算法进行了简单的介绍,对负选择算法的基本概念、基本原理、实现机制、在本文中的使用方法进行了概述,最后总结了负选择算法的相关概念。通过阅读本章,读者能够对负选择算法的概念、历史和发展有大致的了解,并能结合固件漏洞检测这一特定使用情景理解负选择算法在该程序中的应用。

2.1 基本概念

负选择算法是一种仿生智能算法,1994年由美国新墨西哥大学的Forrest等人提出。其模仿人体的淋巴系统机制,将人工免疫系统(Artificial Immune System)AIS应用到IDS的研究,从而提出负选择思想用于计算机病毒检测的思路。随着近几十年来智能算法的不断发展,负选择算法理论及相关内容也得到了完善,许多学者围绕免疫原理在入侵检测领域中的应用问题做了大量研究,由此衍生了许多基于负选择算法的使用案例。由于适应性强,负选择算法被广泛应用于许多领域,如入侵检测、异常诊断、模式识别、数据挖掘、机器学习和故障诊断等[7][8][9]

2.1.1 基本原理

负选择算法是一种仿生智能算法,通过模仿生物体免疫系统成熟过程中的负选择机制来达到数据检测、数据分类的目的[7]

生物免疫系统中存在两种淋巴细胞(淋巴B细胞和淋巴T细胞),共同组成生物免疫系统。免疫系统是生物体免疫机制的承载系统,主要对外来细胞和病毒进行处理,这依赖于免疫机制[7][9]。免疫细胞会对外来侵入物质进行识别,并将其清除,来维持生物机体自身的正常工作。在淋巴T细胞成熟过程中,会出现一些特殊的淋巴T细胞,其能对生物体自身正常的机体进行错误识别,并对其进行攻击和清除,从而导致自身机体被破坏,免疫系统不能正常工作。为了克服这一问题,胸腺对成熟的T细胞并不会直接释放到免疫系统中参与免疫系统的工作,而是会先对其进行负选择,检查成熟的T细胞是否对机体的正常细胞产生错误识别。如果成熟的淋巴T细胞产生了过度免疫的反应,则将其在胸腺中去除;否则将其释放到免疫系统中参与工作。这一过程称为负选择过程,相对应的,对已知细胞进行训练使之识别处已知细胞之外的其他细胞的机制称为负选择机制。

负选择机制在自然界中广泛存在,具有高效率、高准确性等优点。

2.1.2 实现机制

负选择机制是通过研究生物体免疫系统得到的数据分辨机制,可简单概括成:对已知数据进行分析和强化训练,从而识别出不属于已知数据类别的数据。在实际使用中,可结合使用情况进行优化。具体到数据分类和识别问题,可以在负选择算法的基础上进行数据的归类和识别。

基于负选择算法的数据识别问题可将步骤分为[4][5]

(1)获取原始数据

(2)对数据进行预处理

(3)将预处理后的数据进行聚类分析,构建出数据空间和数据空间的边界

(4)生成检测器,覆盖已知样本的外围空间

(5)利用检测器对未知数据进行检测

通过以上步骤,可以利用负选择算法对数据进行识别,从而达到数据检测的效果。

2.2 使用方法

本节主要介绍在负选择机制的基础上利用已知数据集进行数据分析和识别的大致思路,包括负选择算法的实现框架和固件漏洞检测程序中应用负选择算法的机制。通过阅读本节,读者能对负选择算法和固件漏洞检测程序的组成有清楚的了解。

2.2.1 负选择算法实现框架

上一节中我们提到基于负选择算法的数据识别问题可以分为五个步骤。本节中我们详细讨论这五个步骤的实现思路。

(1)获取原始数据

原始数据是指用于样本训练的具体数据。在本例中,原始数据是指从固件中提取出的漏洞。原始数据的获取有真实数据采集、已有数据分析、计算机模拟数据等多种方式实现。

(2)对数据进行预处理

在获取到原始数据之后并不能对数据进行直接利用,因此在利用数据进行样本训练之前需要对数据进行预处理,以便能够对数据进行利用。

数据的预处理步骤包括对漏洞数据进行数值化、对数值化之后的数据进行归一化、对数据的多个样本特征按照重要性进行权重分析等。预处理之后的数据能够进行被应用到样本训练和数据识别中。

(3)将预处理后的数据进行聚类分析,构建出数据空间和数据空间的边界

在对数据进行预处理后,对数据进行聚类分析。我们使用K-Means算法对数据进行聚类分析,将处理后的数据映射到一个高维空间中。在高维空间中对数据进行边界生成,最终得到一个特定于指定数据集的漏洞特征聚类空间[8][10][11]

(4)生成检测器,覆盖已知样本的外围空间

在对数据完成聚类处理和分析之后,会得到一个边界清晰的聚类数据拟合空间。在聚类数据拟合空间之外是样本数据未能覆盖到的未知空间。我们对未知空间生成检测器,利用检测器覆盖未知的数据空间,完成了相应的负选择机制的训练过程。

在检测器生成过程中有已知半径、不固定半径、球形检测器、非球形检测器等多种生成方式,在研究过程中我们综合检测器生成难度、检测器检测效率、检测器覆盖程度等多项指标进行调优,最终得到优化后较为高效的检测器生成方案[8][14][15]

(5)利用检测器对未知数据进行检测

在完成检测器生成后,我们得到了特定于固定样本集的负选择检测程序。此时我们可以利用该程序对已知或未知的特征化漏洞进行检测,从多个角度和验证指标下对程序进行评价。

2.2.2 与固件漏洞检测方法相结合

在上一节中我们提到了负选择算法用于数据集分类和识别的具体应用框架。负选择算法应用广泛,在熟悉和了解其使用框架之后我们尝试将负选择算法和固件漏洞检测程序进行整合,利用负选择算法的优点提高固件漏洞检测程序的性能和效率。

类似的,我们也从负选择算法的五个步骤出发分别进行讨论。

(1)获取原始数据

具体到固件漏洞这一问题,原始数据主要指的是固件漏洞代码。由于固件通常是固化在具体的硬件中的,因此对编译之后产生的二进制文件进行分析。我们采用IDA Pro文件对二进制文件进行反汇编处理,分析反汇编之后得到的文件流,从中找到固件漏洞,并提取固件漏洞的相关特征。提取出的漏洞二进制特征就是需要处v理和分析的原始数据[11][13]

(2)对数据进行预处理

提取出的二进制数据特征具有较多的参数,在本次实例中,我们一共提取了一个漏洞二进制特征文件的共二十个特征性参数,包括:二进制代码流程图节点数,被其他函数调用次数,跳转指令个数,函数名,指令个数,跳转指令占比,二进制代码流程图密度,代码量,二进制代码流程图平均度,二进制代码流程图边数,二进制代码流程图最大度,二进制代码流程图入度升序序列最大,调用其他块的去重次数,二进制代码流程图图直径,调用其他块次数去重值,字符串个数,栈大小,二进制代码流程图平均路径长度,调用其他块次数[11][12]

在本文中,我们对二进制文件提取除了较多的特征,各个特征数值大小不一,需要在聚类分析之前对数据进行预处理,首先就是对数据进行归一化操作。对所有的特征数据进行数值化操作,然后对所有的特征数据进行统计,对每一个特征从数据空间中找出最小值、最大值和平均值。最大值和最小值限定了数据的范围,通过将特征数据与数据范围进行比对,得到数据在数值中的比值,从而实现对数据的归一化操作。

对于这一过程可以用以下公式进行表示:

makeOneVal=realVal/(maxVal-minVal))

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 50元 才能查看全部内容!立即支付

微信号:bysjorg

Copyright © 2010-2022 毕业论文网 站点地图