Unveiling OAuth Vulnerabilities: Exploring Account Access Without Email Verification から学ぶ

ソース:

medium.com

脆弱性:OAuth

 

訳:

OAuthとは何ですか?

OAuth は、アプリケーションがユーザーに代わってリソースへのアクセスを承認するために使用されるアクセス トークンを取得できるようにすることで動作し。
このプロセスでは、ユーザーの資格情報をサードパーティのサービスに公開せず、代わりに必要なアクセス許可を付与する安全なトークンに依存することでセキュリティが強化されて。

OAuth 脆弱性の影響

  • ユーザーの機密データへの不正アクセス
  • ユーザーアカウントと認証情報の侵害。
  • アプリケーション内でのユーザー権限の悪用の可能性。
  • フィッシングまたはソーシャル エンジニアリング攻撃にさらされる。

最新の Web アプリケーションで OAuth が広く使用されていることを考えると、その安全な実装を確保することが重要で。
OAuth の電子メール検証プロセスの脆弱性を明らかにする 2 つのシナリオを調べてみましょう。

これらのシナリオを発見した経緯

  • アカウントを作成しました : Gmail アドレスを使用してサインアップし、後でメールを確認することを選択しました。
  • 認証なしでログイン : 詳細を入力したところ、電子メールを認証せずにログインできました。
  • テスト済みの Gmail 認証 : Gmail の OAuth 認証を使用してログアウトし、再度ログインしました。これにより、電子メールの検証を必要とせずにアクセスが許可されました。
  • 直接ログイン : メールが認証されていないにもかかわらず、再度ログアウトし、作成した Gmail ID とパスワードを使用してログインに成功しました。
  • 電子メールの検証と再テスト : 次に、電子メールを検証し、ログアウトし、同じ ID とパスワードで再度ログインしました。 検証後も、追加のセキュリティ チェックなしでアクセスは引き続き許可されました。

シナリオ 1: 電子メール認証なしでログインする

ステップ 1: Gmail アドレスを使用してアカウントを作成する: アカウントにサインアップするときは、通常、Gmail アドレスを入力し、パスワードを設定し。
通常、アカウントに完全にアクセスする前に電子メールを認証する必要があると考えられて。

Gmail IDでアカウントを作成する

ステップ 2: 後で電子メールを確認することを選択します: サインアップ プロセス中に、今すぐ電子メールを確認するか、後で確認するかの 2 つのオプションが表示され。 このシナリオでは、後で確認することを選択し。

「後で確認する」をクリックします

ステップ 3: 必要な詳細を入力します。 アカウント名、姓名、パスワードを入力し。 クリックしてアカウントを作成し。


必要事項を入力して「次へ」をクリックしてください

ステップ 4: 電子メール認証なしでログイン: 驚くべきことに、電子メールを認証していなくてもアカウントにログインできて。
これは、システムが検証プロセスを完了せずにアクセスを許可していることを示し。


作成したアカウントでログインに成功して。

ステップ 5: ログアウトし、Gmail 認証を使用して再度ログインする: アカウントからログアウトします。
その後、Gmail 認証を使用して再度ログインします。 このメソッドでもアクセスが許可されることがわかり。


ページからログアウトする



Googleでログイン」をクリックします




最初に作成したアカウントを選択してください



Gmailアカウントでログインに成功しました

ステップ 6: Gmail 認証からログアウトして直接ログイン: 再度ログアウトし、最初に作成した Gmail ID とパスワードを使用してログインしてみます。 メールを認証しなくてもアカウントに正常にアクセスできることがわかり。


再度、「ログアウト」をクリックしてアカウントからログアウトし。


作成したGmail IDとパスワードでログインします


アカウントに正常にログインできます

シナリオ 1 の影響

シナリオ 2: 電子メール認証後のログイン

ステップ 1: 電子メールを確認する: 登録した Gmail アカウントに戻り、電子メールの確認プロセスを完了し。


受信トレイに移動し、「メールアドレスを確認する」をクリックします

ステップ 2: アカウント検証の確認: 電子メールを検証すると、アカウントが完全にアクティブ化されて。


これでアカウントが認証されて。

ステップ 3: ログアウトして、作成した ID とパスワードを使用する: アカウントからログアウトします。 その後、作成したメールIDとパスワードを使用して再度ログインしてください。


「ログアウト」をクリックし、作成したIDとパスワードでログインしてみます。

ステップ 4: 検証後のログイン成功: 検証後、作成した電子メール ID とパスワードを使用してアカウントに正常にログインできます。


作成したメールアドレスとパスワードを入力して「ログイン」をクリックします


認証後、作成したIDとパスワードでログインに成功し。

シナリオ 2 の影響

結論

これらのリスクを軽減するために、開発者は、システムがアクセスを許可する前に厳格な電子メール検証を強制することを確認し、検証済みのアカウントに対して追加のセキュリティ対策を実装する必要があり。
これらの脆弱性に対処することは、ユーザー アカウントの整合性とセキュリティを維持する上で非常に重要で。

重要なポイント

  1. 認証後のセキュリティ強化 : 認証済みアカウントに堅牢なセキュリティ対策を実装し、不正アクセスを防ぎ。
  2. 定期的なセキュリティ監査 : セキュリティ評価を頻繁に実施して、OAuth 実装の潜在的脆弱性を特定して修正し。

これらの脆弱性を理解して対処することで、より安全なシステムを構築し、ユーザー データを効果的に保護できて。

 

ほなほな。