0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】Flash-based CSRF とは何だったのか

0
Posted at

はじめに

―― 消えた技術が今も教える CSRF 設計の落とし穴 ――

Adobe Flash Player は、かつて Web に革命をもたらしました。
動画、アニメーション、業務システム、銀行サイト――
一時代を築いたその技術は、同時に深刻なセキュリティ問題も抱えていました。

その代表例が Flash-based CSRF です。

Flash は 2020 年に公式サポートを終了しましたが、
Flash-based CSRF は 現代 Web にも通じる重要な教訓を残しています。

本記事では、

  • Flash-based CSRF の概要
  • なぜ成立したのか
  • 具体的な攻撃例
  • 通常の CSRF との違い
  • 現代への教訓

を体系的に解説します。


Flash-based CSRF とは

Flash-based CSRF とは、
Adobe Flash Player の通信機能やセキュリティ設計の欠陥を悪用して成立する CSRF 攻撃です。

通常の CSRF は HTML の仕組みを使います。

  • <form>
  • <img>
  • <iframe>

一方、Flash-based CSRF は次の点が決定的に異なります。

悪意ある .swf ファイルが、ブラウザの制御外で HTTP リクエストを送信する

これにより、ブラウザが用意した CSRF 防御が無力化されました。


なぜ Flash で CSRF が成立したのか

1. Flash は独自の通信エンジンを持っていた

Flash(ActionScript)は以下を直接扱えました。

  • HTTP リクエスト送信
  • Cookie の自動付与
  • POST / PUT / DELETE
  • JSON / XML データ送信

つまり Flash は、

  • Same-Origin Policy
  • Referer / Origin チェック
  • SameSite Cookie

といった ブラウザ側 CSRF 防御の外側 で動作していたのです。


2. crossdomain.xml による甘いアクセス制御

Flash では、サーバに配置された
crossdomain.xml によって通信許可を制御していました。

危険な設定例:

<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

この設定があると、

  • 任意のドメインの SWF が
  • 認証付きで
  • API を自由に呼び出せる

という 致命的な状態 になります。


攻撃フロー全体像

  1. 攻撃者が悪意ある .swf ファイルを作成
  2. 攻撃者サイトに埋め込む
  3. 被害者がログイン済みのままページを閲覧
  4. Flash が自動的に HTTP リクエスト送信
  5. Cookie が付与され認証が成立
  6. 被害サイトで状態変更が実行される

ユーザー操作は不要です。


例:銀行サイトでの送金 CSRF(Flash 版)

想定システム

  • 銀行サイト:https://bank.example.com
  • Flash で作られた古いダッシュボード
  • CSRF トークンなし(「Same-Origin があるから安全」と思い込んでいる)

本来の送金 API

POST /api/transfer HTTP/1.1
Host: bank.example.com
Cookie: AUTH=xyz
Content-Type: application/json

{
  "to": "attacker-account",
  "amount": 100000
}

Flash-based CSRF の恐怖ポイント

HTML の <form> CSRF では難しい:

  • JSON ボディ
  • 任意の API エンドポイント
  • 複雑なリクエスト

Flash なら全部可能

攻撃結果

  • ユーザーは何もしていない
  • 画面遷移もない
  • でも口座から送金完了

サーバログだけが真実


通常の CSRF より危険だった理由

観点 通常 CSRF Flash-based CSRF
リクエスト形式 form / GET JSON / XML
ヘッダ制御 制限あり 自由度高
ブラウザ防御 有効 無効
API 直叩き 困難 容易

👉 API 時代を先取りした最悪の CSRF とも言えます。


Flash の終焉

  • 2020年12月31日
    Adobe Flash Player 公式サポート終了
  • 現代ブラウザでは原則実行不可
  • Flash-based CSRF は新規脅威ではない

現代技術との対応関係

Flash 時代 現代
Flash API WebAssembly
crossdomain.xml CORS
Flash 通信 Service Worker
Flash-based CSRF OAuth CSRF / SameSite 回避

技術は変わっても、事故の構造は同じです。


まとめ

  • Flash-based CSRF は Flash の設計が生んだ CSRF
  • 現代ではほぼ再現不可
  • しかし CSRF 設計を考える上で今も重要
  • 「便利すぎる技術は、だいたい危ない」

Flash は消えました。
でも Flash 的な失敗は、今も別の姿で現れます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?