Skip to content

Latest commit

 

History

History
179 lines (104 loc) · 15.7 KB

2020年全国大学生信息安全竞赛 作品报告.md

File metadata and controls

179 lines (104 loc) · 15.7 KB

2020年全国大学生信息安全竞赛作品报告

作品名称:基于CNN神经网络的异常流量嗅探与分类系统 电子邮箱: 提交日期: 填写说明:

  1. 所有参赛项目必须为一个基本完整的设计。作品报告书旨在能够清晰准确地阐述(或图示)该参赛队的参赛项目(或方案)。
  2. 作品报告采用A4纸撰写。除标题外,所有内容必需为宋体、小四号字、1.5倍行距。
  3. 作品报告中各项目说明文字部分仅供参考,作品报告书撰写完毕后,请删除所有说明文字。(本页不删除)
  4. 作品报告模板里已经列的内容仅供参考,作者可以在此基础上增加内容或对文档结构进行微调。
  5. 为保证网评的公平、公正,作品报告中应避免出现作者所在学校、院系和指导教师等泄露身份的信息。

摘要

//(请简要说明创作本作品之动机、功能、特性、创新处、实用性)

现有的流量获取、处理、攻击分析的工作都在各自领域有较深入的进展和成果,但在整合整个分析流程,带来更好的更完善的用户体验方面仍有欠缺。同时,市面上已有的流量检测软件的原理,大部分是基于模式识别,通过不断更新黑名单实现对异常流量的识别,这对软件的后续维护及时更新提出了较高的要求。

神经网络在流量识别领域已经有了一定程度的实践,而实践的起点基本都是权威机构公开的流量数据集,本项目设想在已有的学术实践的基础上更进一步,完整实现用神经网络对真实流量嗅探与分类的全过程,并且用多样的可视化方式将检测结果提供给使用者,带来更好的使用体验。

核心功能:对特定站点的流量,运用简易的深度学习网络进行判别,最后提供可视化分析结果

创新处:从流量分类原理的角度,本项目的创新之处是使用了区别于常规的流量分类所采用的模式识别的方法,将深度学习理念融合到实际流量分类应用场景中。从产品功能角度来看,本项目利用神经网络原理学习流量特征,将流量获取处理、神经网络与可视化进行整合,以图文结合的形式给出了流量具体数据,类型预测结果以及发送接收方地理位置显示。同时对神经网络数据来源进行推广,从单一数据集到实时数据的获取。

实用性:支持实时获取流量以及导入流量数据两种分析方式,支持多种场景下的应用,例如网络攻防实战中的实时监测,数据集数据的导入式分析等等。同时经过神经网络判别后也能得到准确率较高的的可视化结果并提供其他信息以辅助分析。

第一章 作品概述

//(建议包括:背景分析、相关工作、特色描述及应用前景分析等)

背景分析 // 运用深度学习进行流量分析已有许多实践,其中CNN网络有突出的效果

随着网络规模的不断扩大与人们生产生活对网络依赖的提高,各类网络攻击活动日渐猖獗,导致网络性能下降甚至不可使用,给人们的网络生活带来了较大的困扰。同时,为了更好的应对网络攻击,人们也在不断地进行网络攻防的演练以及已有流量数据集的深入分析,试图以主动的方式得到更好的防御方案。基于此,能够更加准确的判断流量类型,能够提供更详细,更直观的流量数据的软件的需求呼声越来越高。

近年来,市面上也出现了一些流量监测软件,他们大多基于模式识别方式,依赖黑名单数据库对异常流量进行识别。而这一方面需要不断对软件数据库进行维护,将新产生的攻击模式加入数据库中,将浪费极大的人力同时一旦不再更新,软件将逐渐不再能够检测层出不穷的新型攻击。另一方面,固定的黑名单对新出现的恶意流量的泛化能力弱,不适应现今新型攻击层出不穷的状况。同时,各检测软件都有自己侧重的功能亮点从而也产生了弱势点,或注重全面体验而弱化具体流量分析从而不适用于侧重分析的生产研究活动;或忽视了可视化设计降低了用户体验……产生了分析流量可能需要几款不同软件才能满足数据深入度与体验感均较高的需求的状况。

在这个”头脑的社会“,作为人工智能技术朝新方向迈出的第一步,深度学习构建了能够模仿人类大脑行为的神经网络。这些多层次的网络像人类大脑一样, 可以收集信息,并基于收集到的信息产生相应的行为,这使得这个系统可以”自己学会世界上的一些概念“,而这也是深度学习区别于其他技术的亮点,其积累学习,提取特征的能力让其在现今知识技术高速更新的各行各业脱颖而出。而网络攻击的重要特征便是新的攻击类型不断出现,普通的黑名单式累加显然处于被动地位,而深度学习的泛化能力让其基于现有的数据对将来可能出现的新数据有一定的判断能力,恰好符合了流量监测软件的技术需求,可见,未来深度学习技术在流量监测软件上的应用将成为一大趋势。在深度学习中,卷积神经网络结构可以保留邻域的联系和空间的局部特点,这符合网络流量的包内与包间联系特点,同时多层结构在更高层凸显输入中的重要方面,同时能在遇到更不重要的变化时变得越来越稳健。这些优势使得CNN十分适合应用于网络流量监测。

基于以上背景,本项目使用经过设计调整的卷积神经网络作为检测内核,将流量的具体信息例如源,目标地址,ip位置,协议等信息通过图文的方式呈现,以供分析者参考。同时,支持流量实时分析与数据集分析,方便多种研究模式。

相关工作

// 类似流量检测研究:

针对核心检测部分,项目成员通过阅读文献深入理解了深度学习的工作机理以及应用优势,经过与其他检测机制的对比,确定了以神经网络作为检测核心。而在深度学习的几种网络结构中,通过前人研究工作检索了解了卷积神经网络局部感受野,权值共享等本次应用中较为优势之处并进行网络结构实际搭建之后通过一定的训练对比,选择卷积神经网络。

//同类流量检测软件:https://www.glasswire.com

为更好地提升网络流量监测的体验,项目成员对现有监测软件进行了体验分析。

其中面向普通用户的glasswire,360在检测软件市场中所占份额较大,以其全面的监控以及舒适的界面体验脱颖而出。但由于更加注重全面防护全面检测的定位让他们弱化了提供更加详细的流量分析这一更专业人员需要的功能。无法清晰的体现流量检测的过程,同时隐藏检测过程使得用户也很难直观感受到软件检测的效果.这便出现了较专业用户需求这一缺口,全面的防护分析在专业研究中反而失去了实用性,需要有更加有针对性的分析软件。这为我们的开发思路提供了借鉴。

特色描述

由于全面防护软件已十分成熟,本项目软件更加注重于对流量数据的分析显示,通过数据和图像相结合的方式清晰的体现了流量的具体信息与预测结果,方便研究人员的使用。同时,经过训练的卷积神经网络的内核具有较好的泛化能力使得本产品可以更好地适应恶意流量不断推陈出新的现状,降低了维护成本,成为研究分析过程中更为可靠的工具。

应用前景分析

随着网络技术的不断进步,对流量的研究工作必将不断进行越来越深入,而一款轻便的,检测技术先进的数据分析软件必将在科研领域有较好的应用前景。同时,未来发展中,民众的网络知识能力必将不断提高,更多的兴趣爱好者将投身于网络安全研究中,对网络流量深入了解的需求也将随之不断增长,而提供流量具体信息的软件将成为他们打开信息安全大门,深入了解网络世界的一大助力。

本项目开发的软件定位于辅助流量分析,适用于生活中的流量兴趣分析,攻防实战中的实时流量分析,收集数据集之后的深入分析等多种应用场景,通过图文相辅的显示方式致力于更加直观迅速的提供检测结果与分析数据,提高研究人员的分析效率。这在未来不断深入底层的研究中将更加符合需求,从而将有持续的需求市场。

第二章 作品设计与实现

2.1 设计阶段
2.1.1 功能分析
  • 获取实时流量,可导入数据集
  • 通过设计的网络对流量数据进行分类
  • 展示分类结果
    • 统计若干条流量的种类分布,对某一时段内流量进行监测
    • 某条流量的种类分布,针对性分析流量预测种类
  • 展示流量基础数据
    • 流量概述
    • 数据包概述
    • ip地址可视化
2.1.2 实现原理

神经网络内核的构建:搭建基础CNN网络,后利用2017数据集对CNN分类器进行训练,训练数据集中每条样本是以流为单位,输出结果是从属于某个流量类型的概率。通过训练集测试测试集准确率等数据对神经网络的参数进行对比调整,最终获得效果最佳的网络结构。 获取实时流量:利用python的scapy提取pcap格式的流量数据,由于流量数据是离散的,所以将其整合成以流为单位的文件。 用户界面的搭建:利用pyQt5搭建用户界面,同时整合各部分功能模块,最终提供给用户实时获取或手动选取流量,后CNN对其预测,并且能全面展示检测,分析结果的功能。

2.1.3 指标设计

​ 准确度指标:测试集的准确率。通过多次模拟攻击,让软件接收不同类型的攻击流量,结果显示分类器的效果。

​ 用户兴趣点:该软件面向对流量分析感兴趣的人员以及专业的流量研究人员,通过简洁的操作清晰的数据展示提供可靠的辅助。

2.2 实现流程
  1. 流量获取 :(流量 -> csv格式数据集)利用python的scapy提取pcap格式的流量数据,并将其整合成流单位文件。

  2. 数据集预处理:(csv格式数据集 -> numpy矩阵)通过python对数据集进行格式规整

  3. 神经网络判断:(numpy矩阵 -> 神经元输出数据)构建神经网络,通过大量数据训练进行结构对比与参数调整,后训练出参数,得到网络结构。

    数据集链接:IDS-2017-Datasets-UNB

  4. 数据可视化:(输出结果-> 分析柱状图)利用一定时域内的判断结果通过柱状图展示该时段内的流量信息。并能够展示每一条流量的柱状判断结果。

  5. 图形界面:图片展示、按钮

    1. 流量基础信息展示
    2. 地区展示可视化
    3. 统计功能
    4. 单次检测、批量检测(检测进度可视化)
2.3 运行流程
  1. scapy流量获取 :流量 -> csv格式数据集
    • pcap数据(以数据包为单位)处理成csv流量数据(以流量为单位)
  2. 数据集预处理:csv格式数据集 -> 矩阵
  3. 神经网络判断:矩阵 -> 神经元输出数据
  4. 数据可视化:神经元数据-> 柱状图等
    1. 测试数据集中各种流量的的分布:饼图/柱状图
    2. 单条流量可能所属类型:柱状图
  5. GUI:图片展示、按钮 Introduction · PyQt5 中文教程
    1. 流量基础信息展示
    2. 单次检测、批量检测(检测进度可视化)
    3. 统计功能

第三章 作品测试与分析

//(建议包括测试方案、测试环境搭建、测试设备、测试数据、结果分析等)

3.1 测试方案

采用pcap数据测试方案

3.2 测试环境搭建

数据集测试使用windows系统,预先安装基于CNN神经网络的异常流量嗅探与分类系统

3.3 测试设备

3.4 测试数据

ids-2017 20%的数据以及各类型流量数据代表

3.5结果分析

使用20%的数据即565184条数据,预测准确率达97.74%

使用挑选出的各类流量代表进行预测,结果也都成功预测

第四章 创新性说明/可靠性

//(本部内容主要说明作品的创新性)

//技术创新

现有流量监测软件,他们大多基于模式识别方式,依赖黑名单数据库对异常流量进行识别。需要不断对软件数据库进行维护,将新产生的攻击模式加入数据库中,将浪费极大的人力并且很可能存在漏洞。同时现今的神经网络对于网络流量分类的研究少有应用于软件,而基于CNN神经网络的异常流量嗅探与分类系统利用卷积神经网络作为检测内核,在保证较高的准确率下,由于其较为出色的泛化能力有效改善了未知类型恶意流量的检测问题。

不同于其他针对普通用户的流量监控软件,基于CNN神经网络的异常流量嗅探与分类系统定位为服务于对流量数据分析感兴趣的人以及专业科研人员,以更加轻便的体量,更加简洁的界面和操作以及对数据信息更直观更深入的反应为人们提供更好的体验感,为打开网络安全世界的大门以及深入研究提供有效的助力。

基于CNN神经网络的异常流量嗅探与分类系统通过测试数据集以及实际攻击检测,其检测准确率较高,测试数据集中达到了97%,实际攻击检测中也表现较好,能够较准确的反应攻击类型。同时在不同设备不同系统上运行该系统流程时均表现良好,有较强的适应性。通过对关键部位神经网络检测结构进行重点设计管理,降低系统风险。同时界面设计较为友好,用户使用难度低,降低使用过程中的误操作风险,以上说明系统可靠性较高。

时间上的创新

state of the art -- 主干论文

硕士论文

第五章 总结

基于更加专业化的流量分析软件的需求,我们对深度学习领域和流量检测领域进行了一次粗浅却完整的实践。最终实现了可以对实时流量和数据集进行分析检测,并以图文的形式展现具体数据和分析结果的系统。

这是一个知识输出的过程,也是一个学习的过程,为了搭建起一个基于神经网络内核的流量检测系统,我们完整学习了神经网络框架的的机理和使用,并不断探索如何获得一个优秀的网络结构。为了实现实时流量的分析,我们在现有的流量嗅探框架的基础上,复现了一套流量预处理的程序,并且我们选择相同格式的公开数据集对模型进行训练,训练调试完成后便可实现对实时流量的捕获、处理、分析的全过程。为了更好的用户体验,我们使用pyQt5编写了用户界面,并通过图文相结合的方式全方位展示了流量数据信息与预测结果。

在核心网络构建过程中,我们对深度学习在未来流量监测工作中的应用有了更加切身的体会,体会到了神经网络的强大以及意识到调参,网络结构设计等工作仍然需要我们不断研究。在界面编写过程中,我们也努力站在用户的角度考虑问题,赋予作品灵魂与实用性。这一开发过程,全队成员齐心合作,互相帮助,也让我们获得了宝贵的团队开发经验。

秉持着追求更好的理念,我们不会满足于此,也意识到系统有更多可以改进的地方。今后我们将继续从操作,界面等用户体验方面以及核心技术,测试技术等技术支撑方面不断完善我们的系统,让其带来更好的使用感,成为研究人员更好的助力。