这是一个真实的案例,发生在2016年一月份,做者作了完整的记录并发表在51cto的博客中,题目为《记录一次linux病毒清除过程》,这篇文章在16年一月中旬的51cto一周热赞排行中占据了好多天的第一。大概的内容是做者的服务器受到了入侵,被入侵者植入了木马,而后此木马不停的对外发起ddos工具,占用了大量的带宽,可见危害仍是至关之大。文章中记录了做者是如何手动清除此木马的过程,在此不许备阐述如何解决此问题的,详细的解决办法请详见源文章。在这里我想反过来看待这个问题,就是如何能在事前预防此问题,事中时时的发现此问题,若是能提早预知,或者尽早的发现此问题,就能够极大的减小不少损失。linux
简单介绍一下入侵过程,文章中没有仔细描述,只能从我的的经验中进行猜想。文中有一句话是我检查了一下WEB日志,没有发现什么异常,查看数据库也都正常,也没有什么错误日志,查看系统日志,也没有看到什么异常,可是系统的登陆日志被清除了。从中能够判断必定有黑客进入了系统,这个黑客多少有些入侵的经验,不能算是个新手,由于他删除了完整的登录日志,这样就能够把本身隐藏起来,好比登陆的ip地址等信息,这样就对溯源带来很大的挑战,也许就没有办法溯源了。引发这个问题的主要缘由可能有以下几个:一、弱口令,可能被别人扫描到了;二、系统漏洞,也许操做系统等有漏洞没有及时的修复;三、业务逻辑漏洞;四、后门,也有多是以前的人员故意留了后门在此服务器上。但这些问题大部分在平时的监控中是能够发现的,好比日志监控;性能监控等;这样就能够在事前,事中,甚至过后发现问题。这些工具备不少,你们能够自行查找,下面以笔者熟悉的SeciLog来分析一下如何在第一时间发现问题。数据库
在一个系统中部署集中日志分析系统是很是有必要的,若是发生了像文章中所说的本地日志被清除的状况,还有集中日志系统能够找到当时的日志信息,这样对排查问题就颇有帮助,对溯源取证也颇有帮助。集中日志收集系统除了集中收集日志外还能作什么呢,还能够时时分析日志,并对此产生告警。tomcat
任何的入侵行为首先的要作事情就是踩点,测试,踩点的做用就是知道这里有一个活的系统,通常经过扫描,dns查询等很容易的知道,这个基本没有办法避免,天天在互联网上都会发生大量的主机扫描等行为。当咱们知道了这有个活的机器后下一步要作什么呢,就是端口扫描,弱口令扫描,漏洞扫描等几个步骤,如今不少机器都是云服务,硬件再也不本身的控制中,因此很难有效的对此进行防范。但弱口令扫描咱们是能够发现并记录的,由于既然是弱口令扫描就会有大量的登陆行为,就会产生大量的登陆失败的日志。咱们首先看一下linux下登陆失败日志。安全
Jan 6 13:11:00 localhost sshd[3258]: Failed password for root from 192.168.21.1 port 53328 ssh2服务器
从日志中咱们能够看出登陆的时间,进程号,登录失败的行为,登陆的帐号,来源ip,登陆的端口,协议等信息,可见这些信息是很是丰富的。咱们看下日志系统都分析了什么?并发

从上图中能够看到,日志分析系统中完整的分析处理登陆的主要维度,包括登陆的源地址,端口,登陆的帐号,协议,时间,类型,等很是多的有用信息。这就比直接看原始的日志方便了不少。但这还不够,咱们不能天天盯着日志不干别的吧。没错,因此当系统发送攻击的时候能产生一个告警就更方便了,下面就是介绍系统如何产生报警,并减小误报的分析。由于系统不少时候是人登陆的,人有时候也会输错密码,若是把每次登录错误的行为都产生告警,就会产生大量的误报。那怎么样更合理的。笔者认为更合理的方式是,在短期内登陆失败的次数超过阀值,好比在同一个ip在三分钟内有10次以上的登陆失败行为,就认为是一个密码猜想攻击,这种告警是有意义的。固然这个阀值每一个人有本身的判断,好比我认为短期有两次就应该产生告警。下面看一下告警信息。ssh

从上图能够看到,当系统发生了攻击行为后,系统会自动产生一条告警。并且这条告警能够经过邮件发送出来,若是你邮件和手机作了绑定,就能够在第一时间发现攻击行为。工具
这种攻击的行为还只是尚未成功,但这种行为是值得关注,好比能够封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 ssh2
日志中一样记录的日志的时间和登陆的ip,经过对着两个的判断就能够分析出,非上班时间登陆和非上班地点登陆。

从中能够看出系统很容易获得非上班地点登陆,同理非上班时间也是相似的,在此就不截图了。
固然这些还不是监控的所有,当系统登陆后,发生了删除secure,修改了rsyslog.conf文件的等操做,这就更加危险了,系统同时支持敏感文件操做的告警。

从中能够看出当用户编辑了rsyslog.conf文件,系统也会产生告警。
系统还支持系统性能的监控,当系统的某个性能指标超过阀值的时候系统也会产生告警。系统支持cpu、内存、swap、硬盘、网卡流量的监控。

针对《记录一次linux病毒清除过程》的内容咱们分析了如何进行预防并时时的发现问题的过程。若是文中的做者能事先部署一套集中日志审计系统,并作好配置。相信能够及时的发现问题,并解决问题,使问题的影响达到最小。
但笔者有个疑惑就是人多人只有在发生问题的时候才回去重视安全,这个时候问题已经发生了,损失已经产生了。我感受这就是意识问题。只能经过大量的入侵案例中慢慢的学习,但愿此文章能对你产生帮助。
感谢阅读。