linux最新安全漏洞 (linux常见漏洞安全性)

编者按:网络空间安全近年来日渐成为公众关注的焦点,中科院之声特意邀请业内专家“大东”开设“大东话安全”专栏,以《安天威胁通缉令2016扑克牌》为线索,一张扑克牌对应一个网络病毒,讲述54个不同的网络病毒和网络安全故事,以及如何进行针对性防御的建议。

一、病毒通缉令

linux系统高危漏洞,linux高危漏洞说明

小白:燃烧吧!小宇宙!就算把我烧成骷髅!那我也是帅骷髅~~~

大东:小白兴奋个啥劲儿呢。

小白:大东东,你看这张牌,它的内心独白一定是这样的!

大东:咱们小白学傻了吧。

小白:好吧,大东东快讲讲,这是啥。

大东:这是幽灵。它的名字是“CVE-2015-0235”,这个漏洞可以允许攻击者远程获取操作系统的最高控制权限,影响大部分的 Linux 操作系统。

小白:哦,这么厉害……

二、 Linux 漏洞

大东:小白啊,你上次安装 Linux 系统是什么时候来着?

小白:大概…两周前?

大东:当时为什么要选择 Linux 系统?

小白:因为我觉得使用 Linux 操作系统很帅啊,操作只要用一条命令就可以解决,简直装逼神器。而且现在 Windows 总是今天一个病毒明天一个漏洞的,用着觉得很心慌,但我就没有听过 Linux 上有过什么病毒的~

大东:首先,我要说的是安全是相对的。其次,你知道为啥你觉得 Linux 上不会有漏洞么?

小白:为什么?

大东:那是因为你不知道它不安全的地方在哪儿啊。

小白:所以 Linux 其实……

大东:是的。想了解一下这个漏洞么?

小白:我热爱学习!所以大东东你说吧。

大东:行~首先需要说的是在 Linux 上的一个运行库——“glibc”。glibc 是一个 C 语言运行库,是 Linux 系统中最底层的接口,几乎其它任何运行库都依赖于它。 glibc 除了封装 Linux 操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

linux系统高危漏洞,linux高危漏洞说明

glibc库

小白:噢~就是一个操作系统和用户之间的中间人。

大东:glibc 囊括了几乎所有的 UNIX 通行的标准,可以想象其内容包罗万象,像一个支架一般撑起整个操作系统。可以算是 Linux 操作系统的基石。

小白:所以这个基石出问题了么?

大东:2015年年初,Qualys 公司在进行内部代码审核时,发现了一个在 glibc 中某个函数导致的缓冲区溢出漏洞。

小白:缓冲区溢出漏洞,这个是啥?

大东:计算机程序一般都会使用到一些内存,这些内存或是程序内部使用,或是存放用户的输入数据,这样的内存一般称作缓冲区。溢出则是指盛放的东西超出容器容量而溢出来了,在计算机程序中,就是数据使用到了被分配内存空间之外的内存空间。

小白:噢…那缓冲区溢出就是存放用户输入数据的地方满了?

大东:缓冲区溢出,简单的说就是计算机对接收的输入数据没有进行有效的检测,向缓冲区内填充数据时超过了缓冲区本身的容量,而导致数据溢出到被分配空间之外的内存空间,溢出的数据覆盖了其他内存空间的数据。

linux系统高危漏洞,linux高危漏洞说明

输入数据过大导致内存溢出

小白:那缓冲区溢出的漏洞会造成什么危害呢?

大东:缓冲区溢出的漏洞的话,比较轻的那种就是会导致程序崩溃。假设你在玩一个游戏,你玩着玩着游戏突然蹦一个窗口,告诉你游戏停止工作了,然而你都没有保存,那怎么办?

linux系统高危漏洞,linux高危漏洞说明

小白:no!!那严重的会怎么样?

大东:缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址。带来的危害一种是程序崩溃导致拒绝服务,另一种就是跳转并且执行一段恶意代码,比如得到系统权限!

我们这次说的存在于 glibc 库中的缓冲区溢出漏洞就是属于后者的,通过操作库中的函数,将可能产生一个堆上的缓冲区溢出,本地和远程均可行。

小白:那岂不是很危险?

大东:Qualys公司的工作人员后来开发了一套完整的针对 Exim 邮件服务器的攻击 PoC(观点验证程序),测试中发现可以绕过所有现有保护,且通杀32位和64位的机器。

小白:看来 Linux 也不好混啊……

三、幽灵现身

小白:那出了这个问题以后,官方有啥动作吗?

大东:第一个受攻击版本是 glibc-2.2,发布于2000年11月10日,也是相当有年头了,这个漏洞其实在2013年5月21日就已经被修复了,也就是在glibc-2.17和 glibc-2.18的发行版之间。不幸的是,当时它并没有被认为是一个安全威胁,导致了现在的大多数稳定版和长期支持版本依然暴露在漏洞影响下。

小白:所以这个库的维护人员对他们这个漏洞是不是高危的心里没有一点数咯?

大东:但是也不用担心,因为 Qualys 已经在网上公开了 POC 代码,可以检测是否存在漏洞。

小白:这个,咋用呀?

大东:先用 root 登录系统,*载下** ghost.c 代码,然后在终端执行 #gcc ghost.c –o ghost 命令编译文件,再使用 #./ghost命令执行测试。如果结果中显示vulnerable,表示存在漏洞,显示not vulnerable,表示不存在漏洞,无需进行补丁修复。

linux系统高危漏洞,linux高危漏洞说明

ghost 测试

小白:哇,这个 Qualys 还是挺负责的嘛~

大东:还有一种方法是查看系统中的 glib c库的版本,版本在 Glibc 2.2 ~ Glibc 2.18范围内存在漏洞,对于 centOS 执行 #rpm -qa|grep glibc 而对于 Ubuntu 就执行 #dpkg -l|grep libc6 就好了。

小白:我对于 Linux 这种可以使用终端执行命令的操作系统还是很膜拜的~~

大东:所以知道了系统中是否存在漏洞了以后,我们就可以针对性地修复漏洞啦,对于 Centos/RHEL/5,6 的升级方法就是终端执行 #yum updateglibc。

linux系统高危漏洞,linux高危漏洞说明

Centos/RHEL/ 5,6 glibc升级

小白:一条命令就能修复,简直太友好~~

大东:而对于 ubuntu10.04、12.04 还有 Debian 等系统,在终端中执行 #sudo apt-get update 或者 #sudo apt-getdist-upgrade 就可以修复啦。

linux系统高危漏洞,linux高危漏洞说明

ubuntu10/debain glibc升级

小白:这样就完了,真是棒。

大东:别忘了后期检查的工作,升级完后,建议重启服务器,然后执行 #./ghost测试漏洞是否还存在。

linux系统高危漏洞,linux高危漏洞说明

修复成功

小白:得嘞~现在看来 Linux 系统也不安全。

大东:安全都是相对的,没有绝对的安全。

四、话说漫威

大东:你看,这幽灵像不像章鱼博士。

小白:哪个章鱼?

大东:漫威世界反派之一,他是个科学家,能力是可以操作后背上的四只强而有力的电子机械手臂。

linux系统高危漏洞,linux高危漏洞说明

章鱼博士

小白:看起来像是个科学怪人……

大东:章鱼博士专注于基因变异研究,蜘蛛侠、绿魔、蜥蜴博士等都是来自他制作的基因药剂,还组建了罪恶六人组向蜘蛛侠复仇。

小白:嗯…他研发的成果促成了其他英雄的诞生,这点倒是有点儿像是 glibc 那个漏洞嘛。

大东:没想到小白也能 get 到我的点。

小白:我怎么一点都不想 get 呢……