2014年4月14日月曜日

OpenSSLのHeartbleed

私も常日頃からお世話になっているOpenSSLで大変な脆弱性が見つかりました。
名付けてHeartbleedだそうです。
詳しい(?)ことはOpenSSLのサイトでアナウンスされていますが、
ここまでの大騒ぎはWindowsのBLASTER以来かもしれませんね。

パッチを確認したわけではないのですが、
洩れ聞こえるところによるとTLS heatbeatに関してメモリ境界チェックができてなく、
同一プロセス内のメモリ内容すべてが読み取られる可能性があるということだそうです。
名前からしてkeep-aliveっぽく、
SNI(Server Name Indication)のように何か特別な目的のための拡張なのかと思ったのですが、
このあたりを見る限り、単なるkeep-aliveのようです。
RFCを読んだわけではないのでなんともいえませんが。

Heartbleedで盗まれるのは、
その瞬間にそのプロセスから参照可能なメモリ上にあるものです。
悪意あるサーバが、接続してきた脆弱性のあるクライアントの
ローカルにある情報を奪うケースも考えられますが、
Heartbleedで奪った内容はそれなりに解析しないと意味不明なので、
悪意あるサーバなら秘密にすべきデータをユーザに送らせる方が手っ取り早いでしょう。
ということで一般ユーザは通常通り悪意あるサーバへ警戒するだけでよく、
クライアント側のHeartbleed自体についてはそれほど気にする必要はないでしょう。
Chromeブラウザならタブ間でプロセスが違うはずなのでより安全でしょうし。

問題なのは、脆弱性のあるサーバの情報を悪意のクライアントが盗むケースや、
善意のクライアントが脆弱性のある善意のサーバに接続した際の情報が
ほぼ同時に接続した悪意のクライアントに盗まれるケースでしょう。
前者ではSSLのセッション開始時に確実にメモリ上にある証明書や秘密鍵が盗まれる可能性があり、
後者は通信内容にユーザ名やパスワードやクレジットカード番号が含まれていると、
それらが第三者に渡ってしまう可能性があります。
なおこれらについては一般ユーザは防ぐ手立てはありません。
とにかくアクセスしないのが基本となります。

さて、とりあえず自衛手段を考えてみました。
まずは銀行のオンラインバンキングや証券会社のオンライン取引サービスについては
対応済みであることが表明されるまで無期限でログインしないことにし、
表明後にパスワードを変更することにします。
ただし、乱数表が配られていたりするサービスや、
フル権限用とは別に参照だけできるパスワードが発行されているようなサービスは
その限りではありません。

同じ金融資産でも確定拠出年金等のサービス内でのみ自己資産が動かせるサイトは、
そこまで神経質にならなくてもいいかもしれませんが、
何かされると困るので先ほどと同様にした方がいいでしょう。

金融資産でなくてもポイント資産は守らねばなりません。
WAONポイントとかANAのマイレージとかを扱うサイトも同様ですね。

利用料金にも注意が必要です。
携帯電話のプランを勝手に変更されたりするのは問題ですが、
Fusion等のIP電話のパスワードが漏れると
勝手に使われて高額請求なんてことになりかねません。
十分に注意しましょう。

通販サイトについても基本的に上記と同様に注意すればよいのですが、
クレジットカード番号の流出には気をつけなければなりません。
それこそ勝手に使われて高額請求です。
未対応サイトにクレジットカード番号を入力するのは言語道断としても、
サイトに登録しているカード番号が表示されるだけでも危険です。
つまりクレジットカードの利用明細参照サイトへのアクセスさえも注意すべきです。

ところでサーバ管理者によっては大変な作業が必要となります。
セキュリティーパッチを当てるのは当然としても、
証明書等に関しては新しいものを発行してもらうことのみならず、
フィッシング等で悪用されるのを防ぐため現在のものを失効しなければなりません。
すなわちCRLに登録してもらう必要があります。
これら手続きは通常有料でしょうから、
この四半期の証明書発行機関の売り上げが伸びるなんてことも起こるかもしれませんね。

私もVPSでOpenSSL使っているのでこのニュースを聞いてあせったのですが、
利用中の0.9.8系は対象外だそうで事なきを得ました。
こういうのは枯れたものを使うべきという教訓ですね。
ちなみに1.0.1系は1.0.1gで修正されているとのことです。
話がそれますが、0.9.8系は今0.9.8yが最新で、
zのあとはどうなるのかちょっと興味があります。

ウェブ系だけでなくOpenSSLはOpenVPNにも使っています。
もちろん0.9.8系なので対応の必要はありません。
が、ここに書いてあるとおり、
影響があるバージョンを使っていてもtls-authを有効にしておけば問題ないそうです。
設定ファイル("/etc/openvpn/server.conf"など)内で"tls-auth"を検索すれば、
そのやり方が書いてあります。

さてさてみなさん、Heartbleedにはくれぐれもご注意を。

0 件のコメント:

コメントを投稿