看了兜哥在freebuf上的专栏文章《学点算法搞安全之HMM(上篇)》,大意就是将URL参数进行范化,然后使用hmm算法来进行训练和测试,这里检测的重点是xss,但是带着我自己的疑问认真看了下方的评论,里面提到一个我非常认同的问题
这里原先是对相同url的参数进行数据提取和训练,那么我们知道一个网站,可能会有上千上万的页面,对应上千上万的url,那么按照这样的思路可能就真的需要去建立上千上万的模型,这显然是不现实的。
那么我们能否将模型范化,去建立一个模型检测一个业务网站的所有的url以及所有url中的异常参数?带着这样的疑问继续找文章,翻到了先知的《Web日志安全分析浅谈》,其中检测的原理就比较硬核了,通过编写不同的攻击规则来表示不同类型的攻击类型,但是这样会出现一个问题,那就是在真实环境中,你并不知道攻击payload到底长什么样,因此也就可能会造成0day的直接放行和变种payload的绕过。在文末jeary也提出了自己的思考,这也是本文的出发点。当然在文中jeary并没有给出具体 *** ,因此笔者凭着自己对日志分析的理解开始尝试实现这样一套基于访问日志的异常访问检测。
这里我之一个想到的思想就是聚类算法,正常的请求总是相似的,异常请求却各有千秋,那么如果我们能够通过无监督聚类算法来将正常请求给聚类到一块,那么异常请求就会自己凸显出来,打上异常的标签。理论上可行,下面开始实践。
2 数据清洗
这里的数据来源很简单,我从自己的vps上把博客的访问日志给拖下来了,大概是800M,数据量在480万条左右,既然想做的是通用的业务模型检测,那么这里拿博客日志或者电商日志数据,从理论上来说都没有太大的差别,这是因为虽然业务模型不一样,但是每一个业务模型都有一套自己的访问序列,也就是说基于博客日志的聚类可能是这样的分布,但是基于电商日志的聚类可能是那样的分布,本质上来说他们并没有区别,聚类只是为了凸显异常请求,所以对数据集来源上,思路上并没有觉得有什么问题。
先来看下博客的日志数据
这里用的国外某家的cdn,ip好像都是美国ip,但是这里是针对url参数进行检测,也没想着做溯源,所以这里ip暂不考虑,重点是url参数,这里一开始心比较大,在检测的模型中加入了访问请求方式(GET/POST)和访问状态码(200/302/404等),后来发现其实这两项其实没有什么必要,这是因为如果是异常请求,比如sql注入、xss等攻击,访问请求方式和状态码并不会改变其异常的本质,也就是说无论是GET还是POST,还是说200状态或者404状态,这个请求是实际存在的异常访问,所以我们只需要将关注的重点放在url请求即可,其中包含url的path和url的param。
临近年关,工作压力辣么大,大家是不是应该手下留情点啊,让小编也轻松两天能在上班的时候耍耍《守望先锋》什么的(不是,总编您听我说,我的意思是想咱们的公众号来点新鲜的内容,不要整天系统系统啥的,太技术流)...
yy上怎么找黑客 1、找客单先在微软中国安全响应中心工作过,yy上接单群聊热血青黑客接单春。极品公子,不为过,黑客分类学习法的黑客接单主线。数据库名称建议使用,QQ表情以及系统设置全没有变,使用第三方...
互联网时代,人们对个人信息安全及软件安全非常关注。如果常用软件出现安全漏洞,将有可能给个人或企业带来巨大的损失。据悉,近日一些用户收到了来自微软电子邮件,被告知Outlook的网页邮箱服务遭到了黑客的...
前言 近期,安天CERT(安全研究与应急处理中心)接收到来自客户反映的收到自己邮件地址发送给自己的恐吓邮件,勒索比特币的事件,经分析发现这是自10月份以来新的诈骗手法。 一、概述 由于邮件信头的...
近期,据某推特用户揭露,微软必应搜索引擎含恶意广告,推广虚假的谷歌Chrome网址,在微软将其移除前,少数用户已看到这些广告。 据该推特用户发表的报告可知,必应一直在提供虚假、恶意的谷歌Chro...
21世纪是一个通信网络急速发展的时代,手机、电脑和互联网已经离不开我们生活。而在电脑系统中,一直有一个系统处于一个霸主的地位上,因为几乎没有电脑不用他的系统。它就是微软公司,我们所使用的最常用的电脑系...