Feross Aboukhadijeh「CMS使ってる人気サイト調べたらDBのパスワード丸見えなサイトが0.77%あった」
feross.org 2011.11.17のエントリ
FerossはYouTube Instantのクリエータ、Stanfordの学生
1% of CMS-Powered Sites Expose Their Database Passwords » Feross.org
- vimやemacsとかが作る一時ファイルがサーバーに消えずに残る
- これにいくつかの条件(よくある条件)が絡むとDBのパスワードが丸見えになってしまうという話
- 割と放置されてる問題であることが「人気サイトの0.77%」という数字に出た
- 一応サイトの管理者と役所に連絡しといた
などなど
ググるとcmsのフォーラムとかでは定期的に警鐘されるトピック、らしい
以下斜め読んだ内容
- メジャーなCMSで発生しうる話
- wordpress、phpBB、Joomla、MediaWiki、MovableType、Drupal、etc..
- sshログインしてvimとかで作業。設定ファイルの編集とかやってる人は注意
- エディタでファイル編集中、エディタは自動的に一時ファイル作る
- 通常は自動的に削除される一時ファイルが強制終了or切断したときに消えずに残る場合あり
- たいていのサーバはインタプリタ(php/perl/etc.)にファイルを渡すかどうかは拡張子みて判別
- 「wp-config.php」ならapacheはphpに渡す
- example.com/wp-config.phpにアクセスしても、ブランクページが表示されるだけ
- 「wp-config.php.swp」だとphpに渡さずテキストファイルとして処理する
- example.com/wp-config.php.swpにアクセスすれば、丸見えに
- 「wp-config.php」ならapacheはphpに渡す
- こんな具合で、パスワードとか重要な情報が丸見えになる
設定ファイルの例
有名CMSよく使われる設定ファイル名
- WordPress
- wp-config.php
- phpBB, ExpressionEngine
- config.php
- Joomla
- configuration.php
- MediaWiki
- LocalSettings.php
- Movable Type
- mt-config.cgi
- Drupal
- settings.php
「setting.php」を編集してるときの一時ファイル名のパターン
上位21万サイトくらいざっと調べたら1%くらい丸見えでした
- スクリプトでQuarantcastの上位21万6,931サイト調べた
- 約21.6万サイトのうち230サイトが丸見えだった
- 21.6万サイトのうち0.11%がパスワード丸見えサイト
- 21.6万にはcmsとそうでないサイトが両方入ってる
- 上位サイトのうち13.8%がCMSくらいだといわれてる
- ソースは、Latest stats
- ざっくり計算すると、パスワード丸見えサイトはcms全体のうち0.77%になる
パスワード丸見えだからといってDBにアクセスできるとは限らない
- これは調べてない
- 見つけたファイルはゴミ箱いれたし。
- 230サイトのうち何%がアクセスできてしまうか、は調べてない
連絡しました
- 全部じゃないけど、有名どころ何サイトへ
- お礼言われた。謝礼にライセンスあげますというところも
- 役所(国土安全保障省のUS-CERT)にも脆弱性の報告した
- 「ウチが動く案件じゃない」とトホホな返事だった
対策
- 一時ファイルを作る設定でエディタ使わないとか、いったんローカルにコピー。ローカルで編集するようにするとか。。。
- .htacces使ってるなら、vimのスワップファイルにアクセスできないように設定するとか
- 解決法は色々ありうる。開発環境によってちがってくる
- まずは自分のサイトがCMS使ってるならチェックしよう
- 既に知られた問題ではある
今回は0.77%
- 個人的には驚いた
- リサーチ対象を広げると、比率はもっと増えるはず
- /blog/、/wiki/、blog.example.comとかよくあるディレクトリやサブドメインをターゲットにリサーチしたら丸見え比率はどんどんアップするはず
- スクリプトは悪用されるかもしれないから公開しない
- セキュリティ専門家でソースの検証をしたい人はメールくれ