脆弱性対策

Heartbleed やら Shellshock やら POODLE やら、最近ビッグな脆弱性がたくさん出てきたように感じますね。おさらいしましょう。

Heartbleed

Heartbleed は OpenSSL の実装上の脆弱性です。OpenSSL は SSL/TLS で通信するためのライブラリで、Apache の mod_ssl を始め、色んなソフトウェアが依存しています。脆弱性の内容は、OpenSSL が malloc で取得したメモリ領域を初期化せずに使うもんだから、無関係なセッションのデータが盗み見できちゃうというもの。ショッピングサイトの Web サーバーに Heartbleed 攻撃すれば、クレジットカード情報とか見れちゃうかもしれません。

Shellshock

Bash の実装上の脆弱性です。環境変数に “() { :;}; <任意のコード>” をセットして bash を起動すると、<任意のコード> が実行されてしまいます。Perl なんかで書いた CGI スクリプトの中で bash を利用したスクリプトを呼び出すとアウトです。例えば HTTP_USER_AGENT 環境変数は自由に設定できるからです。bash をアップデートするか、WAF でフィルタリングしましょう。

POODLE

SSL 3.0 の Cipher Block Chaining というモードに存在する設計上の脆弱性です。何と、暗号を解読されてしまいます。Apache での対策は簡単で、mod_ssl で SSLv3 を無効化するだけです。SSLProtocol ディレクティブを使います (SSLProtocol all -SSLv2 -SSLv3)。すると、TLS 1.0 以上の安全なプロトコルだけが使用されます。SSL が全滅したので、今後は TLS という用語に一本化される…のでしょうか。

(コウヅ)