利用Auth0日志检测注册欺诈的3种方法

本文详细介绍了如何使用Auth0日志检测和预防欺诈性注册,涵盖三种常见欺诈指标:高量注册活动、使用一次性邮箱域名和大量未验证账户,并提供实际检测规则和Splunk查询示例。

检测注册欺诈:利用Auth0日志保护业务的3种方法

欺诈性注册是各行业企业面临的持续增长威胁,会导致账户接管尝试、垃圾信息、免费试用滥用,最终造成重大财务损失和声誉损害。随着数字环境的发展,欺诈者的策略也在不断演变,这使得强大的检测机制比以往任何时候都更加关键。

Auth0提供了多种预防能力来阻止欺诈者:

  • 包括社交登录和通行密钥的无密码认证
  • 用于创建注册和登录验证自定义逻辑的Auth0 Actions
  • 帮助防范各种脚本攻击的机器人检测和其他攻击防护功能
  • 具有开箱即用仪表板和可配置阈值的Auth0安全中心,提供检测能力

本文将重点介绍利用Auth0客户检测目录中的可用检测,为您的Auth0环境提供额外的检测能力。

常见注册欺诈指标

1. 高量注册活动

检测规则: detections/risk_of_signup_fraud_by_volume.yml

想象一下来自一组IP地址的新账户突然激增。此检测通过监控注册数量激增、过多失败注册或使用泄露密码的注册尝试来识别潜在的注册欺诈。

虽然合法的营销活动可能会解释某些峰值,但异常高的数量通常表明自动化机器人活动或集中攻击。这里的价值在于识别大规模的自动化欺诈尝试,例如机器人创建账户用于发送垃圾邮件、凭据填充或其他恶意目的。及早发现这些可以防止威胁行为者涌入您的用户群。

2. 使用一次性邮箱域名注册

检测规则: detections/risk_of_signup_fraud_by_disposable_domains.yml

一次性电子邮件地址(如来自Mailinator或TempMail等服务的地址)是有原因的警示信号。用户通常使用它们来避免提供合法的联系信息,通常用于一次性访问、绕过电子邮件验证或注册多个账户而不留下痕迹。欺诈者经常使用这些域名创建临时账户进行滥用活动或免费试用滥用。

此检测对于识别意图掩盖身份或用于短期恶意使用的账户至关重要。通过标记这些域名,您可以质疑注册或完全阻止它,保护用户数据的完整性。

3. 创建大量未验证账户

检测规则: detections/many_unverified_accounts_created.yml

电子邮件验证是标准安全措施,旨在确保新账户链接到合法、可访问的电子邮件地址。当创建大量账户但仍未验证时,表明使用的电子邮件地址可能是假的、无效的,或由不打算完成验证步骤的攻击者控制。这可能是机器人生成账户或试图用垃圾数据淹没系统的强烈指标。

此检测突显了潜在的僵尸网络或复杂欺诈计划,其中账户被批量创建而没有意图被激活或合法使用。识别这些未验证账户有助于清理用户数据库并专注于与真实用户互动。

将检测付诸实践

这些检测的价值在于它们对安全操作的直接适用性。我们的检测YAML规范设计灵活,可与各种安全工具一起使用。

Sigma兼容性

每个检测都与Sigma兼容,允许您将逻辑转换为适用于您选择的安全信息和事件管理(SIEM)工具的查询。这为规则创建提供了统一标准。

例如,使用sigma-cli将many_unverified_accounts_created.yml检测转换为Splunk查询:

1
2
3
4
sigma convert \
--target splunk \
--pipeline splunk_windows \
detections/many_unverified_accounts_created.yml

此命令将输出可在您的环境中直接使用的Splunk查询。

Auth0和Splunk查询

每个检测文件还附带了在Auth0仪表板中原生工作的直接Lucene查询。虽然对于快速探索目的很有用,但这些查询有时缺乏更复杂分析所需的表达能力。

对于更精细的检测,每个文件还包括一个带注释的Splunk查询。此查询提供了更详细的方法,并通常包含带有有用扩展的注释行。

例如,未验证账户检测的Splunk查询结构旨在提供丰富信息:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
index=auth0 data.tenant_name="{your-tenant-name}"
   data.type IN (ss sv)
   | fields data.user_name, data.type, data.user_id
   ``` Calculations ```
   | eval elapsed_time = (now() - _time) / 60
   | rex field=data.user_name ".+@(?<user_domain>.*)"
   | stats values(data.type) as event_types, count(data.type) as cnt_events_per_user, min(elapsed_time) as
    min_elapsed_time by data.user_name data.user_id user_domain
   ``` Filtering for users who has not completed email verification within a specified time window,
   i.e. we see just one event (ss) ```
   | where cnt_events_per_user = 1 and min_elapsed_time > {threshold_not_verified_within_X_min}
   ``` Display information about unverified users```
   | table data.user_id, data.user_name, user_domain, event_types, min_elapsed_time
   ``` Option 1 - Alert when a number of created unverified users exceeds a threshold```
   ```| stats count(data.user_id) as unverified_user_cnt
   | where unverified_user_cnt > {threshold_indicating_surge_of_unverified_users} ```
   ``` Option 2 - Extend the detection to monitor high-volume unvalidated domains ```
   ```| stats count as cnt_domain by user_domain`
   | where cnt_domain > {threshold_indicating_surge_of_email_domains} ```

注释选项(如选项1和选项2)是在检测的YAML文件注释中解释的强大扩展。通过取消注释它们,您可以轻松调整检测以查找未验证用户激增或特定未验证电子邮件域名的峰值。为了有效使用这些,我们建议首先在一段时间内运行查询,为您的正常流量建立基线并确定适当的阈值。

欺诈检测的未来

对抗欺诈性注册的战斗是持续的,有效的检测是一项持续的努力。这三种检测只是一个开始。通过专注于强大的检测,您不仅可以减轻直接威胁,还可以获得对欺诈者不断演变策略的宝贵见解,最终增强您的整体安全状况。

Auth0客户检测库是一个不断增长的资源,我们致力于扩展指标集合,帮助您领先于欺诈者。我们鼓励您探索可用检测并将其集成到您的安全策略中。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计