网站运营,从一条日志说起

    网站运营的过程中需要关注的点很多,包括业务层面的,比如活跃用户数,刷单用户,新增用户数,恶意注册用户等;也包括安全层面,包括恶意密码猜测,cc攻击,sql注入,webshell,网站篡改,dns劫持,网站托管机器的安全等;也包括运营层面,包括网站是否可用,网络连接是否顺畅,响应是否迅速等

    从上面可以看出,想完全运营好一个网站,关注的方方面面还是很多的,那应该从哪里开始呢,我们可以从一条日志中来开始分析网站中遇到的问题。我们先来看一条日志:

111.88.155.166 - - [17/Dec/2015:13:06:05 +0800] "POST /login HTTP/1.1" 302 0 "http://secilog.abc.com/login?langType=zh" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"

这是一条很普通的nginx中记录的日志,日志的详细内容可查阅相关文档。这里简单说明一下主要的内容。从日志中可以得到访问者的IP,访问的时间,时区,请求的方式,请求页面,返回状态,来源等等信息。仔细一看请求的页面/login就可以猜到只是一个登录请求页面。这条日志的重要含义是登录成功。

    从这条日志怎么和我们关注的指标对应的,我们下面接着分析。

    活跃用户数,活跃用户说一般是指同一天有多少老用户登录过系统。这个时候就会发现,刚才的登录日志中如果放到一天的统计中就可以知道,一天内有多少次成功等登录的次数了,但细心的用户可以发现,不准确,因为用户可以重复登陆,这就会造成重复,说的很对,那我们在细化一下,我们换个角度分析,一天内登录成功的不重复ip的数量。是不是更接近真实的结果呢,我感觉从量级和趋势上已经能说明问题了。

    刷单用户这个没有标准的说法,我的理解是是同一个人为了某种目的大量注册了很多账号后,然后进行某种操作比如刷单等。这种行为很难100%杜绝,但从这条日志中可以得出一些有意思的发现。如果同一个ip一天登录成功次数过多,比如一天登录了一百次,每次间隔的时间都差不多,说明这个人有刷单嫌疑,可以先找出来然后再进一步的分析。

    新增用户数的含义是一天内有多少注册成功的用户,这个时候可以类比登录日志,只要把登录日志的url换成注册日志的url就可以发现一天新增的用户数是多少。

    同理恶意注册用户数也是类似的,一天同一个ip下注册成功的次数非常多。此ip恶意注册的可能性就很大。当然还需要进一步的分析,比如ip是否是一个大楼里面的出口ip,注册后此用户做了什么来判断。

    从上面的分析可以看出举一反三,可从日志中可以看出运营中的很多内容,比如浏览商品的排行,用户访问时间,用户来源等等。

    下面我们还从这条日志中分析一下安全的行为:

111.88.155.166 - - [17/Dec/2015:13:06:05 +0800] "POST /login HTTP/1.1" 200 0 "http://secilog.abc.com/login?langType=zh" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"

这还是一条登录日志,唯一和上面登录日志不一样的地方是服务器返回值。一个是302,一个是200.有什么区别的,302的意思是服务器进行过页面跳转,200还是返回此页面,从中就可以理解,这是一条登录失败的记录。很好,有这条记录就可以发现很多的安全行为。

    恶意密码猜测,可以理解同一段时间,用户大量的登录失败,返回了很多登录失败记录。从这条定义中就可以发现规律,我们把时间放大到5分钟,当5分钟内,同一个ip有超过20次以上的登录失败行为,基本上可以断定在进行密码猜测。当密码猜测有自动的也有手动的,如果区分呢。我们看一下这个内容"http://secilog.abc.com/login?langType=zh",这个含义是post提交的来源是"http://secilog.abc.com/login?langType=zh"这个网页,也就是从这个网页发起的。如果这个地址不对,极有可能是用工具来进行暴力破解。  

    同理cc攻击就更容易理解了,同一个ip在很短的时间内访问了大量的请求,基本上可以认为是cc攻击。其他的webshell,sql注入等也可以从日志中分析出部分来,但不是太准确,因为日志中指记录get请求的参数,post参数正常是不记录的。

    当然从web日志中得到的运营层面的信息相对少点,但还是可以从历史的统计中发现一些内容,比如今天的日志特别少,比往常要少很多,这时候就要留意下网站是否有问题,当然也排查是特殊节日带来的,这种很容易的分析。

    总之,光从web日志中可以分析出大量的有用信息。当然如果结合其他日志,比如主机的日志,防篡改的日志,监控的日志等,基本上可以满足部分或者全部大多数用户的业务运维安全的要求。

    以上内容为作者原创,如需转载一定要保留用户信息:赛克蓝德版权所有,感谢支持。后面会结合产品SeciLog内容进一步的分析如何结合产品怎么分析以上行为甚至更多的行为。

你可能感兴趣的:(日志分析,赛克蓝德,secilog,secisland)