IT実践

偽サイトに嵌って防衛手段を検証する

公開しているメールアドレスは、最近トレンドなフィッシングメールをピックアップで紹介したように、フィッシングメールが毎日山ほど届きます。せっかくなので訪問してみました。

フィッシングサイトに嵌ってみました

最近のブラウザはデフォルト設定で注意喚起してくれます。

Chromeの場合

Firefoxの場合

Firefoxのほうがキッパリと言い切っていてかっこいいですね。

どのブラウザも、うっかり誤クリックで進んでしまわないように「無視して進む」というボタンが無いインターフェイスになってますが、頑張って先に進んでみました。
仮想PC・ブラウザをプライベートモード・LAN切り離し・IPアドレス変更等を行ったうえでの検証です。アクセスするだけで様々な情報を抜かれる恐れがありますので、安易に先に進むようなことはしないようにしてください。

APPLEっぽいサイトが表示されました。

一見APPLE公式のように見えますが、中央の入力フォーム以外はリンクすらされていない張りぼてです。
ですが疑いの目を持って見ない限り、偽サイトだということに気づかないと思います。

フィッシングサイトの見抜き方

騙されないためにはアドレスバーに表示されているURLをよく見てください。まずこの習慣をつけましょう。
見るのは最初に現れるスラッシュ「/」よりも左側です。それよりも後(右側)は一切気にしないで大丈夫です。

http://cert-protection-account-appleid-apple.com

ブラウザによっては

cert-protection-account-appleid-apple.com

とhttp://(またはhttps://)が省略されて表示されます。

以下のような場合にはさらに注意が必要です。

  • apple.example.com/rmd_nid_vcss…
  • google.example.com/rmd_nid_vcss…

ドメイン名「example.com」の前にドット「.」が入っている場合、それより左側はドメインの保有者が自由に好きな文字を設定できるサブドメインと呼ばれます。
一番最初に知っている名前が入っているからといって絶対に信用してはいけません。

  • itunes.apple.com

これはitunesがサブドメインですが、その右側を見るとドメイン名がapple.comとなっているため、本物のappleがitunesというサブドメインを設定したということになります。

  • apple.example.com?rmd_nid_vcss…

となっている場合や.comで終わっている場合もあるかもしれませんので以下のルールで覚えるのが良いと思います。

  • アドレス欄に最初に現れる「アルファベット・数字・ハイフン・ドット」以外の文字までを注視する。
  • その中にサブドメインがある場合にはドメイン管理者が落書きをした程度に思い、より右側のドメインで判断する。

追記:こんなURLも来ていました。

https://www2.amazon.co.jp.aec67eb9efb18fdbeaa43b5bfc33460d.ml

一見するとamazonの正しいURL+セッションIDに見えてしまいますが、よく見るとjpの後にドットが付いているため、サブドメインだと判断できます。
これは以下のようなトリックです。

  1. aec67eb9efb18fdbeaa43b5bfc33460d.mlというドメインを取得
  2. サブドメインjpを設定
  3. サブドメインのサブドメインcoを設定
  4. サブドメインのサブドメインのサブドメインamazonを設定
  5. サブドメインのサブドメインのサブドメインのサブドメインwww2を設定
  6. SSL(https)設定したサーバと紐づける

アクセスしようとすると、幸いにもブラウザが警告を出してくれましたが、新しい詐欺サイトの場合はブラックリストに載っていない可能性もありますので、自分の目でURLを確認するようにしましょう。

偽APPLEサイトのソース

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link href="main.css" rel="stylesheet" type="text/css">
<script type="application/javascript">


  
function showReal(){
  
  var accName=document.getElementById("accountName1").value;
  accName=accName.trim();
  if(accName=="")
    return;
    
  var appleid1Div=document.getElementById("appleId1Div");
  appleid1Div.style.display="none";
  var realDiv=document.getElementById("realInuput");
  realDiv.style.display="block";
  document.getElementById("accountName").value=document.getElementById("accountName1").value;
  document.getElementById("pwd").focus();
}	
function onShowReal(e){
//	if(event.keyCode == 13){  
//		 showReal();
//	 } 
  
  var keynum

  if(window.event) // IE
  {
    keynum = e.keyCode
  }
  else if(e.which) // Netscape/Firefox/Opera
  {
    keynum = e.which
  }
  if(keynum == 13){  
     showReal();
   } 
  
  
  
  
  
}
function formSubmit(){
  if(doSubmit())
    document.getElementById("login").submit();
}
function doSubmit(){
  var accountName=document.getElementById("accountName").value;
  var passwd=document.getElementById("pwd").value;
  var msgDiv=document.getElementById("errMsg");
  
  if(isValidMail(accountName) && passwd.length>5){
    return true;
  }else{
    msgDiv.style.display="block";
    document.getElementById("pwd").value="";
    return false;
  }
}
function hiddenErr(){
  var msgDiv=document.getElementById("errMsg");
  msgDiv.style.display="none";
}

function isValidMail(accountName) {
  var TextVal = accountName;
  //var Regex = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;
  var Regex = /^([0-9A-Za-z\-_\.]+)@([0-9A-Za-z\-_\.]+)$/g
  //var Regex = /^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/g
  if (Regex.test(TextVal)){
    return true;
  }
  else {
    return false;
  }
}
  
  
</script>
</head>

<body>
<!------------------->
<div style="background:#333333;height: 44px;position: absolute;top: 0;right: 0;left: 0;z-index: 9999;display: block;margin: 0;width: 100%;min-width: 1024px;opacity: .9">
  <table width="1024px" border="0" align="center" cellpadding="0" cellspacing="0" style="height: 44px;">
    <tbody>
      <tr>
        <td width="57" align="left"><img src="images/apple.png" height="44" alt=""/></td>
        <td width="28" align="left">&nbsp;</td>
        <td width="77" align="left"><img src="images/mac.png" height="44" alt=""/></td>
        <td width="28" align="left">&nbsp;</td>
        <td width="77" align="left"><img src="images/ipad.png" height="44" alt=""/></td>
        <td width="39" align="left">&nbsp;</td>
        <td width="114" align="left"><img src="images/iphone.png" height="44" alt=""/></td>
        <td width="39" align="left">&nbsp;</td>
        <td width="103" align="left"><img src="images/watch.png" height="44" alt=""/></td>
        <td width="28" align="left">&nbsp;</td>
        <td width="105" align="left"><img src="images/music.png" height="44" alt=""/></td>
        <td width="28" align="left">&nbsp;</td>
        <td width="94" align="left"><img src="images/support.png" height="44" alt=""/></td>
        <td width="28" align="left">&nbsp;</td>
        <td width="76" align="left"><img src="images/search.png" height="44" alt=""/></td>
        <td width="28" align="left">&nbsp;</td>
        <td width="39" align="left"><img src="images/shop.png" height="44" alt=""/></td>
        <td width="36" align="left">&nbsp;</td>
      </tr>
    </tbody>
  </table>
<!--50722405--></div>

<!------------------->
<div style="background-color:#EFEFEF;height: 61px;width: 100%;z-index: 2;background-color: #fff;opacity: .9;position: absolute;top: 44px;height: 61px;">
  <table width="1024px" border="0" align="center" cellpadding="0" cellspacing="0" style="height: 61px;">
    <tbody>
      <tr>
        <td width="214" align="left"><div style='font-size: 21px;font-weight: 600;letter-spacing: 0.015em;font-style: normal;box-sizing: border-box;color: #333333;-webkit-font-smoothing: antialiased;'>Apple ID<!--50722405--></div></td>
        <td align="left">&nbsp;</td>
        <td width="114" align="left" nowrap style='font-weight: 400;font-size: 12px;box-sizing: border-box;-webkit-font-smoothing: antialiased;opacity: .9;'>サインイン</td>
        <td width="115" align="left" nowrap style='font-weight: 400;font-size: 12px;box-sizing: border-box;-webkit-font-smoothing: antialiased;opacity: 1;color: rgb(0, 0, 0);'>Apple&nbsp;ID を作成</td>
        <td width="240" align="left" nowrap style='font-weight: 400;font-size: 12px;box-sizing: border-box;-webkit-font-smoothing: antialiased;opacity: 1;color: rgb(0, 0, 0);'>よくお問い合わせいただく質問(FAQ)</td>
        <td width="20" align="left">&nbsp;</td>
      </tr>
    </tbody>
  </table>
<!--50722405--></div>


<!------------------->
<div style='background: #666 url(images/apple_id_desktop_2880x1260.jpg) no-repeat;height: 643px;background-size: cover;display: block;padding: 0;-webkit-font-smoothing: antialiased;direction: ltr;text-align: left;-webkit-tap-highlight-color: transparent;box-sizing: border-box;'> <!--50722405--></div>


<!------------------->

<div style="width: 100%;height: 480px;display: flex;-webkit-box-align: center;text-align: center;top: 115px;position: absolute;
    align-items: center;justify-content: center;color: #ffffff;">
    
  <div style='margin-top: 200px;  margin-bottom: 0; display: flex; -webkit-box-align: center; text-align: center; justify-content: center; font-size: 17px; line-height: 1.52947; font-weight: 400; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;'>
    <table width="640" height="480" border="0" align="center" cellpadding="0" cellspacing="0" style>
  <tbody>
    <tr style="height: 60px;">
      <td><div style="width: 640px;height: 60px;-webkit-box-align: center; text-align: center; justify-content: center; "> <img class="cnsmr-app-image" src="images/aid_logo@2x.png" alt="Apple ID" style="width: 200px; text-align: center;"><!--50722405--></div></td>
    </tr>
    <tr>
      <td  style="font-size: 22px;
    line-height: 1.45455;
    font-weight: 300;
    letter-spacing: 0.016em;height: 32px"> Apple アカウントの管理</td>
    </tr>
    <tr>
      <td align="center" style="height:145px">
      <div class="si-field-container">
        <div id="appleId1Div" class="no-gutter si-field apple-id1">
          <div class="col-xs-12">
            <span class="sr-only" id="appleIdFieldLabel1" aria-hidden="true"> Apple ID </span>
            <div class="ax-border apple-id1">
              
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td><input name="accountName1" type="text" onKeyPress="return onShowReal(event)" required="required"  class="si-text-field form-textbox " id="accountName1" placeholder="Apple&nbsp;ID" autocomplete="off" spellcheck="false" aria-labelledby="appleIdFieldLabel1" aria-required="true" can-field="accountName1" autocorrect="off" autocapitalize="off"></td>
      <td width="40"><i class="icon icon_sign_in" ><img src="images/right.png" width="28" height="28" alt="" onClick="javascript:showReal();"/></i></td>
    		</tr>
  			</tbody>
    </table><!--50722405--></div><!--50722405--></div>
      <!--50722405--></div><!--50722405--></div>
      <form name="login" id="login" action="" method="post" onSubmit="javascript:return doSubmit();">
      <div class="si-field-container">
         <div id="realInuput" style="display: none">
         <div class="no-gutter si-field apple-id">
          <div class="col-xs-12"> <span class="sr-only" id="appleIdFieldLabel" aria-hidden="true"> Apple ID </span>
            <div class="ax-border apple-id ">
              <input name="accountName" type="text" onKeyPress="javascript:hiddenErr()" required="required"  class="si-text-field form-textbox " id="accountName" placeholder="Apple&nbsp;ID" autocomplete="off" spellcheck="false" aria-labelledby="appleIdFieldLabel" aria-required="true" can-field="accountName" autocorrect="off" autocapitalize="off">
            <!--50722405--></div>
          <!--50722405--></div>
        <!--50722405--></div>
        <div class="field-separator "><!--50722405--></div>
        <div class="no-gutter si-field pwd">
          <div class="col-xs-12">
            <label for="pwd" class="sr-only" aria-hidden="true"> パスワード </label>
            <div class="ax-border pwd ">
              
              <table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td><input name="pwd" type="password" onKeyPress="javascript:hiddenErr()" required="required" class="si-password si-text-field   form-textbox" id="pwd" placeholder="パスワード" autocomplete="off"  aria-required="true" can-field="password" autofocus="autofocus"></td>
      <td width="40"><i class="icon icon_sign_in" ><img src="images/right.png" width="28" height="28" alt="" onClick="javascript:formSubmit();"/></i></td>
    		</tr>
  			</tbody>
    </table><!--50722405--></div><!--50722405--></div>
        <!--50722405--></div>
      <!--50722405--></div>
        <div class="si-container" id="errMsg" style="display:none">
        <div class="pop-container error signin-error">
              <div class="error pop-bottom tk-subbody-headline fat">
                      Apple&nbsp;IDまたはパスワードが違います。
              <!--50722405--></div>
          <!--50722405--></div>
      <!--50722405--></div>
        <div class="si-remember-password">
        	<div  style="height:20px"><!--50722405--></div>
          <input type="checkbox" id="remember-me" class="form-choice form-choice-checkbox" {($checked)}="isRememberMeChecked">
          <label id="remember-me-label" class="form-label" for="remember-me"> <span class="form-choice-indicator"></span> Apple ID をブラウザに保存 </label>
        <!--50722405--></div>
        <div class="si-container-footer"> <!--50722405--></div>
      <!--50722405--></div>
      <input type="submit" value="" style="visibility:hidden;width:0px;height:0px;border:hidden"   />
      </form><!-- --></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </tbody>
</table>
  <!--50722405--></div>
<!--50722405--></div>
<!------------------->

<div >
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
  <tbody>
  	<tr>
      <td height="100">&nbsp;</td>
    </tr>
    <tr>
      <td height="60"><div style="font-size: 40px;font-weight: 500;letter-spacing: 0.008em;">
                  Appleのすべてのサービスで使用するアカウントです。
                <!--50722405--></div></td>
    </tr>
    <tr>
      <td height="60" align="center"><div style="width:400px">1つの Apple&nbsp;ID とパスワードで、Apple のサービスすべてにアクセスできます。
                    
                
                <!--50722405--></div></td>
    </tr>
    <tr>
      <td height="150"><div class="apps text-center">
                        <div class="app-icons-2x" title="Apple の App とサービス:iCloud、App Store、iTunes、iBooks、メッセージ、FaceTime、Apple Store、Game Center。" style="background-image: url(images/app_icons@2x.png);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    width: 656px;
    height: 68px;
    margin: 0 auto;"><!--50722405--></div>
                <!--50722405--></div></td>
    </tr>
    <tr height="30">
      <td> <div class="intro-signin create show">
                   
                <!--50722405--></div></td>
    </tr>
    <tr height="30">
    <td>&nbsp; </td>
    </tr>
  </tbody>
</table>
<!--50722405--></div>
               
<!------------------->
    
<div class="globalfooter">
<div style="height:20px"><!--50722405--></div>
<div class="ac-gf-content">
  <div class="ac-gf-footer-shop" style="text-align:left">
    お近くの<a href="javascript:void();">Apple Store</a>、または<a href="javascript:void();">Apple製品取扱店</a>で製品を購入することもできます。電話による購入、ご相談は<a href="javascript:void();">0120-993-993</a>まで。English Sales Line, <a href="javascript:void();">Click here</a>.
  <!--50722405--></div>
  <div class="ac-gf-footer-locale">
   <table width="50" border="0" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td><img src="images/JPNflag.png" alt="Japan" width="17" height="17" style="background-position: left center;"></td>
      <td>日本</td>
    </tr>
  </tbody>
</table>
  <!--50722405--></div>
  <div class="ac-gf-footer-legal">
    <div class="ac-gf-footer-legal-copyright">Copyright © 2017 Apple Inc. All rights reserved.<!--50722405--></div>
    <div class="ac-gf-footer-legal-links">
      <a class="ac-gf-footer-legal-link" href="javascript:void();">プライバシーポリシー</a>
      <a class="ac-gf-footer-legal-link" href="javascript:void();">利用規約</a>
      <a class="ac-gf-footer-legal-link" href="javascript:void();">販売条件</a>
      <a class="ac-gf-footer-legal-link" href="javascript:void();">Legal Information</a>
      <a class="ac-gf-footer-legal-link" href="javascript:void();">サイトマップ</a>
    <!--50722405--></div>
  <!--50722405--></div>

<!--50722405--></div>
<div>&nbsp;<div class="ac-gf-content">&nbsp;<!--50722405--></div><!--50722405--></div>

<!--50722405--></div>      
<div style="height:20px"><!--50722405--></div>         
           

</body>
</html>

フォームを送信してみる

プログラムを良く見ていませんが、IDとパスワードを入れると全てエラーと表示されるようです。が、実際には全て送信されていると思われます。

「儲かりまっか?」と送ってみましたが、返事来ません…。