[論文レビュー] OAuthGuard: Protecting User Security and Privacy with OAuth 2.0 and OpenID Connect
OAuthGuard は、Google のサインインサービスを使用する依頼者(RP)において、5 つの OAuth 2.0 および OpenID Connect の脆弱性(うち 1 つは以前未報告のプライバシー上の欠陥を含む)を検出・緩和する Chrome 拡張機能です。リアルタイムでトークン漏洩をブロックし、HTTPS の強制、リファラーヘッダ分析による CSRF 攻撃検出、なりすましリスクの警告を通じてユーザーを保護し、トップ 1,000 ウェブサイトの調査において 69 件の脆弱な RP のうち 56 件を正常に保護しました。
Millions of users routinely use Google to log in to websites supporting OAuth 2.0 or OpenID Connect; the security of OAuth 2.0 and OpenID Connect is therefore of critical importance. As revealed in previous studies, in practice RPs often implement OAuth 2.0 incorrectly, and so many real-world OAuth 2.0 and OpenID Connect systems are vulnerable to attack. However, users of such flawed systems are typically unaware of these issues, and so are at risk of attacks which could result in unauthorised access to the victim user's account at an RP. In order to address this threat, we have developed OAuthGuard, an OAuth 2.0 and OpenID Connect vulnerability scanner and protector, that works with RPs using Google OAuth 2.0 and OpenID Connect services. It protects user security and privacy even when RPs do not implement OAuth 2.0 or OpenID Connect correctly. We used OAuthGuard to survey the 1000 top-ranked websites supporting Google sign-in for the possible presence of five OAuth 2.0 or OpenID Connect security and privacy vulnerabilities, of which one has not previously been described in the literature. Of the 137 sites in our study that employ Google Sign-in, 69 were found to suffer from at least one serious vulnerability. OAuthGuard was able to protect user security and privacy for 56 of these 69 RPs, and for the other 13 was able to warn users that they were using an insecure implementation.
研究の動機と目的
- 実世界の依頼者(RP)における OAuth 2.0 および OpenID Connect の広範な誤用が引き起こす深刻なセキュリティおよびプライバシー上のリスクに対処すること。
- RP がベストプラクティスに従わない場合でも、エンドユーザーの保護を提供すること。
- Google の SSO サービスを使用する RP において、5 つの特定の脆弱性(新規のプライバシー欠陥を含む)を検出し、緩和すること。
- RP 側の変更なしに実装可能な、実用的で導入可能なソリューションを提供すること。
提案手法
- OAuthGuard は、OAuth 2.0 および OpenID Connect フロー中に HTTP メッセージをリアルタイムで分析し、セキュリティおよびプライバシー上の欠陥を検出します。
- リファラーヘッダ分析を用いて、CSRF 攻撃を検出します。これは、RP が適切な CSRF 対策を講じていない場合でも有効です。
- OAuth 2.0 の応答に対して HTTPS を強制することで、HTTP から HTTPS へのダウングレード攻撃をブロックします。
- アクセストークンを含む不正な外部リクエストを監視し、第三者へのトークン漏洩を特定・ブロックします。
- 不正なまたは欠落した認証パラメータに基づき、なりすまし脆弱性が検出された場合にユーザーに警告を発します。
- 本システムは Chrome 拡張機能として実装されており、Google の OAuth 2.0 および OpenID Connect サービスと統合されています。
実験結果
リサーチクエスチョン
- RQ1Google サインインを使用する実世界の依頼者(RP)における、最も一般的な OAuth 2.0 および OpenID Connect の脆弱性は何か?
- RQ2RP や IdP の変更なしに、クライアント側ツールが RP 実装における脆弱性を効果的に検出し、緩和できるか?
- RQ3以前未報告のプライバシー脆弱性が、OAuth 2.0 および OpenID Connect 実装にどれほど広がっているか?
- RQ4RP が適切な CSRF 保護を講じていない実世界のシナリオにおいて、リファラーヘッダベースの CSRF 検出メカニズムはどの程度有効か?
- RQ5RP の実装が適切でない状況下で、OAuthGuard のようなクライアント側ツールがユーザーのセキュリティとプライバシーをどの程度向上できるか?
主な発見
- トップ 1,000 ウェブサイトのうち、Google サインインを使用する 137 サイトのうち、69 サイトが少なくとも 1 つの深刻な OAuth 2.0 または OpenID Connect の脆弱性を有していた。
- OAuthGuard は、脆弱な RP の 56 カ所に対して、主に CSRF 攻撃とトークン漏洩の緩和を通じて、ユーザーのセキュリティとプライバシーを正常に保護した。
- 9 カ所の RP を対象に、75 件の HTTP リクエストがユーザーのトークンを第三者のウェブサイトに漏洩していたことが検出され、すべてブロックされた。
- CSRF 攻撃の脆弱性がある 53 サイトのうち、48 サイトで OAuthGuard がリファラーヘッダ分析を用いて脅威を正常に緩和した。
- なりすまし攻撃の脆弱性がある 13 サイトに対して、OAuthGuard が警告を発し、これは従来のツールでは検出できなかった。
- 調査では、OAuthGuard が CSRF をフラグとして検出しなかった 25 サイトのうち 109 サイトが依然として脆弱であることが判明し、メッセージレベルの検査では不十分な場合があることが示された。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。