LOCKED
ブログ一覧に戻る
SSO・IDaaSLOCKED MSO

SSOセキュリティ課題完全対策【トークンハイジャック・セッション固定攻撃防止】

関連トピック: シングルサインオン(SSO)導入で社員認証を一元管理【完全ガイド】

シングルサインオン(SSO)は利便性を大幅に高める一方で、セキュリティリスクも増加させます。1つの ID が複数のアプリケーションにアクセスするため、一度認証を突破されると組織全体のセキュリティが損なわれる可能性があります。本記事では、SSO 環境で発生する具体的なセキュリティ脅威(トークンハイジャック、セッション固定攻撃、フィッシング)と、各脅威に対する防御戦略、セキュアな実装パターン、運用上の注意点を詳細に解説します。

SSO 環境で増大するセキュリティリスク

SSO がもたらす新たな脅威環境

従来の個別アプリケーション認証では、1つのアプリケーションが侵害されても、他のアプリケーションは保護されていました。しかし SSO では、認証一度で複数のアプリケーションにアクセス可能になります。

SSO 導入前後でのリスク変化:

SSO 導入前:
アプリA の認証情報が漏洩 → アプリA のみが危険

SSO 導入後:
SSO の認証情報が漏洩 → アプリA、B、C、D...すべて危険

国内の大企業での調査によれば、SSO 導入企業のセキュリティインシデント対応工数は、導入前比で年間 300~500 時間増加しています。

SSO で発生しやすい攻撃パターン

攻撃パターン特徴影響度
トークンハイジャックSSO トークンを盗聴・盗取★★★★★
セッション固定攻撃攻撃者が設定したセッション ID を使用させる★★★★
セッション乗っ取り(Session Riding)CSRF で未認証操作を実施★★★
フィッシング攻撃SSO ログインページへのフィッシング★★★★★
クロスサイトリクエストフォージェリ(CSRF)SSO 経由での不正操作★★★
パッチの遅れSSO サーバーが古いバージョン★★★
選定ガイド(無料)

IDaaS SSO選定ガイド

IDaaS/SSOの選定基準を体系的に整理。対応プロトコル、MFA、プロビジョニング機能など、比較検討に必要な視点を網羅しています。

無料でダウンロード

主要な脅威と対策:詳細解説

脅威 1:トークンハイジャック(Token Hijacking)

攻撃シナリオ:

  1. ユーザーが会社の WiFi で SSO ログイン
  2. 攻撃者(同じ WiFi 上)が通信を盗聴、SSO トークンを盗取
  3. 攻撃者がそのトークンを使用して、複数アプリケーションに不正アクセス

トークン盗取の手法:

  • 平文通信: HTTP(暗号化なし)での通信でトークンが流出
  • ローカルストレージ 保存: JavaScript でアクセス可能なローカルストレージにトークンを保存し、XSS 攻撃で盗出
  • Cookie の不適切な設定: HttpOnly フラグなし、Secure フラグなしで Cookie にトークンを保存

対策:

  1. HTTPS 必須化(TLS 1.3)

    • すべての SSO 通信を暗号化
    • 自己署名証明書ではなく、CA 認定の証明書を使用
    • TLS 1.0、1.1 は廃止、最低 TLS 1.2(推奨 1.3)
    実装例(LOCKED MSO):
    - TLS 1.3 による暗号化通信
    - SHA-256 以上のハッシュアルゴリズム
    - 楕円曲線暗号(ECC)による強力な鍵交換
    
  2. HttpOnly / Secure フラグの設定

    Set-Cookie: session_id=abc123; HttpOnly; Secure; SameSite=Strict
    
    • HttpOnly: JavaScript からアクセス不可、XSS 対策
    • Secure: HTTPS 通信でのみ送信
    • SameSite=Strict: CSRF 攻撃対策、クロスサイトリクエストで Cookie 非送信
  3. トークンの有効期限設定

    • アクセストークン:30 分~1 時間
    • リフレッシュトークン:7 日~30 日
    • 有効期限を超えたトークンは無条件に無効化
  4. トークンローテーション

    • ログイン時ごとに新しいトークンを発行
    • 古いトークンは自動的に失効させる

脅威 2:セッション固定攻撃(Session Fixation Attack)

攻撃シナリオ:

  1. 攻撃者が事前に SSO にログイン、セッション ID(例:123abc)を取得
  2. 攻撃者が被害者に以下のリンクを送信: https://sso.company.com/login?session_id=123abc&app=salesforce
  3. 被害者がリンククリック、SSO でログイン
  4. SSO が既存のセッション ID(123abc)を使用してしまう
  5. 攻撃者がそのセッション ID で Salesforce にアクセス

対策:

  1. ログイン直後のセッション ID 再生成

    ログイン前:session_id = old_session_123
    ログイン後:session_id = new_session_456
    (old_session_123 は破棄)
    
  2. セッション ID の強度

    • 最低 128 ビット(16 バイト)のランダムなセッション ID
    • 予測不可能な値を生成(暗号学的に安全な乱数生成器使用)
  3. セッション有効期限

    • 無操作時間:30 分で自動ログアウト
    • 最大セッション時間:8 時間で強制ログアウト

脅威 3:フィッシング攻撃(Phishing)

攻撃シナリオ:

  1. 攻撃者が詐欺メールを送信: 「セッションの有効期限が切れました。再度ログインしてください。」
  2. メール内のリンク(https://sso-login-fake.com/login)を被害者がクリック
  3. 被害者が ID・パスワード入力
  4. 攻撃者が認証情報を盗取し、本物の SSO で不正アクセス

対策:

  1. フィッシングサイトの検知

    • LOCKED MSO では、URL ベースのフィッシング検知機能を搭載
    • レピュテーション DB と照合、疑わしいサイトへのアクセスを警告
  2. SPF / DKIM / DMARC による認証メール検証

    • 詐欺メールが「会社のドメインから送信」と見せかけるのを防止
  3. パスキー(Passkey)認証の導入

    • パスワード不要で、フィッシング耐性 99.9%
    • FIDO2 セキュリティキーと組み合わせ

セキュアな SSO 実装アーキテクチャ

アーキテクチャ設計における脅威軽減

推奨される 3 層セキュリティ:

第 1 層:IdP(Identity Provider)レベルセキュリティ
├─ 多要素認証(MFA:SMS、TOTP、セキュリティキー)
├─ リスクベース認証(異常検知)
└─ セッション管理、タイムアウト

第 2 層:プロトコルレベルセキュリティ
├─ SAML 2.0 署名・暗号化
├─ OAuth 2.0 PKCE(Proof Key for Code Exchange)
├─ OpenID Connect ID Token 検証
└─ JWT 署名検証

第 3 層:伝送層セキュリティ
├─ TLS 1.3 による暗号化
├─ Certificate Pinning(証明書ピンニング)
└─ HSTS(HTTP Strict Transport Security)

LOCKED MSO でのセキュアな実装

security_config:
  # MFA 設定
  mfa:
    required: true
    methods:
      - totp          # Google Authenticator 等
      - sms           # SMS コード
      - fido2         # セキュリティキー
      - biometric     # 生体認証

  # リスクベース認証
  risk_based_auth:
    enabled: true
    rules:
      - name: "地理的異常"
        condition: "distance > 1000km && time < 2hours"
        action: "require_mfa"
      - name: "未承認デバイス"
        condition: "device_first_time == true"
        action: "require_user_confirmation"
      - name: "ブルートフォース"
        condition: "failed_attempts >= 5 && time_window = 10min"
        action: "block"

  # トークン管理
  tokens:
    access_token:
      lifetime: "1 hour"
      rotation: true
    refresh_token:
      lifetime: "7 days"
      one_time_use: true
    id_token:
      signature: "RS256"
      encryption: "RSA-OAEP"

  # セッション管理
  sessions:
    timeout_inactive: "30 minutes"
    timeout_absolute: "8 hours"
    concurrent_sessions: 3  # 同時ログイン数制限
    fixation_protection: true  # ログイン後にセッション ID 再生成

実装企業の事例

事例 1:大手 SaaS 企業(従業員 5,000 人)

導入前のセキュリティ課題:

- SSO トークンが localStorage に平文保存
- フィッシング被害が月 3~5 件
- セッション有効期限がなく、ログイン一度で終日アクセス可能
- トークンハイジャック事件が年 2 件報告

セキュリティインシデント対応:月 100 時間

LOCKED MSO + セキュリティ強化導入:

  • HttpOnly Cookie でトークン保存
  • MFA(TOTP + セキュリティキー)必須化
  • リスクベース認証(異常検知)実装
  • セッションタイムアウト 30 分設定

導入結果(6 ヶ月後):

フィッシング被害:月 3~5 件 → 0 件
トークンハイジャック:年 2 件 → 0 件
セキュリティインシデント対応:月 100 時間 → 月 15 時間
ユーザー満足度:パスワード管理負担削減で 88% が「満足」と評価

事例 2:金融機関(従業員 3,000 人)

導入前:

- 法人向けシステムと消費者向けシステムでセキュリティレベルが異なる
- SSO 導入したが、OAuth 2.0 実装で PKCE なし
- セッション固定攻撃への対策がなかった
- 金融庁への監査報告書作成に月 50 時間

監査指摘事項:5 件

LOCKED MSO での統一認証基盤構築:

  • SAML 2.0 / OAuth 2.0 / OIDC の統一実装
  • PKCE、署名・暗号化による強化
  • リスクベース認証で不正検知
  • 詳細な監査ログで金融庁対応簡素化

導入結果(1 年後):

監査指摘事項:5 件 → 0 件
監査報告書作成:月 50 時間 → 月 5 時間
セキュリティインシデント:3 件報告 → 0 件

セキュリティ検査チェックリスト

SSO 環境のセキュリティを評価するチェックリストです。以下のうち 5 個以上「いいえ」の場合、緊急の対応が必要です。

  • HTTPS(TLS 1.2 以上)を使用している
  • トークンを HttpOnly Cookie に保存している
  • トークンの有効期限が 1 時間以内に設定されている
  • MFA が必須化されている
  • リスクベース認証が実装されている
  • セッション固定攻撃対策(ログイン後のセッション ID 再生成)が実装されている
  • セッションタイムアウト(無操作 30 分)が設定されている
  • SAML 署名・暗号化が有効化されている
  • API レート制限(ブルートフォース攻撃対策)が実装されている
  • 監査ログが 90 日以上保持されている

まとめ:SSO のセキュリティリスクを理解した運用を

SSO は利便性をもたらす一方で、セキュリティリスクも増加させます。しかし、正しい実装と運用により、リスクを最小化できます。LOCKED MSO はこれらのセキュリティ機能を標準搭載しており、セキュアな SSO 環境の構築が可能です。


外部参考リンク

関連記事

LOCKED MSO でセキュアな SSO 環境を構築しませんか?

トークンハイジャック、セッション固定攻撃、フィッシング対策が標準搭載。金融機関レベルのセキュリティが実現できます。

資料請求・無料セキュリティ診断はこちら →

商標について:本記事に記載されているSalesforce等の製品名・サービス名は、各社の商標または登録商標です。

免責事項:本記事の情報は執筆時点のものであり、各製品の最新の機能・料金・仕様については、各社の公式サイトをご確認ください。本記事の内容に基づく判断・行動について、当社は一切の責任を負いかねます。

LOCKED MSO

この課題、LOCKEDで解決できます

「IDaaS SSO選定ガイド」など、検討に役立つ資料を無料でご用意しています

LOCKEDシリーズの詳細資料を無料でダウンロード

導入事例、機能詳細、他社比較など、検討に必要な情報をまとめた資料をご用意しています

まずは資料で詳細を確認

製品資料で機能・料金・導入事例をまとめてご確認いただけます

資料をダウンロード