从一个案例来看日志分析的重要性
这是一个真实的案例,发生在2016年一月份,作者做了完整的记录并发表在51cto的博客中,题目为《记录一次linux病毒清除过程》,这篇文章在16年一月中旬的51cto一周热赞排行中占据了好多天的第一。大概的内容是作者的服务器受到了***,被***者植入了***,然后此***不停的对外发起ddos工具,占用了大量的带宽,可见危害还是相当之大。文章中记录了作者是如何手动清除此***的过程,在此不准备阐述如何解决此问题的,详细的解决办法请详见源文章。在这里我想反过来看待这个问题,就是如何能在事前预防此问题,事中时时的发现此问题,如果能提前预知,或者尽早的发现此问题,就可以极大的减少很多损失。
简单介绍一下***过程,文章中没有仔细描述,只能从个人的经验中进行猜测。文中有一句话是我检查了一下WEB日志,没有发现什么异常,查看数据库也都正常,也没有什么错误日志,查看系统日志,也没有看到什么异常,但是系统的登录日志被清除了。从中可以判断一定有***进入了系统,这个***多少有些***的经验,不能算是个新手,因为他删除了完整的登陆日志,这样就可以把自己隐藏起来,比如登录的ip地址等信息,这样就对溯源带来很大的挑战,也许就没有办法溯源了。引起这个问题的主要原因可能有如下几个:1、弱口令,可能被别人扫描到了;2、系统漏洞,也许操作系统等有漏洞没有及时的修复;3、业务逻辑漏洞;4、后门,也有可能是之前的人员故意留了后门在此服务器上。但这些问题大部分在平时的监控中是可以发现的,比如日志监控;性能监控等;这样就可以在事前,事中,甚至事后发现问题。这些工具有很多,大家可以自行查找,下面以笔者熟悉的SeciLog来分析一下如何在第一时间发现问题。
在一个系统中部署集中日志分析系统是非常有必要的,如果发生了像文章中所说的本地日志被清除的情况,还有集中日志系统可以找到当时的日志信息,这样对排查问题就很有帮助,对溯源取证也很有帮助。集中日志收集系统除了集中收集日志外还能做什么呢,还可以时时分析日志,并对此产生告警。
任何的***行为首先的要做事情就是踩点,测试,踩点的作用就是知道这里有一个活的系统,一般通过扫描,dns查询等很容易的知道,这个基本没有办法避免,每天在互联网上都会发生大量的主机扫描等行为。当我们知道了这有个活的机器后下一步要做什么呢,就是端口扫描,弱口令扫描,漏洞扫描等几个步骤,现在很多机器都是云服务,硬件不再自己的控制中,所以很难有效的对此进行防范。但弱口令扫描我们是可以发现并记录的,因为既然是弱口令扫描就会有大量的登录行为,就会产生大量的登录失败的日志。我们首先看一下linux下登录失败日志。
Jan 6 13:11:00 localhost sshd[3258]: Failed password for root from 192.168.21.1 port 53328 ssh3
从日志中我们可以看出登录的时间,进程号,登陆失败的行为,登录的账号,来源ip,登录的端口,协议等信息,可见这些信息是非常丰富的。我们看下日志系统都分析了什么?
从上图中可以看到,日志分析系统中完整的分析处理登录的主要维度,包括登录的源地址,端口,登录的账号,协议,时间,类型,等非常多的有用信息。这就比直接看原始的日志方便了很多。但这还不够,我们不能每天盯着日志不干别的吧。没错,所以当系统发送***的时候能产生一个告警就更方便了,下面就是介绍系统如何产生报警,并减少误报的分析。因为系统很多时候是人登录的,人有时候也会输错密码,如果把每次登陆错误的行为都产生告警,就会产生大量的误报。那怎么样更合理的。笔者认为更合理的方式是,在短时间内登录失败的次数超过阀值,比如在同一个ip在三分钟内有10次以上的登录失败行为,就认为是一个密码猜测***,这种告警是有意义的。当然这个阀值每个人有自己的判断,比如我认为短时间有两次就应该产生告警。下面看一下告警信息。
从上图可以看到,当系统发生了***行为后,系统会自动产生一条告警。而且这条告警可以通过邮件发送出来,如果你邮件和手机做了绑定,就可以在第一时间发现***行为。
这种***的行为还只是还没有成功,但这种行为是值得关注,比如可以封IP的行为,系统也支持自动封IP,但为了保险起见还是手工做比较好。上面的行为是登录未成功的,但很多时候成功的登录行为更应该值得关注,但不能都关注这些行为,笔者认为重点关注在非上班时间和非上班地点登录的行为,这个行为是非常危险的。对这些SeciLog也做了支持。
首先看一下定义:
系统中默认的非上班时间是早上0点到8点和晚上20点到24点,非上班地点的定义主要是IP地址的白名单,就不截图了。
看一下登录成功的日志。
Jan 17 10:34:31 seciv sshd[2836]: Accepted password for tomcat from 172.206.160.155 port 38874 ssh3
日志中同样记录的日志的时间和登录的ip,通过对着两个的判断就可以分析出,非上班时间登录和非上班地点登录。
从中可以看出系统很容易得到非上班地点登录,同理非上班时间也是类似的,在此就不截图了。
当然这些还不是监控的全部,当系统登录后,发生了删除secure,修改了rsyslog.conf文件的等操作,这就更加危险了,系统同时支持敏感文件操作的告警。
从中可以看出当用户编辑了rsyslog.conf文件,系统也会产生告警。
系统还支持系统性能的监控,当系统的某个性能指标超过阀值的时候系统也会产生告警。系统支持cpu、内存、swap、硬盘、网卡流量的监控。
针对《记录一次linux病毒清除过程》的内容我们分析了如何进行预防并时时的发现问题的过程。如果文中的作者能事先部署一套集中日志审计系统,并做好配置。相信可以及时的发现问题,并解决问题,使问题的影响达到最小。
但笔者有个疑惑就是人多人只有在发生问题的时候才回去重视安全,这个时候问题已经发生了,损失已经产生了。我感觉这就是意识问题。只能通过大量的***案例中慢慢的学习,希望此文章能对你产生帮助。感谢阅读。