软件漏洞并行检测方法研究
第 1 章 绪论
1.1 课题研究的背景和意义
随着互联网的不断普及,网络安全的问题也日益显现,2015 年 12 月 27 日,乌克兰电力公司网络系统遭到黑客攻击,这是首次由黑客攻击行为导致的大规模停电事件,据统计,此次影响导致成千上万的乌克兰家庭无电可用;2016 年5 月黑客利用漏洞,盗取 3 亿 6000 万 MySpace 用户的电子邮件地址以及密码。由此可见,网络安全威胁具有严重的危害性。在所有信息安全事件中,利用软件安全漏洞的攻击行为占到很大的比重。软件漏洞,通常是由于不合理的设计和软件开发人员的疏忽而引进的软件缺陷,软件缺陷会导致软件在运行时失效等问题,软件故障的频发会带来极大危害。
...............
1.2 研究现状
由于对字符串处理速度提高的急迫需求,并行字符串匹配技术在网络和信息安全等领域有着大量的应用,以下几种方式,是最近几年的比较有代表性的基于并行划分的字符串匹配方法。1.基于首字符划分 文献[5]中以初始字符来划分模式集的。按照首字符划分出来的一类用来构建一个 DFA,但是这种方法忽略了模式的首字符分布的模式集的情况。2.基于长度和长度模式分组度量 Kim 等人[6]考虑到模式字符串的长度,将目标模式划分为短模式和长模式 2 个子集,并提出比特位拆分的并行模式匹配引擎,进行内存开销优化,将适当的比特位分为两个子匹配类型字符串。
...............
第 2 章 并行字符串匹配研究
2.1Aho-Corasick 多模式字符串匹配算法
Aho-Corasicks算法(AC算法)是由Alfred V.Aho和Margaret J. Corasick 共同发明的一种经典的多模式字符串匹配算法[19]。比较有代表性的实现有两种:一种是确定的有穷状态自动机(Deterministic FiniteAutomaton,DFA),另外一种是非确定的有穷状态自动机(Nondeterministic FiniteAutomaton,NFA)。在并行化的过程中,考虑到 DFA 模型具有优势的线性的时间复杂度和固定长度的状态转移表,所以本文采用基于 DFA 的字符串匹配算法进行改进。由于AC 算法的时间复杂度为 O(n),,而 n 的大小取决于待匹配的文本和模式集合的大小,所以需要一个巨大的存储空间来保存状态转移表,所以在空间复杂度上有很大的限制。而生成状态转移表的过程为了避免执行时的效率,主要是在预处理阶段进行,本文将会设计一个基于 DFA 的并行算法,在预处理阶段对状态转移表进行优化,以提高并行字符串匹配的效率。
...............
2.2 基于多核架构的启发式集合划分算法
集合划分问题(Set Partition Problem,SPP)是一个经典的 NP 难问题。集合的划分是将集合划分为覆盖原集合中的所有元素的互斥子集的集合。有一些解决方案使用启发式算法来解决它,如遗传算法(Genetic Algorithm,GA),蚁群优化(Ant Colony Optimization,ACO)[34]和粒子群优化算法(Particle SwarmOptimization,PSO)[35]。其中遗传算法是一种对自然选择和生物进化的规律进行模拟的算法,最初是由 Holland 在 1975 年提出[36]。遗传算法由一个具有可行解的初始种群和种群中若干经过基因编码的个体进行初始化,其中每个个体都是由染色体实体决定的。由于基因编码的建模工作比较复杂,所以倾向于使它表达的方式更为简单,如二进制代码。种群中的每一代个体,根据优胜劣汰的原则,进化生成更多近似解。
...............
第 3 章 并行动态符号执行的漏洞检测研究...............17
3.1 动态符号执行技术................17
3.2 并行化动态符号执行路径优化...............20
第 4 章 软件漏洞并行检测系统的设计与实现................27
4.1 系统架构概述...............27
4.2 镜像代码执行工作原理...............28
第 5 章 系统测试与结果分析...............34
5.1 实验环境建立................34
5.2 实验测试靶机环境和基准...............34
第 5 章 系统测试与结果分析
5.1 实验环境建立
本文实验使用一个Mater 节点来运行 Scheduler和基于 PHP 编写的UI 操作界面,并使用两个 Slave 节点运行 Agent 执行模块。具体运行和开发环境如下:1. Scheduler 运行和开发环境:Python 2.7.10Linux with Kernel Version 4.0+ 32/64Eclipse Neon。2. Agent 运行环境:Python 2.7.10pip tools依赖 requirements.txtroot 权限。3. PHP 端运行环境:Apache 2.4.9PHP 5.5.12MySQL 5.6.17Apache 2.4.9。
...............
5.2 实验测试靶机环境和基准
为了保证测试的完整性和时效性,测试的用例使用开放式 Web 应用程序安全项目(OWASP,Open Web Application Security Project)提供的 OWASPTop 10(2013),为了使测试更加完整,除此之外,自动化扫描器支持的通用型 Web漏洞和 WAF(WebApplication Firewall,Web 应用防火墙)能力评测基准也会被进行测试。使用 Web 漏洞扫描工具可以更全面和高效地对本系统进行测试,本文选取了主流的几款 Web 漏洞扫描工具,他们所支持的检测功能覆盖了常见的大多数漏洞类型。
...............
结论
本文从并行多模式字符串匹配算法和并行动态符号执行两个角度研究了软件漏洞并行检测方法的实现,并结合两种技术应用在实际的漏洞防护中。在研究的过程中专注于理论研究基础上,也尽可能地考虑了实际应用中的适用场景,使得研究成功更加具有实用性。本文针对软件漏洞并行检测方法,对其关键技术并行字符串匹配技术和动态符号执行技术进行了研究,其中着重研究了并行字符串匹配技术的算法优化和并行动态符号执行技术的实现,并完成了分布式并行漏洞检测系统的设计与实现等工作。论文主要完成的工作内容如下:1. 本文在总结现有方法优缺点后,在并行多模式字符串匹配技术中提出一种基于多核架构的并行多模式字符串匹配算法,通过启发式算法优化模式集合,提高并行字符串匹配算法的执行速度。
参考文献(略)
本文编号:861549
本文链接:https://www.wllwen.com/wenshubaike/kjzx/861549.html