identity & security

Auth0 ActionsにおけるAkamaiリスクシグナルの最大化

Akamai Bot ManagerとAccount Protectorのリスクシグナルを直接Auth0 Actionsにルーティングし、境界テレメトリとアイデンティティパイプラインを連携させる方法を解説します。

May 22, 20262 min read

本記事は「From Silent Alarm to Active Defense: Maximizing Akamai Risk Signals in Auth0 Actions」を翻訳した記事です。

Akamaiによってネットワーク境界で保護されているログインエンドポイントに、高度なクレデンシャルスタッフィングボットが攻撃を仕掛けています。Akamai Bot Managerの高度なボット検出アルゴリズムがボットのアクティビティを検出し、悪意のあるスクリプトにフラグを立てます。エッジでアラームが鳴っています。

しかしリクエストがAuth0に到達すると、シグナルは消えてしまいます。ネットワークインテリジェンスはエッジに留まる一方で、内部では問題のないIPからの有効なユーザー名とパスワードとして認識されます。結果としてアクセスを許可してしまいます。

エッジは高リスクのトラフィックを通過させる可能性があります。Auth0を使用して、トラフィックがアイデンティティ攻撃に発展するのを防ぐ方法を検討します。

Auth0とAkamaiを併用しているお客様は、Auth0の前のレイヤーとしてエッジを安全に管理するためにAkamaiを利用しています。トラフィックをより細かく制御できる一方で、問題も生じます。リクエストがアイデンティティパイプラインに到達するまでに、最も精度の高いボットやリスクのシグナルが削除されたり無視されたりすることが多いのです。

ActionsのSupplemental Signalsによるギャップの解消

Akamai連携機能の一般提供(GA)開始により、消えていたアラームを実行可能なイベントに変換します。リバースプロキシとしてAkamaiを使用している場合、Akamai Supplemental Signalsを直接Auth0 Actionsに取り込み、レスポンスをオーケストレーションできます。

Account ProtectorやBot Managerなどの製品からのAkamaiのテレメトリをAuth0 Actions内で利用可能にすることで、単なる可視化以上の価値を提供します。シグナルは拡張性モデルにおいて重要な要素として扱われます。開発者は数行のコードを記述するだけで、ユーザーリスクスコアが高すぎる場合にPost-Login ActionでMFAチャレンジを強制できます。

// First Action to require MFA
exports.onExecutePostLogin = async (event, api) => {
 const userRiskHeader = event.authentication?.riskAssessment?.supplemental?.akamai?.akamaiUserRisk;

// Trigger MFA if Akamai Account Protector signals high risk
 if (userRiskHeader?.score && userRiskHeader?.score >= 90) {
   console.log(`Setting app metadata for session id: ${event.session?.id}`);
   api.user.setAppMetadata(`mfa_required_${event.session?.id}`, true);
 }

 if (userRiskHeader?.score && userRiskHeader?.score >= 90 ||
     event.user.app_metadata[`mfa_required_${event.session?.id}`]) {
       console.log(`Requiring MFA FOR Session id: ${event.session?.id}`);
       api.multifactor.enable('any', {allowRememberBrowser: false});
 }
};
// Second Action to clean up metadata
exports.onExecutePostLogin = async (event, api) => {
 const mfaMethod = event.authentication?.methods.find((method) => {
   return method.name === 'mfa';
 });

 if (mfaMethod) {
   console.log(`Removing MFA requirement for session id: ${event.session?.id}`);
   api.user.setAppMetadata(`mfa_required_${event.session?.id}`, undefined);
 }
};

または、Akamaiの信頼性の高いボットスコアに基づいてユーザー登録を拒否することで、サインアップ攻撃を軽減します。

exports.onExecutePreUserRegistration = async (event, api) => {
 const akamaiBot = event.authentication?.riskAssessment?.supplemental?.akamai?.akamaiBot;
// Deny registration if Bot Manager results indicate a high bot score
 if (akamaiBot?.botScore && akamaiBot.botScore >= 90) {
   return api.access.deny(
     "automated_registration_detected",
     "Registration is currently unavailable. Please ensure you are using a supported browser."
   );
 }
};

Akamaiはエッジでのブロックやチャレンジを通じたトラフィック管理に優れています。しかしシグナルをアイデンティティフローに拡張しなければ、強力な機能を活かしきれません。シグナルをAuth0に接続することで、Identity Orchestrationを実行し、ネットワークジャーニーの全体的なコンテキストに基づいて、ユーザーの状況を把握した、ピンポイントで的確なセキュリティ判断を下せます。

エッジを無駄にしない: すでに所有しているインテリジェンスの有効化

Auth0では、最適なセキュリティツールを使用できるべきだと常に考えてきました。誰もが安全にテクノロジーを使用できるようにするというビジョンのもと、エコシステム全体で機能する中立的なアイデンティティレイヤーを提供しています。

セキュリティ投資を無駄にしないでください。境界を保護するためにすでにAkamaiを使用している場合、アイデンティティレイヤーには見えないリスクインテリジェンスの宝庫を抱えていることになります。シグナルをAuth0 Actionsに統合することで、受動的な監視をアクティブな防御に変換できます。

ログイン画面で手探りの運用をするのはやめましょう。AkamaiのシグナルをAuth0に接続しよりスマートでデータ駆動型のセキュリティ上の意思決定を今すぐ開始してください。

本資料および中の推奨事項は、法律、プライバシー、セキュリティ、コンプライアンス、またはビジネス上のアドバイスではありません。本資料は一般的な情報提供のみを目的としており、最新のセキュリティ、プライバシー、法的動向、およびすべての関連する問題を反映していない場合があります。弁護士またはその他の専門アドバイザーから法律、セキュリティ、プライバシー、コンプライアンス、またはビジネス上のアドバイスを得る責任があり、本資料の推奨事項に依存するべきではありません。Oktaは、本資料の推奨事項の実装から生じる可能性のある損失または損害について責任を負いません。Oktaは、本資料のコンテンツに関して、いかなる表明、保証、またはその他の保証も行いません。顧客に対するOktaの契約上の保証に関する情報は、okta.com/agreementsで確認できます。

About the author

Tiffany Larson

Tiffany Larson

Senior Software Engineer

Tiffany Larson is a Senior Software Engineer on the Attack Protection Team at Auth0. She focuses on building intelligent systems that protect users and customers from automated threats and malicious actors. View profile