您的位置:首页 > 运维架构 > Shell

2016新年Bash的CVE-2014-6271漏洞修复经历

2016-02-23 22:26 501 查看
2016年到了,有很多新的想法和目标,其中一个就是好好维护我的博客和上线更多的应用。

打开很久都没更新的博客,发现打不开了。以为长时间运行的问题,所以把服务器强制重启了,过会后发现正常了。

过了半天发现,怎么又打不开了呢。真是莫名其妙,难道被人黑了?

于是开始分析阿里云的性能监控发现了一些端倪。

网络和内存状态一直都很正常,CPU的监控有异常,存在很多大波动,长时间CPU比较高。

这明显是被人攻击了嘛。谁会攻击我这个小服务器呢?到底漏洞在什么地方呢?

接下来开始继续分析。幸好开启了云盾服务,可以看到阿里云拦截到的攻击记录。

分析了攻击记录,发现了问题的所在。

其他分类里面虽然攻击很多,但是不是什么大问题,大部分是Web弱密码扫描、phpmyadmin探测和一些其他常规的敏感信息探测。估计是有扫描器在扫描我的网站。需要重点关注的是其中的代码/命令执行漏洞。那接下来我们具体看一下这个攻击特征的内容。

看到了这个我立马想到了当初轰动一时的bash漏洞《心脏流血,Heartbleed Bug》。当初这个漏洞爆出来后,我们立马修复跟踪修复了这个问题并且第一时间出了设备的升级包,通知客户进行设备升级。同时也在我的漏洞扫描产品中增加了这一漏洞扫描规则用于帮助客户对他们的设备进行安全扫描和修复。

也因为这个漏洞,上海公安部第三研究所的网络设备认证多了一项安全扫描的环节(应该是14年去上海过漏洞扫描产品的认证的时候发现的)。当时还遇到了好几个有意思的小插曲(1、买错火车票,本来9点就可以到的,却因为改签延到了下午;2、差点订错酒店;3、其他厂家的设备已扫描就挂,帮忙分析了一下;4、晚上去外滩坐轮渡用手机摄像,结果到对岸发现没按开始;5、在上海公安部第三研究所里面碰到了认识很久却素未蒙面的校友,以前是在安恒的,现在去了阿里云了,听说级别还特别高)。就简单描述一下吧,扩展出来讲的话还是很有意思的。我们回归正题。

看了这个特征,还是很明显的。一个命令执行漏洞,通过Bash漏洞在我的服务器上下载了一个DDOS工具放到tmp目录运行。打开服务器的tm目录,真的发现了那个ddos文件和tmp目录下的一些杂七杂八的文件。果断都删掉。但这个漏洞明显不是《心脏流血,Heartbleed Bug》,百度了一下,发现是《Linux Bash远程可执行漏洞(CVE-2014-6271)》。那接下来就先修复这个漏洞,后面再专门分析这个漏洞的原理和利用方法。

一般这种漏洞阿里云会给出解决方案的,搜了一下果然发现了https://help.aliyun.com/knowledge_detail/5974660.html?pos=1。这个上面有这个漏洞的修复和验证方法。不过阿里云也挺坑的,我的系统是debian6的,上面的deb包地址不存在,下载不了。于是只能问百度了。还是度娘靠谱,一搜就搜到了(http://www.tennfy.com/2541.html)。下载安装了deb包,验证了一下问题果然修复了。

【漏洞检测方法】

漏洞检测命令:env x=’() { :;}; echo vulnerable’ bash -c “echo this is a test”

修复前

输出:

vulnerable

this is a test

使用修补方案修复后

bash: warning: x: ignoring function definition attempt

bash: error importing function definition for `x’

this is a test

特别提示:该修复不会有任何影响,如果您的脚本使用以上方式定义环境变量,修复后您的脚本执行会报错。

今天就先到这里吧,先救命后治病。后面我们再好好分析一下这个漏洞。不过通过这件事我后面还需要写一个脚本好好分析一下我的apache日志,看看还有哪些后门或者不知道的漏洞、木马。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: