Qiitaに投稿された記事で、著者(@nolanlover0527)は第三者の立場から、CORS(Cross-Origin Resource Sharing、異なるオリジン間でのリソース共有を制御する仕組み)の設定ミスがどのように個人情報漏洩事故につながるかを解説しています。危険なパターンとして、「Access-Control-Allow-Origin: *」と「Access-Control-Allow-Credentials: true」の同時指定(ブラウザ仕様上エラーになるため直接の原因にはならない)、Originヘッダーの値を無検証でそのまま反射する実装(最も危険とされる)、nullオリジンを許可するケース(sandbox化されたiframeから攻撃可能)の3つが挙げられています。
実害事例としてZomato、Rockstar Games、米国防総省、LY Corporation(LINE)、UPchieveの5件が紹介されています。LY Corporationのケースでは「悪意あるWebページのリンクをユーザーがクリックしただけで個人情報が渡ってしまう」状態だったとされ、Rockstar Gamesでは「ユーザーのメールアドレスやIDなどの情報が本来意図しない形で外部に共有」される状態だったとされています。
対策としては、ホワイトリスト方式による厳格なオリジン管理が提案されています。
出典が伝えている要点
- 記事はQiitaに投稿された技術記事で、著者は@nolanlover0527(Yuuki)である。
- 記事はCORS設定ミスによる個人情報漏洩の危険性を第三者の立場で解説している。
- CORS設定ミスのパターン1として、「Access-Control-Allow-Origin: *」と「Access-Control-Allow-Credentials: true」を同時指定するケースが挙げられている。
- このパターン1はブラウザ仕様上エラーになるため直接的な漏洩原因にはならないとされている。
- CORS設定ミスのパターン2として、リクエストのOriginヘッダーの値を無検証でそのまま反射する実装が挙げられ、最も危険とされている。
- この場合、攻撃者が指定した任意のオリジンが許可される状態になるとされている。
- CORS設定ミスのパターン3として、nullオリジンを許可するケースが挙げられ、sandbox化されたiframeから攻撃可能とされている。
- 実害事例としてZomatoが挙げられ、ドメイン判定ロジックの不備により他ユーザーのアカウント情報が読み取り可能な状態だったとされている。
- 実害事例としてRockstar Gamesが挙げられ、ユーザーのメールアドレスやIDなどの情報が意図しない形で外部に共有される状態だったとされている。
- 実害事例として米国防総省(DoD)が挙げられ、Originの無検証反射と認証情報許可の組み合わせによる問題が指摘されている。
- 実害事例としてLY Corporation(LINE)が挙げられ、悪意あるWebページのリンクをユーザーがクリックしただけで個人情報が渡ってしまう状態だったとされている。
- 実害事例としてUPchieveが挙げられ、任意サイトから認証付きリクエストを送信しレスポンスを読み取ることが可能な状態だったとされている。
原文より
ユーザーのメールアドレスやIDなどの情報が本来意図しない形で外部に共有
悪意あるWebページのリンクをユーザーがクリックしただけで個人情報が渡ってしまう
出典: qiita.com