Googleハッキング(別名、Google dorking)は、攻撃者が高度なGoogle検索手法を用いて情報を収集する技法です。検索クエリによって、Webアプリのセキュリティホールの発見や、特定ターゲット向けの情報収集、エラーメッセージに含まれる機密情報、認証情報などが記載された文書の発見が可能となります。
攻撃者は、脆弱なWebアプリや特定の文書形式(.pwd、.sqlなど)を探すために高度な検索文字列を使用します。検索対象を特定のWebページに限定することも、全サイトから情報を探し出すこともでき、該当するページの一覧が返されます。
クローラが強力かつ複雑になると、Webに公開されたサーバ全体の情報が広く収集されやすくなります。Webサーバやアプリが誤って情報を公開すると、その内容は即時に検索エンジンで取得されてしまいます。個人情報、例えばセキュリティ番号やVisa番号、パスワードなどが含まれるほか、顧客情報、人事書類、さらには誤ってサーバに置かれた数式など、企業独自の機密情報も狙われる対象です。また、クローラはエラーメッセージなど、アプリの不具合を示す情報も収集するため、適切な検索キーワードを使えば、誰でもこれらの情報を閲覧できるようになります。
既存の用語では巨大な検索エンジンGoogleを指すことが多いですが、今回の攻撃対象はYahoo!、Ask.com、LiveSearchなど、すべてのクローラを含んでいると考えられます。
実際にGoogleが情報流出を発見した例として、SUNY Stony Brookでは、誤ってWeb上に個人情報が掲載された結果、9万人分のデータが危険にさらされました。また、Jax Federal Credit UnionではJFCUの印刷業者関連サイトから情報が入手され、Newcastle-upon-Tyneの市議会では数千人分の住民の詳細な情報が交換されました。
Googleハッキングに用いる強力なキーワードを提供するリソースは多数存在します。中でも有名なのはJohnny's I Hack Stuffです。Googleハッキングデータベースは、認証情報、エラーコード、脆弱な文書やサーバ、そしてWebサーバの配置情報を含む文書を探すためのキーワードを網羅的に掲載しています。
さらに、Googleハッキングの悪質な手法は、悪意あるコードを迅速に拡散させるための手段としても利用されます。有名なWebロケール破壊ウイルスSantyWormは、特定のPHP脆弱性を突き、Googleで脆弱なマシンを探し出して感染させることで拡散しました。
Googleを用いれば、どのプラットフォームでもSQLインジェクションが0.2 Google秒で実行される可能性があります。dorks、またはgoogle dorksとは、Googleに送信される独特な検索語句です。これらを利用すると、脆弱なサーバの発見、機密情報や脆弱な文書の収集、下層ディレクトリの特定などが可能となり、ペンテスト作業が大幅に簡素化される場合もあります。
分類の説明
攻撃者がWebサーバへの侵入の足掛かりを得るための検索クエリです。
Googleの優れたサーバプロファイリング機能を活用します。
複数のサイトで共通の機密ディレクトリの一覧です。
パスワードは含まず、ユーザ名のみが記載された文書です。
パスワード、ユーザ名、リソース、その他機密情報や設定ファイルなどが含まれる文書です。
アプリケーションセキュリティの弱点を突く手法です。
Googleがサイト内で発見する脆弱なファイルです。
パスワードが記載された文書です。
明らかな脆弱性を持つサーバが検索で見つかります。
各種サービスのログインページや、機密機能を持つサイトの入口ページです。
ユーザ名や秘密鍵などを含む詳細なエラーメッセージです。
脆弱なサーバや各種セキュリティ警告情報を検索し、具体的な項目やバージョン情報を明示します。
例えば、ファイアウォール、ハニーポット、IDSログ、ネットワークデータなどが含まれます。
ユーザ名やパスワードは含まれないものの、興味深い内容が記されています。
プリンタやビデオカメラなど、様々なデバイスに関する情報が含まれます。
顧客情報、販売業者、注文、クレジットカード情報など、Web上のショッピング関連情報を収集するための検索クエリです。
攻撃者は、AND、NOT、(大文字小文字を区別)などの論理演算子や、記号(例: –, *)をGoogle検索で活用できます。詳しくは以下の一覧をご参照ください。
説明: キーワードを含めるために使用され、すべての指定語が抽出されます。
例: web AND application AND security, web +application +security
説明: キーワードを除外するために使用されます。
例: web application NOT security, web application – security
説明: 複数のキーワードのうち、いずれかが含まれていればよい場合に使用されます。
例: web application OR security, web application |security
説明: 同義語や類似語を含めるために使用されます。
例: web application ~security
説明: 完全一致を求めるために使用されます。
説明: 単一文字のワイルドカードとして使用されます。
例: .eb application security
説明: 単一語に対する特別な場合に使用されます。
例: web * security
説明: 複数の検索条件をまとめるために使用されます。
例: ("web security" | websecurity)
高度なGoogle演算子は、検索結果の最適化に役立ちます。以下は主要な演算子の構文です。
構文は、演算子、コロン (:)、および検索対象の完全なキーワードの3要素で構成され、スペースを含む場合は引用符 (") を使用します。
この構文はGoogleに認識され、指定された情報に基づいて検索が絞り込まれます。例えば、サイトのタイトルに「file of」という文字列があるページを探し(Apache HTTPサーバが目録ページで使用するデフォルトタイトルです)、さらに intitle:"index of" filetype:sql という検索クエリでSQL文書に限定して検索します。
ここから、強力なGoogleハック検索キーワードを支える優れたGoogle検索演算子を見ていきます。
intitle – htmlタイトルに指定された単語が含まれるページのみを表示するよう、Googleへ指示します。たとえば intitle:"login page" は、タイトルに "login page" が含まれるページを表示します.
allintitle – intitleと同様ですが、タイトル内のすべての指定語が含まれるページを検索します.
inurl – URLに指定された単語を検索します。たとえば inurl:"login.php" または inurl:login.jsp intitle:login.
allinurl – inurlと同様ですが、URL内の全ての語句を検索します.
filetype – 指定されたファイルタイプを検索します。filetype:pdf はサイト内のpdfファイルを検索し、filetype:txt は拡張子.txtのファイルを対象とします。たとえば "delicate however unclassified" filetype:pdf
ext – filetypeと同様に、ext:pdf はpdf拡張子の文書を探します.
intext – ページ本文を検索します。通常のGoogle検索と同様です。たとえば intext:"index of/" や Host=*.* intext:enc_UserPassword=* ext:pcf
allintext – intextと同様ですが、本文内のすべての指定語を検索します.
site – 検索対象を特定のサイトに限定します。たとえば site:example.com
プログラマーがURL以外のフィールドで検索したい場合、以下のキーワードを利用できます:
これらのオプションを活用すると、通常のGoogle Dorkでは分かりにくいサイト情報を明らかにでき、見つけにくいコンテンツの探索にも役立ちます。
機密データがインターネット上に公開され、検索エンジンを通じて容易にアクセスされるため、専門の情報収集者に狙われる恐れがあります。Googleハッキングは、攻撃者が既知の脆弱性や設定ミスを探るための手法です。しかし、検索エンジンによる情報漏洩を防ぐために、いくつかの対策を講じることが可能です。例えば、Web検索エンジンが機密情報を収集しないように設定し、WAF(Webアプリケーションファイアウォール)にて、非公開の管理者名やVisa番号のようなパターンを含むリクエスト・レスポンスを検知し、漏洩の可能性がある場合には遮断するなどの高度な設定が求められます。Johnny's I Hack Stuffでは、これらの文書例も紹介されています。
機密情報がWeb検索で漏れていないかどうかは、定期的にGoogleをチェックすることで確認できます。GooScanやGoolag Scannerなど、そうした目的に特化したツールもインターネット上で入手可能です。
留意点
Googleの検索ツールやその他のサービスをハッキングする行為自体は「Googleハッキング」とは呼ばれません。実際、Googleはホワイトハッカーによるセキュリティ向上を歓迎しており、ハッキングによりWebアプリの安全性が高まる場合には報奨金を支払う制度も設けています。
全てのクローラに影響を及ぼすため、Googleハッキングは実質的に検索エンジンハッキングと言えます。もちろん、他の検索ツールで特定の検索を行うことも可能です。
Googleハッキングは、対象システムに直接アクセスすることなくWebページを探し出し閲覧する手段として優れているだけでなく、攻撃の情報収集フェーズにおいてデータを明らかにする正当な方法でもあります。多くの情報セキュリティ評価において欠かせない手法であり、適切に実施すれば非常に有益な結果をもたらします。GHDBには誰でも参照できる多数の検索クエリが公開され、高度な演算子を用いた特定のターゲットへのテストも可能です。
最新情報を購読