フィッシング
「偽サイト」を阻止するには?:ゾーン監視で偽装ドメインの悪用を事前に発見
フィッシングは、インターネット上で最も長くサイバー犯罪者に利用されている詐欺手口の1つです。利用者を特定のWebページやサービスの偽サイトへ誘導し、利用者自らに情報を入力させて詐取します。フィッシングを含め、いわゆるネット詐欺では本物そっくりの「偽サイト」が使用されます。
フィッシングは、インターネット上で最も長くサイバー犯罪者に利用されている詐欺手口の1つです。利用者を特定のWebページやサービスの偽サイトへ誘導し、利用者自らに情報を入力させて詐取します。フィッシングを含め、いわゆるネット詐欺では本物そっくりの「偽サイト」が使用されます。非常によく利用される手口のため、企業や個人ユーザは、認知の有無を問わず、おそらくはこれまでに多くのフィッシングページを目にしていることでしょう。2017年7月27日公開のブログ記事では、利用者がフィッシング攻撃を見抜くためのポイントについて解説しています。しかし、この他にどのような対策を講じれば、偽サイトを使用するフィッシング攻撃を、事前的かつ能動的に検出および阻止できるでしょうか?本記事ではドメイン名の仕組みについておさらいし、ゾーンファイルに含まれた不審なドメイン名の監視により特定法人組織を偽装するフィッシング攻撃を未然に防ぐ取り組みについて解説します。自組織の偽サイトに悩まされている法人利用者の参考にもなるでしょう。
ドメイン名を利用するフィッシング詐欺の手法
多くのフィッシングの手口、特に金融詐欺やクレジットカード情報の詐取に関するものは、正規Webページで使用されるURLの文字列を模倣して、Webサーバ上に構築した詐欺ページへ誘導する不正URLの文字列に利用します。このため、ユーザは詐欺メールに含まれた不正URLを正規Webページへのリンクと信じ込んでクリックしてしまいます。不正なリンクをクリックしたユーザは、サイバー犯罪者が管理する、本物そっくりに生成された偽のWebページに誘導されます。ユーザがそのページにクレジットカード番号やログイン情報を入力すると、サイバー犯罪者はそれらの情報をC&Cサーバを介して受信して窃取します。
偽装したWebページを構築するには、いくつかの方法があります。最も一般的なものは、正規ドメイン名と非常によく似たドメイン名を新たに購入あるいは登録し、そこに偽装Webページおよび不正なコンテンツを構築するという方法です。その後、サイバー犯罪者はフィッシングメールを送信し、不正なコンテンツを表示する偽装Webページへユーザを誘導しようと試みます。
これらすべてに要する時間は、登録要件に対するレジストラの対応速度や偽装Webページの構築作業、サイバー犯罪者の構築作業に対する時間配分あるいは技術的知識により数時間から数日かかることがあります。そのため、企業にとって、新しく登録されるドメイン名の登録情報を基準にすることで、不正ドメインがもたらしえる脅威に対する監視が可能になります。しかし、ドメイン名の監視は具体的にどのように機能するのでしょうか。まずはドメイン名の基本から見ていきましょう
ドメイン名の仕組み
ドメイン名は、インターネット上の住所を識別するために IP アドレスに紐づけられた文字列です。ドメイン名は、「ドメイン・ネーム・システム(Domain Name System、DNS)」の規則と手順に従い形成され、階層的に構成されています。ドメイン名はDNSルートドメインで始まり、その後に「.」(ドット)文字で区切られたサブドメインが続きます。
例えば、ドメイン名「trendmicro.com」は、第1レベル「com」と第2レベル「trendmicro」がドット「.」で区切られています。第1レベルはトップ・レベル・ドメイン(Top Level Domain、TLD)と呼ばれ、以下のようないくつかのカテゴリに分かれています。
- gTLD (Generic Top Level Domain) – 分野別トップレベルドメイン。もともとは「.com」、「.edu」、「.gov」、「.int」、「.mil」、「.net」、「.org」の7つのみだったが、近年では、この他にもドメイン名が存在する
- ccTLD (Country Code Top Level Domain) – 国別コード・トップレベル・ドメイン。原則として国際標準化機構(International Organization for Standardization、ISO)のISO 3166-1において規定される2文字の国コードが使用される。日本の場合は「.jp」、フランスの場合は「.fr」など
第2レベルおよび第3レベルのドメインは、一般的に企業や個人によって購入または登録されます。第3レベル以上のドメインを扱うことも可能ですが、それらのドメインの所有権は、第2レベルのドメインを購入した所有者にも帰属することに留意してください。例えば、以下の場合は、ドメイン名として使用可能であり、第2レベルの「trendmicro.com」というドメイン名を登録した企業に帰属するものとなります。
technical.support.portal.trendmicro.com
第2レベルのサブドメインの所有者が、そのドメイン名をレンタルしたり、あるいは、第2レベルのサブドメインを含む、第3レベル以上のドメインを提供したりするサービスも存在します。例えば、DDNS(Dynamic DNS)サービスを提供する「DynDNS」や「FreeDNS」のような企業やサービスは、たくさんのドメイン名を登録しており、利用者が望むサブドメインを使用できるオプションを実際に提供しています。
ドメイン名の登録方法
ドメイン名を登録する際、ドメイン登録希望者(レジストラント)は、ICANN (Internet Corporation for Assigned Names and Numbers )の認証を受けたドメイン登録事業者(レジストラ)、またはレジストラントの代理で登録申請業務を行う再販事業者(リセラー)に新しいドメイン名を申請します。次に、レジストラがドメイン名を登録します。各TLD配下に登録されたすべてのドメイン名は、レジストリと呼ばれる、レジストラの上位組織が管理するデータベースに保持され、レジストリオペレータによって管理されます。このようなドメイン登録の仕組みを世界全体で管理・調整・運用しているのがICANNです。
登録したTLDを別のレジストラに移管する際には、「AuthCode」と呼ばれる認証鍵を利用します。gTLDをレジストラ間で移管する際は、ドメイン名の所有者をレジストラが識別するためのAuthCodeが必要です。ccTLD配下のドメイン名の場合、ccTLDを管理する事業者が指定した事業者間での移管となるためAuthCodeは不要です。
DNSにおける名前解決の仕組み
DNSにおいて名前解決とは、ユーザがドメイン名を用いてインターネット上で接続先サーバを指定する際に、コンピュータがネームサーバに問い合わせを行い、接続先サーバのIPアドレスを見つけ出すシステムのことです。名前解決の問い合わせに必要な情報は、リソースレコードとしてテキスト表現した形でゾーンファイル内に構成されています。
ゾーンファイルとは
DNSゾーンファイルは、DNSゾーンのDNS情報を含む大きなテキストファイルです。ゾーンは、単一の運営主体によって管理されるドメイン名空間上の一部を指す言葉で、上位の権威サーバから下位の権威サーバへの権威委譲により生成される名前解決可能な範囲をいい、権限委譲されたゾーンは委譲先である権威サーバ(権威DNSサーバ)により管理されます。これは、「.com」や「.net」、「.jp」などのDNSゾーンファイルが存在することを意味します。
ゾーンファイルは、日本レジストリサービス(Japan Registry Service、JPRS)の提供する、ドメイン名登録情報検索サービス「Whois」を利用して自由に検索することが可能です。2020年2月現在、1,500以上の異なるゾーンファイルが存在しています。ICANNは、一元的に管理された膨大なゾーン・ファイル・データをダウンロード可能なサービス「CZDS(Centralized Zone Data Service)」を提供しています。残念なことに、CZDS経由ではすべてのゾーンファイルにアクセスすることはできません。しかし、不正ドメインの悪用によるフィッシングや、技術的なトラブルが発生した際に、トラブルの発生元であるドメインの登録者に直接、あるいは指定事業者を経て連絡が取れるよう管理されており、公開必須項目に関しては、インターネット接続が可能なユーザなら誰でも確認することができます。
CZDS経由でダウンロード可能なゾーンファイルはTLDごとに異なり、以下のゾーンの管理情報や、権威サーバが名前解決に応答する内容なども含まれています。
- ドメイン名
- ホスト名
- IPアドレス
- ドメイン登録者名
- 連絡先( 電話番号やメールアドレス ) など
このように、ダウンロードしたゾーンファイルを解析することにより、不正活動の兆候を検知することが可能となります。
特定のゾーンファイルは、限られた組織にのみ提供または販売されます。一例としては、「.FR」や「.RE」などのTLDを管理するフランス・ドメイン・ネーム・レジストリ「Association française pour le nommage Internet en coopération (AFNIC)」です。AFNICは自社で保全するWhoIsデータベース全体への日次アクセス権を提供しています。このアクセス権は、フランス国内または他の欧州連合(EU)に加盟する各国内で3年以上存続が証明できる法人にのみ提供されます。WhoIs上でデータを使用する目的やその他の特定情報は企業審査側に提供されます。これらの情報提供にも費用がかかります。
ゾーンファイルの解析によるフィッシング攻撃の事前検知
ゾーンデータは非常に単純な形式のテキストファイルであるため、簡単に不審なドメイン名かどうかを選別することができます。しかし、テキストファイルは非常に大きく、何百万ものドメイン名を含んでいるため、それらをすべて人の手で解析することは現実的に困難です。そのため、通常、不審なドメイン名を検索可能な自動化スクリプトを利用します。このスクリプトは、すべてのドメイン名を解析し、正規ドメイン名との類似性やそのパターンに基づいて不審なドメイン名を発見できるものでなければなりません。
具体例としては、自社の企業名やブランド名に類似したドメインが第三者によって登録されていないかを確認することができます。その方法としては、潜在的に不正利用される恐れのあるドメインのリストを作成します。例えば、トレンドマイクロの場合、ゾーンファイルに含まれる不審な文字列の例として、trendmicro、trendmicr0、trendm1cro、trendm1cr0、trend-micro、trend-micr0、trend-m1cro、trend-m1cr0などがあります。正規ドメインの類似点やそのパターンに基づいて、不正ドメインとして作成されるであろう不審な文字列の具体例を羅列しましたが、これだけでもかなりの数の不審な文字列がリストに上がる可能性があります。しかし、常に攻撃の機会を狙うサイバー犯罪者は、リストから漏れているようなドメインを見つける方法を探し出します。
これに対抗するには、「正規表現」を利用することが役立ちます。正規表現とは、検索パターンを定義する文字列です。例えば、trendmicroに似せた上述のリストに含まれる文字列はすべて、「trend.*m[i1]cr[o0]」という単一の正規表現で表すことができます。
正規表現を可視化および検証することのできるさまざまなオンラインサービスが利用可能です。「trend.* m[i1]cr[o0]」という正規表現は次のようなパターンを表しています。「trend」に完全一致する文字列に続いて、改行を除く任意の文字が0回以上繰り返され、その後「m」、次に「i」または「1」が続き、「cr」の後、「o」または「0」のいずれかが続きます。「trend」の後に、いずれかの文字を0回以上使用という部分は、例えば「trend — micro」のようなパターンのドメインを検出するための正規表現です。
サイバー犯罪者は、不正なドメインが信頼できるように見せるために、trendmicro-supportのような文字列のドメイン名を利用することもあります。正規ドメインのように見えますが、このドメイン名はトレンドマイクロで正式に利用されているドメイン名ではありません。
ゾーンファイルを頻繁にダウンロードすることで、新しく登録された不審なドメイン名の早期発見が可能になります。また、精査済みのドメイン名を除外することで、能率を上げることができます。ただし、精査済みのドメインであっても、登録期限終了後に別の人物によって登録される場合もあるため、不審なドメインを精査する際には登録日も考慮する必要があります。
ゾーンファイルを提供していないTLD上の不正なドメイン名の検出方法
不審なドメインを検出するためのDNSリクエストを定期的に送信することで不審なドメインが登録されていないか確認することが可能です 。
この方法は、数々の不審な、あるいは詐欺の疑いのあるドメインと一致する複数のDNSリクエストを送信することにより実行できます。トレンドマイクロの例をもう一度見てみると、TLDを持つ以下のような不審なドメインに自動化されたDNSリクエストを送信することにより、名前解決を試行することが可能です。
- trendmicro.< tld >
- trendmicr0.< tld >
- trendm1cro.< tld >
- trendm1cr0.< tld >
- trendmicro-support.< tld >
- trendm1cro-support.< tld >
- trendmicr0-support.< tld >
- trendm1cr0-support.< tld >
- trendmicro-supp0rt.< tld >
- trendm1cro-supp0rt.< tld >
- trendmicr0-supp0rt.< tld >
- trendm1cr0-supp0rt.< tld >
- trendmicro-solutions.< tld >
容易に想像できる通り、上記のような不審なドメインの件数は、数百件に上ることもあります。この検出方法の問題は、新しく登録された不審なドメインを検知するために正規表現を使用することができない点です。そのため、完全なドメイン名の一覧を準備し、それぞれのドメインに対して実際にDNSリクエストを送信する必要があります。
別の方法としては、正規表現を書くだけでそれに適合するドメインを生成するスクリプトやサービスの利用が考えられます。DNSサーバによっては頻繁なDNS問合せを受け付けないものもあるため、各DNSリクエストの間に少しの待機時間を置くのが一般的です。
不審なドメインが発見され、自社が登録していない不審なドメインや不正活動に利用されたドメインが検出された場合、または不正行為に関連付けられていることが解析された場合、すぐに削除プロセスが開始される必要があります。このプロセスにより、企業はドメインを閉鎖したり、サイバー犯罪者にとって役に立たないものにしたりすることができます。
不審なドメインの検出
ブランド名や企業名に応じた適切な正規表現によって、満足のいく検出率でゾーンファイルから効率良く不審なドメインを検索することが可能です。これらの作業を可能な限り自動化する必要があります。可能であれば日次的に、あるいは定期的に不審なドメインを検索することが推奨されます。
以下のような作業を、可能であれば日次で実行することが推奨されます。
- CZDSまたはその他のサービスを利用し、ゾーンデータをダウンロードする
- 正規表現を使用して不審なドメインを探し、検出されたドメイン名はすべて検査する
- 偽陽性または誤検知があった場合、それらに対処できるように正規表現を改善する
- 検出された不審なドメイン情報は、エクセルシート、オープンソースの脅威情報共有プラットフォーム(Malware Information Sharing Platform、MISP)、あるいは独自ツールなどの保存形式に関係なくすべて更新する
多くのTLDゾーンファイルは、レジストラオペレータまたはドメイン名登録情報管理会社「VERISIGN」へ問い合わせることで取得可能ですが、取得できないゾーンファイルに対しては問題が残ります。ゾーンファイルを取得できないドメインに関しては、疑わしい文字列を組み合わせたドメインに関するDNSリクエストを定期的に送信することが推奨されます。
また、不審なドメインを捜索して検出するために有効な手段としては、通常、サイバー犯罪者が不正なドメイン名を作成する際に用いるパターンと類似させるという方法です。活用可能な実例として、DNSにより変換処理された名前解決に関する情報を受動的に記録するシステムは、情報セキュリティ専門家やシステム管理者に、特定のドメインに関する変更履歴情報を提供しています。このような情報は、侵入の痕跡(Indicator of Compromise、IoC)を関連付けるのに役立つばかりでなく、関連するドメインや新たに追加された不審なドメインを特定するために必要な関連性を確認するための情報ともなります。ドメイン登録情報は、同様の情報を使用して登録された他のドメインと不審なドメインを関連付けることによって、サイバー犯罪者のインフラストラクチャを明らかにする上で役立ちます。
ドメインの監視は、企業名やブランド名が悪用されるリスクの軽減に役立ちます。ネットワーク上にWebレピュテーション技術を使用したセキュリティの仕組みを導入することも有効です。また、ドメインや電子メールヘッダを偽装するなどの手法を利用するフィッシング攻撃やその他の電子メールによる脅威では、電子メールゲートウェイを保護することも重要です。
次回の記事では、ゾーン監視で不審なドメインを検出した後に実施可能な不正ドメインへの停止措置の取り方について解説します。
参考記事:
InfoSec Guide: Domain Monitoring — Detecting Phishing Attacks (Part 1)
by Cedric Pernet, Senior Threat Researcher
Trend Micro Cyber Safety Solutions Team
翻訳: 益見 和宏(Core Technology Marketing, Trend Micro™ Research)