株式会社セキュアイノベーション

    Menu

    セキュリティコラム

    • Webアプリケーション

    公開:2022.07.19 10:00 | 更新: 2022.08.08 08:54

    Google Dorksを活用したOSINT調査

    はじめに

    今回は「Google Dorks」を活用したOSINT調査について簡単に解説していきたいと思います。

    そもそもOSINTってなに?って方も少なからずいらっしゃると思いますので、そちらもあわせて解説していきたいと思います。

    ※本調査手法は許可なく実施した場合、違法になる可能性があります。取扱いに十分注意して行ってください。

    OSINT

    まず初めに、OSINT(オシント)とは「Open Source Intelligence」の略で、一般に公開されている情報源からアクセス可能なデータを収集、分析、決定する諜報活動の一種となっており、米国国防総省(DoD)によって、以下の様に
    「特定の情報要件に対処する目的で、一般に公開されている情報を収集、利用し、適切な読者に適時に配布することによって作成されるインテリジェンスである。」
    と定義されています。

    (1)Open-source intelligence (OSINT) is intelligence that is produced from publicly available information collected, exploited, and disseminated in a timely manner to an appropriate audience for the purpose of addressing a specific intelligence requirement.

    https://irp.fas.org/congress/2005_cr/dod-osint.html

    主なOSINT手法は、Passive型、Semi-Passive型、Active型の3つがあり、シナリオや収集するデータの深さによって使い分けられます。

    • Passive型:一般に公開されているリソースのみを対象とし、最もよく利用される手法の一つです。
      セキュリティ専門家の中では「偵察」とも呼んだりします。
    • Semi-Passive型:ターゲットのサーバーに限定的なトラフィックを送信し、ターゲット側にアラームを出さずに軽く調査することで情報を収集するものです。
    • Active型:システムに直接アクセスして情報を収集する手法になります。

    これらの中で、今回はPassive型について解説していきたいと思います。

    Google Dorks

    Google Dorks(以降、Dorks)は、Google DorkingまたはGoogle Hackingとも呼ばれ、Google検索オプションの高度な検索演算子を使用して情報を取得する手法です。
    Googleは機密情報が明示的にインデックス登録から除外されていない限り、自動的に情報をインデックスしています。
    Dorksを利用することで、インデックスされた以下の様な情報を効率的に取得することが可能になり、攻撃者はこれらの情報を元にターゲットの脆弱性を特定する可能性があります。

    1. 重要な情報を含むファイル
    2. パスワードが含まれるファイル
    3. ユーザー名を含むファイル
    4. 脆弱性のあるファイル
    5. ログインポータルを含むページ
    6. 機密性の高いディレクトリ
    7. etc…

    検索クエリオプション

    よく利用されるクエリオプションは以下の項目になります。

    クエリオプション用途利用例
    cache:GoogleにキャッシュされたWebサイトのバージョンを表示cache:www.secure-iv.co.jp
    filetype:任意の種類のファイル拡張子を検索filetype:pdf
    inanchor:リンクで使用されているアンカーテキストを検索inanchor:”cyber security”
    intext:テキスト内に特定の文字や文字列を含むページを検索intext:”Security Best Practice”
    intitle:タイトル内に含まれるキーワードを検索intitle:”OWASP Top 10 2022”
    inurl:URL中に1つのキーワードを含むものを検索inurl:”admin”
    link:指定URLへのリンクを含むWebページを検索link:www.secure-iv.co.jp
    site:指定ドメインのインデックスされた全てのURL(サブドメイン含む)site:secure-iv.co.jp
    *指定位置の全ての単語を含むページを検索*.com
    |両方またはいずれかの単語を含むページを検索“security” | “tips”
    +複数単語の条件を満たすページを検索security + trails
    -指定単語を含まないページを検索security -trails

    Dorksの簡単な利用例

    Dorksは様々な情報収集に活用できます。

    ここでは簡単な利用例をピックアップしたいと思います。
    例えば、Twitter上から特定のキーワードを含むページを取得したいことがあると思います。
    この場合、以下の様に検索すると特定キーワードを含む2022年7月1日以降にインデックスされたページを取得することができます。

    site:twitter.com intext:"Emotet"|"Ransomware" after:2022-07-01

    2022/7/6にキャプチャ取得

    今回の検索条件は以下の様に設定してみました。

    • site:twitter.com
      対象ドメインを「twitter.com」に絞る
    • intext:"Emotet"|"Ransomware”
      ページ内テキストに「Emotet」または「Ransomware」を含む
    • after:2022-07-01
      2022年7月1日以降にインデックスされたページ

    検索結果は約920件取得することができました。
    こんな感じでTwitter上から特定キーワードを含むつぶやきを取得することができました。
    Twitterから「Emotet」の情報を集めていると、稀に注意喚起前の情報が拾えることがあったりします。(信憑性は要確認)

    次は「兵庫県尼崎市」のUSBメモリー紛失による情報漏洩についてYahoo!ニュースからトピックを収集してみましょう!
    尼崎市が問題を発表したのが6月23日だったので、日付は6月22日以降でフィルタをかける感じで検索してみます。

    1site:news.yahoo.co.jp intitle:"情報漏洩"|"USBメモリー" intext:"兵庫県尼崎市" after:2022-06-22

    2022/7/6にキャプチャ取得

    今回の検索条件は以下の様に設定してみました。

    • site:news.yahoo.co.jp
      対象ドメインを「news.yahoo.co.jp」に絞る
    • intitle:"情報漏洩"|"USBメモリー"
      ページタイトルに「情報漏洩」または「USBメモリー」を含む
    • intext:"兵庫県尼崎市"
      ページ内テキストに「兵庫県尼崎市」を含む
    • after:2022-06-22
      2022年6月22日以降にインデックスされたページ

    検索結果は約299件取得することができました。
    こんな感じで特定ニュースサイトから情報を収集する際にもDorksは利用できたりします。

    Dorksを利用したOSINT
    ここから記載する内容は、脆弱性診断やペネトレーションテストなどで実行するものが多く許可なく実行すると違法になる可能性があります!

    脆弱性診断やペネトレーションテストを行う際、Dorksのクエリリストは「Exploit Database」の「Google Hacking Database」が良く利用されます。

    1.重要な情報を含むファイルの調査
    設定ミスなどにより機密情報を含むファイルが公開されていないか調査

    この調査の目的は、公開された機密情報から次の攻撃に移る際に必要なユーザ情報などを集める際に利用されます。

    1intext:"account"|"username"|"password" intitle:"index of" site:{調査対象企業のドメイン} filetype:txt|xlsx

    上記クエリの意味は以下の様なものになります。

    • intext:”account”|”username”|”password”
      ページ内テキストに「account」、「username」、「password」のいずれかを含む
    • intitle:”index of”
      ディレクトリまたはファイル一覧を表示するページ
      ※Apache等の設定で非表示にすべきページ
    • site:{調査対象企業のドメイン}
      脆弱性診断または、ペネトレーションテストを行う企業のドメイン

    2.ユーザ名を含むログファイルの調査
    ユーザー名を含んだ.logファイルが公開されていないか調査

    この調査の目的は、SQLエラーログ等の重要な情報を含むログが見つかる場合があるためよく利用されます。

    1allintext:username filetype:log site:{調査対象企業のドメイン}

    上記クエリの意味は以下の様なものになります。

    • allintext:username
      ページテキストに「username」を含む
    • filetype:log
      .logファイル拡張子のものを検索
    • site:{調査対象企業のドメイン}
      脆弱性診断または、ペネトレーションテストを行う企業のドメイン

    3.ログインポータルを含むページの調査
    Admin専用ログインページが無いか調査

    この調査の目的は、一般ユーザ以外のログインページが存在しないか調査する際に利用されます。

    1site:{調査対象企業のドメイン} inurl:/admin/login

    上記クエリの意味は以下の様なものになります。

    • site:{調査対象企業のドメイン}
      脆弱性診断または、ペネトレーションテストを行う企業のドメイン
    • inurl:/admin/login
      URL内に「/admin/login」を含むページ

    上記以外にも様々な調査手法がありますが今回のブログでは割愛したいと思います。

    Dorksによる調査を防ぐ対策

    ①robots.txtを配置してクローラを拒否する

    robots.txtを設定することで、Googleクローラのアクセスを制御することができインデックスされるリソースを制限することができます。
    逆を言えば、robots.txtを読めば見られたくないリソースが何処にあるか把握できるため、ペネトレの際は目視確認したりします。

    ②脆弱性診断などを行い、Webサイトまたはサーバーの脆弱性や設定ミスなどを洗い出し対応を行う

    脆弱性や設定ミス等を手動で見つけ出すのは結構至難の業です。
    弊社はWebアプリケーション脆弱性診断やプラットフォーム脆弱性診断などのサービスも提供しており、脆弱性の有無やレベルだけではなく、具体的な対処方法までも含め、実際に技術者の方が改善対応に繋げやすい内容をご報告します!

    ■サービス紹介:セキュリティ脆弱性診断サービス

    ■関連ブログ:何が違う?脆弱性診断とペネトレーションテスト

    最新のコラム記事

    LOADING...

    セキュアイノベーション サービス一覧

    ネットワーク・サーバー

    Webサイトを守る

    ヘルプデスク・サポート