Auth0のユニークな機能 - Anomaly Detection編


はじめに

この記事は初めてのAuth0ハンズオンの続編で、Auth0のユニークな機能の一つであるAnomaly Detectionの解説です。Anomaly Detectionは、特定のIP Addressからの不正なログインを遮断したり、過去に漏洩したパスワードでのサインアップ・ログインを遮断する機能です。
この記事は解説のみのため詳細な手順は掲載していません。

解説

Part1/Brute-force Protection

左ペインの"Anomaly Detection"をクリック、"Brute-force Protection"をクリックします。"Targeting A Single User Account"の”E-mail Notification”、"Block Login Attempts"フリップスイッチをオンにして”SAVE”を押します。
特定のIP Addressから連続したログイン失敗が発生した際に、事象を管理者にメールで通知してログインを遮断します。

Sample Applictionから擬似的な不正ログイン攻撃を発生させてAuth0 Dashborad "Logs"からログをチェックし、連続したログイン失敗が発生していることを確認します。


"Blocked Account"というログが出力されていることを確認し、クリックして詳細を見てみます。
Descriptionに"10回連続ログイン試行に失敗しました。このIPからこのアカウントでのログインは禁止します。"とあります。

左ペインの"Users&Roles"->"Users"から該当のユーザをクリックしBLOCKED (BRUTEFORCE)というタグがついていることを確認します。

上の”Row JSON”タブをクリックし属性詳細を確認します。"blocked_for"というArray Fieldが追加されておりブロックされているIP Addressを確認することができます。

{
    "created_at": "2019-12-25T05:53:37.443Z",
    "email": "[email protected]",
    "email_verified": false,
    "identities": [
        {
            "connection": "consumer-users",
            "provider": "auth0",
            "user_id": "5e02f961877c520e6e6b6ae6",
            "isSocial": false
        }
    ],
    "name": "[email protected]",
    "nickname": "minaminameatan",
    "picture": "https://s.gravatar.com/avatar/afd9308810fb397bd697306df95efa0b?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fmi.png",
    "updated_at": "2019-12-25T05:53:37.443Z",
    "user_id": "auth0|5e02f961877c520e6e6b6ae6",
    "last_ip": "61.21.179.55",
    "last_login": "2019-12-25T05:53:37.442Z",
    "logins_count": 1,
    "blocked_for": [
        {
            "identifier": "[email protected]",
            "connection": "consumer-users",
            "ip": "3.86.218.37"
        }
    ],
    "guardian_authenticators": []
}

Part2/Breached-password Detection

左ペインの"Anomaly Detection"をクリック、"Breached-password Detection"をクリックします。"Notify User", "Block Login Attempts"フリップスイッチをオンにして”SAVE”を押します。

Sample Applicationに擬似漏洩クレデンシャルでログインしてみます。


アラートに"セキュリティ事故が発生している可能性があり、アカウントをブロックします。ブロックを解除するにはパスワードを変更して下さい。"とあります。

"Breached password"というログが出力されていることを確認し、クリックして詳細を見てみます。
Descriptionに"悪意のある誰かがIP address 61.21.179.55から過去に漏洩されたパスワードでログインしようとしています。このログイン試行を遮断しました。"とあります。

おわりに

Auth0は数億件に上る漏洩したクレデンシャル情報が保管されたDatabaseをバックエンドに持っています。Email/Passwordによるサインアップ・ログインは全てこのDatabaseで照合しており、漏洩されたパスワードと一致した場合は直ちにサインアップ・ログインを遮断することでお客様の社会的企業責任とブランドイメージを守ります。