公開:2022.07.19 10:00 | 更新: 2022.08.08 08:54
今回は「Google Dorks」を活用した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型について解説していきたいと思います。
Google Dorks(以降、Dorks)は、Google DorkingまたはGoogle Hackingとも呼ばれ、Google検索オプションの高度な検索演算子を使用して情報を取得する手法です。
Googleは機密情報が明示的にインデックス登録から除外されていない限り、自動的に情報をインデックスしています。
Dorksを利用することで、インデックスされた以下の様な情報を効率的に取得することが可能になり、攻撃者はこれらの情報を元にターゲットの脆弱性を特定する可能性があります。
よく利用されるクエリオプションは以下の項目になります。
クエリオプション | 用途 | 利用例 |
---|---|---|
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は様々な情報収集に活用できます。
ここでは簡単な利用例をピックアップしたいと思います。
例えば、Twitter上から特定のキーワードを含むページを取得したいことがあると思います。
この場合、以下の様に検索すると特定キーワードを含む2022年7月1日以降にインデックスされたページを取得することができます。
site:twitter.com intext:"Emotet"|"Ransomware" after:2022-07-01
今回の検索条件は以下の様に設定してみました。
検索結果は約920件取得することができました。
こんな感じでTwitter上から特定キーワードを含むつぶやきを取得することができました。
Twitterから「Emotet」の情報を集めていると、稀に注意喚起前の情報が拾えることがあったりします。(信憑性は要確認)
次は「兵庫県尼崎市」のUSBメモリー紛失による情報漏洩についてYahoo!ニュースからトピックを収集してみましょう!
尼崎市が問題を発表したのが6月23日だったので、日付は6月22日以降でフィルタをかける感じで検索してみます。
1site:news.yahoo.co.jp intitle:"情報漏洩"|"USBメモリー" intext:"兵庫県尼崎市" after:2022-06-22
今回の検索条件は以下の様に設定してみました。
検索結果は約299件取得することができました。
こんな感じで特定ニュースサイトから情報を収集する際にもDorksは利用できたりします。
Dorksを利用したOSINT
ここから記載する内容は、脆弱性診断やペネトレーションテストなどで実行するものが多く許可なく実行すると違法になる可能性があります!
脆弱性診断やペネトレーションテストを行う際、Dorksのクエリリストは「Exploit Database」の「Google Hacking Database」が良く利用されます。
この調査の目的は、公開された機密情報から次の攻撃に移る際に必要なユーザ情報などを集める際に利用されます。
1intext:"account"|"username"|"password" intitle:"index of" site:{調査対象企業のドメイン} filetype:txt|xlsx
上記クエリの意味は以下の様なものになります。
この調査の目的は、SQLエラーログ等の重要な情報を含むログが見つかる場合があるためよく利用されます。
1allintext:username filetype:log site:{調査対象企業のドメイン}
上記クエリの意味は以下の様なものになります。
この調査の目的は、一般ユーザ以外のログインページが存在しないか調査する際に利用されます。
1site:{調査対象企業のドメイン} inurl:/admin/login
上記クエリの意味は以下の様なものになります。
上記以外にも様々な調査手法がありますが今回のブログでは割愛したいと思います。
①robots.txtを配置してクローラを拒否する
robots.txtを設定することで、Googleクローラのアクセスを制御することができインデックスされるリソースを制限することができます。
逆を言えば、robots.txtを読めば見られたくないリソースが何処にあるか把握できるため、ペネトレの際は目視確認したりします。
②脆弱性診断などを行い、Webサイトまたはサーバーの脆弱性や設定ミスなどを洗い出し対応を行う
脆弱性や設定ミス等を手動で見つけ出すのは結構至難の業です。
弊社はWebアプリケーション脆弱性診断やプラットフォーム脆弱性診断などのサービスも提供しており、脆弱性の有無やレベルだけではなく、具体的な対処方法までも含め、実際に技術者の方が改善対応に繋げやすい内容をご報告します!
■サービス紹介:セキュリティ脆弱性診断サービス
■関連ブログ:何が違う?脆弱性診断とペネトレーションテスト
LOADING...