同時ログインのセキュリティ

無制限のログインは、重大なビジネスロジックの欠陥を隠してしまう可能性があります。

ユーザーがノートPCでログインします。数秒後、同じアカウントが別のブラウザでログインします。次にモバイルデバイス、そしてAPIクライアント。すべてが完璧に動作します。

多くのアプリがマルチデバイスに対応しているため、これは問題ないように思えます。しかし、こう問いかける必要があります。「すべてのアプリケーションが、無制限のセッションを許可すべきなのだろうか?」と。

システムによっては、複数セッションは「機能」です。しかし別のシステムでは、攻撃者が潜伏するために利用する「欠陥」となります。これはビジネスロジックの脆弱性です。コードは設計通りに動作していますが、設計そのものが脆弱なのです。

その違い: • 従来のバグは、コーディングのミスを悪用します。 • ビジネスロジックのバグは、設計上の決定を悪用します。

動画ストリーミングサービスを考えてみてください。もし1つのサブスクリプションで10人が同時に視聴できるとしたら、ログインシステムは正常に動作していますが、ビジネスルールが破綻しています。

これは、銀行、管理パネル、SaaS製品にも当てはまります。

テスト方法:

高セキュリティなアプリでは、多くの場合、以下のルールを適用しています:

もし攻撃者が認証情報を盗んだ場合、無制限のセッションを許可していると、彼らは永遠にログインし続けることができます。本物のユーザーがアクティブな間、攻撃者もアクティブなままです。どちらの人物も侵入者に気づきません。

文脈がすべてです。 多くのセッションを必要とするアプリ:

厳格な管理が必要なアプリ:

修正方法:

SQLインジェクションのようなコードのバグだけを探さないでください。アプリの動作と、ビジネスが要求する要件との間の「ギャップ」を探してください。

今すぐセッションポリシーを見直しましょう。最大の懸念は、壊れたコードではなく、壊れたロジックかもしれません。

Source: https://dev.to/arashad_dodhiya_0e4bdba5a/concurrent-login-security-how-to-check-whether-multiple-sessions-are-allowed-1839