DDos攻击,使用深度学习中 栈式自编码的算法
转自:http://www.airghc.top/2016/11/10/Dection-DDos/
最近研究了一篇论文,关于检测DDos攻击,使用了深度学习中 栈式自编码的算法,现在简要介绍一下内容
论文下载
DDOS: Distributed Denial of Service(分布式拒绝服务)
Purpose:
disrupting transactions and access to databases
The attack on the application layer can disrupt services such as the retrieval of information or
search function[4] as well as web browser function, email services and photo applications
Accompanies:
Usually The attack had been carried out in two stages.First, Transport layer DDos attack was
carried out to get access on to the web server In the second stage an AL-DDos attack was
launched.
Difference:
以去银行办业务举例:
网络层 ddos 是让去往银行的道路交通变得拥堵,无法使正真要去银行的人到达;常利用协议为网络层的,
如 tcp(利用三次握手的响应等待及电脑 tcp 连接数限制)等
应用层 ddos 则是在到达银行后通过增办、询问业务等等各种“合法要求”来消耗银行的业务资源,如利用
http(查看所有网页、占用资源大的网页如:视频等或让网站处理复杂数据如:校验、计算等)
两者本质都是消耗资源,使服务器无法为真实用户提供服务
Mitigation 缓和
hijacked 被劫持,被绑架
1 很严重,检测的难度很大,很难预先阻止,不同的几种 ddos 攻击类型
2 相关的工作,介绍了目前基于模式识别的检测方法,主要分成两类,序列化模式识别和统计模式识别,
同时说明了目前方法的缺陷
3 所有已经存在的方法不能检测所有类型的 al-ddos 攻击,因为很少特征能够用于分类正常流量和攻击流
量,所以作者使用了深度学习的方法进行特征学习,从有限的样本中得到更多的抽象特征,本论文使用了
栈式自编码的算法进行特征学习
4 目标方法先不说,等后面详细介绍
5 结论 经过统计结果得到方法的正确率达到了 98.99%
Three types:
Session flooding: the attacker sends a session connection request at a huge rate than benign
user
Request flooding: in on session, the attacker make a huge number of requests than benign
user
Asymmetric Attack: the attacker makes requests with very high workloads such as
downloading of big files or response to some database intensive query
Sequential pattern recognition:
HsMM: Hidden Semi Markov Model (隐半马尔可夫模型)描述正常网页用户的浏览习惯从合法用户所做
出的请求序列中学习得到,从而预测合法的用户要获取一个页面所做出的一些序列化请求顺序,通过计算
正常用户所做行为的熵当做一个参数去测量用户的合法性
Random walk graph:创建正常用户的随机行走图,通过使用雅可比行列式测量待检测的用户行为和刚才
的随机行走图之间的相似程度来判断合法性
Statistical pattern recognition:
Trust Management: 通过访问用户的 ip 地址历史记录,分配给用户信任等级,如果用户在历史记录中表
现良好,那么就会分配给他更高的信任等级Hierarchical Clustering(分层群聚):检测会话泛洪攻击有四个特征
单次会话中平均请求对象大小
请求速度
会话中对象的访问频率
平均转换概率
RFV: 计算正常 traffic 和攻击 traffic 的熵的不同来检测 AL-DDoS 攻击
AutoEncoder:
Deep Learning 最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层
次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每
一层中的权重。自然地,我们就得到了输入 I 的几种不同表示(每一层代表一种表示),这些表示就是特
征。自动编码器就是一种尽可能复现输入信号的神经网络。
如上图,我们将 input 输入一个 encoder 编码器,就会得到一个 code,这个 code 也就是输入的一个表
示,那么我们怎么知道这个 code 表示的就是 input 呢?我们加一个 decoder 解码器,这时候 decoder
就会输出一个信息,那么如果输出的这个信息和一开始的输入信号 input 是很像的(理想情况下就是一样
的),那很明显,我们就有理由相信这个 code 是靠谱的。所以,我们就通过调整 encoder 和 decoder
的参数,使得重构误差最小,这时候我们就得到了输入 input 信号的第一个表示了,也就是编码 code 了。
因为是无标签数据,所以误差的来源就是直接重构后与原输入相比得到。
那上面我们就得到第一层的 code,我们的重构误差最小让我们相信这个 code 就是原输入信号的良好表达
了,或者牵强点说,它和原信号是一模一样的(表达不一样,反映的是一个东西)。那第二层和第一层的
训练方式就没有差别了,我们将第一层输出的 code 当成第二层的输入信号,同样最小化重构误差,就会
得到第二层的参数,并且得到第二层输入的 code,也就是原输入信息的第二个表达了。其他层就同样的
方法炮制就行了
Stacked autoencoder
DDos攻击,使用深度学习中 栈式自编码的算法的更多相关文章
- 深度学习中交叉熵和KL散度和最大似然估计之间的关系
机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...
- zz详解深度学习中的Normalization,BN/LN/WN
详解深度学习中的Normalization,BN/LN/WN 讲得是相当之透彻清晰了 深度神经网络模型训练之难众所周知,其中一个重要的现象就是 Internal Covariate Shift. Ba ...
- 深度学习初探——符号式编程、框架、TensorFlow
一.命令式编程(imperative)和符号式编程(symblic) 命令式: import numpy as np a = np.ones(10) b = np.ones(10) * 2 c = b ...
- 深度学习中常见的 Normlization 及权重初始化相关知识(原理及公式推导)
Batch Normlization(BN) 为什么要进行 BN 防止深度神经网络,每一层得参数更新会导致上层的输入数据发生变化,通过层层叠加,高层的输入分布变化会十分剧烈,这就使得高层需要不断去重新 ...
- 深度学习中的Data Augmentation方法(转)基于keras
在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augm ...
- 深度学习中优化【Normalization】
深度学习中优化操作: dropout l1, l2正则化 momentum normalization 1.为什么Normalization? 深度神经网络模型的训练为什么会很困难?其中一个重 ...
- 深度学习中dropout策略的理解
现在有空整理一下关于深度学习中怎么加入dropout方法来防止测试过程的过拟合现象. 首先了解一下dropout的实现原理: 这些理论的解释在百度上有很多.... 这里重点记录一下怎么实现这一技术 参 ...
- 关于深度学习中的batch_size
5.4.1 关于深度学习中的batch_size 举个例子: 例如,假设您有1050个训练样本,并且您希望设置batch_size等于100.该算法从训练数据集中获取前100个样本(从第1到第100个 ...
- 深度学习中Dropout原理解析
1. Dropout简介 1.1 Dropout出现的原因 在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象. 在训练神经网络的时候经常会遇到过拟合的问题 ...
随机推荐
- oracle从入门到精通复习笔记续集之PL/SQL(轻量版)
复习内容: PL/SQL的基本语法.记录类型.流程控制.游标的使用. 异常处理机制.存储函数/存储过程.触发器. 为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 为了要有输出的结 ...
- 能够附加图片的标签控件iOS项目源码
这个源码案例是能够附加图片的标签控件,源码JTImageLabel,JTImageLabel能够附加图片的标签Label控件,图片可以随意更换.位置也能够很好的控制.效果图: <ignore_j ...
- SQL Server之十大存储过程
下面介绍十大不同类型存储过程. 用户自定义存储过程 . 创建语法 create proc | procedure pro_name [{@参数数据类型} [=默认值] [output], {@参数数据 ...
- 【C++】颜色的设置
1.改变整个控制台的颜色用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号.各颜色代码如下: 0=黑色 1=蓝色 2=绿色 3=湖蓝色 ...
- 【汇编】MASM6.15几个简单的汇编程序
/***************通过调用(INT 21H)表中的01h号功能号从键盘输入一个字符并回显到视频显示器上*****************/ DATAS SEGMENT ;此处输入数据段代 ...
- Arduino 9g舵机操作
一.接线原理图 一.实物图 三.事例代码 从0转180度,再从180转到0度
- H3C交换机配置学习随笔
1.交换机配置VLAN vlan 创建VLAN: <h3c>system-view [h3c]vlan 10 删除ID为10的vlan:undo vlan 10 注:任何型号的交换机,都支 ...
- Selenium三种等待的使用方式
在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果你不做任何处理的话,代码会由于没有找到元素,而报错.这时我们就要用到wait(等待),而在Selenium中,我们可以用到一共三种等待, ...
- python打印日历
#未优化的代码 1 #输出日历 def print_calendar(year,month,date = 1): month_dict = {':'July', ':'December'} #数字月份 ...
- 50.常用的query查询方式
主要知识点 match all match multi match range query term query terms query exist query 1.match all ...