脆弱性対応時の確認方法について【Amazon Linux、RHEL/CentOS編】

こんちには。iriharaです。久しぶりの投稿になります。
ここ最近、OpenSSLなどで脆弱性が次々と明らかになり、その度に、情報収集などの対応に追われている
システム管理者の方々も多いのではないでしょうか。

http://www.itmedia.co.jp/enterprise/articles/1412/11/news047.html
http://japan.zdnet.com/keyword/POODLE%E8%84%86%E5%BC%B1%E6%80%A7%E5%95%8F%E9%A1%8C/

脆弱性が明らかになった場合、各ベンダーから修正版がリリースされ、それを稼働中のサーバに
適用する必要に迫られるケースもあると思います。

RHELやCentOS、debianなどのOSベンダーでも、その都度対応版がリリースされたり、対応方法について
告知されます。

□Redhat CVEデータベース
https://access.redhat.com/security/cve/

□Debian セキュリティ情報
https://www.debian.org/security/

RHEL/CentOSの場合、対応版がリリースされているのかについての確認方法としては、yumコマンドなどで確認可能です。
下記の例では、「Installed Packages」が現在インストールされているパッケージになり、「Available Packages」に
表示されているものが、アップデート可能なパッケージになります。

rpmコマンドでもインストールされているパッケージは確認して下さい。

[root@test1 ~]# rpm -qa | grep openssl
openssl098e-0.9.8e-18.2.14.amzn1.x86_64
openssl-1.0.1k-1.82.amzn1.x86_64
openssl-devel-1.0.1k-1.82.amzn1.x86_64

◆yumでの確認方法

[root@test1 ~]# yum info openssl
Loaded plugins: priorities, update-motd, upgrade-helper
1800 packages excluded due to repository priority protections
Installed Packages
Name        : openssl
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1k
Release     : 1.82.amzn1
Size        : 3.6 M
Repo        : installed
From repo   : amzn-updates
Summary     : Utilities from the general purpose cryptography library with TLS implementation
URL         : http://www.openssl.org/
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications between
            : machines. OpenSSL includes a certificate management tool and shared
            : libraries which provide various cryptographic algorithms and
            : protocols.

Available Packages
Name        : openssl
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1k
Release     : 1.84.amzn1
Size        : 1.6 M
Repo        : amzn-updates/latest
Summary     : Utilities from the general purpose cryptography library with TLS implementation
URL         : http://www.openssl.org/
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications between
            : machines. OpenSSL includes a certificate management tool and shared
            : libraries which provide various cryptographic algorithms and
            : protocols.

確認したところ、新しいパッケージがリリースされているので、これをアップデートして適用すれば万事OKなのでしょうか?
その前に確認すべきことがあります。

それは、「アップデート版で本当に脆弱性の修正がされているのか?」です。

また、いきなり本稼働しているシステムに適用するのは、リスクが伴います。
その前に、何を修正されているのか、予め確認した方が良いです。
そのためには、以下のように予めパッケージをインストールせずにダウンロードすれば、確認することができます。

※yumdownloaderコマンドを使用するためには、予めyum-utilsパッケージをインストールしておく必要があります。
必要に応じてインストールして下さい。

[root@test1 ~]# yumdownloader openssl
Loaded plugins: priorities, update-motd, upgrade-helper
1800 packages excluded due to repository priority protections
(1/2): openssl-1.0.1k-1.84.amzn1.i686.rpm                                                                                                      | 1.5 MB     00:00
(2/2): openssl-1.0.1k-1.84.amzn1.x86_64.rpm

パッケージをダウンロードできたことを確認します。

[root@test1 ~]# ls -l | grep openssl
-rw-r--r-- 1 root root 1582100 May  8 02:52 openssl-1.0.1k-1.84.amzn1.i686.rpm
-rw-r--r-- 1 root root 1667247 May  8 02:52 openssl-1.0.1k-1.84.amzn1.x86_64.rpm

以下の方法で、このダウンロードしたパッケージが、本当に脆弱性に対応しているのか、
今までに対応した修正履歴が確認できます。

[root@test1 ~]# rpm -qp --changelog openssl-1.0.1k-1.84.amzn1.x86_64.rpm | grep CVE
- add patch for CVE-2014-3566 (Padding Oracle On Downgraded Legacy Encryption attack)
- fix CVE-2014-0224 fix that broke EAP-FAST session resumption support
- pull in upstream patch for CVE-2014-0160
- add fixes from upstream 1.0.1f/g releases (CVE-2014-0160, fixes for CVE-2013-0169)
- Add patches to fix CVE-2013-6449, CVE-2013-6450, and CVE-2013-4353
- fix CVE-2013-4353 - Invalid TLS handshake crash
- fix CVE-2013-6450 - possible MiTM attack on DTLS1
- fix CVE-2013-6449 - crash when version in SSL structure is incorrect
- fix CVE-2013-6449 - crash when version in SSL structure is incorrect
- port patch for CVE-2013-0169 against 1.0.0j
- fix for CVE-2013-0169 - SSL/TLS CBC timing attack (#907589)
- fix for CVE-2013-0166 - DoS in OCSP signatures checking (#908052)
  environment variable is set (fixes CVE-2012-4929 #857051)

~ 長いので以下省略します。 ~

一番最新の「CVE-2014-3566」について確認したところ、POODLEという脆弱性の件だということがわかりました。

□IPA情報処理推進機構 更新:SSL 3.0 の脆弱性対策について(CVE-2014-3566)
http://www.ipa.go.jp/security/announce/20141017-ssl.html

また、AmazonのAWSでは以下のように対策について告知していました。
(ちなみに、今回はAmazon Linuxで確認を行いました。)

□CVE-2014-3566 Advisory
http://aws.amazon.com/jp/security/security-bulletins/CVE-2014-3566-advisory/
https://alas.aws.amazon.com/ALAS-2014-426.html

その他、RedHatでは以下のような情報を告知していました。

□POODLE: SSLv3.0 脆弱性 (CVE-2014-3566)
https://access.redhat.com/ja/node/1232403
https://access.redhat.com/security/cve/CVE-2014-3566

現在インストールされているOpenSSLの内容についても確認を行います。
差分比較ソフトを使用すれば、簡単に確認できます。
(現在インストールされているバージョンには既に、CVE-2014-3566の修正はされているようです。)

[root@test1 ~]# rpm -q openssl --changelog | grep CVE
- add patch for CVE-2014-3566 (Padding Oracle On Downgraded Legacy Encryption attack)
- fix CVE-2014-0224 fix that broke EAP-FAST session resumption support
- pull in upstream patch for CVE-2014-0160
- add fixes from upstream 1.0.1f/g releases (CVE-2014-0160, fixes for CVE-2013-0169)
- Add patches to fix CVE-2013-6449, CVE-2013-6450, and CVE-2013-4353
- fix CVE-2013-4353 - Invalid TLS handshake crash
- fix CVE-2013-6450 - possible MiTM attack on DTLS1
- fix CVE-2013-6449 - crash when version in SSL structure is incorrect
- fix CVE-2013-6449 - crash when version in SSL structure is incorrect
- port patch for CVE-2013-0169 against 1.0.0j
- fix for CVE-2013-0169 - SSL/TLS CBC timing attack (#907589)
- fix for CVE-2013-0166 - DoS in OCSP signatures checking (#908052)
  environment variable is set (fixes CVE-2012-4929 #857051)

~ 長いので以下省略します。 ~

アップデートが必要な場合は、yum update opensslなどと実行すれば、アップデートされます。

ここまでは、ごく簡単なアップデート方法について紹介させて頂きましたが、
修正版の内容によっては、アップデートするだけではなく、アプリケーション側での再設定・修正作業やサーバの
再起動などが必要になるケースも多々あります。
(今回のOpenSSLの脆弱性の場合、使用しているサーバ側のアプリケーションやクライアントでの修正作業が必要になります。)

また、注意点としては、古いOSの場合、上記のような方法で確認すると、アップデート版がリリースされていても、
よくよく確認してみると、対象のCVEが含まれていないケースがあります。
その場合は、以下のようなサイトからソースファイルをダウンロードして再インストールを行う必要があります。
(実際にどのバージョンが、どう修正されているのかについては、サイトで確認して下さい。)

□OpenSSL
https://www.openssl.org/

その他、実際に作業を行う前に、AWSのようなクラウド環境ならば、予め検証環境を構築して、
動作確認なども行う事も非常に容易ですし、実環境サーバのスナップショットなどを取得しておけば、
有事の際に切り戻すことも可能ですので、皆さんもこれを機会に是非お試し下さい。

※ちなみに、CVEとは、様々なソフトウェアの保安上の弱点(脆弱性)についての情報を収集・公開している、世界的に
著名なデータベースの一つだそうです。

http://e-words.jp/w/CVE.html
http://www.ipa.go.jp/security/vuln/CVE.html

以上

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.