你自己的弱点比别人更平等
Posted: Tue Jan 28, 2025 4:34 am
谁不知道呢?一个平常的周一早晨。你起床,开车去办公室,给自己泡杯咖啡,同时破解一个门户。不?不正常吗?好吧,那我们就从更远的地方开始吧。
如今,安全起着至关重要的作用。这一点大家现在应该都清楚了。因此,项目,特别是软件开发领域的项目,应该进行安全测试。首先是提高意识和培训开发人员,建立 SecDevOps 流程,最后在发布前进行广泛的渗透测试。为了遵守这一点,同事要求我使用所谓的渗透测试来检查门户的安全性。它应该是一个大客户的门户,在后端使用 Keycloak 进行身份和访问管理 (IAM)。渗透测试应该持续大约一周。
幸运的是,测试发现了一些安全漏洞。然而,有一个特别引人注目。安全漏洞使用所谓的常见弱点枚举 (CWE) 进行分类,相应的漏洞来自“CWE-208 可观察的时序差异”类别。该漏洞也可以归类为“CWE-640 忘记密码的弱密码恢复机制”。这意味着可以从响应时间得出有关内部流程的结论。在这个明确的案例中,它是关于密码恢复的过程。原则上,相应功能的设计方式 高中生邮寄名单 应使您不会收到任何有关您要重置密码的用户访问权限是否存在的信息。例如,这可能意味着每次输入访问 ID 时,您都会收到一条消息,表明已发送恢复电子邮件 - 无论访问是否存在。这也在门户中实施。然而,我很快注意到这个过程有时需要更长的时间。有了这种洞察力,我能够快速证明,当用户帐户存在时,最终电子邮件确认所需的时间大约是用户帐户的十倍。 “脚本小子”可能很难注意到这一点,但经验丰富的攻击者认为这是快速获取现有用户名或电子邮件地址的机会。在与门户开发人员讨论该漏洞后,很快就发现这个问题是 Keycloak 的问题,而不是门户代码中的问题。
那么攻击者如何利用这个漏洞呢?
要回答这个问题,应考虑以下几点。
1.Keycloak被很多公司使用
Keycloak 的主要用途是在企业部门。通常,公司都有自己的 Keycloak 实例,仅用于其员工和/或客户。
2、公司员工身份容易识别
如今,LinkedIn、Xing 或 Facebook 等社交媒体可以很容易地识别某些公司的员工。查找有关公司员工或客户的个人信息也很容易,因为这些信息通常是由人们自愿共享和分发的。这可以是爱好、政治观点、家庭成员、朋友和熟人或某些活动等信息。
3. 识别公司的客户
识别公司的客户有点困难,但这并非不可能。如果上述客户不自愿发布显示其与公司关系的信息,则上述安全漏洞可能会有所帮助。在互联网上很容易找到非常大的数据库和电子邮件地址列表。这些通常来自较早的黑客攻击或其他泄密事件。有了这样的列表,现在可以对密码恢复功能进行简单的枚举攻击,以便利用时间差异来识别哪些电子邮件地址可以访问相应的 Keycloak 实例。
如今,安全起着至关重要的作用。这一点大家现在应该都清楚了。因此,项目,特别是软件开发领域的项目,应该进行安全测试。首先是提高意识和培训开发人员,建立 SecDevOps 流程,最后在发布前进行广泛的渗透测试。为了遵守这一点,同事要求我使用所谓的渗透测试来检查门户的安全性。它应该是一个大客户的门户,在后端使用 Keycloak 进行身份和访问管理 (IAM)。渗透测试应该持续大约一周。
幸运的是,测试发现了一些安全漏洞。然而,有一个特别引人注目。安全漏洞使用所谓的常见弱点枚举 (CWE) 进行分类,相应的漏洞来自“CWE-208 可观察的时序差异”类别。该漏洞也可以归类为“CWE-640 忘记密码的弱密码恢复机制”。这意味着可以从响应时间得出有关内部流程的结论。在这个明确的案例中,它是关于密码恢复的过程。原则上,相应功能的设计方式 高中生邮寄名单 应使您不会收到任何有关您要重置密码的用户访问权限是否存在的信息。例如,这可能意味着每次输入访问 ID 时,您都会收到一条消息,表明已发送恢复电子邮件 - 无论访问是否存在。这也在门户中实施。然而,我很快注意到这个过程有时需要更长的时间。有了这种洞察力,我能够快速证明,当用户帐户存在时,最终电子邮件确认所需的时间大约是用户帐户的十倍。 “脚本小子”可能很难注意到这一点,但经验丰富的攻击者认为这是快速获取现有用户名或电子邮件地址的机会。在与门户开发人员讨论该漏洞后,很快就发现这个问题是 Keycloak 的问题,而不是门户代码中的问题。
那么攻击者如何利用这个漏洞呢?
要回答这个问题,应考虑以下几点。
1.Keycloak被很多公司使用
Keycloak 的主要用途是在企业部门。通常,公司都有自己的 Keycloak 实例,仅用于其员工和/或客户。
2、公司员工身份容易识别
如今,LinkedIn、Xing 或 Facebook 等社交媒体可以很容易地识别某些公司的员工。查找有关公司员工或客户的个人信息也很容易,因为这些信息通常是由人们自愿共享和分发的。这可以是爱好、政治观点、家庭成员、朋友和熟人或某些活动等信息。
3. 识别公司的客户
识别公司的客户有点困难,但这并非不可能。如果上述客户不自愿发布显示其与公司关系的信息,则上述安全漏洞可能会有所帮助。在互联网上很容易找到非常大的数据库和电子邮件地址列表。这些通常来自较早的黑客攻击或其他泄密事件。有了这样的列表,现在可以对密码恢复功能进行简单的枚举攻击,以便利用时间差异来识别哪些电子邮件地址可以访问相应的 Keycloak 实例。