LinuxサーバーをGHOSTの脆弱性から保護する方法
序章
2015年1月27日、GHOST脆弱性と呼ばれるGNU Cライブラリ(glibc)の脆弱性が一般に発表されました。 要約すると、この脆弱性により、リモートの攻撃者はglibcの G et HOST 関数(その名前の由来)のバッファオーバーフローバグを悪用して、システムを完全に制御することができます。 ShellshockやHeartbleedと同様に、この脆弱性は深刻であり、多くのサーバーに影響を及ぼします。
GHOSTの脆弱性は、glibc-2.18
より前のバージョンのGNUCライブラリを使用するLinuxシステムで悪用される可能性があります。 つまり、バージョン2.2
から2.17
までのパッチが適用されていないバージョンのglibcを使用するシステムは危険にさらされています。 以下を含むがこれらに限定されない多くのLinuxディストリビューションは、GHOSTに対して潜在的に脆弱であり、パッチを適用する必要があります。
- CentOS 6&7
- Debian 7
- Red Hat Enterprise Linux 6&7
- Ubuntu 10.04&12.04
- 保守終了のLinuxディストリビューション
影響を受けるすべてのLinuxサーバーを更新して再起動することを強くお勧めします。 システムが脆弱であるかどうかをテストする方法と、脆弱である場合は、脆弱性を修正するためにglibcを更新する方法を示します。
システムの脆弱性を確認する
サーバーがGHOSTに対して脆弱であるかどうかをテストする最も簡単な方法は、使用中のglibcのバージョンを確認することです。 Ubuntu、Debian、CentOS、およびRHELでこれを行う方法について説明します。
脆弱なglibcに静的にリンクされているバイナリは、安全にするために再コンパイルする必要があることに注意してください。このテストでは、これらのケースは対象外であり、システムのGNUCライブラリのみが対象です。
UbuntuとDebian
ldd
(glibcを使用)のバージョンを次のように検索して、バージョンglibcを確認します。
ldd --version
出力の最初の行には、UbuntuとDebianが使用するglibcのバリアントであるeglibcのバージョンが含まれます。 たとえば、次のようになります(この例ではバージョンが強調表示されています)。
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のバージョンを更新することです。 次のサブセクションでは、Ubuntu、Debian、CentOS、RedHatなどのさまざまなLinuxディストリビューションでのglibcの更新について説明します。
APT-GET:Ubuntu / Debian
現在サポートされているUbuntuまたはDebianのバージョンについては、すべてのパッケージをapt-get dist-upgrade
から入手できる最新バージョンに更新してください。
sudo apt-get update && sudo apt-get dist-upgrade
次に、確認プロンプトにy
で応答します。
更新が完了したら、次のコマンドを使用してサーバーを再起動します。
sudo reboot
GNU Cライブラリは、更新されたライブラリを使用するために再起動する必要がある多くのアプリケーションで使用されるため、再起動が必要です。
次に、前のセクション(システムの脆弱性の確認)の手順に従って、システムが脆弱でなくなったことを確認します。
YUM:CentOS / RHEL
glibcをyum
から入手できる最新バージョンに更新します。
sudo yum update glibc
次に、確認プロンプトにy
で応答します。
更新が完了したら、次のコマンドを使用してサーバーを再起動します。
sudo reboot
GNU Cライブラリは、更新されたライブラリを使用するために再起動する必要がある多くのアプリケーションで使用されるため、再起動が必要です。
次に、前のセクション(システムの脆弱性の確認)の手順に従って、システムが脆弱でなくなったことを確認します。
結論
影響を受けるすべてのLinuxサーバーでglibcを更新してください。 また、サーバーを最新のセキュリティアップデートで最新の状態に保つようにしてください。