|
2016年,一个叫“影子经纪人”的黑客组织把NSA的武器库给掀了。里面有个叫EternalBlue的东西,后来被改造成WannaCry勒索病毒,一夜之间横扫150个国家。但那只是开胃菜。真正让安全圈后背发凉的是——这个武器库的入口,竟然是SSH。 SSH,Secure Shell,从1995年诞生到现在,一直是Linux服务器和网络设备的“万能钥匙”。程序员用它登录服务器,运维用它批量管理机器,云厂商靠它给客户开权限。它太基础了,基础到像空气一样没人注意。可恰恰是这个看似坚不可摧的加密协议,这些年漏洞一个接一个。 2018年,安全研究员发现一个叫“CVE-2018-15473”的用户枚举漏洞。攻击者不需要密码,只要反复发送特定格式的认证请求,就能判断目标服务器上有没有某个用户名。听起来不起眼?配合弱口令爆破,一台暴露在公网的SSH服务器,平均每小时被尝试登录几千次是常态。我亲眼见过一台测试机,开了SSH默认端口22,不到48小时,日志里就堆满了来自俄罗斯、巴西、越南的暴力破解记录。那感觉就像你住在闹市区,门锁还是老式弹子锁,每天夜里都有人拿铁丝捅你的锁眼。 更麻烦的是SSH协议的“信任链”设计。它支持密钥认证,管理员会把公钥分发到几百台服务器上。一旦某台机器被攻破,攻击者提取到私钥,就能顺着信任关系横向漫游,像拿着万能门禁卡在办公楼里一层层刷开所有房间。2019年,某大厂内部网络被入侵,溯源发现攻击者就是利用一个闲置了三年的SSH密钥,从测试环境跳到了生产环境。那个密钥,权限居然还是root。 还有个常被忽略的点:SSH的加密算法老化问题。老版本支持的都是SHA-1、RC4这些上世纪产物,早被证明有碰撞攻击和密钥恢复风险。可大量设备为了兼容老旧客户端,至今还开着这些弱算法。就像你家装了防盗门,却为了照顾老丈人习惯,把门锁换成了挂锁。 最讽刺的是,很多人以为SSH漏洞是技术问题,其实更多是运维懒惰。默认端口不换、密码三个月不更新、密钥从不轮换、禁用了root登录却用root跑服务——这些“人祸”比协议本身的缺陷致命得多。我见过一家公司的服务器,SSH配置里直接写着PermitRootLogin yes,密码是admin123。攻破它需要什么高级漏洞?不需要,只需要一个扫描器。 说白了,SSH的漏洞分两层:一层在代码里,一层在管理员的脑子里。前者靠补丁能修,后者只能靠一次次被黑之后长记性。可现实是,很多团队连第一步都没做——全球至今还有超过200万台设备暴露着SSH服务,其中相当一部分跑着十年前的老版本。 别指望SSH会被替代。它太根深蒂固了,就像胶卷时代的柯达,哪怕数码相机来了,还有一堆老摄影师坚持用。我们能做的,是把它当回事。换掉默认端口、关掉密码登录只用密钥、定期轮换、加fail2ban防爆破、监控登录日志——这些土办法,比任何“下一代安全产品”都管用。毕竟,门锁防的不是万能钥匙,是懒得换锁的人。 |