最近発覚したパスワードに関する重大な脆弱性4選

 最近、パスワードにまつわる重大な脆弱性を見かけることが多いように思いますので、その中から4つを選んで紹介します。既に私のブログで紹介したものや、少し古い問題も含まれます。

PHP5.3.7のcrypt関数がハッシュ値を返さない脆弱性

 crypt関数は、様々なハッシュアルゴリズムによるソルト化ハッシュを返す関数ですが、PHP5.3.7(2011年8月18日リリース)において、crypt関数にMD5を指定した場合、ハッシュ値を返さない(ソルトは返す)バグがありました。私のブログエントリにて説明したように、最悪ケースでは任意のパスワードで認証できてしまう状況があり得ました。

 このバグが混入した経緯については、私のブログエントリPHP5.3.7のcrypt関数のバグはこうして生まれた | 徳丸浩の日記を参照ください。
 8月23日にリリースされたPHP5.3.8にてこの問題は修正されました。

Dropboxに、不正なパスワードでも認証を許す問題

 今年の6月20日Dropboxにバグが混入して、正しいパスワードでなくてもログインできる状態が約4時間続きました。

 Dropboxのような著名で人気のあるクラウドサービスにて、このように重大な問題が発生したことは、クラウド利用のあり方に対する警鐘となりました。

RT-N56U における管理パスワード漏えいの脆弱性

 RT-N56Uは、ASUS製の無線LANルータです。RT-N56U(ファームウェアバージョン:1.0.1.4)では、設定画面にて管理パスワードを参照できますが、そのページを見るのにパスワードが必要ないという問題があります。

 参照:JVNVU#200814: RT-N56U における管理パスワード漏えいの脆弱性

 JVNの説明では、「インターネット経由からの攻撃が可能」とありますが、同じページには「なお、初期設定でこの機器に接続できるのは LAN 内のユーザのみです。」とあるので、設定を変更しない限り、インターネットからこのルータに直接接続することはできないはずです。
 しかし、受動的攻撃によって攻撃が可能です。その代表的な手法として、DNSバインディング攻撃があります。同手法の詳細は、私のブログエントリを参照ください。

 一般的にはDNSバインディング攻撃に対する有効な対策は、パスワードを適切に設定することですが、今回はそのパスワードを閲覧できるので、以下のような攻撃が可能です。例えば、全てのポートに対してインターネットからのアクセスを許す(穴を開ける)ような変更が可能になると考えられます。

  1. 設定画面からパスワードを参照する
  2. 前項で得たパスワードを用いて、管理画面にログインして、設定を変更する

 対策は、ファームウェアバージョンアップです。ベンダーサイトからファームウェアバージョン:1.0.1.4o)をインストールしてください。

OS X Lionで、LDAP認証にした際にパスワードをチェックしない問題

 yebo blogによると、Mac OS X LionにてLDAP認証を用いている場合、不正なパスワードで認証できるようです。但し、Apple社の正式なコメントはまだないようで、出典をたどると、サポートページでのやりとりに行き当たります。ここのスレッドにて、「問題をApple社に送信した」とあるので、yebo blogの「Appleは既に問題を認識しており」はその通りですが、どのような対応となるかは不透明です。
 当面の回避策としては、yebo blogにあるように、LDAP認証を無効にするしかないでしょう。

[PR]
 YAPC::ASIAのトークに応募して採択されました。10/14(金)東工大にて、「Webアプリでパスワード保護はどこまでやればいいか」というテーマでしゃべります。主に、パスワードのハッシュやソルトやストレッチングの話で、たまたまcrypt関数のカバーする領域ですが、YAPCというPerlの祭典でPHPの重大なバグの話をするかどうかは決めていません。