金融アプリ、決済アプリ、証券アプリ、ECアプリでは、ログイン時にID・パスワードを入力し、必要に応じてOTPやSMS認証コードを入力します。
このような重要な入力画面を狙う攻撃のひとつが、「画面オーバーレイ攻撃」です。
画面オーバーレイ攻撃とは、正規アプリの画面の上に偽の画面を重ねて表示し、ユーザーに本物だと思わせて認証情報や個人情報を入力させる攻撃手法です。
金融アプリ・決済アプリでは、ID・パスワード、ワンタイムパスワード、SMS認証コード、カード情報、送金情報などが盗まれることで、不正ログイン、不正送金、不正決済につながる可能性があります。
本記事では、画面オーバーレイ攻撃とは何か、金融アプリで注意すべき偽画面リスク、企業が確認すべき対策をわかりやすく解説します。
画面オーバーレイ攻撃とは?
画面オーバーレイ攻撃とは、正規アプリや正規画面の上に、別の不正な画面を重ねて表示し、ユーザーをだまして操作させる攻撃です。
ユーザーから見ると、いつものログイン画面や認証画面に見える場合があります。しかし、実際には不正アプリが表示している偽画面であり、入力した情報が攻撃者に送信される可能性があります。
たとえば、ユーザーが銀行アプリを開いたタイミングで、正規アプリに似せたログイン画面を不正アプリが重ねて表示します。ユーザーがID・パスワードを入力すると、その情報が攻撃者に渡るという流れです。
画面オーバーレイ攻撃は、偽アプリ、バンキングマルウェア、スパイウェア、キーロガーなどと組み合わされることがあります。
Tapjackingとの違い
画面オーバーレイ攻撃と近い言葉に「Tapjacking」があります。
Tapjackingは、ユーザーに見えている画面とは別の操作を実行させる攻撃です。たとえば、画面上に別のUIを重ね、ユーザーが意図しないボタンや権限許可をタップしてしまうように誘導します。
一方、金融アプリで問題になりやすい画面オーバーレイ攻撃では、ユーザーに偽のログイン画面や認証コード入力画面を表示し、情報を入力させるケースが中心です。
どちらも「画面表示を悪用してユーザーを誤認させる」という点では共通しています。
金融アプリで画面オーバーレイ攻撃が危険な理由
金融アプリ・決済アプリで画面オーバーレイ攻撃が危険なのは、盗まれる情報が直接的な金銭被害につながりやすいからです。
特に以下のような情報が狙われます。
- ログインID
- パスワード
- SMS認証コード
- ワンタイムパスワード
- 暗証番号
- カード情報
- 口座情報
- 送金先情報
- 本人確認情報
ユーザーは正規アプリを開いているつもりでも、実際には不正な偽画面に情報を入力している可能性があります。
この場合、ユーザー自身も「本物の画面に入力した」と思っているため、被害に気づきにくい点が問題です。
画面オーバーレイ攻撃の主な手口

1. 偽ログイン画面を表示する
もっともわかりやすい手口は、正規アプリに似せた偽ログイン画面を表示する方法です。
銀行アプリや決済アプリを開いたタイミングで、同じようなデザインのログイン画面を重ねて表示し、ID・パスワードを入力させます。
ユーザーは本物のアプリにログインしているつもりでも、実際には攻撃者に認証情報を渡してしまう可能性があります。
2. OTP・SMS認証コード入力画面を偽装する
多要素認証を導入しているサービスでは、OTPやSMS認証コードの入力画面が狙われることがあります。
攻撃者は、偽の認証画面を表示し、ユーザーに認証コードを入力させます。
OTPは一定時間で無効になるため、盗まれたとしても長期間使えるわけではありません。しかし、攻撃者がリアルタイムに情報を取得している場合、短時間で不正ログインや重要操作に悪用される可能性があります。
3. 権限許可画面を誤認させる
不正アプリは、画面の一部を重ねることで、ユーザーに意図しない権限を許可させる場合があります。
たとえば、通知、SMS、アクセシビリティ、他のアプリの上に表示する権限などを許可させることで、情報窃取や画面偽装をしやすくする可能性があります。
本来はユーザー保護のための確認画面であっても、表示の見せ方を悪用されると、ユーザーが危険な操作だと気づきにくくなります。
4. 送金確認画面を偽装する
金融アプリでは、送金先、金額、取引確認画面なども狙われる可能性があります。
攻撃者が偽画面を表示することで、ユーザーに別の操作をさせたり、確認内容を誤認させたりするリスクがあります。
特に、送金、出金先変更、高額決済、登録情報変更などは重要操作として保護すべき画面です。
5. 不正アプリの画面を正規アプリのように見せる
画面オーバーレイ攻撃は、偽アプリやリパッケージアプリと組み合わされることがあります。
正規アプリと似たデザインの不正アプリを起動させ、さらに必要なタイミングで偽画面を表示することで、ユーザーの認証情報や取引情報を盗む流れです。
画面オーバーレイ攻撃が被害につながる流れ
画面オーバーレイ攻撃による被害は、次のような流れで発生します。
- SMS、メール、偽サイト、偽アプリなどからユーザーが誘導される
- 不正アプリやバンキングマルウェアをインストールしてしまう
- 不正アプリが他のアプリの上に画面を表示できる状態になる
- 金融アプリ起動時に偽ログイン画面や偽認証画面が表示される
- ID・パスワード・OTP・SMS認証コードが入力される
- 入力情報が攻撃者に送信される
- 不正ログイン、不正送金、不正決済に悪用される
この流れを見ると、画面オーバーレイ攻撃は、単なる画面表示の問題ではないことがわかります。
不正アプリ、端末権限、認証情報窃取、重要操作、不正取引モニタリングまで含めて対策する必要があります。
金融アプリ・決済アプリで注意すべき画面
画面オーバーレイ攻撃では、特に以下の画面が狙われやすくなります。
- ログイン画面
- パスワード入力画面
- OTP入力画面
- SMS認証コード入力画面
- 送金画面
- 送金確認画面
- 出金先口座の登録・変更画面
- 電話番号変更画面
- メールアドレス変更画面
- 認証方式変更画面
- 端末変更・初回利用登録画面
これらの画面は、ユーザーの認証や金銭移動に直結します。
そのため、一般的な画面と同じ扱いではなく、重要画面として保護する必要があります。
企業が確認すべき対策
1. 重要画面へのオーバーレイ対策を行う
ログイン画面、OTP入力画面、送金確認画面などでは、他のアプリによる画面重ね合わせや不審な表示を想定した対策が必要です。
Androidでは、オーバーレイやタップジャッキングへの対策として、タッチイベントのフィルタリングやオーバーレイ表示の制御など、アプリ側で検討できる対策があります。
2. 画面読み取り・スクリーンショット対策を検討する
認証情報や取引情報を表示する画面では、スクリーンショット、画面録画、画面共有、非セキュアな画面表示への対策も検討すべきです。
特に、ID、口座情報、カード情報、認証コード、取引確認情報などを表示する画面では、情報が外部へ取得される前提で保護を考える必要があります。
3. Root化・Jailbreak・エミュレーターを検知する
不正な実行環境では、通常よりもアプリの挙動や画面表示が解析・改変されやすくなる場合があります。
金融アプリ・決済アプリでは、Root化・Jailbreak、エミュレーター、デバッグ環境、不正ツールの存在を検知し、必要に応じて利用制限や追加確認を行うことが重要です。
4. Hookingや実行時改ざんを検知する
Hookingや実行時改ざんにより、アプリの処理、画面表示、API通信、認証処理などが不正に変更される可能性があります。
画面オーバーレイ攻撃と組み合わされると、ユーザーが見ている画面と実際の処理が一致しないリスクがあります。
そのため、RASPやApp Shieldingのような実行時保護の考え方も重要になります。
5. 重要操作時に追加認証・リスク判定を行う
画面オーバーレイ攻撃では、ログイン情報が盗まれる可能性があります。
そのため、ログインできたかどうかだけでなく、ログイン後の重要操作時にも追加認証やリスク判定を行うことが重要です。
- 送金
- 高額決済
- 出金先口座の登録・変更
- 電話番号の変更
- メールアドレスの変更
- パスワード変更
- 認証方式の変更
- 新端末での利用開始
6. 不正ログイン・不正取引モニタリングを組み合わせる
画面オーバーレイ攻撃によって認証情報が盗まれた場合でも、すぐに被害が確定するとは限りません。
通常と異なる端末、IP、位置情報、操作速度、送金先、金額、取引パターンなどをもとに、不審な操作を検知できれば、被害拡大を防げる可能性があります。
アプリ側の画面保護と、サーバー側の不正取引モニタリングを組み合わせることが重要です。
7. ユーザーへの注意喚起を行う
ユーザーに対しても、以下のような注意喚起が必要です。
- 公式アプリストア以外からアプリを入れない
- SMSやメールのリンクからアプリを入れない
- 不審な権限要求を許可しない
- 普段と違うログイン画面が出たら操作を中止する
- 認証コードを入力する前にアプリや送信元を確認する
- ログイン通知や取引通知を有効にする
ただし、ユーザーへの注意喚起だけでは限界があります。企業側では、ユーザーがだまされる可能性を前提に、アプリ側・端末側・サーバー側の対策を組み合わせる必要があります。
画面オーバーレイ攻撃対策のチェックリスト
| 確認項目 | 確認したいポイント |
|---|---|
| 重要画面保護 | ログイン・OTP・送金画面でオーバーレイリスクを想定しているか |
| 画面読み取り対策 | スクリーンショット、画面録画、画面共有への対策を検討しているか |
| 端末リスク検知 | Root化・Jailbreak・エミュレーターを検知できるか |
| 実行時保護 | Hooking、デバッグ、実行時改ざんを検知できるか |
| アプリ完全性 | 改ざんアプリ・リパッケージアプリを検知できるか |
| 認証情報保護 | ID・パスワード・OTP・SMS認証コードの窃取を想定しているか |
| 重要操作保護 | 送金・登録情報変更時に追加認証やリスク判定を行っているか |
| 不正取引検知 | 通常と異なるログイン・送金・決済パターンを検知できるか |
| ユーザー通知 | ログイン、送金、登録情報変更、新端末利用を通知できるか |
画面オーバーレイ攻撃は「見た目で判断できない」前提で考える
画面オーバーレイ攻撃の怖さは、ユーザーが見た目で判断しにくいことです。
正規アプリと似たデザイン、自然な文言、緊急性のある通知が使われると、ユーザーは本物の画面だと思って入力してしまう可能性があります。
そのため、金融アプリ・決済アプリを提供する企業側では、「ユーザーが怪しい画面に気づくはず」と考えるのではなく、「見分けられない可能性がある」前提で対策を設計する必要があります。
特に、ログイン画面、認証コード入力画面、送金確認画面、登録情報変更画面は、ユーザーの注意力だけに依存しない設計が重要です。
まとめ:偽画面リスクは金融アプリの認証・送金対策で重要
画面オーバーレイ攻撃とは、正規アプリの上に偽画面を重ねて表示し、ユーザーにID・パスワード・OTP・SMS認証コードなどを入力させる攻撃手法です。
金融アプリ・決済アプリでは、認証情報の窃取、不正ログイン、不正送金、不正決済、登録情報変更などにつながる可能性があります。
画面オーバーレイ攻撃は、偽アプリ、バンキングマルウェア、スパイウェア、キーロガー、Hookingなどと組み合わされることがあります。
企業側では、重要画面の保護、画面読み取り対策、端末リスク検知、アプリ改ざん検知、Hooking検知、重要操作時の追加認証、不正取引モニタリングを組み合わせることが重要です。
金融・決済サービスの信頼を守るためには、ユーザーが偽画面を見抜くことに頼るのではなく、アプリ側で偽画面リスクを前提にした対策を設計する必要があります。
参考情報
- Android Developers「Tapjacking」
- Android Developers「Secure sensitive activities」
- OWASP Mobile Application Security「MASWE-0056: Tapjacking Attacks」
- OWASP MASTG「Testing for Overlay Attacks」