Kibana组件漏洞:一个被低估的组件入口去年某金融公司被勒索,攻击者绕过了WAF、漏洞IDS,组件最后是漏洞从Kibana的Timelion功能一路打进内网。这事没上新闻,组件但在安全圈传得挺开。漏洞Kibana,组件这个Elastic Stack里负责可视化的漏洞“仪表盘”,大多数人只当它是组件查询日志的工具,压根没想过它也能成为突破口。漏洞 漏洞出在CVE-2019-7609,组件一个老洞,漏洞但至今仍有大量暴露在公网的组件实例没打补丁。原理不复杂,漏洞Timelion的组件表达式解析器允许用户传入任意代码,配合原型链污染,能直接执行系统命令。攻击者只需要能访问到Kibana的5601端口,甚至不需要登录。构造一个特殊的请求,把恶意payload塞进`expression`参数,服务器就乖乖交出了shell。 我见过一个真实案例。某云厂商的客户,Kibana版本是7.6.2,恰好中招。攻击者拿到shell后,没有急着提权,而是先`cat`了一堆配置文件,把Elasticsearch的存储路径、索引权限摸了个清。然后横向移动,通过内网SSH密钥,跳到了另一台跑着MySQL的机器上。全程没触发任何告警。为什么?因为流量加密了,而且用的是正常的管理端口。 这暴露了一个更普遍的问题——安全团队往往盯着Web应用、API网关,却忽视了数据分析组件的暴露面。Kibana、Grafana、Jenkins这类工具,默认配置通常不设防,开发图省事,直接绑在0.0.0.0上。等出事才想起来,已经晚了。 另一个被忽略的细节是版本碎片化。Elastic官方每季度发安全公告,但企业升级节奏慢。我见过不少生产环境还在跑6.x甚至5.x的Kibana,这些老版本里,除了已知的RCE,还有SSRF、路径遍历、存储型XSS一堆毛病。XSS看似低危,但结合Kibana的权限模型,能窃取管理员的会话,进而修改仪表板、导出敏感数据。攻击链一长,危害就不止于“弹个窗”了。 修复思路其实不复杂。第一,别把Kibana直接暴露公网,用VPN或者反向代理加一层认证。第二,升级到最新版本,至少是7.17.x或8.x的长期支持版。第三,如果非要开外网访问,务必启用Elasticsearch的安全特性,给Kibana单独建个只读角色。最容易被忽略的是——定期检查Kibana的`.kibana`索引,那里存着用户保存的搜索、可视化对象,攻击者植入的恶意脚本往往藏在这些对象里,用常规的日志扫描根本发现不了。 那家金融公司后来复盘,发现漏洞存在了整整八个月。期间有三次安全扫描报告都提到了版本过旧,但运维觉得“不影响业务”,一直拖着。直到被勒索,数据被加密,才意识到一个可视化工具也能成为撬动整个网络的那根杠杆。 说白了,Kibana不是核心业务系统,但它像房子的后门——前门锁得再严,后门敞着,小偷照样进得来。别总盯着那些“高价值”目标,边缘组件往往更容易被攻破,因为没人认真管它们。 |
