简单认证和安全层(SASL)是因特网协议中使用的认证层。SASL不是一个协议,而是一个框架,它为应用程序和共享库的开发人员提供了身份验证、数据完整性检查和加密的机制。

在这个框架和它的一些插件中,有几个已知的漏洞,我们想让您知道。虽然已经发布了补丁,但并不是每个人都实现了它们。

我为什么要知道SASL?

大多数服务器管理员会从这类错误消息或报告中识别出首字母缩写:

" SASL LOGIN authentication failed: authentication failure "

通常消息将包含关于故障的更多细节,这取决于您正在使用的特定软件和插件。虽然收到这样的信息本身并不是警报的原因,但如果你反复看到它,并且来自相同的IP地址,那么就有理由进一步调查。可能有人正试图访问您的服务器,并计划将其用作垃圾邮件箱。他们可能正在寻找一种方法,利用您的服务器和资源发送垃圾邮件活动。

针对暴力破解攻击的对策

SASL攻击通常被证明是蛮力攻击,这意味着一个自动脚本或机器人会一次又一次地尝试登录到您服务器上的现有电子邮件帐户,并尝试多种凭证组合来查找有效的用户名和密码对。值得庆幸的是,您可以对这些攻击采取一些对策。

  • 如果您可以选择让服务器侦听不同的端口,那么这样做可能会降低您成为新攻击目标的可能性。
  • 如果SASL消息一直来自相同的IP,那么在您的防火墙中阻止该IP。
  • 如果攻击者不断从不同的ip攻击你,有软件解决方案使用机器学习自动阻止任何新的攻击者。这种解决方案需要注意的一点是:对误报保持警惕,这样就不会将合法用户(如远程员工)拒之门外。

如果你看到了一些这样的攻击,没有理由感到孤立。有威胁的演员它不断地在互联网上搜索侦听端口25的新服务器。

SASL框架

SASL是用于添加身份验证支持的应用程序协议(如SMTP或IMAP)的框架。它检查用户是否具有以他们请求的方式使用服务器的适当权限。它还提供了一个数据完整性检查和加密的框架。

为了更好地理解框架的实际工作方式,以及漏洞在过程中的哪些地方造成了影响,我们想给您提供一些关于服务器和客户端之间信息流的背景信息。

SASL的基本架构如下图所示:

sasl架构

客户机和服务器应用程序通过SASL API调用SASL库(或libsasl)的本地副本。然后,libsasl通过SASL服务提供程序接口(SPI)与SASL机制进行通信。

下图显示了SASL生命周期中的步骤。客户端操作显示在左边,服务器操作显示在右边。中间的箭头显示客户端和服务器之间通过外部连接的交互。

sasl沟通流程图

Memcached的脆弱性

Memcached是一个实现高性能缓存服务器的软件包,用于在RAM中存储从数据库和API调用获得的数据块。这有助于加速动态web应用程序,使其非常适合大型网站和大数据项目。

2016年,思科Talos的安全研究人员发现了三个远程代码执行漏洞。所有这些缺陷都影响了memcached用于存储和检索数据的二进制协议其中的一个是在简单身份验证和安全层(SASL)实现中。这些漏洞在当年晚些时候被Memcached修复了,但是使用率很低。

鸽舍服务器漏洞

一个拒绝服务漏洞是在SASL发现的吗身份验证组件Dovecot服务器的。当脆弱的软件在处理SASL身份验证时处理精心设计的用户名时,远程攻击者可能会由于验证错误而导致脆弱的系统崩溃如果auth-policy组件已激活。易受攻击的版本是2.2.25到2.2.26.1,不幸的是其中一些仍在使用中。

另一个缺陷在Dovecot 2.0到2.2.33和2.3.0之间。SASL身份验证的中止会导致登录进程使用的Dovecot身份验证客户端出现内存泄漏。泄漏会对重用相同登录进程的高性能配置产生影响,并可能导致进程由于内存耗尽而崩溃。

最近的漏洞

在Apache Qpid Broker中发现了一个最近的漏洞。Qpid代理和Qpid客户端都使用Cyrus SASL库,这是一个功能齐全的身份验证框架,提供了许多配置选项。在Apache Qpid Broker-J中,传入AMQP连接的身份验证是由称为“身份验证提供者”的特殊实体执行的。每个身份验证提供者都可以支持几种SASL机制,这些机制是作为SASL协商过程的一部分提供给连接客户机的。

被发现的漏洞是拒绝服务漏洞,当使用PLAIN或XOAUTH2 SASL机制时,可以在Apache Qpid Broker-J 7.0.0中对AMQP协议0-8、0-9、0-91和0-10的连接进行身份验证的功能中找到它。该漏洞允许未经身份验证的攻击者使Broker实例崩溃。

更新你的软件

正如您所看到的,有相当多的这些漏洞仍然活跃,我甚至没有触及旧的。事实上,旧的漏洞比新漏洞多得多,恐怕并不是所有的漏洞都得到了修补。

所以我们不能说太多,我们也不会停止告诉你:总是确保你正在使用的软件是最新的和打过补丁的版本。当谈到面向internet的服务器时,这一点尤其正确,如果它们的工作之一是确保您的资源的安全和安全,这一点绝对是至关重要的。SASL是一种重要的身份验证机制,特别是在涉及许多电子邮件服务器的情况下。

保持安全,大家好!

这篇文章中的数字是由甲骨文