- クレジットカードなどの利用照会を装うメールから偽サイトに誘導する詐欺が横行しています。
- ところが、パソコンからアクセスすると適当な大手サイトにリダイレクトされました。
- スマートフォンからアクセスしたときだけ偽のログインページを表示するように、「ユーザーエージェント」という情報を使っていました。
詐欺メールがスマートフォンを狙うのは、コンピュータ関係に詳しくない利用者が多い、と考えられているからでしょう。
スマートフォンは手軽に使い始めることができますが、情報セキュリティについて自分で学んでいかないといけませんね。
1. クレジットカードの利用照会を装うメール
「エポスカードからのお支払い予定金額」と称するメールが届きました。
- 件名:【エポスカード】 お支払い予定金額のご案内
- 差出人ドメイン:ln707.com
- リンク先ドメイン:morgantgreer.com
差出人とリンク先URLのドメインに注目すれば、すぐに異常に気づく詐欺メールです。
2. パソコンからはたどり着けない
ところが、試しにパソコンからアクセスすると、海外サイトが表示されました。
とくに、パスワード入力欄は見当たりません。
- リダイレクト先:usps.com
「USPS」は「The United States Postal Service(アメリカ合衆国郵便公社)」の略。
偽サイトの出口として、大手サイトが利用されることはよくあります。
USPS以外だと、たとえば Amazon や Yahooなどが表示されることも多いですね。
3. スマートフォンからアクセスしたときだけ表示される偽サイト
ちなみに、ブラウザのユーザーエージェントをiPhoneに切り替えてアクセスし直してみました。
すると、やはり偽のログインページが表示されました。
つまり、スマートフォンを「狙い撃ち」にしているわけです。
悪意のあるサイトの仕組みは、以下のような流れです。
- ユーザーが詐欺サイトのURLにアクセスすると、サーバー側のスクリプト(PHPやPythonなど)が「ユーザーエージェント」を解析します。
- ユーザーエージェントがモバイルデバイス(iPhoneやAndroidなど)からのアクセスであると判断された場合、偽のログインページを表示します。
- ユーザーエージェントがデスクトップ(WindowsやMacなど)からのアクセスであると判断された場合、正規のサイトにリダイレクトします。
「ユーザーエージェント」とは、ブラウザがウェブサーバーに送信する情報の一部で、ブラウザの種類やバージョン、オペレーティングシステムなどの詳細が含まれています。
ウェブサーバーはアクセス元のデバイスやブラウザを識別し、それに適した表示や機能を提供したり、統計情報の収集などに活用したりします。
サーバー側で以下のようなコードを使用している可能性があります(PHPの例):
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent, 'iPhone') !== false || strpos($userAgent, 'Android') !== false) {
// モバイルデバイスからのアクセスの場合、偽のログインページを表示
include('fake_login_page.html');
} else {
// デスクトップからのアクセスの場合、正規のサイトにリダイレクト
header('Location: https://www.real-site.com/');
exit;
}
攻撃者はモバイルユーザーを狙う一方、デスクトップユーザーをリダイレクトすることで検知を避けようとしているのです。
金銭にかかるようなメールはふだんのスマートフォンで見ない、というのも一つの用心になるんだね。
4. サイトの分析を妨害するコード
この偽のログインページには、さらに不自然な細工がありました。
JavaScript のコードで、右クリックと選択、開発者ツール(F12キー)が無効化されていたのです。
右クリックと選択の無効化:
<script type="text/JavaScript">
document.oncontextmenu = new Function("event.returnValue=false");
document.onselectstart = new Function("event.returnValue=false");
document.oncontextmenu = function (e) {
console.log("false");
return false;
};
</script>
F12キー(キーコード:123)の無効化:
<script type="text/JavaScript">
document.onkeydown = function () {
if (window.event && window.event.keyCode == 123) {
event.keyCode = 0;
event.returnValue = false;
return false;
}
};
</script>
不正なサイトでよく見られる仕掛けで、ユーザーの利便性を損なう上、サイトの分析を妨げる目的があると推測されます。