防御任意SSH远程代码执行漏洞

admin 2024年7月2日15:29:42评论9 views字数 2870阅读9分34秒阅读模式

防御任意SSH远程代码执行漏洞

近期,OpenSSH服务器(sshd)中发现了一个严重的远程代码执行漏洞(CVE-2024-6387),被称为"regreSSHion"。这个漏洞影响了大量互联网上的SSH服务器,可能导致未经授权的远程攻击者以root权限执行任意代码。在这种背景下,spiped(开源)作为一个安全管道守护进程,为我们提供了一种额外的防御层,可以有效地缓解此类SSH漏洞的风险。

spiped的工作原理:spiped通过在SSH服务之前添加一层加密和认证,为SSH连接提供了额外的保护。它使用预共享的密钥来加密通信,这意味着即使攻击者能够利用SSH服务器的漏洞,他们仍然需要突破spiped的加密层。

使用spiped保护SSH的步骤:

  1. 安装spiped:在Ubuntu或Debian系统上,可以使用 sudo apt install spiped 安装。
  2. 生成密钥:

    sudo dd if=/dev/urandom bs=32 count=1 of=/etc/ssh/spiped.key
    sudo chmod 600 /etc/ssh/spiped.key

  3. 配置spiped服务:创建一个systemd服务文件 /etc/systemd/system/spiped-ssh.service

    Copy

    [Unit]
    Description=Spiped for SSH
    After=network.target

    [Service]
    ExecStart=/usr/bin/spiped -d -s '[0.0.0.0]:8022' -t '[127.0.0.1]:22' -k /etc/ssh/spiped.key
    Restart=always

    [Install]
    WantedBy=multi-user.target

  4. 启动spiped服务:

    Copy

    sudo systemctl enable spiped-ssh.service
    sudo systemctl start spiped-ssh.service

  5. 配置防火墙:阻止直接访问SSH端口(22),只允许通过spiped端口(8022)访问:

    Copy

    sudo ufw allow 8022/tcp
    sudo ufw deny 22/tcp
    sudo ufw reload

  6. 客户端配置:在客户端的 ~/.ssh/config 中添加:

    Copy

    Host your_server
    ProxyCommand spipe -t %h:8022 -k ~/.ssh/spiped_your_server_key

通过这种配置,即使SSH服务器存在漏洞,攻击者也无法直接利用它,因为所有的连接都需要先通过spiped的加密层。这大大提高了系统的安全性。

spiped的优势:

  1. 额外的加密层:即使SSH本身存在漏洞,攻击者也需要先突破spiped的加密。
  2. 灵活性:可以轻松地在不同的服务器之间移植和部署。
  3. 简单性:相比复杂的VPN解决方案,spiped更加轻量和易于配置。
  4. 与现有系统兼容:不需要修改SSH服务器的配置。

结论:在面对如CVE-2024-6387这样的严重SSH漏洞时,spiped提供了一种简单而有效的额外防御手段。通过在SSH服务前添加这一层保护,组织可以显著降低被远程攻击的风险。然而,需要注意的是,spiped应该被视为深度防御策略的一部分,而不是唯一的安全措施。定期更新系统、应用安全补丁、实施强密码策略等基本安全实践仍然是必不可少的。

通过结合使用spiped和其他安全最佳实践,我们可以大大提高SSH服务器的安全性,为敏感的远程访问提供更强大的保护。

附录A有关OpenSSH"regreSSHion"漏洞(CVE-2024-6387)的主要信息:1. 漏洞概述:   - 这是OpenSSH服务器(sshd)中的一个远程未经身份验证的代码执行(RCE)漏洞。   - 它是一个信号处理器竞争条件,允许在基于glibcLinux系统上以root权限执行远程代码。   - 这个漏洞影响了sshd的默认配置。2. 影响范围:   - 超过1400万个可能易受攻击的OpenSSH服务器实例暴露在互联网上。   - 约70万个外部面向互联网的实例易受攻击,占全球客户基础中所有面向互联网的OpenSSH实例的31%。3. 受影响的版本:   - 4.4p1之前的版本(除非修补了CVE-2006-5051CVE-2008-4109)。   - 8.5p1到9.8p1之间的版本(不包括9.8p1)。   - 4.4p1到8.5p1之间的版本不受影响。4. 漏洞的历史:   - 这是2006年报告的CVE-2006-5051漏洞的回归。   - 该回归是在2020年10月(OpenSSH 8.5p1)引入的。5. 潜在影响:   - 可能导致完全的系统入侵,允许攻击者以最高权限执行任意代码。   - 可能导致数据泄露、恶意软件安装、安全机制绕过等严重后果。6. 缓解措施:   - 尽快应用可用的OpenSSH补丁。   - 限制SSH访问,加强访问控制。   - 实施网络分段和入侵检测系统。7. 其他注意事项:   - OpenBSD系统不受此漏洞影响。   - 虽然漏洞利用具有挑战性,但深度学习的进步可能会增加成功利用的可能性。
附录B:OpenSSH "regreSSHion"漏洞(CVE-2024-6387)的具体利用方法解读:1. 攻击原理:   - 利用SIGALRM信号中断PAM(可插拔认证模块)相关函数的调用。   - 使PAM的结构处于不一致状态。   - 在SIGALRM处理程序中利用这种不一致状态。2. 攻击难度:   - 平均需要约10,000次尝试才能成功利用这个竞争条件。   - 在特定配置下(MaxStartups=10,LoginGraceTime=120秒),平均需要1-2天才能获得远程root shell。3. 针对Debian 12.5.0(OpenSSH 9.2p1)的具体攻击:   - 使用SIGALRM中断malloc()调用(在sshd的公钥解析代码中)。   - 使堆处于不一致状态。   - 在SIGALRM处理程序中(具体在syslog()内)利用这种不一致状态。4. Debian版本的攻击效率:   - 平均需要约10,000次尝试。   - 在特定配置下(MaxStartups=100,LoginGraceTime=120秒),约需3-4小时。   - 由于ASLR(地址空间布局随机化),最终获得远程root shell平均需要6-8小时。5. 研究状态:   - 目前仅针对虚拟机环境,未在物理服务器上测试。   - 测试环境网络链路相对稳定(约10ms数据包抖动)。   - 研究人员认为攻击方法还有很大改进空间。   - 正在开发针对amd64架构的漏洞利用,但难度更大。需要强调的是,这些信息描述了高度技术性的攻击方法,仅供安全研究和防御目的使用。任何未经授权的实际攻击行为都是非法和不道德的。组织应该尽快应用安全补丁来防御这种漏洞。

参考资料:

https://www.daemonology.net/blog/2012-08-30-protecting-sshd-using-spiped.html

https://github.com/Tarsnap/spiped

 

原文始发于微信公众号(天御攻防实验室):防御任意SSH远程代码执行漏洞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月2日15:29:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   防御任意SSH远程代码执行漏洞https://cn-sec.com/archives/2909843.html

发表评论

匿名网友 填写信息