ども。
本当はC10Kの後篇を書こうと思ってたんだけど世間はOpenSSL祭りなので、それに乗っかったエントリを書いてみる。
なお、これから書く内容はあくまでも小西の個人的な理解なので、正しいという保証はどこにもありません。
言っちゃなんですが、セキュリティとか暗号とかはどっちかと言うと苦手分野です。(^^;;;
しかし、書くことによって自分の理解が進んだり新たに気付くことがある。という経験則があるので、とりあえず書いてみることにします。
いつにもまして、ツッコミ歓迎
★概要
http://heartbleed.com/
にまとまってます。
ざっと僕の理解(くどいようですがあくまで個人的理解)をまとめると以下のような感じです。(上記サイトに書いてあることだけでなく、他のサイトで見た内容も含まれています。)
- OpenSSLに深刻な脆弱性が見つかった
- この問題はSSL/TLSプロトコルの問題ではなくあくまでOpenSSLの実装の問題
- 過去2年間のOpenSSLリリースすべてにこの脆弱性が存在する(1.0.1以降)
- この脆弱性を利用するとSSL通信を行っているホストのメモリを読むことができる(一度に読めるのは64Kまでだが、繰り返し何度も実行することができる)
- OpenSSLを使っている著名なWebサーバとしてはApacheやnginxがある
- 問題のあるバージョンのOpenSSLがバンドルされているOS多数
。。。ダメじゃん。。。(--
コンピュータ上のすべての処理は一度メモリを経由するわけで、それを考えるとSSL証明書とかクライアントから送信したユーザー名とパスワードとかクレジットカードの番号なんかまで全部どこかのタイミングでメモリに載るわけで、可能性としてはそれら全部を盗むことができるわけです。
。。。ホンマかいな。。。(--
★サーバがJavaなら大丈夫?
いいえ、そんなことはありません。
クライアントから直接Java製のサーバに繋いでいるのであれば大丈夫なはずですが、
- フロントにApacheがいる
- ELBをhttpモードで使っている
- Herokuを使っている
全部アウトです。
Apacheは言わずもがな、Herokuのフロントエンドはnginxのはずですし、ELBも問題があることがアナウンスされています。
ロードバランサに脆弱性がある場合、攻撃者が読めるのはロードバランサのメモリまででバックエンドにあるアプリサーバのメモリは読めません。
しかし、HerokuもELBもSSLをロードバランサがほどいてバックエンドとの通信はhttpで行っていたりするので、そこでの通信内容はメモリに載ります。
逆に言うと
- 一度も通信に載らないHerokuの環境変数などが漏洩することはない(言語は関係ない)
- ELBをTCPモードで使用している場合は問題ない
と思ってるんですが、今のところ誰からも同意を得られていません。。。
。。。ホントにそうか???。。。
★ベンダの対応状況など
ネット上の情報によるとAmazon Linuxはパッチがでたようですね。
http://qiita.com/tachiba/items/83e5fd31d06e6577abb3
ELBはまだのようです。
Herokuの対応状況はstatus.heroku.comで確認できますが、SSLアドオンが影響受けるので対応終わったら証明書を再発行しろとか書いてあります。
https://status.heroku.com/incidents/606
。。。マジでか。。。(--
Heroku Postgresを再起動するというメールも来てるらしいですが、そういえばPostgreSQLとの通信もSSLでした。。。(--
AWSとかSalesforceのアクセスキーなんかを全部Regenerateしろ、とか言われそうでかなり憂鬱。。。(--
(4/9 追記)
例えばAWSのアクセスキーが環境変数に設定されている場合、Herokuルーターのルートからそれが外部に漏洩しなかったとしても、肝心のAWSサーバーに脆弱性があれば、やっぱり再生成が必要なわけで、結局のところアクセスキーの類は全部再生成が必要な気がします。
★その他個人としての対応など
サーバー側の心配もありますが、個人で使用しているアカウント類の心配もした方が良いのかもしれません。脆弱性のあるサーバにログインするとそのユーザー名、パスワードを盗まれている可能性があるわけで。。。
パスワードを変更した方が良いとは思うんですが、今それをやってもそのパスワード変更リクエストが盗まれる可能性があるので、どないせーっちゅーねん。。。(--
とりあえずはベンダーからのアナウンスがあるまではアクションを起こすべきではないんじゃないですかね。。。
おいおいGoogleとかEvernoteとかからパスワードを変更しろっていうメールが届き始める気がしますが、絶対フィッシングとかしかける奴がいる気がするので、ドメインとかちゃんと確認した方が良いですよ。
心の底から思うんですが、誰か間違ってると指摘してください。(--