読者です 読者をやめる 読者になる 読者になる

AKATSUKA x HANEMAN TECH

コミュニティ、ワークスタイル、クラウドなどについておもいつくままに書きます

OpenSSLのHartbleed Bugへの対応まとめ【Amazon AWS】

OpenSSLに重大な不具合が発見されましたね。

平たく言うと、この不具合が悪用されればSSLで暗号化されていたシステムのメモリーデータが閲覧できてしまうとのこと。
さらに秘密鍵まで盗まれてしまう可能性があるので、大切な個人データが傍受される可能性があるそうです。

影響

以下抜粋

OpenSSLの重大バグが発覚。インターネットの大部分に影響の可能性 - TechCrunch

セキュリティー研究者らが “Heartbleed“と呼ぶそのバグを悪用すると、過去2年以内のあらゆるバージョンのOpenSSLが走るシステムで、システムメモリー上にある大量のデータを暴露することが可能だ。

黒い研究者め!!

このバグは、OpenSSLに2年以上存在していたが(2011年12月以来、OpenSSL 1.0.1~1.0.1f)、今日初めて発見され公表された。さらに悪いことには、このバグを悪用してもその痕跡はログに残らないようだ。つまり、システム管理者は自分のサーバーが侵入されたかどうかを知る術がない。されたと仮定するほかはない。

いいですか。「されたと仮定するほかはない。」ですよ。

影響のあるバージョン

Amazon Linuxは対応済みですので、新しくインスタンスを作成する場合は問題ナシです。

OpenSSL 1.0.1 through 1.0.1f
Heartbleed Bug

What versions of the OpenSSL are affected?

Status of different versions:

OpenSSL 1.0.1 through 1.0.1f (inclusive) are vulnerable
OpenSSL 1.0.1g is NOT vulnerable
OpenSSL 1.0.0 branch is NOT vulnerable
OpenSSL 0.9.8 branch is NOT vulnerable
Bug was introduced to OpenSSL in December 2011 and has been out in the wild since OpenSSL release 1.0.1 on 14th of March 2012. OpenSSL 1.0.1g released on 7th of April 2014 fixes the bug.

AWS側での対応

AWS から OpenSSL の脆弱性について AWS のサービスアップデート | アマゾン ウェブ サービス(AWS 日本語)

ユーザーが必要な対応

  • 利用中のインスタンスでのOpenSSLパッケージのアップデート
    2014.04.11追記:タイムゾーンの設定がクリアされたりする可能性あり。要動作確認です。
  • 秘密鍵の更新
  • 証明書の更新
  • WEBサーバー再起動

問題あるかの確認方法

All goodかどうかを見るだけっぽいです。。
http://filippo.io/Heartbleed/

バージョン確認

これだけだと特定できないようです。

$ openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

changelogで確認

  • あかんやつ
$ rpm -q --changelog openssl | head -n 3
* 木  919 2013 Andrew Jorgensen <ajorgens@amazon.com>
- Ensure ldconfig is run on install
  • あたらしいやつ適用済み
$ rpm -q --changelog openssl | head -n 3
* 月  407 2014 Cristian Gafton <gafton@amazon.com>
- add fixes from upstream 1.0.1f/g releases (CVE-2014-0160, fixes for CVE-2013-0169)
アップデートを確認
$ yum list updates| grep openssl
openssl.x86_64                        1:1.0.1e-37.66.amzn1          amzn-updates【これ】
openssl-devel.x86_64                  1:1.0.1e-37.66.amzn1          amzn-updates
きれい好きなので。。
$ sudo yum clean all
読み込んだプラグイン:priorities, update-motd, upgrade-helper
リポジトリーを清掃しています: amzn-main amzn-updates
Cleaning up everything
レッツゴー!!
$ sudo yum -y update openssl
============================================================================================================
 Package                  アーキテクチャー  バージョン                        リポジトリー             容量
============================================================================================================
更新します:
 audit                    x86_64            2.3.2-3.19.amzn1                  amzn-main               258 k
 openssl                  x86_64            1:1.0.1e-37.66.amzn1              amzn-updates            1.7 M
依存性関連での更新をします:
 audit-libs               x86_64            2.3.2-3.19.amzn1                  amzn-main                87 k
 glibc                    x86_64            2.17-36.81.amzn1                  amzn-updates            5.6 M
 glibc-common             x86_64            2.17-36.81.amzn1                  amzn-updates             28 M
 glibc-devel              x86_64            2.17-36.81.amzn1                  amzn-updates            1.1 M
 glibc-headers            x86_64            2.17-36.81.amzn1                  amzn-updates            718 k
 openssl-devel            x86_64            1:1.0.1e-37.66.amzn1              amzn-updates            1.3 M

トランザクションの要約
============================================================================================================
もっかい確認
$ rpm -q --changelog openssl | head -n 3

鍵や証明書の更新もお忘れなく

依存関係でアップデートできない場合

SSLのサイトだけクラウドに移行してはいかがでしょうか。
テストして問題なければBlue-Green Deploymentで切り替え可能です。

AWS上にLAMPのBlue-Green Deployment環境を構築する | Developers.IO