インターネット上には膨大な情報が蓄積されており、その多くはGoogleなどの検索エンジンによってインデックスされています。
一般的に利用される検索キーワード以外にも、Googleには「検索演算子」と呼ばれる特殊なコマンドが用意されています。
これらの演算子を巧みに組み合わせることで、意図せず公開されている機密ファイルや、脆弱性のあるシステムを特定する手法は「Google Dorks」と呼ばれています。
本記事では、Google Dorksの仕組みから、セキュリティ調査における具体的な活用方法、そして自組織のサイトを守るための対策までを詳しく解説します。
Google Dorksの基礎知識と歴史
Google Dorksとは、Googleの高度な検索機能を活用して、Webサイト上の脆弱な設定や機密情報を効率的に探し出す技術のことです。
この手法は別名で「Google Hacking」とも呼ばれ、情報収集(偵察)の段階で非常に強力な武器となります。
もともとはセキュリティ研究者のジョニー・ロング氏によって提唱され、現在ではペネトレーションテストやバグバウンティの分野で広く認知されています。
Googleのクローラは非常に高性能であり、Web管理者が意図していないディレクトリや古いバックアップファイルまで自動的に見つけ出し、データベースに保存してしまいます。
攻撃者はこの強力なインデックス能力を逆手に取り、ブラウザから特定のクエリを送信するだけで、サーバーの脆弱な箇所を特定することが可能になります。
重要な点は、Google Dorks自体はGoogleが提供している正規の検索機能を利用しているに過ぎないという事実です。
しかし、その検索結果にはパスワードリスト、サーバーの設定ファイル、未公開のログイン画面などが含まれることがあり、大きなリスクを孕んでいます。
主要な検索演算子とその役割
Google Dorksを使いこなすためには、まず基本となる高度な検索演算子を理解する必要があります。
これらの演算子を組み合わせることで、ノイズを除去し、目的とする脆弱性の兆候をピンポイントで抽出できます。
以下の表に、セキュリティ調査で特によく使われる主要な演算子をまとめました。
| 演算子 | 機能の概要 | 活用例 |
|---|---|---|
site: | 検索対象を特定のドメインやホストに限定します。 | site:example.com |
intitle: | Webページのタイトル内に特定の単語が含まれるものを探します。 | intitle:”Index of” |
inurl: | URLの中に特定の文字列が含まれるページを検索します。 | inurl:admin |
filetype: | 特定の拡張子を持つファイル(pdf, log, sqlなど)を指定します。 | filetype:log |
intext: | ページ本文の中に特定のキーワードが含まれているものを探します。 | intext:”sql syntax error” |
cache: | Googleが保存しているページのキャッシュを表示します。 | cache:example.com |
これらの演算子は単独で使用するだけでなく、スペースで区切って組み合わせることで検索精度を劇的に向上させることができます。
例えば、特定の企業サイトの中で公開されているPDFファイルだけを探したい場合は、site:example.co.jp filetype:pdfのように入力します。
脆弱性調査における具体的な活用例
それでは、Google Dorksを使用してどのように脆弱なサイトやリスクを特定するのか、具体的な手法を見ていきましょう。
セキュリティ担当者は、自社のドメインに対してこれらの検索を行い、不必要な情報が漏洩していないか定期的に確認する必要があります。
ディレクトリリスティングの検出
サーバーの設定ミスにより、ディレクトリ内のファイル一覧が表示されてしまう状態を「ディレクトリリスティング」と呼びます。
これを探すための代表的なDorkは、intitle:"index of"です。
これにキーワードを組み合わせることで、バックアップファイルや設定ファイルが露出している場所を見つけることができます。
intitle:"index of" backup.zip
このクエリを実行すると、ファイル名に「backup.zip」が含まれるディレクトリ一覧が表示される可能性があります。
機密情報の露出を特定する
開発者が誤って公開ディレクトリに配置してしまった設定ファイルには、データベースの認証情報が含まれていることがあります。
環境設定ファイルである.envや、WordPressの設定ファイルであるwp-config.phpなどがその典型例です。
以下のクエリは、公開されている可能性のある環境ファイルを探索するために使用されます。
filetype:env DB_PASSWORD
もし検索結果に内容が表示されてしまった場合、それは重大な情報漏洩が発生していることを意味します。
管理パネルやログイン画面の発見
通常、管理パネルなどは外部から容易に見つからないようにすべきですが、検索エンジンにインデックスされてしまっているケースが多々あります。
URLやタイトルに含まれる「admin」や「login」というキーワードを狙い撃ちすることで、攻撃対象となる入り口を見つけることができます。
inurl:admin/login.php
これにより、本来は内部ネットワークからのみアクセスすべき管理画面がインターネットに晒されているかどうかを確認できます。
SQLインジェクションの兆候を探す
エラーメッセージが画面に表示される設定になっているサイトは、SQLインジェクションなどの攻撃に対して脆弱である可能性が高いです。
検索エンジンはエラー画面の内容もインデックスするため、特定のエラー文言を検索することで、脆弱なサイトをリストアップできてしまいます。
intext:"sql syntax near" OR intext:"syntax error has occurred"
このようなエラーが放置されているサイトは、データベースの構造を外部から探られるリスクを抱えています。
Google Hacking Database (GHDB) の存在
Google Dorksのパターンは無数に存在するため、有志によってそれらがデータベース化されています。
それが、Offensive Securityが提供している「Google Hacking Database (GHDB)」です。
GHDBには、最新の脆弱性に関連する検索クエリが日々登録されており、誰でも閲覧することができます。
例えば、「脆弱なサーバー」「機密ファイルを含むディレクトリ」「パスワードファイル」などのカテゴリーごとに、効果的な検索ワードが整理されています。
セキュリティエンジニアは、このデータベースを参照することで、最新の脅威トレンドに合わせた調査を効率的に行うことができます。
自社のサービスがGHDBに掲載されているような典型的なパターンに合致していないかを確認することは、リスク管理において非常に有効です。
防御側の対策:Google Dorksからサイトを守る
Google Dorksによるリスクを最小化するためには、情報の「公開範囲」と「インデックス設定」を適切に管理することが不可欠です。
以下の対策を講じることで、検索エンジンを介した情報漏洩を防ぐことができます。
robots.txtによるクローリング制限
検索エンジンのクローラに対して、特定のディレクトリを巡回しないように指示するファイルがrobots.txtです。
管理画面や機密データが含まれるディレクトリをDisallow設定にすることで、検索結果に表示されるのを防ぐことができます。
User-agent: *
Disallow: /admin/
Disallow: /config/
Disallow: /private/
ただし、robots.txt自体は誰でも閲覧可能であるため、そこに隠したい場所を記載することで逆に場所を教えてしまうというリスクも理解しておく必要があります。
ディレクトリリスティングの無効化
サーバー側の設定(ApacheやNginxなど)で、インデックスファイルが存在しない場合にファイル一覧を表示する機能を無効化してください。
Apacheの場合は、.htaccessや設定ファイルでOptions -Indexesを記述します。
# ディレクトリリスティングを禁止する設定
Options -Indexes
これにより、万が一インデックスファイル(index.html等)を置き忘れても、内部のファイル構造が丸見えになることはありません。
noindexタグの使用
特定のページを検索結果に出したくない場合は、HTMLのheadセクションにnoindexメタタグを挿入します。
<meta name="robots" content="noindex, nofollow">
これにより、クローラはそのページの内容をデータベースに登録しなくなります。
認証と認可の徹底
最も根本的な対策は、機密情報や管理画面を「公開設定」にしないことです。
インターネットからアクセス可能な場所には、認証が必要な仕組みを必ず導入してください。
たとえURLが判明したとしても、適切な認証(ID・パスワード、多要素認証など)があれば、Google Dorksによって内容が漏洩することはありません。
法的・倫理的注意点
Google Dorksは便利な技術ですが、その利用には法的なリスクが伴います。
公開されている情報にアクセスするだけであれば、直ちに違法とならないケースが多いですが、意図的に脆弱性を突いて他人のサーバーへ不正に侵入しようとする行為は「不正アクセス禁止法」に抵触する恐れがあります。
また、機密情報をダウンロードしたり、悪用したりすることは、民事・刑事の両面で責任を問われる可能性があります。
本手法はあくまで自組織のセキュリティ向上や、許可を得たペネトレーションテストの範囲内で使用するようにしてください。
倫理的なハッキング(ホワイトハック)の原則を守り、正当な目的のために技術を活用することが、プロのセキュリティ担当者には求められます。
まとめ
Google Dorksは、特別なツールを使わずにブラウザ一つで高度な脆弱性調査を可能にする手法です。
検索演算子を駆使することで、意図せず露出した機密ファイルや設定ミスを迅速に特定できるため、攻撃者にとっても防御者にとっても非常に重要な技術といえます。
しかし、その強力さゆえに、自組織の情報がどのように検索エンジンに捉えられているかを把握しておくことは、現代のセキュリティ管理において避けては通れません。
site:やfiletype:といった演算子を使い、自社のドメインを定期的にセルフスキャンすることで、予期せぬリスクを早期に発見してください。
あわせて、robots.txtの設定やディレクトリリスティングの無効化といった基本的な対策を徹底し、検索エンジンを味方につけた安全なサイト運営を心がけましょう。
高度な検索技術を理解し、適切に活用することが、強固なサイバーセキュリティ体制を構築するための第一歩となります。
