カテゴリー
ネットのサービス

Google Code Search のアレな活用法が続々と

Googleの一般検索でも、社外秘情報の入ったExcelを検索したらいろいろ出てきた(参考 、 公開Webサーバから機密情報を引き出す「Googleハッキング」の脅威と、その対策)といった話もあるし、つい最近はGoogl […]

Googleの一般検索でも、社外秘情報の入ったExcelを検索したらいろいろ出てきた(参考 、 公開Webサーバから機密情報を引き出す「Googleハッキング」の脅威と、その対策)といった話もあるし、つい最近はGoogle Calendarで明らかに公開情報じゃないいろんな人の予定が検索できるという指摘も話題になった。

ということで、昨日リリースされたGoogleコード検索でも、さっそく色々な「ヤバイ」指摘が。

kottke.org では以下のような検索例

  • 圧縮アプリケーションの暗号生成部分のソース
  • パスワードを埋め込んだブログシステムのソース
  • バッファーオーバーフロー脆弱性がありそうなソース
  • 公開されるべきでない、と書いてあるソース
  • 愚痴ったり、罵ったり、馬鹿にしたりというコメント
  • 有名プログラマーの名前での検索

また、PHPのセキュリティといえばこの人の Chris Shiflett は以下のような「セキュリティホールを見つける検索例」を列挙している。

Java

  • クロスサイトスクリプティングの典型例をサーチ
  • SQLインジェクションの典型例をサーチ
  • O’ReillyとAPressのサイト(本のサンプルコード)からクロスサイトスクリプティングの典型例をサーチ

Javaの場合、こんなことになる前にローカルでチェックするならPMDとかFindBugsを使うのかな。上記のような例をチェックしてるかは知らないけど。

PHP

  • 生のパラメータ入力をそのままechoしてる箇所
  • $_SERVER[‘PHP_SELF’]をそのままechoしてる箇所
  • 生のパラメータ入力をそのままMySQLに食わせている箇所
  • SQLの絞込み条件に生のパラメータ入力をそのまま渡している箇所
  • リファラ入力を単純に信頼してしまっている箇所

Chris本人も誤検出のある不完全な検索だとは言っているけど、それぞれ問題のあるコードをチェックする参考になるので、できれば公開してGoogleに見つけられるより前に、自分のローカルで検索するといいかと思う。

[追記] Chrisのブログを見た他の人が、include/requireでパラメータ入力を使ってる悪例を探すクエリを書いた

evalやheader(“Location: “)による転送、外部コマンドの実行などで見られる悪例を探すケースも

[追記] 更新復活したRauru Blogで紹介されていた、“fuck”をソースコードに書き込むプログラマーにはPHPやLGPLに関係している者が多い、というGoogle Code Searchによる統計

[追記] diggのこの紹介では、Google Code Searchでメールアドレスを検索すると23,000件の技術者のアドレスが収集できると言っている。ソースコード中のアドレスは、htmlなどに比べるとスパマーのロボット対策をあまり考えていない人が多いのは事実で、今後はソースのクレジット中の連絡先の書き方にも気をつけないといけないだろう。