如何保护您的Linux服务器免受GHOST漏洞的影响

来自菜鸟教程
跳转至:导航、​搜索

介绍

2015 年 1 月 27 日,一个名为 GHOST 漏洞的 GNU C 库 (glibc) 漏洞向公众公布。 总之,该漏洞允许远程攻击者通过利用 glibc 的 GetHOST 函数(因此得名)中的缓冲区溢出漏洞来完全控制系统。 与 Shellshock 和 Heartbleed 一样,此漏洞很严重,并影响到许多服务器。

可以在使用 glibc-2.18 之前版本的 GNU C 库的 Linux 系统上利用 GHOST 漏洞。 也就是说,使用从 2.22.17 版本的 unpatched 版本的 glibc 的系统存在风险。 许多 Linux 发行版(包括但不限于以下)可能容易受到 GHOST 的攻击,应进行修补:

  • CentOS 6 和 7
  • Debian 7
  • 红帽企业 Linux 6 和 7
  • Ubuntu 10.04 和 12.04
  • 生命周期结束的 Linux 发行版

强烈建议您更新并重新启动所有受影响的 Linux 服务器。 我们将向您展示如何测试您的系统是否存在漏洞,如果存在漏洞,如何更新 glibc 以修复漏洞。

检查系统漏洞

测试您的服务器是否易受 GHOST 攻击的最简单方法是检查正在使用的 glibc 版本。 我们将介绍如何在 Ubuntu、Debian、CentOS 和 RHEL 中执行此操作。

请注意,静态链接到易受攻击的 glibc 的二进制文件必须重新编译以确保安全 - 此测试不涵盖这些情况,仅涵盖系统的 GNU C 库。

Ubuntu 和 Debian

通过查找 ldd(使用 glibc)的版本来检查 glibc 的版本,如下所示:

ldd --version

输出的第一行将包含 eglibc 的版本,即 Ubuntu 和 Debian 使用的 glibc 的变体。 例如,它可能看起来像这样(此示例中突出显示了版本):

ldd (Ubuntu EGLIBC 2.15-0ubuntu10.7) 2.15
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

如果 eglibc 的版本与此处列出的版本匹配或更新,则您可以免受 GHOST 漏洞的影响:

  • Ubuntu 12.04 LTS:2.15-0ubuntu10.10
  • Ubuntu 10.04 LTS:2.11.1-0ubuntu7.20
  • Debian 7 LTS:2.13-38+deb7u7

如果 eglibc 的版本 比此处列出的 旧,则您的系统易受 GHOST 攻击,应进行更新。

CentOS 和 RHEL

使用 rpm 检查 glibc 版本:

rpm -q glibc

输出应如下所示,包名后跟版本信息:

glibc-2.12-1.132.el6_5.4.x86_64

如果 glibc 的版本与此处列出的版本匹配或更新,则您可以免受 GHOST 漏洞的影响:

  • CentOS 6:glibc-2.12-1.149.el6_6.5
  • CentOS 7:glibc-2.17-55.el7_0.5
  • RHEL 5:glibc-2.5-123.el5_11.1
  • RHEL 6:glibc-2.12-1.149.el6_6.5
  • RHEL 7:glibc-2.17-55.el7_0.5

如果 glibc 的版本 比此处列出的 旧,则您的系统易受 GHOST 攻击,应进行更新。

修复漏洞

修复 GHOST 漏洞最简单的方法是使用默认的包管理器来更新 glibc 的版本。 以下小节介绍了在各种 Linux 发行版上更新 glibc,包括 Ubuntu、Debian、CentOS 和 Red Hat。

APT-GET:Ubuntu / Debian

对于当前支持的 Ubuntu 或 Debian 版本,通过 apt-get dist-upgrade 将所有软件包更新到可用的最新版本:

sudo apt-get update && sudo apt-get dist-upgrade

然后用 y 响应确认提示。

更新完成后,使用以下命令重新启动服务器:

sudo reboot

重新启动是必要的,因为 GNU C 库被许多应用程序使用,必须重新启动才能使用更新的库。

现在按照上一节(检查系统漏洞)中的说明验证您的系统不再易受攻击。

百胜:CentOS / RHEL

通过 yum 将 glibc 更新到可用的最新版本:

sudo yum update glibc

然后用 y 响应确认提示。

更新完成后,使用以下命令重新启动服务器:

sudo reboot

重新启动是必要的,因为 GNU C 库被许多应用程序使用,必须重新启动才能使用更新的库。

现在按照上一节(检查系统漏洞)中的说明验证您的系统不再易受攻击。

结论

确保在所有受影响的 Linux 服务器上更新 glibc。 此外,请务必使用最新的安全更新使您的服务器保持最新状态!