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

OpenSSH 出严重 Bug 了

  •  1
     
  •   so898 ·
    so898 · Jan 15, 2016 · 8977 views
    This topic created in 3796 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
        1
    kn007  
       Jan 15, 2016
    https://kn007.net/topics/wechat-official-account/

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

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

    Since version 5.4, the OpenSSH client supports an undocumented feature called roaming
    msg7086
        3
    msg7086  
       Jan 15, 2016
    @kn007 把 service sshd restart 去掉吧,免得误导人。
    silverfox
        4
    silverfox  
       Jan 15, 2016   ❤️ 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
        5
    kn007  
       Jan 15, 2016
    @msg7086 改了设置要重启啊,改成 reload
    SharkIng
        6
    SharkIng  
       Jan 15, 2016
    所以收到影响的是本地的 SSH 而不是远程的 SSHD 是么?
    azuis
        7
    azuis  
       Jan 15, 2016
    @kn007 这个是客户端 ssh 的 bug 为什么要重启 sshd ?
    clino
        8
    clino  
       Jan 15, 2016
    到底会有什么后果?
    貌似会被恶意的主机利用获取客户端的信息哈?
    msg7086
        9
    msg7086  
       Jan 15, 2016
    @kn007 我说不要误导人,其实我的意思是你被误导了。
    imlonghao
        10
    imlonghao  
       Jan 15, 2016
    @kn007 service sshd reload 是不需要的,你说改了配置要重启,其实是我们改的只是 ssh_config 而不是 sshd_config 所以没有必要
    kn007
        11
    kn007  
       Jan 15, 2016
    @imlonghao
    @msg7086
    @azuis
    原来如此,这是我的一个习惯。

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

    感谢指正
    silverfox
        12
    silverfox  
       Jan 15, 2016   ❤️ 2
    @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
        13
    loveminds  
       Jan 15, 2016
    这是给本地客户端用的吧,而不是服务器
    Tinet
        14
    Tinet  
       Jan 15, 2016
    @silverfox Roaming not allowed by server ,如果服务器端不支持这个特性才受影响?确定没写反?
    ryd994
        15
    ryd994  
       Jan 15, 2016   ❤️ 3
    这个漏洞不能获取 ssh-agent 的私钥,不能用于非 openssh 客户端(比如 putty ),,要先攻陷一台服务器或者让用户登录恶意服务器(中间人没用),还只能获取加密过的私钥,所以其实没那么严重。
    这个 workaround 是用在客户端上的,也就是说是用来 patch 你自己电脑而不是服务器用的

    我从最近全面转向 Yubikey ,自己的服务器用 OTP 登录,别人的服务器用智能卡公钥登录。无论哪种情况,都免疫这种攻击,因为内存里从来就没有私钥。
    ryd994
        16
    ryd994  
       Jan 15, 2016
    windows 上都用 putty
    linux 上没几个人高兴一直输密码,大多是用 agent 的
    如果你私钥不加密码那时你自己活该
    likuku
        17
    likuku  
       Jan 15, 2016
    刚 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
        18
    Braid  
       Jan 15, 2016   ❤️ 1
    @silverfox Mac OS X 下的修补方案是: echo 'Host *\nUseRoaming no' >> /etc/ssh_config

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

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

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