トランザクション署名だけでは防げない？MITB攻撃対策を考える

# 記事を書いた動機

- 「徹底攻略 情報処理安全確保支援士教科書 令和7年度」を使って勉強を進めている。
- p. 494でMITB攻撃について取り扱っていた
    - MITB攻撃の対策の一つとしてトランザクション署名の利用が紹介されていた
    - ここにおいて、「トランザクション署名を使うと内容の改ざんは防げるが、盗聴やユーザのだまし込みは防げないのでは？」と考えた
- トランザクション署名を採用するにあたって何と組み合わせるのがいいプラクティスなのか知りたいと思った

# TL;DR

- MITB攻撃は、ブラウザ上の通信を改ざんする危険な攻撃手法。
- トランザクション署名は改ざん防止には有効だが、盗聴やユーザーの騙し込みには対応できない。
    - トランザクション署名と併用して2FAやトークンアプリを活用することで、MITB攻撃のリスクを軽減できる。
    - 実際のオンラインバンキングのフローを分析すると、ユーザーがトランザクション内容を確認できる仕組みが重要であることがわかる。

# MITB**攻撃とは**

MITB（Man-in-the-Browser）攻撃は、ブラウザにマルウェアが介入し、通信内容を改ざんする攻撃手法である。

これはMITM攻撃（中間者攻撃）というサイバー攻撃の一種に該当し、 中間者攻撃は、悪意のある第三者が二者同士の通信へ不正に割り込み、通信データの盗聴や改ざんを行う攻撃手口である。MITB攻撃はMITM攻撃一般と比べて、ブラウザ上で盗聴・改ざんを行うため中継サイトなどの利用と比べて見抜くのが難しくなっている。

例えば、オンラインバンキングでの送金時に、ユーザーが正しい口座へ送金しようとしても、MITB攻撃により送金先が攻撃者の口座にすり替えられる可能性がある。しかし、ユーザ視点では正規のサイトを利用しているようにしか見えない。このような攻撃は、従来のフィッシング攻撃とは異なり、ユーザーの認証情報を盗むだけでなく、リアルタイムで取引を操作する点が特徴となっている。

### MITB攻撃の具体的な手法

MITB攻撃では、攻撃者は以下のような手順で攻撃を実行していく。

1. **マルウェアの感染**
    - ユーザーのPCにマルウェアを仕込むため、フィッシングメールや悪意のあるWebサイト、感染したソフトウェアのダウンロードを利用する。
    - 感染後、マルウェアはブラウザにフックを仕掛け、通信データを監視・改ざんする。
2. **オンラインバンキングサイトの乗っ取り**
    - ユーザーがオンラインバンキングにログインすると、マルウェアはそのセッション情報を取得する。
    - その情報をもとに、ユーザーが意図しない送金操作をバックグラウンドで実行する。
3. **トランザクションの改ざん**
    - ユーザーの画面上には正しい取引情報を表示しつつ、実際の送金先や金額を変更する。
    - これにより、ユーザーは改ざんされたことに気づかないまま承認してしまう。
4. **トランザクション実行と隠蔽**
    - 送金が完了すると、マルウェアは確認画面や履歴も改ざんし、攻撃の痕跡を隠す。
    - これにより、ユーザーが被害に気づくまでに時間がかかる。

# トランザクション署名について

## トランザクション署名とは

トランザクション署名は、トランザクションの改ざんを防ぐための仕組みである。具体的には、オンラインバンキングの例で言えば、ユーザーが送金する際に、その内容（送金先、金額など）に対して電子署名を行い、サーバー側で検証することで、改ざんの有無を確認できる。

この仕組みにより、トランザクションの改ざんが検知されると、サーバー側で送金が拒否されるため、MITB攻撃による改ざんを防ぐことができる。

## トランザクション署名の限界

トランザクション署名を使うことで、送金内容の改ざんは防げる。しかし、以前として以下のような攻撃は防げない。

1. **盗聴**：マルウェアがユーザーの入力情報を盗み、攻撃者がその情報を利用する。例えば、ユーザーが入力した送金情報を攻撃者がリアルタイムで取得し、それを不正に流出させたりなどが考えられる。
2. **ユーザーの騙し込み**：MITB攻撃の一環として、偽の画面を表示してユーザーを誘導し、攻撃者にとって有利な操作を正規のトランザクションとして実行させることができる。ユーザーは正しい操作をしているつもりでも、実際には攻撃者の指示通りの取引を完了させてしまう可能性がある。

## ここで取るべき対策

MITB攻撃を防ぐためには、トランザクション署名に加えて、以下のような追加対策を組み合わせることが有効だと考えられる。

- **二要素認証（2FA）**：取引ごとにワンタイムパスワード（OTP）を発行し、ユーザーが別の手段で認証する。これにより、攻撃者が不正なトランザクションを実行しようとしても、ユーザーの認証が必要になるため、攻撃の成功率を低下させることができる。
- **ハードウェアトークン / スマートフォンアプリ**：取引内容を別のデバイスで確認し、ユーザーが承認した場合のみトークンを発行する。これにより、MITB攻撃による改ざんが行われた場合でも、ユーザーが最終的な取引内容を確認できるため、不正な送金を防ぐことが可能である。

## 実際の対策に触れた自分の体験談

つい最近PayPay銀行アプリで送金を行ったので、その際に気づいた点をこれまでの内容と照らし合わせて考えてみる（厳密にはブラウザを使ってないためMITB攻撃とすこしずれるが）

送金の際にトークン発行のための別アプリに誘導され、トークン発行ボタンを押す際にトランザクションの内容確認が求められた。トークンによる認証を行うだけではなく、トークン発行の際にトランザクション内容を含めたユーザの承認を必要とすることで安全度合いが担保されている。

### 気になった点

- （PayPay銀行アプリを利用した自分の体験談と関連して）結局仕組みを作ってもユーザのトランザクション内容確認に依存しているため、ユーザが適切に確認できていなかった場合は攻撃が成功してしまう可能性がないか気になった。
    - 例えば、ユーザが21111円の送金をするときに攻撃者がトランザクション内容を変えて211111円の送金としてしまった際に、1がいっこ増えているのに気づかずに承認してしまうと攻撃成功してしまう。
    - 対策を考えてみる
        - UI/UX面で解決: 強調表示、数字見やすくする、桁ごとの区切りを入れる、音声読み上げ
        - 上限額を設定しておく: 一定額の送金時は追加の認証を求める
            - 初回送金や高額送金時は確認のために追加認証を入れる
        - 異常検知システム的なもの: 普段とは違う送金パターンの場合に一時停止させたり警告を出す

# まとめ

1. **MITB攻撃は非常に巧妙で、ユーザーが気づかないうちに取引が改ざんされる可能性がある。**
2. **トランザクション署名は改ざん防止に有効だが、盗聴やユーザーの騙し込みは防げない。**
3. **2FA、ハードウェアトークンなどを併用することで、MITB攻撃のリスクを低減できる。**
4. **しかしそういった対応をしていてもユーザーの確認ミスも攻撃成功の要因となり得るため、視覚的な強調表示や音声読み上げ、送金上限設定などの工夫が必要。**

# References (参考文献・サイト等)

- 上級セキュリティエバンジェリスト　染谷　征良. (2015, April 16). 国内オンラインバンキング利用者を狙った攻撃、トレンドマイクロが注意喚起 |. | セキュリティ（ウイルスや脆弱性による攻撃）の最新動向を追うなら、Regional TrendLabs ウイルス解析担当者が執筆するトレンドマイクロ セキュリティ ブログ。. https://blog.trendmicro.co.jp/archives/6187
- *中間者攻撃（MitM攻撃）とは？代表的な種類や被害事例、対策方法を紹介｜総合ネットセキュリティサービス｜GMOセキュリティ24*. 総合ネットセキュリティサービス｜GMOセキュリティ24. (n.d.). https://www.gmo.jp/security/cybersecurity/cyberattack/blog/mitm/