午前7時のしなもんぶろぐ

駆け出しのセキュリティエンジニア、しなもんのぶろぐ。

確認しろって言われるけれど……。「ドメイン名」って何だろう?

こんにちは。

しなもんです。

 

最近は新型コロナウイルス感染症の影響で人の集まるイベントが軒並みできなくなり、対応できるところはオンライン開催に移行していますよね。

 

f:id:am7cinnamon:20200720230227p:plain

 

しなもんがここ半年で行こうとしていた勉強会も多くが中止、一部はオンライン開催になりました。

 

会場での参加にはそれなりのメリットがある (他の参加者さんと交流できるなど) ので、オンライン化されても不満が残ることもあるのですが、一方で時間的・場所的に参加できなかったはずのイベントに参加できる可能性が生まれるという意味ではすごく助かっています。

 

そうした時流に乗って、しなもんもオンラインイベントで初めてのライトニングトーク*1をしちゃいました。

 

資料はこちらです。

 

speakerdeck.com

情報処理安全確保支援士の方向けだったので、ややマニアックな内容になっていますが、もしご関心をお持ちの方がいらっしゃいましたらぜひご覧ください。

 

 

 

増え続けるフィッシング

さて本題です。

まずはこちらの図をご覧いただきましょう。

 

f:id:am7cinnamon:20200718225807p:plain

出典:フィッシング対策協議会 2020/06 フィッシング報告状況

こちらはフィッシング対策協議会が毎月公表している報告状況のレポートから抜粋したもので、フィッシング対策協議会へ寄せられたフィッシング報告と、確認されたフィッシングサイトの URL の数を図示したものです。

 

一目でわかる傾向として、2020年に入ってからほぼ一貫して増加していることが挙げられます。

 

報告数・URL 件数だけで判断できるものでもないと思いますが、ここまで顕著な傾向が出ているということは、今までになくフィッシング詐欺師の活動が活発になっているのは確かだと思われます。

 

それだけ実際の被害を受けてしまう機会も増えているといっていいでしょう。

 

フィッシング (やその他の悪性サイト) の被害を受けないために一番単純で効果があるのは、メールや SMS などで送られてきたリンクは全部無視してアクセスしないことです。

 

実際に金融機関や通販サイトに用事があるなら、あらかじめ登録しておいたブックマークや Google 検索から訪れればいいのです*2

 

ドメイン名を確認しよう、とは言うけれど……

 

しかし、時にどうしても気になるとき、「無視してしまっていいのかな……?」と不安になるときもあるでしょう。

 

Web サイトを確認するうえでもっとも確実な情報が、ドメインです。

例えば、フィッシング対策協議会も「利用者向けフィッシング詐欺対策ガイドライン」(必読) において、本来のWebサイト であるかどうかを確認するための手段として、第一に「ドメイン名が正しいかどうかを確認する」ことを挙げています。

 

f:id:am7cinnamon:20200718232333p:plain

出典:フィッシング対策協議会 利用者向けフィッシング詐欺対策ガイドライン2020年度版

 

ところで、ドメイン名って何なのでしょうね。

 

本記事では、サイトの確認に使うためのドメイン名と、それに伴う注意点を解説します。

 

おことわり

・本記事はあくまで一般の方がサイトの真正性を確認するための資となることを目的にしていますので、技術的な正確さは重視していません。

 

・以下、正規サイト以外の URL やドメイン名を示す際には、間違ってアクセスしてしまうのを防ぐために「hxxp://」「[.]com」などの表記を用いることがありますが、読むうえでは無視していただいて大丈夫です。

 

ドメイン名の構造

本記事の URL を例にします。

f:id:am7cinnamon:20200718234958p:plain

URL の例

 

まず最初に、「https://」の部分ですが、これはドメイン名ではありません。

 

f:id:am7cinnamon:20200719000408p:plain

スキーム

 

この部分はスキームと呼ばれています。

Web ページの場合は http:// もしくは https:// です。

 

https:// の場合は http:// の場合と異なり、サイトにサーバ証明書が導入されていて、通信経路を TLS という方法で暗号化しています。

 

暗号化というといかにも安全そうですが、https に対応した危険なサイトが今や平然と存在しますので、"s" の有無で安全性を判断することはできません

 

参考

blogs.jpcert.or.jp

次に、末尾の「/entry/what-is-domain-name」の部分です。

これもドメイン名ではありません。

f:id:am7cinnamon:20200719000751p:plain

ファイルの場所と名前

 

本記事の場合は記事のファイルがある場所とその名前を示しています。

 

URL の末尾付近につくことがある文字列には他に「?...」「loginid=...」などいろいろありますが、これらもドメイン名ではありません。

 

さて、残りの部分。

f:id:am7cinnamon:20200719001243p:plain

FQDN

 

この「am7cinnamon.hatenablog.com」の部分のことを、FQDN (完全修飾ドメイン名) といいます。

 

完全修飾ドメイン名というくらいなので、これもドメイン名みたいなものですが*3、単にドメイン名というときに指すのはこれのことではないことが多いようです。

 

先頭の「am7cinnamon」の部分。

f:id:am7cinnamon:20200719002832p:plain

サブドメイン

 

これのことをサブドメインと呼びます。「hatenablog.com」というドメインの中の「am7cinnamon」だよ、ということを表します*4

 

というわけで、「hatenablog.com」が本記事のドメインです。

 

f:id:am7cinnamon:20200719003713p:plain

ドメイン

 

「.」(ピリオド) で区切られた各区間のことをラベルといい、ドメイン名の一番右側の部分をトップレベルドメインといいます。

 

本記事の場合は「.com」がトップレベルドメインです。

 

「.com」「.org」のように組織の性質等を表すトップレベルドメインもあれば、.jp などのように国を表すトップレベルドメインもあります。

 

トップレベルドメインのすぐ左側のラベルがセカンドレベルドメインです。本記事にはありませんが、「.co.jp」「.go.jp」のように組織の属性を表すセカンドレベルドメインがあることも多いです。

 

これも本記事にはありませんが、3番目のラベルが存在するドメイン名もあります。

 

ちなみに、メールアドレスの「@」以降の部分もドメイン名です。

ただ、最近はメールではなく SMS などでフィッシングが送られてくることも多いですし、表示される送信者のメールアドレスは容易に詐称できるので、ここではあまり踏み込みません。

 

ドメイン名を確認する」とは

さて、ドメイン名が何かはわかりましたが、これを確認することがどうして危険サイトを避けることにつながるのでしょうか。

 

実はドメイン名には、「同じドメイン名は世界に一つだけ、登録は早い者勝ち」という性質があります。

 

そのため、正規のサイトのドメイン名を知っていれば、それ以外のドメイン名を持つサイトはすべて偽物ということがわかるのです。

 

あくまで「すでに正規とわかっているものと比較する」形で判定するものなので、正規サイトのドメイン名がわからないと仕方がありません。

そこであらかじめブックマークを作っておく、書面など Web 以外の情報源に記載された URL 中のドメイン名と見比べるなどの手段が必要になります。

 

企業によっては、自社で用いているドメイン名を掲示している (それ以外のドメイン名であれば偽物であると主張している) ところもあります。

 

(三井住友銀行の例)

www.smbc.co.jp

ここで注意したいのは、まったく同じドメイン名は世界に一つだけですが、1文字でも違うドメイン名は別に取得できるという点です。

 

そのため、サイトが正規であるということを確証するためには、「ドメイン名が一言一句一致する」ことを確認しなければなりません。ドメイン名を確認する」というのはそういう意味なのです。

 

正規のドメイン名を知らなければ意味がないのか

正規のドメイン名がわからない場合は安全性検証はできません。

 

ただ、それではドメイン名を見ることに意味がないかというと、そうも言いきれません。

 

あからさまに怪しいものは見ただけで危険と判断できます。

 

例えば、有名企業が次のようなドメイン名を持つサイトに誘導することはほとんどないので、URL を見ただけで「これは怪しい」と判断できます。

 

 

もともとメールや SMS 中のリンクにはアクセスしないのが原則ですが、誘導先のサイトがこうした特徴を備えている場合にはなおさらです。

 

これは正規ドメインじゃない

 以上を踏まえて、一見正規ドメインのようで、実は違う例をいくつか見てみましょう。

 

※例示しているのは本当に存在している (いた) フィッシングサイトなので、実際にアクセスしないようにしてください。

 

 hxxps://smbc-card[.]com[.]smbc-cadr[.]com/wap

 

 三井住友カードドメイン名は「smbc-card.com」です。

https://www.smbc-card.com/index.jsp

 

 このサイトのドメイン名には「smbc-card.com」が含まれるので、一見正規サイトのようです。

 

しかし、ドメイン名は右側のラベルほど上位なので、セカンドレベルまでのドメインはあくまで「smbc-cadr[.]com」です。これはよく似ていますが、正規の三井住友カードドメイン名ではありません。

 

hxxp://www[.]eposcard-polnt[.]com

 

一見本当にありそうなドメイン名ですが、正規のエポスカードドメイン名は「eposcard.co.jp」なので無関係のサイトです。

https://www.eposcard.co.jp/index.html

 

ついでに言うと「point」ではなく「polnt」ですね。普通の企業や組織がこうして誤解を誘うようなドメイン名を使うことはまずありません

 

hxxp://update-information-reset-account-support-amazon[.]com/

 

これも正規の amazon.com (米 Amazon) のように見えますが、 amazon のすぐ手前の文字が「.」ではなく「-」(ハイフン) である点がポイントです。

 

ラベルを分けることができるのは「.」だけ、一方で「-」はラベルの中で使うことができます。

 

つまり、このサイトのセカンドレベルドメインamazon」ではなく「update-information-reset-account-support-amazonです。

もちろん、正規のアマゾンとは何の関係もありません。

 

さらに調査したい場合

あるドメインについて、インターネット上でさらにいろいろな情報を得ることができます

 

例えば次のようなオンラインツールがあります。

 

どれも検索窓にドメイン名 (や URL や IP アドレスなど) を入力すれば対応する情報を教えてくれます。(解釈にはそれなりに知識が必要になりますが……)

 

www.virustotal.com

domainwat.ch

urlscan.io

bgp.he.net

見方を変えると、こうした情報は誰でも見られるので、サイトを作ったりドメインを取得したりする際にはそのことを意識しなければいけないのですね。

 

クリック (タップ) する前に立ち止まって考えよう

 くどいようですが、送り付けられたメールや SMS を気にせず触らなければ、危険なサイトの被害を受けることはありません。

これが最強の対策です。

 

しかし、「一切見ない! 触らない!」をいつでも貫けるとは限らないことでしょう。

 

そんなとき、リンクを触る前に*5「このドメイン名は本当に今私が思い浮かべている会社かな……?」と一呼吸してよく確認しましょう。

 

犯罪者はいつでもあなたを狙っています。

 

彼らの攻撃を防ぐことができるのは、あなた自身だけです。

 

*1:複数の人が数分~10分程度の短い時間で行う形式のプレゼンのことです。今回のしなもんの発表はノリを読み違えたせいで情報量過多の内容になっていますが、多くはもっとライトに行われるようです。

*2:Google 検索にも SEO ポイズニングという偽サイトへ誘導する手口がないわけではないのですが、大手事業者に対して実施するのは簡単ではないですし、少なくともメールや SMS 中のリンクから飛ぼうとするよりはるかに危険は少ないです。

*3:実際ドメイン名とすることもあるようです

*4:サイトによっては「www」など、ホスト名も記載している場合があります。

*5:実際にはリンクに偽の URL を記載しているケースもあるので、ページ遷移後にもう一度確認した方がいいです。