リアルタイムフィッシング(Real-Time Phishing)とは、攻撃者がユーザーの行動をリアルタイムで監視し、入力した情報を即座に盗み出す高度なフィッシング攻撃です。従来のフィッシングと異なり、多要素認証(MFA)も回避できる特徴があります。
攻撃者は正規サイト(銀行、SNS、ECサイトなど)を完全に模倣したフィッシングサイトを構築します。見た目だけでなく、URLも似せて作られます。
攻撃者は「中間者」となるリバースプロキシを設定。ユーザーと正規サイトの間に入り、通信を仲介します。
フィッシングメール、SMS、偽の広告などを通じて、ユーザーを偽サイトへ誘導します。
ユーザーが偽サイトで情報を入力すると、JavaScriptによってリアルタイムでデータが攻撃者に送信されます。ユーザーが「送信」ボタンを押す前でも情報は漏洩します。
攻撃者はユーザーのログイン情報をリアルタイムで取得し、すぐに正規サイトでログインを試みます。ユーザーが入力したワンタイムパスワード(OTP)も同様に窃取されます。
従来のフィッシングとリアルタイムフィッシングの比較:
項目 | 従来のフィッシング | リアルタイムフィッシング |
---|---|---|
データ取得タイミング | フォーム送信時 | 入力中リアルタイム |
MFA対応 | 回避困難 | リアルタイムでMFAコードも窃取可能 |
検出難易度 | 比較的容易 | 非常に困難 |
使用技術 | 基本的なHTML/CSS | リバースプロキシ、JavaScript、WebSockets |
攻撃の成功率 | 中程度 | 高い |
リアルタイムフィッシングでは、以下の技術が使用されています:
リアルタイムフィッシングでは、SMS・メール・認証アプリで受け取るワンタイムパスワード(OTP)も窃取できます。より強固な保護には、FIDO2準拠の物理セキュリティキーやパスキー認証を推奨します。
対策技術 | 説明 | 実装例 |
---|---|---|
Content-Security-Policy | 許可されたソースからのリソース読み込みのみを許可し、XSSやデータ窃取を防止 | Content-Security-Policy: default-src 'self'; script-src 'self' |
SameSite Cookie | クロスサイトリクエストでのCookie送信を制限し、CSRF攻撃を防止 | Set-Cookie: id=a3fWa; SameSite=Strict; Secure |
X-Frame-Options | サイトがiframeで読み込まれることを防止 | X-Frame-Options: DENY |
HSTS | 常にHTTPSでの接続を強制 | Strict-Transport-Security: max-age=31536000 |
入力監視の防止 | フォーム入力の監視を防止するJavaScriptの実装 | form.addEventListener('input', preventRealTimeMonitoring); |
WebAuthn/FIDO2 | 生体認証や物理キーを使った強力な認証方式 | navigator.credentials.create({publicKey: ...}) |
Subresource Integrity | 外部スクリプトの整合性検証 | <script integrity="sha384-..."> |