本文へ移動します

未来に繋ぐセキュリティ情報発信

OCR フィッシング分類器で隠れた Microsoft フィッシングを探せ!

安藤 翔一

こんにちは。Microsoft 製品を使用したサービス開発を行っている安藤です。

フィッシングサイトの中で最も多く模倣されているブランドをご存じでしょうか。期間別に集計・報告されているなかで頻出するブランドが Microsoft です。多くの組織で業務基盤、コミュニケーション基盤として Microsoft 365 が利用され、また多数のサービスが Microsoft Azure という大きなプラットフォーム上に構築されているため、Microsoft のアカウントの資格情報を窃取することは攻撃者視点で非常に価値のあるものとなります。

フィッシングサイトには資格情報を入力しないことが望ましいですが、フィッシングサイトの見極めもますます困難となってきた今、フィッシング耐性のある認証方式を利用することが根本の対策となります。一方でセキュリティに少しでも関わるエンジニアとしては攻撃者がどのようなフィッシングサイトを利用しているのかを確認したいと思いました。

今回は多数のフィッシングサイトで表示されているページを OCR にかけてフィルタリングを行い、ターゲットブランドが Microsoft のフィッシングサイトを見つける手段についてご紹介します。

フィッシングサイト情報を OSINT から取得する

Microsoft ブランド のフィッシングサイトを探すために、フィッシングサイトの URL やターゲットブランド情報のリストをインターネット上に公開されているフィッシングサイトデータベースから取得します。フィッシングサイトデータベースの中にはフィッシングのターゲットブランドとなっているブランド名を出力してくれるものもあります。

これらに関しては Microsoft ブランドのフィッシングとして報告されているものや、報告後に確認されているものもあるため、信憑性が高く一定数のフィッシングサイトを確認することが可能です。ただし中には、本物の Microsoft サービスページの URL が含まれている場合や、フィッシング対策としての標的型攻撃メール訓練を目的とした訓練用 URL が混在しているケースもあります。

URL からブランド推測する

一方でターゲットブランド情報がないフィッシングサイトデータベースや、有償でしか提供されていないものもあります。URL の情報からもターゲットブランドを推測できるケースがあります。

最終的には直接確認しなければいけませんが、あからさまに Microsoft 製品 / サービス名を URL に使用しているケースは高い確率でターゲットブランドが Microsoft である場合が多いです。母数が多いため、これだけでも多くのフィッシングサイトを分類することができますが、中には以下のようなものも存在します。

こちらは(黒塗り部分も含めて)URL 中に Microsoft に関連する要素が全くないものですが、アクセスすると Microsoft を騙ったフィッシングサイトであることがわかります。このようなフィッシングサイトも含めて分類するにはどうすればいいでしょうか。

フィッシングサイトのソースコードを確認して要素中に Microsoft を騙った形跡があれば…とも思いましたが、中にはすべて画像で構成されているフィッシングサイトなどもあり、実際にレンダリングして目視しなければ確認できないものもありました。そこで、実際に目視して確認する操作をヘッドレスブラウザのスクリーンショットと OCR 機能を使用して実装しました。

OCR を使用してブランド推測する

フィッシングサイトを OCR に処理させる前に、フィッシングサイトのレンダリングを行う必要があります。レンダリングにはヘッドレスブラウザである「Headless Chrome」を使います。また、Headless Chrome はサーバーレスの PaaS となる Azure Functions を使用して実装し、Azure Functions のトリガーにパラメータとしてフィッシングサイトの URL を与えることで、返り値としてフィッシングサイトをレンダリングした画像を PNG 形式で得られるようにします。

得られた画像を OCR に処理させるために Azure AI Vision の OCR 機能を使用します。

※参考:マイクロソフト社「Microsof Learn:OCRの概要」

Azure Functions と Azure AI Vision は Azure Logic Apps から呼び出すことにして以下の全体構成とします。

このようにすることで URL からも確認できないターゲットブランドが Microsoft となっているフィッシングサイトを目視無しで分類することができます。

フィッシングサイトの中には User-Agent が主要ブラウザでなければアクセスできないものや、CAPTCHA の設置、IP アドレスがクラウドインフラ(この場合は Azure Functions の IP アドレス)である場合はフィッシングサイトコンテンツを表示しないといったクローキング技術が使われているものもあります。より精度高く探すには工夫が必要ですが、URL からターゲットブランドが確認できないものであっても分類することができます。

まとめ

いかがでしたでしょうか。Microsoft ブランドをターゲットとしたフィッシングサイトを探すために OCR を利用して分類する実装例についてご紹介しました。ここで得られた Microsoft を騙ったフィッシングサイト URL がブロックされていない場合は、主要ブラウザベンダーへの報告を行う、フィッシングキットと呼ばれるソースコードを確認してその手口を調査するなどで活用しています。

今回は主にクラウドインフラを利用して実装する例をご紹介しましたが、クローキング回避のために Azure などのクラウドインフラではなく、ローカルでの実装を行う場合は Microsoft Edge や Google Chrome をコマンドラインから実行してスクリーンショット画像の生成が行える他、ローカルで動作する OCR モジュールもありますので、クラウド費用を抑えたい場合はローカルマシンでの実装も検討できます。ただし、その際は IP アドレスが攻撃者に筒抜けとなってしまうため、実装の際はご留意ください。
※多くのケースでフィッシングサイトにアクセスした IP アドレスはフィッシングサイト側のログに記録されます。

お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

セキュリティソリューションに関する資料請求・お問い合わせ

関連製品・サービス

開催中のセミナー

最新トレンドや業務に役立つ知識が得られる SBテクノロジーのセミナー 参加無料 オンデマンド配信あり

ピックアップ

セミナー情報
クラウドエンジニアブログ
NOZ
メールマガジン登録