論文一覧に戻る 📚 用語集トップ 🗺 概念マップ
📚 用語解説
📚 用語解説
なりすまし
Impersonation / Spoofing
セキュリティ 認証 攻撃手法

🔖 キーワード索引

💡 30秒で分かる 📍 文脈 🎨 直感 📐 数式 🔬 記号 🧮 実値計算 🐍 Python ⚠️ 落とし穴 🌐 関連手法 🔗 関連用語 📚 グループ教材 🗺 概念マップ

💡 30秒で分かる結論

なりすまし = 他人 (人・端末・サービス) を装って通信や認証を行う攻撃。フィッシング、IP / MAC / DNS spoofing、SIM スワップ、ディープフェイクなど形態は多様。

📍 あなたが今見ているもの

用語集 → セキュリティなりすまし (Impersonation / Spoofing)認証アクセス管理電子署名 と表裏一体です。

統計・データ解析コンペでは、SSDSE-B-2026 の都道府県分布を「正規ユーザの所在地分布」とみなし、ログイン履歴に都道府県外れ値が出現したらアラートを出すという 異常検知のおもちゃモデル を作ります。実運用では Web アプリの監査ログを SSDSE で正規化した期待分布と突き合わせるだけで、初期スクリーニングとして十分有効です。

電子署名は「本人だけが鍵を持つ」前提でなりすましを防ぎますが、その鍵自体が盗まれると元も子もありません。なりすましは「鍵やパスワードや属性そのものを盗む」攻撃側面なので、署名と表裏一体で学ぶ必要があります。

🎨 直感で掴む

「他人の顔・声・身分証で本人になりすます」のデジタル版です。窓口で他人の保険証を出して診察を受けるのと同じことを、ネット上ではパスワード・Cookie・トークン・SIM カード・MAC アドレスなどを使って行います。

なりすましの種類:

レイヤー攻撃名説明
物理MAC spoofingNIC のアドレスを偽る
ネットワークIP / ARP / DNS spoofing発信元 IP・名前解決を偽装
アプリフィッシング / 偽サイトUI ごと別サービスを装う
メールメールスプーフィング / BECFrom を改ざんし上司を装う
音声/映像ディープフェイクAI で本人そっくりの音声・映像を生成
SIMSIM スワップ電話番号を他人の SIM に移管
Cookie / トークンセッションハイジャック奪った認証情報で本人を演じる

なりすましの 3 ステップ: ① 真の利用者を特定する偵察、② 認証情報を奪う or 偽装する、③ 取得した属性でシステムに侵入し操作する。本ページでは ③ の段階でログから検出する側に立ちます。

📐 数式・定義

定義 (なりすまし攻撃): 認証システム $\mathcal{A}$ に対し、攻撃者 $E$ が真の利用者 $U$ の認証情報 $c_U$ を持たないにも関わらず、$\mathcal{A}$ から $U$ として認められる確率。

$$ \mathrm{Pr}_{\mathrm{impersonate}} = \Pr\bigl[ \mathcal{A}(E) \to \mathrm{accept~as~} U \mid E \neq U \bigr] $$

多要素認証によるリスク低減:

$$ \Pr_{\mathrm{MFA}} = \prod_{i=1}^{K} \Pr_i $$

各要素が独立に突破される確率 $\Pr_i$ の積。$K=2$ で「パスワード+ TOTP」、$K=3$ で「+ FIDO2」。要素が独立であることが鍵。

ベイズ的な異常スコア (リスクベース認証):

$$ \mathrm{score}(x) = \log \frac{p(x \mid \mathrm{legit})}{p(x \mid \mathrm{attack})} $$

$x$ は IP / 端末指紋 / 時刻 / 都道府県などの特徴量。スコアが閾値を下回ると追加認証を要求。

FAR / FRR (生体認証):

$$ \mathrm{FAR} = \Pr[\mathrm{accept} \mid \text{他人}], \quad \mathrm{FRR} = \Pr[\mathrm{reject} \mid \text{本人}], \quad \mathrm{EER}: \mathrm{FAR} = \mathrm{FRR} $$

なりすましの成功率はそのまま FAR。EER (等エラー率) が指標として使われる。

カイ二乗適合度検定 (都道府県分布の異常検知):

$$ \chi^{2} = \sum_{i=1}^{47} \frac{(O_{i} - E_{i})^{2}}{E_{i}} $$

$O_i$ は都道府県 $i$ からの観測ログイン数、$E_i$ は SSDSE 人口比から期待される件数。$\chi^2$ が大きく $p$ 値が小さければ、分布逸脱 (= なりすましの可能性) を示唆。

🔬 数式を言葉で読み解く

記号読み方意味・例
$U, E$user / enemy真の利用者と攻撃者
$c_U$credentialパスワード / 鍵 / 指紋など
$\mathcal{A}$authenticator認証システム本体
$x$featureIP・端末・時刻・都道府県など
$\Pr_i$factor breach prob.第 $i$ 要素の突破確率
FAR / FRRfalse accept/reject rate他人受入率/本人拒否率
$O_i, E_i$observed / expected観測値と期待値 (都道府県別ログイン数)

🧮 実値で計算してみる — SSDSE-B-2026 で都道府県ベース異常検知

「あるサービスの正規ユーザは概ね SSDSE-B-2026 の人口分布に従って各都道府県から来る」と仮定し、それを逸脱するログインをなりすまし候補として扱います。

都道府県人口 (千人)期待アクセス比率実測 (24h)判定
東京13,92011.1%10.8%正常
大阪8,8097.0%7.2%正常
愛知7,5426.0%5.9%正常
鳥取5530.44%8.5%★異常
島根6710.54%6.1%★異常

→ 「人口比 0.44%」の鳥取から「全体の 8.5%」のログインがあるのは異常。VPN や踏み台経由のなりすまし攻撃の可能性が高い、と判断できます。

MFA リスク低減の実値:

認証要素単独突破確率累積
パスワードのみ10⁻¹10⁻¹
+ TOTP10⁻²10⁻³
+ FIDO210⁻⁴10⁻⁷

🐍 Python 実装 — SSDSE-B-2026 で都道府県分布の異常検知

① 期待分布を SSDSE から作る

import pandas as pd
import numpy as np

df = pd.read_csv('data/raw/SSDSE-B-2026.csv', encoding='utf-8', skiprows=1)
pop = df.groupby('Prefecture')['Total_population'].mean()
expected = pop / pop.sum()      # 都道府県別の期待比率
print(expected.sort_values(ascending=False).head(10))

② カイ二乗適合度検定で全体の乖離を見る

from scipy import stats

observed = pd.Series({'東京都': 1080, '大阪府': 720, '愛知県': 590, '神奈川県': 880,
                       '鳥取県': 850, '島根県': 610}, name='count')
N = observed.sum()
exp = expected.reindex(observed.index).fillna(1e-4) * N

chi2, p = stats.chisquare(observed, exp)
print(f'カイ二乗 = {chi2:.1f}, p = {p:.2e}')
# p が極小 → 都道府県分布が SSDSE 想定と乖離 → 攻撃の疑い

③ ユーザ単位の異常スコア (都道府県+時刻+ジャンプ)

import math

def login_risk(pref, hour, prev_pref):
    base = -math.log(expected.get(pref, 1e-4))
    night = 1.5 if hour < 5 or hour > 23 else 0
    geo_jump = 3.0 if prev_pref and prev_pref != pref else 0
    return base + night + geo_jump

# 普段は東京、 深夜 3 時に島根からログイン
print('リスク:', login_risk('島根県', 3, '東京都'))

④ IsolationForest でログ全体を学習

from sklearn.ensemble import IsolationForest

prof = df.groupby('Prefecture').agg(
    pop=('Total_population','mean'),
    inc=('Income_per_capita','mean'),
    age=('Aging_rate','mean')).dropna()
clf = IsolationForest(contamination=0.05, random_state=0).fit(prof)
prof['anomaly'] = clf.predict(prof)
print(prof[prof['anomaly'] == -1])  # 通常分布から外れる「目立つ」県

⑤ MFA 効果のシミュレーション

p_password = 0.10
p_totp     = 0.01
p_fido2    = 1e-4

print(f'パスワードのみ: {p_password:.4f}')
print(f'+ TOTP       : {p_password * p_totp:.6f}')
print(f'+ FIDO2      : {p_password * p_totp * p_fido2:.10f}')

⑥ メール From のスプーフィング検査 (DMARC 簡易ロジック)

def header_check(msg_from, envelope_from, dkim_d, spf_pass):
    from_domain = msg_from.split('@')[-1].lower()
    return (from_domain == envelope_from.split('@')[-1].lower()
            and from_domain == dkim_d.lower()
            and spf_pass)

print(header_check('ceo@example.co.jp', 'attacker@badnet.ru',
                   'badnet.ru', spf_pass=True))  # False → なりすまし

⚠️ よくある落とし穴

❌ SMS を MFA にする
SMS は SIM スワップ・SS7 攻撃で容易に奪われる。TOTP アプリか FIDO2 物理キーを使う。NIST も SMS を非推奨化。
❌ IP だけで信頼判定
VPN・モバイル回線・キャリアグレード NAT で IP は容易に変わる。端末指紋、行動、時刻など複数特徴を組み合わせる。
❌ パスワード使い回しを許容する設計
他社流出パスワードでログインされるクレデンシャルスタッフィングが最大級の脅威。HIBP API で漏洩検査するか、パスワードレス化する。
❌ ディープフェイクを過小評価
音声 30 秒からクローン可能な時代。BEC (社長詐欺) の電話を AI 音声で行う事例が急増。コールバック確認・キーワード・チャレンジレスポンスを併用。
❌ 検知ロジックを公開してしまう
「都道府県分布から逸脱したら警告」とブログで書くと、攻撃者は分布に従って分散攻撃するようになる。検知ルールは秘匿+多層化。

🗺 概念マップ

なりすまし (Impersonation) ★
├─ 対象別
│   ├─ 人  → フィッシング・BEC・ディープフェイク
│   ├─ 端末 → MAC / ARP / DHCP spoofing
│   ├─ ネット → IP / DNS spoofing
│   └─ サービス → 偽サイト・偽証明書
├─ 突破される認証要素
│   ├─ 知識 (パスワード) → 漏洩・推測
│   ├─ 所持 (端末・SIM) → 盗難・SIM スワップ
│   └─ 生体 (顔・指紋)   → 写真・ゲルキャスト
└─ 対策
    ├─ MFA / FIDO2 / WebAuthn
    ├─ 電子署名 / TLS / mTLS
    ├─ DMARC / SPF / DKIM
    └─ リスクベース認証 / 異常検知

📰 実世界の事件・事例

事例手口教訓
2016バングラデシュ中央銀行不正送金SWIFT 端末乗っ取り、メッセージなりすまし$81M。承認フローの多重化が必要
2019ディープフェイク CEO 詐欺 (英)AI 音声で社長になりすまし送金指示$243K。電話だけの承認は危険
2020Twitter 大規模アカウント乗っ取りソーシャルエンジニアリングで管理ツール侵入内部ツールへの MFA / 監査必須
2022Uber 内部 VPN 突破MFA 疲労攻撃で社員を承認させたプッシュ通知より物理キー
2023日本国内のフィッシング SMS 急増宅配・自治体・銀行を装うSMS リンクは踏まない・URL を直入

❓ FAQ

Q1. 一般家庭ユーザは何から始めればよい?
A. ① 主要アカウント (Google/Apple/銀行) に MFA。② パスワードマネージャ導入。③ メール宛先・URL を毎回確認。④ 古い携帯番号での認証はやめる。

Q2. なりすましと不正アクセスの違いは?
A. なりすましは「他人を装う行為そのもの」、不正アクセスは「権限なくシステムに入る行為」。なりすましは不正アクセスの主要な手段。

Q3. 統計データ解析でなりすましをテーマにするとき何を可視化する?
A. (1) ログイン都道府県分布の経時変化、(2) IP→地理→端末指紋の遷移、(3) 失敗回数の急増、(4) 異常スコア分布のヒストグラム。SSDSE-B-2026 の人口分布を「正規ベースライン」として重ねるとプロが書く図になります。

Q4. ディープフェイクを技術的に防ぐには?
A. (a) C2PA など来歴メタデータ、(b) AI 検知モデル、(c) 通話に共有秘密合言葉、(d) 動画なら liveness 検出 + チャレンジレスポンス。

Q5. 認証ログが個人情報なのでは?
A. はい。IP・端末ID・地理位置は個人情報になり得るので、機密性 (Confidentiality) と両立する設計が必要。 機密性 ページも参照。