linux 危険なglibcのセキュリティ対応 centos redhatの場合 (CVE-2015-7547)

2017/04/10 CentOS, Linux

linuxCVE-2015-7547
Linuxを利用している環境は多いと思います。クラウドやVPSなどでも手軽に利用できることから、以前より多くの環境に導入されています。そんなLinuxですが、今月に入り、大きなセキュリティホールが重要なライブラリであるglibcに見つかりました(CVE-2015-7547)。

対処レベルが「緊急」の為、早速、自社のサーバーに対して対応を行いました。まだ対応を行っていないサーバーも多いかと思いますので、glibcの脆弱性 CVE-2015-7547への具体的な対応方法を紹介していきます。

スポンサーリンク

1.脆弱性の内容

脆弱性の内容は詳細はJPCERTのCVE-2015-7547に関するページ「glibc ライブラリの脆弱性 (CVE-2015-7547) に関する注意喚起」によると

glibc ライブラリにはバッファオーバーフローの脆弱性 (CVE-2015-7547) があります。本脆弱性を使用された場合、遠隔の第三者によって、任意のコードを実行されたり、サービス運用妨害 (DoS) 攻撃が行われたりするなどの可能性があります

とのこと。
遠隔の第三者によって、任意のコードが実行されるという内容から、かなり危険な脆弱性と分かります。
脆弱性の対象となるglibcのバージョンは、2.9 から 2.22 まで。脆弱性の詳細については、JVNのサイト「JVNVU#97236594 glibc にバッファオーバーフローの脆弱性」に詳しく記載されていますが、ここ最近のLinuxディストリビューション殆どが合致しています。
具体的には、以下のディストリビューションとバージョンが脆弱性をもつglibcを利用しており、脆弱性に合致するようです。

– RedHat
– Red Hat Enterprise Linux Server EUS (v. 6.6)
– Red Hat Enterprise Linux Server AUS (v. 6.5)
– Red Hat Enterprise Linux Server AUS (v. 6.4)
– Red Hat Enterprise Linux Server AUS (v. 6.2)
– Red Hat Enterprise Linux Server EUS (v. 7.1)
– Red Hat Enterprise Linux version 6
– Red Hat Enterprise Linux version 7
– CentOS
– CentOS version 6
– CentOS version 7
– Debian
– squeeze
– wheezy
– jessie
– Ubuntu
– Ubuntu 15.10
– Ubuntu 14.04 LTS
– Ubuntu 12.04 LTS

本記事では、CentOSのversion 6/7を利用している環境を前提として、手順を記載していきます。
Redhatでもほぼ、同様の手順で対応が可能ですので、参考にして頂ければ幸いです。

2.対応したglibcのバージョン

CentOSのフォーラム「CVE-2015-7547 glibc fix」を見ると、CentOSで脆弱性 CVE-2015-7547へ対応するためには、glibc-2.12-1.166.el6_7.7.x86_64の適用が必要になるようです。(x84_64はOSが64bitの場合。)

3.glibcのバージョンアップ

ターゲットとなるバージョンが分かったところで、バージョンアップの具体的な手順について記載していきます。
CentOS、Redhatの場合、yumコマンドで実行します。yumコマンドでのアップデートはインターネットへ
接続している環境が前提となります。ここではyumコマンドが利用できる前提で進めていきます。
(Redhatは有償のディストリビューションのため、Redhat Networkの登録が行われていないと、yumコマンドが利用できません。「redhat networkをRHN ClassicからRed Hat Subscription Managementへ変更する」を参考に、redhat networkへ登録を行って下さい。)

スポンサーリンク

3-1.現バージョンの確認

まず、現状のglibcパッケージのバージョン確認を行います。パッケージのバージョン確認はyumコマンド、もしくはrpmコマンドにて行います。
rpmコマンドの場合

yumコマンドの場合

上記の場合、glibcが名前に含まれるパッケージがシステムに4つインストールされており、全てのバージョンが 2.12-1.166.el6_7.3であることが分かります。対策済みのバージョンは glibc-2.12-1.166.el6_7.7 ですので、バージョンアップが必要なことが分かりました。

次に、yum check-updateコマンドで、glibcの2.12-1.166.el6_7.7がアップデート対象として表示されるかを確認します。

上記の結果から、2.12-1.166.el6_7.7がバージョンアップ後のバージョンであることが確認できました。

3-2.glibcのバージョンアップ

yumコマンドでパッケージのバージョンをアップデートするためには、システムの管理者 (root)へ移行する必要があります。suコマンドで、管理者へ移行します。

管理者へ移行するとプロンプトが$から#になります。
この状態で、yum updateコマンドを実行してglibcパッケージをアップデートします。
glibc以外のパッケージもアップデートしたい場合は yum updateだけ(パッケージ名の指定なし)を実行すると、全てのパッケージがアップデートされます。本記事ではglibcパッケージのみを対象としていますので、アップデートするパッケージとしてglibcを指定しています。

アップデートの情報が表示されます。内容を確認して問題が無ければ、yを入力してアップデートを実行します。

yを入力すると、パッケージのダウンロードとインストールが開始されます。

アップデートが完了すると、Complete!が表示されます。

3-3.アップデートの確認

glibcのアップデート後のバージョンを確認します。出力結果として、glibcパッケージ4つのバージョンが 2.12-1.166.el6_7.7になっていれば、完了です。

rpmコマンドでのバージョン確認

yumコマンドでのバージョン確認

4.サーバーの再起動

glibcについてはアップデートを行った後に、サーバーの再起動が必要になります。
タイミングをみて、rebootコマンドでサーバーを再起動します。syncコマンドはメモリ内にあるデータをHDDやストレージなどに同期するコマンドです。データベースなどメモリに大量のデータを保存するような環境では実行しておくことをお薦めします。

再起動後にログイン出来るようになったら、サービスを動作確認を行います。
以下のコマンドはオープンしているtcpポートをプロセス名で表示させます。

コマンドを実行し、サービスを行っているポートが全てオープンしていることが確認出来れば、アップデートは完了です。

5.まとめ

glibcについては、OSのシステムに関連する部分で、あまり更新を行っていない環境だと、かなりの数の依存関係アップデートでアップデート作業に時間がかかると思われます。
そのようなパッチを適用していない環境や、むやみにサーバーの停止ができない環境の場合は、バックアップを取得した上で、停止時間を調整(余裕をもって)の上、アップデートを実行することをお薦めします。OSレイヤーでの緊急レベル、セキュリティホールは数が少ないこともあり、見逃しがちですが、このような大きなものには是非、対処を行いたいですね。

関連する記事


Facebookでのご購読が便利です。

Twitter・Feedlyでもご購読できます。

Twitterでフォローする Feedlyでフォローする

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  • スポンサーリンク