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

くんすとの備忘録

プログラミングや環境設定の覚え書き。

OpenSSLのHeartbleed脆弱性について調べてみた

今更感がありますが、自分の勉強のためにHeartbleed(心臓出血)脆弱性についてまとめてみました。
※正しい情報を求めている方はこの記事を読まずに、ちゃんと一次情報に近いところをあたって下さい。

概要

OpenSSLのHeartbeat拡張にバグが見つかった。
攻撃者が細工したパケットを送付することでシステムのメモリ内の情報を閲覧し、重要な情報を取得することが可能。

※2年前から存在するバグ
※バグに名前が付いている!

対象となるOpenSSLのバージョン

  • 1.0.1~1.0.1f
  • 1.0.2-beta~1.0.2-beta1
    • 1.0.2-beta2で対応される予定

対策

  • CentOSの場合
    • yum updateして最新版(1.0.1g)へバージョンアップする。もしくは「OPENSSL_NO_HEARTBEATS」フラグを付けてopensslをリコンパイル
  • FreeBSDの場合
    • freebsd-updateを使用し最新版へバージョンアップする。(FreeBSD10の場合「10.0-RELEASE-p1」)

メカニズム

SSLハートビートのリクエストには「文字列長」と「文字列」を含んでいるが、この「文字列長」に「文字列」の長さより大きな値を渡すことで差分の長さの領域分、メモリからデータを取得できてしまう。(最大で64KB)

Mobage(モバゲー)by DeNAの説明が図解でわかりやすかったのでそちらを参照
http://developers.mobage.jp/blog/2014/4/15/heartbleed

影響範囲

SSL通信を利用している全てのサービスへ直接の影響がある。
例えばapache、nginxなどのwebサービス

また、メモリからパスワードやssh秘密鍵の情報が漏れてしまうと、それ以上の情報漏えいの可能性がある。

悪用事例

ネタ

OpenOpenSSL

OpenBSDの人たちがOpenSSLをforkして書きなおしている、ロックなプロジェクト。
公式サイトにこんなことが書いてある。。。

We had to do this because the future of internet security can't reside in the hands of amateurs....

広告