OC-SVM在ddos攻击中的应用
2017-04-05 21:20
141 查看
基于单类支持向量机的ddos检测应用层
摘要
分布式ddos攻击利用网络协议和服务的复杂性和多样性来进行攻击。这类攻击相比于其他ddos攻击更加难以防止。单类支持向量机只需要正例样本进行训练,适用于异常点检测场景。在这种检测策略下,从正常用户的session中先抽取7个特征,然后用OC SVM训练模型,最后用模型预测。通过仿真实现展示检测方法的数据结果。引言
提出OC主要是解决不平衡分类问题,目的是找到包含最多正例的超球面。基于此观点,OC判别测试点是不是属于正常类。因为只需要正常数据训练,所以对于检测ddos攻击很有效。总结如下:根据攻击用户和正常用户的区别从用户的session中抽取7个特征
通过OC建立的正常用户的浏览模型检测ddos
根据真实网站展示结果
检测模型和算法
检测算法
使用oc建立正常用户模型,然后新session如果脱离了正常用户模型就被检测成反常的。OC算法是通过非线性核函数的手段隐式的将数据从输入空间映射到特征空间。数据映射后,训练数据会被归属于一个类。这样在特征空间中就找到了一个可以将测试数据分割开的边界。在训练之前需要数据预处理,OC算法输入是数据矩阵的数据结构。
⎛⎝⎜⎜⎜⎜⎜⎜X11...Xj1...Xn1...............X1k...Xjk...Xnk...............X1p...Xjp...Xnp⎞⎠⎟⎟⎟⎟⎟⎟
数据矩阵是正常数据集,是一个n行p列的矩阵,有n个样本,p维特征。
用户session产生
对于用户来说,浏览记录是一个请求序列。我们假设客户端IP,两个连续请求间隔小于m(默认是1800)秒认为是相同的session特征选择
在正常用户和攻击者的session之间有许多不同,例如请求率,请求的资源,请求次序,session时间等。根据这些不同,可以选取特征。资源流行度:
在网站中资源有不同的访问频率,这里的资源具有灵活的意义:可以是网页,图片,视频,音频或者文字等。大约10%的网页贡献了80-90%的请求。
定义资源流行度为:
popi=ACiACall
其中,ACi是资源i在一段时间内的访问次数,ACall是所有资源在一段时间内的访问次数。如果A资源的访问次数大于B资源,就说明A的流行度高于B。
转移概率
在一个网站中,两个资源之间的转移概率是不同的。如下公式表达了如何计算转移概率:
Pij=Transi−>jTransi−>all
Transi−>j 代表从资源i到资源j的转移次数,Transi−>all 代表资源i到其他所有资源的转移次数。
历史转移矩阵
历史转移矩阵记录从一个资源到其余所有资源的转移次数,定义如下:
⎛⎝⎜⎜⎜⎜⎜t11...ti1...Xn1...............t1i...tii...Xni...............t1n...tin...Xnn⎞⎠⎟⎟⎟⎟⎟
tij 是资源i到资源j的转移次数。
介绍了如上概念和定义后,介绍OC算法所选择的特征。这些特征都可以从网页服务日志中获取。
1. Nsession : 在1个session中所有的请求数。
session中需要有足够多的请求容量才能抵御ddos攻击
2. POPsession :在一个session内所有请求的平均流行度。
因为简单实现,所以一些ddos使用随机序列发起攻击。随机请求攻击的检测比简单请求一次复杂。研究表明,大部分的资源都是相对的低流行度,随机请求所产生的 POPsession低于正常用户session产生的 POPsession。
3. Psession :session中所有邻近请求的平均转移概率。
对于随机请求攻击,它的请求序列是随机产生的。对比与正常用户的session,攻击session的Psession 通常小于大部分正常session的Psession 。
4. Sizesession :session中所有请求的总大小。
攻击者可能请求例如大视频这种大型资源,就是说虽然是一个简单的请求,但是会消耗很大的带宽。本文认为Sizesession 就是session负载。
5. Dsession:session 的持续时间
在一个session中,从第一次请求到最后一次请求的时间区间。通常,正常用户不会在一个网站上待太长时间。对于隐蔽攻击来说,或许需要较长的时间才能达到攻击效果。
6. replycoden: http状态码:
200 - 服务器成功返回网页
404 - 请求的网页不存在
503 - 服务器超时
统计学上讲,从网站服务器上返回的http请求状态吗有不同的出现频率。通常来说,为了达到更好的攻击效果需要更有效的网站请求。所以攻击session会有更多的200回复码,除非它模仿正常用户session中的代码分布,但反过来这会削弱攻击效果。
7. 动态:动态页面出现次数
正常情况下,动态页面包括数据库的查询或者插入,复杂脚本的计算和其他具有高负载的操作。一些小规模的攻击工具会攻击这类易受损的网页。
检测过程
根据使用正常数据集训练好的OC模型,预测新的session x,如果返回1,判为正常;如果返回-1判为异常,将请求IP加入黑名单。相关文章推荐
- Svm应用尝试(C#写的数字ocr软件LTOCR) _掉了后我找回来了!
- 如何在matlab中添加SVM工具箱以及初次应用
- 算法在文本挖掘中应用流程-svm
- OC_关于protocol的基本应用
- 我所理解的 SVM核函数的应用
- ML—SVM高级应用总结
- SVM的文本分类应用
- SVM Application List:支持向量机SVM的应用列表
- 成员函数指针的应用 之 仿写OC里面UIButton的回调机制(二)
- iOS开发那些事--编写OCUnit测试方法-应用测试方法 推荐
- iOS开发那些事--编写OCUnit测试方法-应用测试方法
- libsvm中OC-SVM 调参问题
- 第04天OC语言(17):获取类对象及类对象应用场景
- (十)OcTree教程二--OcTree在PCL中的应用-空间划分和近邻搜索
- Objective-C中数组对象排序的方法(OC中NSString的常用API的基础应用2)
- Java应用梯度下降求解线性SVM模型参考代码
- OC协议的应用-代理
- OC语言学习21-分类应用
- OC关于NSDate类的方法和应用的总结!(全)
- SVM程序应用