怎么查看我老公手机的微信聊天记录 怎么查看我老公的微信聊天记录

看了兜哥在freebuf上的专栏文章《学点算法搞安全之HMM(上篇)》,大意就是将URL参数进行范化,然后使用hmm算法来进行训练和测试,这里检测的重点是xss,但是带着我自己的疑问认真看了下方的评论,里面提到一个我非常认同的问题这里原先是对相同url的参数进行数据提取和训练,那么我们知道一个网站,可能会有上千上万的页面,对应上千上万的url,那么按照这样的思路可能就真的需要去建立上千上万的模型,这显然是不现实的。那么我们能否将模型范化,去建立一个模型检测

看了兜哥在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。


  • 发表于 2021-04-10 13:00
  • 阅读 ( 365 )
  • 分类:互联网

0 条评论

请先 登录 后评论