迷惑SMSを間違って押してしまったら、わけのわからないアドレスに飛んでしまいました。
メッセージをよく見ると、妙に太い文字が含まれていたり、日本語にも下線が引かれています。これは、いったいどこへのリンクなのでしょうか?
迷惑SMSのリンクに含まれる 変に太い文字(数学用英数字)や日本語は、「迷惑メールフィルターを逃れるため」の小細工のようです。
SMSには、HTMLメールのようなリンクは挿入できず、基本的には表示されているURLがそのままリンク先になります。ただし、「国際化ドメイン」は、Punycode変換が行われます。
1. 変なURLのリンク先は偽サイト
らくらくスマートフォンを見たら、迷惑SMSに「変なURL」がありました。
クリックしてしまうと、ブラウザの偽アプリ(chrome.apk)をインストールさせようとするサイトでした。
「apk」は、ダウンロードしないでおこう。
ただし、アドレスバーを見てみると、SMSに書かれた「変なURL」とは微妙に違っているようです。
1-1. スマートフォンのSMSアプリによる
ちなみに、似たようなメッセージを別のスマートフォンで見ると、「変なURL」がリンクになっていないこともありました。
例えば、Googleの「メッセージ」アプリで見ると、変なURLには下線がついていません。
SMSでは、メッセージ内の文字列を見て、アプリがURLだと解釈すると自動的にリンクになります。しかし、どのような文字列をURLと解釈するかは、メッセージアプリによって少し幅があるようです。
2. 数学用英数字は通常の英数字に変換される
まず、メッセージ内の太い英字は、「数学用英数字」という文字です。
Unicodeでは、通常の半角英数字とは「数学用英数字」が用意されています1。
このように同じ英字でも、通常の文字のほかに13種類も字体が用意されています。
スマートフォンのメッセージアプリやブラウザアプリによっては、これらの数学用英数字を通常の英数字に自動的に変換してリンクを解釈する場合があるようです。
わざわざ見慣れない文字を入れているのは、URLの文字列を微妙に変えることで、迷惑フィルターを回避しようとしているからのようです2。
単純な仕組みの迷惑SMSフィルターなら、ブラックリストに載ったURLから少しずらすだけで、ブロックを回避できるからです。
3. 「xn--〜〜」はPunycode変換された国際化ドメイン
さらに、迷惑SMSのリンクを見ると、一部の日本語にも下線がついています。
らくらくスマートフォンでは、日本語もURLとして認識されています。
この場合は、「~」がURL解釈の区切り文字になっているようです。
日本語もURLに使えるの?
インターネットでは、「国際化ドメイン」といって、英数字以外のドメイン名が取得できるようになっています。英字以外のドメイン名は、「Punycode変換」という方式で、英数字に変換されます3。
Punycode変換すると
「さい」は、「xn--n8j7a
」、
「さいz-nq」は、「xn--z-nq-453cxd
」になります。
一部の文字だけが変換されるのではなく、全体として変換されています。
したがって、「さいz-nq.vsngw.com」は、
「xn--z-nq-453cxd.vsngw.com
」に変換されていたわけです。
攻撃者は、わざわざサブドメインに日本語を含めて、偽サイトを作っていたんだね。
こちらもどうぞ。
(補足)
- この記事内にも挿入したかったですが、WordPressのデータベースではエラーになってしまいました
- SMSはUnicodeを使います。この細工は、2バイトの基本多言語で記述する英小文字を、数学用英数字で記述することで、フィルタを回避する作戦です。文字コードが違うのでドメイン名として通らなさそうですが、通常の英数字として認識されたり、変換されたりで通用してしまうようです(最近得た知見)。- Naomi Suzukiさん: 「SMSはUnicodeを使います。」 / Twitter
- 国際化ドメイン名 – JPNIC