フィッシングサイトに引っかかってみた

# UEC Advent Calender 2024
この記事はUEC Advent Calender 2024の17日目の記事です．
前日の記事はKanaruさんの[Terraformで破壊可能なProxmox VMを管理する](https://zenn.dev/kanaru5757/articles/kanaru5757-terraform-proxmox)でした．



# はじめに
Adventarには「パスワード管理のめんどくささをどうにかしましょう」ということを書いていたのですが，昨日の論文締め切りから本日のお仕事までまるで暇がなかったので，いつか放出しようと思っていたフィッシングサイトネタに変更させてください．申し訳ないです．

:::note warn
この記事はフィッシングサイトに対する注意喚起が目的であり，決してフィッシングサイトへの訪問を推奨するものではありません．
また，筆者は本検証のために仮想環境を用意し，実在する情報を入力しないなどの細心の注意を払っています．
:::

みなさん，フィッシングサイトに誘導されたことはありますか？
私はしょっちゅうフィッシングサイトへアクセスを促すメール（いわゆるフィッシングメール）が送りつけられています．
今回は，わざとフィッシングサイトに引っかかってみて，どのような手順でログイン情報を抜き取っているのかを見ましょう．

# 調査開始！
## 一通のメール
ある日私にこんなメールが届きました．
> Amazonプライム会費のお支払い方法に問題があります

このメッセージとともにとあるサイトのリンクが添えられていました．
リンクを見る限りAmazonのドメインじゃないので一発でフィッシングとわかるものでした

## そのリンクを踏んでみる
とりあえずアクセスします．
![スクリーンショット 2024-12-16 221107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/490e2d62-cd9f-d807-f631-fbfd5590254b.png)
最近のブラウザはすごいですね．
こんなの出されたらビビってタブを閉じてしまいます．

## 警告を無視
フィッシングなのは分かりきっているので，警告を無視してサイトにアクセスします．
![スクリーンショット 2024-12-16 221132.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/547eebed-40ca-8e44-6c5d-4176efe40b6a.png)
見慣れたログイン画面が出てきました．再現度が高すぎます．

## ログイン情報を入力してみる
ここから先は開発者ツールを使って通信内容を見ながら作業していきます．
まずはメールアドレス．
![スクリーンショット 2024-12-16 221305.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/fe2c1000-e52d-eb60-a78e-cde8a799f5d0.png)
「次へ進む」をクリックします．
![スクリーンショット 2024-12-16 221917.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/2cc40e04-5bab-c3f8-5ba5-ad43cc1a6f95.png)
パスワード入力画面に移りますが，HTTPリクエストのペイロード（つまり通信相手に送られた情報）を見ると先程入力したメールアドレスが含まれています．
![スクリーンショット 2024-12-16 221934.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/fe9e7790-480c-a5e6-2948-ccc3ff42f688.png)
次にパスワードを入力します．
![スクリーンショット 2024-12-16 222152.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/54fc02f9-c5a0-9bb5-1185-58c6201593d9.png)
そして，「ログイン」．
![スクリーンショット 2024-12-16 222202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/962900/4b026741-4d0a-64e3-bba5-2c5e747dc4b1.png)
ぐるぐるしてますが，ペイロードを見るとこの段階でパスワードが送信されていることがわかります．

ところで，ぐるぐるが止まらないのでHTMLを確認してみます．
確認してみるとこんなものが…
```html
<meta http-equiv="Refresh" content="3">
```
これは３秒おきにページのリロードが入ることを意味しています．

つまり，これはパスワードを送らせるだけ送らせてぐるぐるを表示させる＆無限リロードするサイトだったということがわかりました．

# パスワードが平文で送られていることがおかしい
通常，こうしたオンラインサービスでは，セキュリティの観点からパスワードは暗号化された状態で送られます．もし，認証情報が平文のままデータベースに保管されていて，そのデータベースが悪意ある第三者に侵入されたとき，データベースにある認証情報がそのまま不正アクセスに利用できてしまうからです．
先程の例では，パスワードが平文の状態で送られていますから，こうした観点からも明らかに認証情報の奪取を試みていることがわかります．

# ここまでのまとめ
フィッシングサイトでは本物のサイトに似せているということは聞いていましたが，ここまでクオリティが高いとは思いませんでした．騙される人がいるのも納得ですね．
そして，通信を監視しながら認証情報（当然ダミーですけど）を入力してみると実際に平文の状態で送信されていたことがわかりました．
そして最後は読込してる風を装って実際はリロードさせているだけでした．

# 対策
ここまで，どのようにしてフィッシングサイトが作られているかを見てきましたが，実際に引っかからないように，また引っかかっても被害を抑え込めるように対策をしましょう．
対策は主に４点です．
１つ目は，当然ですが，フィッシングの知識を身に着けておくことが大切です．特に，フィッシングサイトはURLから見抜ける場合が多いので，「支払い方法に問題がある」とか「アカウントがロックされている」とかの文言のメールを受信したら，まずは，落ち着いて添えられているサイトのURLを見ましょう．
２つ目は，可能であれば多要素認証は設定しておきましょう．多要素認証とはなりすまし防止のための技術で，代表的なものだと電話番号認証やワンタイムパスワードがあります．例えフィッシングに引っかかってしまい，ログイン情報が漏洩してしまっても多要素認証で不正アクセスを防止できることがあります．
３つ目は，パスワードの使い回しはやはり危険だということです．パスワードを使いますと一箇所で漏洩した際に，他のサービスまで不正アクセスされてしまいます．パスワードマネージャをうまく活用すれば，使い回せずに済みます．（余談ですが本当はこれを書こうとしてました…）
最後に，ソフトウェアアップデートは必ずしましょう．冒頭の警告の表示を見ればわかりますが，ブラウザにはフィッシングサイトを検知すると，アクセスをやめるように警告してくれます．しかし，この機能はあくまで「フィッシングサイトである」と報告を受けたページにのみ警告を表示します．警告を表示する対象は日々更新されるため，欠かさずアップデートを行い最新の状態を保ちましょう．

# おわりに
くれぐれもフィッシングに騙されないように！
明日は型推栄さんによる法律の話らしいです．法律ってじっくり考えてみると色々と面白いと個人的には思います．