凌晨三点,端口漏洞某电商平台的端口漏洞数据库管理员被手机震醒。告警短信显示:3306端口正被高频扫描,端口漏洞每秒超过两百次连接尝试。端口漏洞他睡眼惺忪地打开堡垒机,端口漏洞发现攻击源来自十七个国家的端口漏洞IP段——典型的分布式爆破。运维手册上写着“修改默认端口”,端口漏洞可这套系统三年前上线时,端口漏洞开发图省事,端口漏洞把MySQL的端口漏洞3306原样留着了。
端口这东西,端口漏洞像极了公寓楼的端口漏洞房门。21号门贴着FTP的端口漏洞旧标签,22号门是端口漏洞SSH的专用通道,80和443则永远敞着给HTTP和HTTPS。端口漏洞黑客根本不需要撬锁,他们只是挨个儿敲门,听哪扇门里有回应。Nmap扫一遍全开端口,比翻通讯录还方便。
上个月我帮朋友排查一台被入侵的Linux服务器。日志显示,攻击者从6379端口进了Redis,利用未授权访问写入了crontab定时任务。整个过程干净利落,前后不过四分钟。朋友很委屈:“我密码设得够复杂了呀。”可问题根本不在密码——Redis默认只监听本机,他为了图省事,把bind 127.0.0.1改成了0.0.0.0,等于把钥匙插在锁孔里,还挂了个“欢迎光临”的牌子。
端口漏洞的本质,往往不是技术缺陷,而是配置懒惰。开发环境里开着调试端口忘了关,测试用的Memcached暴露在公网,运维离职时没撤销防火墙规则——这些才是常态。真正的0day漏洞反而罕见,大多数入侵靠的是“开着门没人管”。
有个老段子:某银行做渗透测试,安全工程师从DMZ区一路畅通无阻,最后在内网数据库服务器的1433端口前停下来。不是攻不破,而是他看见服务器标签上贴着“此端口已加固,请勿重复测试”。后来查证,那台机器确实补了所有已知漏洞,但开放了1433给一个早已废弃的报表系统。业务部门说“还在用”,运维部门说“不知道”,安全部门说“管不了”。
你看,端口像血管,总得保持通畅才能供血。可堵不如疏,疏不如防。真正的解法从来不是关掉所有端口——那等于把服务器变成砖头。而是搞清楚每个端口为什么开着,谁在用,用了多久,不用就关。我见过最极端的案例,一家创业公司把所有服务都塞进80端口,用路径区分API和Web,安全倒是省心了,可每次排查故障都像在垃圾堆里找针。
写这篇文章时,我随手扫了下自家路由器:UPnP服务开着,端口映射表里有三条规则,其中一条指向一台2016年就停用的网络摄像头。你猜怎么着?那台摄像头还连着Wi-Fi,固件漏洞在Exploit-DB上挂了四年,下载量破万。我拔掉电源,顺手把UPnP关了。
端口漏洞从来不挑目标。它就像你家门缝里塞进来的广告单——有人当废纸扔掉,有人捡起来照着上面的电话打过去。区别在于,后者可能损失几万块,前者可能连服务器都丢了。