导语:简单认证和安全层(SASL)是网络协议中使用的认证层。SASL并不是一种协议,只是提供给应用和共享库的开发者一种认证、数据完整性校验和加密的机制的框架。在该框架和一些插件中,有很多需要注意的漏洞。

简单认证和安全层(SASL)是网络协议中使用的认证层。SASL并不是一种协议,只是提供给应用和共享库的开发者一种认证、数据完整性校验和加密的机制的框架。

在该框架和一些插件中,有很多需要注意的漏洞。虽然已经发布了一些补丁,但不是所有用户都应用了这些补丁。

为什么要了解SASL?

很多服务器管理员都回发现这样的错误消息提示:

SASL LOGIN authentication failed: authentication failure

即“SASL登陆认证失败:认证失败。”

根据使用的特定软件和插件,错误消息中一般都含有失败的具体细节。如果接收到这类信息并不需要预警,但如果重复接收到来自系统IP地址的消息,那就需要去做调查了。很有可能有攻击者正尝试访问你的服务器并计划将他用作垃圾箱。可能有攻击者想用你的服务器和资源来发送垃圾邮件。

应对暴力破解攻击的措施

SASL攻击可以转变成一种暴力破解攻击,比如可以使用自动化的脚本或僵尸主机来登陆服务器上已有的邮件账户,尝试通过不同的凭证组合找出有效的用户名和密码对。应对的措施有:

· 选择让服务器监听不同的端口,这样变成新攻击的目标的可能性会变小;

· 如果SASL消息一直来自相同的IP地址,通过防火墙拦截该IP地址;

· 如果攻击来自不同的IP地址,可以使用机器学习的软件解决方案来自动化拦截新的攻击。

SASL框架

SASL是一个增加了认证支持的应用协议框架,支持的协议有SMTP\IMAP等。SASL回检查用户是否有合适的权限来使用服务器,同时提供数据完整性校验和加密。

为了更好的理解框架的工作原理和漏洞,下面看一下服务器和客户端之间的信息流。

下面是基本的SASL架构:

 图片.png

SASL架构

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

下面是SASL生命周期中的步骤。客户端动作在左侧,服务器动作在右侧。箭头是客户端和服务器通过外部连接进行的交互。

 图片.png

SASL通信流图

漏洞

Memcached漏洞

Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。

2016年,Cisco Taols安全研究人员发现了三个远程代码执行漏洞。漏洞影响memcached保持和提取数据的二进制协议,其中一个就是SASL应用。虽然官方已经发布了漏洞补丁,但用户进行安全更新的速度并不理想。

Dovecot服务器漏洞

Dovecot服务器的SASL认证组件中发现一个DoS漏洞。当有漏洞的软件处理伪造的用户名进行SASL认证时,因为有效性验证错误会出现系统奔溃。有漏洞的版本包含2.2.25到2.2.26.1,这些有漏洞的版本目前还在使用中。

Dovecot 2.0 的2.2.33到2.3.0版本还存在另一个漏洞。SASL认证中止会导致登陆过程所使用的Dovecot认证客户端产生内存泄露。泄露会对高性能配置产生影响,因为高性能配置也使用了登陆过程,最终会由于内存耗尽导致进程奔溃。

其他漏洞

Apache Qpid Broker和Qpid客户端都使用全功能的认证框架——Cyrus SASL,该框架提供更多的配置选项。Apache Qpid Broker-J的入AMQP连接认证是通过Authentication Providers完成的。每个Authentication Provider支持多种SASL机制,以SASL协商过程的一部分提供给连接客户端。

研究人员在Apache Qpid Broker-J 7.0.0中AMQP协议的0-8, 0-9, 0-91, 0-10的连接认证中发现一个DoS漏洞。非认证的攻击者利用该漏洞可以使Broker实例奔溃。

更新软件

上面提到的许多漏洞目前仍然活跃。事实上,老的漏洞比新出现的漏洞更多,但许多漏洞并没有打补丁。因此,建议确保运行的软件是最新的版本。尤其是使用联网服务的服务器,更新软件对确保资源的安全来说至关重要。SASL是一个重要的认证机制,许多邮件服务器就使用了这种认证机制。

源链接

Hacking more

...