目录
前言
课题背景和意义
实现技术思路
一、相关理论及技术
二、基于多维度特征和双向GRU的恶意域名检测
实现效果图样例
最后
大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。
对毕设有任何疑问都可以问学长哦!
选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277
大家好,这里是海浪学长毕设专题,本次分享的课题是
毕业设计-基于深度学习和相似度的恶意域名检测方法
互联网的出现为人们的生活提供了极大的便利,各种文本信息、流媒体资源和文 件都可以通过互联网进行传播,这些传播于网络上的信息均可视为数据。在这些数据 中,有一部分是黑客进行恶意活动所使用的恶意数据。恶意流量和恶意软件与恶意数 据关系密切,恶意软件是指黑客在目标主机中植入的软件。通过对恶意软件下达指令, 可以达到控制目标主机的目的,这种被植入了恶意软件的主机被称为僵尸主机,数量 庞大的僵尸主机则可组成僵尸网络。黑客与僵尸主机通信的流量数据为恶意流量数据。 通过检测流量数据来发现僵尸网络是一种行之有效的方法。黑客用于向僵尸主机下达 指令的服务器被称为命令与控制服务器,在实际通信过程中,僵尸主机需要获取命令 与控制服务器的IP地址,从而进行数据通信。僵尸网络中的僵尸主机获取命令与控 制服务器IP地址的方法有许多种,对于黑客而言,这些方法有各自的利弊。实现 难度较高的方法则与之相反。 将命令与控制服务器的IP地址直接写入恶意软件中是早期的一种为达到持久化 控制目标的手段。
僵尸网络
僵尸网络是由被恶意软件感染的主机形成的集合。集合中的主机均可通过网络 与攻击者的命令与控制服务器进行交互,因此集合中的主机就像被攻击者控制的僵尸 军队,在互联网上进行如分布式拒绝服务攻击、邮件炸弹等危害网络安全的恶意活动。
被恶意软件感染的僵 尸主机会加入某个通信频道,命令与控制服务器将攻击者的指令发布到相应的频道后, 僵尸主机即可获取到相应指令,从而进行恶意活动。其通信方式如图所示:
HTTP协议是基于TCP协议的应用层协议, 最早用于网页内容的传输,现已成为互联网中应用最为广泛的协议之一。HTTP请求 报文由客户端发送至服务端,服务端接收到以后将处理后的数据封装在响应报文中, 并返回给客户端。请求体中含有发送请求时携带的参数内容,图为一个请求报文 示例:
响应头分为响应头和响应内容主体,响应头包含状态码、协议版本等内容,响应 体包含了服务端的返回内容,图为一个响应报文示例:
域名技术
1、域名系统
域名系统(Domain Name System,DNS)的作用是将域名转化为对应的IP地址并返 回给请求端。域名系统使用的协议为DNS协议,该协议基于传输层的UDP协议,端 口号为53。DNS系统中的数据以层次结构数据库存储,因此在进行查询时,如果本 机无缓存或本地DNS服务器查询不到相应IP地址信息,就会对根域名服务器进行递 归查询。
2、恶意域名
用网络上可以获取的公共信息作为参数,并将该参数传入设计好的一个域名生 成算法即可生成域名列表,攻击者和僵尸主机拥有相同的域名列表。僵尸主机可以通 过遍历列表中域名的方式来搜索命令与控制服务器的IP地址,其通信过程如图所示:
3、常规域名
常规域名经由DNS转换为为IP地址,因此计算机能直接根据用户输入的域名获 取对应IP地址服务器的资源。域名解析需要DNS来完成,按照解析顺序可以将常规 域名分为三个等级。顶级域可以按国家、组织等标签来划分。
机器学习二分类算法
域名检测是一个二分类问题,此类问题的模型输出只有两种情况,分别对应二分 类问题中两个不同的类别。域名样本可以通过编码或者人工特征提取等方式被构造为 特征向量。例如,定义1代表常规域名,0代表恶意域名,那么模型的输出为1则代 表该域名样本的预测结果为常规域名,否则预测结果为恶意域名。
超平面的表示如式所示:
若表示某个分类结果出现的先验概率为P(yi),则后验概率可以表示为P(yi|f1,f2,...,fn)。分类结果可以看作是在特征集合D2下最终的分类结果为yi的概率,其计算过程如式所示:
集成学习算法思想
集成学习将一定数量的学习器按照既定方式组合得到的模型。其中每一个学习 器被称为基学习器或弱学习器。弱学习器可以是任意一种可独立完成分类任务的模型。 集成学习模型可以分为两种,分别是同质集成学习模型和异质集成学习模型。同质集 成学习模型中的弱学习器种类相同,而异质集成学习模型中的弱学习器可以不同。
集 成学习模型由多个弱学习器模型合并构成,因此理论上比单个弱学习器模型的泛化能 力更强。以算法思想为依据来进行划分,集成学习能够被分为bagging和boosting和 stacking三种。
bagging算法 bagging的随机采样随机抽取训练集中的数据,形成用于训练各个弱学习器的采 样集。将训练集分为n份,对于其中某一份数据而言,可能被多次重复采样,存在 未被采样的可能性。
boosting和bagging有部分相同之处,即它们均将数个弱学习器通过一定的结合策略组合为强学习器。它们的不同之处在于,boosting的训练集只有一个,而bagging通过有放回的随机采样来对每一个弱学习器生成训练集。
stacking作为集成学习的一种算法,也由数个弱学习器组成,并将已完成训练的 弱学习器通过一定方式结合。用同一训练集训练n个弱学习器,由这些弱学习器对每 一条训练样本进行预测均能得到预测值。将这些预测值看作新的特征并将其组合为新 的样本,其对应的结果为原训练集中的结果。
神经网络模型
深度学习中的神经网络模型由许多神经元组成,按层级划分可以分为输入层、隐 藏层和输出层,如图所示:
1、循环神经网络
循环神经网络(Recurrent Neural Network,RNN)[61]是自然语言处理领域最常用的 模型。由于自然语言组成的文本信息中有明显的序列关系,因此在构建模型时需要考 虑相关信息。循环神经网络的计算过程如式所示:
不同的任务类型所对应的RNN的输入输出维度 也不同。例如,在语言转译情景中,RNN的输入和输出都是多个维度的。在情感分 类任务中,输入是多个维度,而输出只有一个维度,即文本数据所包含的情感为积极、 消极或中立。RNN的结构如图所示:
卷积神经网络
全连接神经网络在处理复杂的高维度数据时参数量较大,对硬件的要求极高,因 此研究人员通过卷积神经网络(Convolutional Neural Network,CNN)[60]来解决参数过多的问题。
概述
域名的组成可以用树形结构表示,如图所示。例如域名baike.baidu.com,由 顶级域、二级域和三级域组成。顶级域名只能在有限的集合中选择,而二级域名可以 由任意合法字符组成,由于域名的可读性与注册价格成正比,为节省成本,大部分恶 意域名的可读性较差。
因此,许多研究人员采用基于字符编码的深度学习模型来对域 名进行检测,这种方法能够充分利用域名的字符特征,但仅考虑字符特征的方法受域 名生成算法类型的影响较大。
多维度特征提取
根据域名的性质和用途,可将域名划分为恶意域名和常规域名两类,将域名检测看作一个二分类问题。域名的特征主要分为域名的注册特征、域名的DNS解析特征、域名的访问特征和域名的字符特征四类。
1、域名的注册特征
WHOIS是一个用来查询域名详细信息的数据库,域名的注册信息可在WHOIS上查询,它包含了域名的基本信息,例如注册时间、过期时间、注册地、注册人联系方式等。根据其基本信息,可分为时间特征和地域特征。
2、域名的解析特征
(1)解析记录特征
CNAME记录是指将一个域名解析为另一个域名的解析记录,该解析方式的应用 场景较为广泛。例如,将多个域名同时指向一台主机时,可以将一个域名的A记录 配置为该主机的IP地址,然后将其余域名的CNAME记录均配置为该域名。
(2)TTL值
域名的TTL值是指域名解析记录的缓存时间。对于常规域名而言,为提高其网站 访问速度,TTL值一般较大,而恶意域名因其需要经常改变其解析记录的特点,TTL 值一般较小。
(3)A记录映射散度
A记录是将域名映射为IP地址的记录,由于正常域名的IP地址一般不会变动, 因此其A记录个数较少,而恶意域名的A记录会因为命令与控制服务器的频繁更换 而不断增加,因此其A记录个数较多,并且恶意域名的A记录分散在各个IP地址上。 A记录映射散度M的计算过程如式所示:
4、域名的字符特征
(1)域名信息熵
熵值是指系统的混乱程度,这个概念被扩展到各个领域,如信息论、数论和生命 科学等。信息论中的这个概念最早由信息论之父香农提出,一般而言,恶意域名的混 乱程度高于常规域名,因此可以用域名信息熵作为域名可读性指标之一。其计算过程 如式所示:
常规域名在注册时考虑到用户记忆和seo排名优化等问题,因此其域名长度更短、 域名可读性更好。而恶意域名为降低成本、防止域名冲突,域名可读性一般较差,且 域名长度相对较长。上表中信息熵最低的为google.com,信息熵仅为1.33。而恶意域 名中,tinba家族的一个域名信息熵最高,为2.37。部分域名的信息熵如表:
(2)域名元音字母占比
恶意域名不考虑域名的可读性,只考虑成本和域名冲突问题,因此其可读性较差。 元音字母占比是衡量可读性的一个重要特征,根据语法结构,元音字母占比越高,域 名的可读性就越强,即域名中包含越多的a、e、i、o、u,域名的可读性就越好。部分常规域名和恶意域名的元音字母占比如表所示:
(3)连续数字字符串数量
域名中的字符一般是英文大小写字母,因为英文字母的组合能够包含丰富的内容。而域名中的数字一般都有一定的含义与象征,因此常规域名中的数字一般是连续的。部分恶意域名家族的域名中含有数字,但由于恶意域名没有明确语义,因此其数字一般是非连续的。
恶意域名检测方法:
我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。
毕设帮助,疑难解答,欢迎打扰!