Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
so898
V2EX  ›  Linux

OpenSSH 出严重 Bug 了

  •  1
     
  •   so898 ·
    so898 · Jan 15, 2016 · 9404 views
    This topic created in 3948 days ago, the information mentioned may be changed or developed.
    做噩梦惊醒,本来说看看 HN 定定神,然后就看到了置顶的那个 OpenSSH Bug
    看了一圈讨论没搞清楚是个啥问题,但可以确定的是这货比较严重

    给自家几台服务器简单部署了 Workaround 之后倒床去……

    OpenSSH: client bug CVE-2016-0777 : http://undeadly.org/cgi?action=article&sid=20160114142733
    HN 讨论: https://news.ycombinator.com/item?id=10901588
    30 replies  •  2016-01-16 19:56:13 +08:00
    kn007
    kn007
    Jan 15, 2016
    1
    https://kn007.net/topics/wechat-official-account/

    PS. Fix OpenSSH Security Bug CVE-2016-0777(Only Redhat/CentOS 7 Affected).

    快 0 点的事情。。。
    kn007
    kn007
    Jan 15, 2016
    2
    貌似要 openssh 大于 5.4 版本才有。

    Since version 5.4, the OpenSSH client supports an undocumented feature called roaming
    msg7086
    msg7086
    Jan 15, 2016
    3
    @kn007 把 service sshd restart 去掉吧,免得误导人。
    silverfox
    silverfox
    Jan 15, 2016❤️4
    4
    这个 Bug 是对客户端 (ssh) 有影响,不是服务端 (sshd)。所以一般只需要检查本地和跳板机。

    ## 受影响版本
    5.4 至 7.1

    ## 验证
    ssh -v user@hostname 2>&1 > /dev/null | grep -i 'roaming'
    如输出有 debug1: Roaming not allowed by server 则受此影响,否则无需操作

    ## 修复
    echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config
    OS X 10.9 的路径是 /etc/ssh_config
    kn007
    kn007
    Jan 15, 2016
    5
    @msg7086 改了设置要重启啊,改成 reload
    SharkIng
    SharkIng
    Jan 15, 2016
    6
    所以收到影响的是本地的 SSH 而不是远程的 SSHD 是么?
    azuis
    azuis
    Jan 15, 2016
    7
    @kn007 这个是客户端 ssh 的 bug 为什么要重启 sshd ?
    clino
    clino
    Jan 15, 2016
    8
    到底会有什么后果?
    貌似会被恶意的主机利用获取客户端的信息哈?
    msg7086
    msg7086
    Jan 15, 2016
    9
    @kn007 我说不要误导人,其实我的意思是你被误导了。
    imlonghao
    imlonghao
    Jan 15, 2016
    10
    @kn007 service sshd reload 是不需要的,你说改了配置要重启,其实是我们改的只是 ssh_config 而不是 sshd_config 所以没有必要
    kn007
    kn007
    Jan 15, 2016
    11
    @imlonghao
    @msg7086
    @azuis
    原来如此,这是我的一个习惯。

    而且以为改了配置,要重启。

    感谢指正
    silverfox
    silverfox
    Jan 15, 2016❤️2
    12
    @clino 简单地说 OpenSSH 客户端 (ssh) 支持 Roaming 这个未在文档上注明的试验性功能,它是在与服务器连接异常中断时恢复连接用的。

    这个功能出了两个 BUG ,恶意主机(被入侵的主机)可以通过在服务端中断连接的方式诱导客户端从内存里泄露机密信息(私钥)给它。

    所以要在客户端里把这个功能临时禁用掉,等待新版本发布后修正。

    OpenSSH 服务端 (sshd) 不能支持客户端的这个功能 (-_-) ,所以验证的时候会提示“ Roaming not allowed by server ”。

    ## 参考
    http://security.stackexchange.com/questions/110639/how-exploitable-is-the-recent-useroaming-ssh-problem
    http://www.undeadly.org/cgi?action=article&sid=20160114142733
    loveminds
    loveminds
    Jan 15, 2016
    13
    这是给本地客户端用的吧,而不是服务器
    Tinet
    Tinet
    Jan 15, 2016
    14
    @silverfox Roaming not allowed by server ,如果服务器端不支持这个特性才受影响?确定没写反?
    ryd994
    ryd994
    Jan 15, 2016❤️3
    15
    这个漏洞不能获取 ssh-agent 的私钥,不能用于非 openssh 客户端(比如 putty ),,要先攻陷一台服务器或者让用户登录恶意服务器(中间人没用),还只能获取加密过的私钥,所以其实没那么严重。
    这个 workaround 是用在客户端上的,也就是说是用来 patch 你自己电脑而不是服务器用的

    我从最近全面转向 Yubikey ,自己的服务器用 OTP 登录,别人的服务器用智能卡公钥登录。无论哪种情况,都免疫这种攻击,因为内存里从来就没有私钥。
    ryd994
    ryd994
    Jan 15, 2016
    16
    windows 上都用 putty
    linux 上没几个人高兴一直输密码,大多是用 agent 的
    如果你私钥不加密码那时你自己活该
    likuku
    likuku
    Jan 15, 2016
    17
    刚 debian 的例行每日更新:

    The following packages will be upgraded:
    openssh-client openssh-server
    2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
    Need to get 1,364 kB of archives.
    After this operation, 0 B of additional disk space will be used.
    Do you want to continue [Y/n]? Y
    Get:1 http://security.debian.org/ wheezy/updates/main openssh-server amd64 1:6.0p1-4+deb7u3 [340 kB]
    Get:2 http://security.debian.org/ wheezy/updates/main openssh-client amd64 1:6.0p1-4+deb7u3 [1,024 kB]
    Braid
    Braid
    Jan 15, 2016❤️1
    18
    @silverfox Mac OS X 下的修补方案是: echo 'Host *\nUseRoaming no' >> /etc/ssh_config

    注意没有“-e ”!
    注意没有“-e ”!
    注意没有“-e ”!

    重要的话讲三遍~~~
    silverfox
    silverfox
    Jan 15, 2016❤️1
    19
    @Tinet 没写反,我们要禁用的是客户端的 Roaming 功能。

    “ Roaming not allowed by server ” 是客户端提示信息,说服务端不支持这个特性。
    如果禁用了这个功能,客户端就不会跟服务端协商说要用 Roaming ,自然就没有这个提示信息了。
    est
    est
    Jan 15, 2016❤️2
    20
    openssh 抄袭 mosh 还抄出了 bug 。
    SpicyCat
    SpicyCat
    Jan 15, 2016
    21
    为啥我在 man ssh_config 中没有找到 UseRoaming 这个选项
    abscon
    abscon
    Jan 15, 2016 via iPhone
    22
    @ryd994 putty 也可以不输入密码就登录
    ryd994
    ryd994
    Jan 15, 2016
    23
    @abscon 但是 putty 没有这个 roaming 功能,所以免疫。这个是 openssh-client 的问题
    @SpicyCat 就是因为没有,才有大问题。这是一个还没有完全实现的功能。很多人甚至不知道,却已经放入客户端发布(服务端不包相关代码)。还特么留了个溢出 bug
    so898
    so898
    OP
    Jan 15, 2016
    24
    @loveminds 线上的 Xen 主机还有分部在各个机房的实体机很多都需要通过先登录到特定的服务器,然后在继续 ssh 登录到其他机器的方法来操作的,是怕这个地方出问题了
    wych
    wych
    Jan 15, 2016
    25
    @ryd994 公网的 sshserver 做个 dns 劫持就能诱导拿到了。
    yeyeye
    yeyeye
    Jan 15, 2016 via Android
    26
    Bitvise Tunnelier 受影响吗 如果是客户端问题的话
    catlove
    catlove
    Jan 15, 2016
    27
    用 dropbear 的表示灰常蛋定~
    ryd994
    ryd994
    Jan 15, 2016 via Android
    28
    @wych 我上面说了,不能,除非服务器沦陷
    这个漏洞要断开已经建立的连接才能触发客户端 roaming
    而服务器签名不对的话,是无法建立 ssh 连接的
    guojing
    guojing
    Jan 15, 2016 via Android
    29
    这个 Mac OS X10.10 有影响吗?按照上面说的方法检测没发现问题,但是 openssh 版本在受影响范围
    873681136
    873681136
    Jan 16, 2016
    30
    看成 openssl 吓了一跳
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4812 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 07:49 · PVG 15:49 · LAX 23:49 · JFK 02:49
    ♥ Do have faith in what you're doing.