惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
S
Secure Thoughts
博客园 - 【当耐特】
Know Your Adversary
Know Your Adversary
NISL@THU
NISL@THU
博客园 - 司徒正美
Last Week in AI
Last Week in AI
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
B
Blog
The GitHub Blog
The GitHub Blog
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
Martin Fowler
Martin Fowler
博客园 - 叶小钗
Security Archives - TechRepublic
Security Archives - TechRepublic
T
Tenable Blog
S
Securelist
博客园 - 三生石上(FineUI控件)
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
T
Threat Research - Cisco Blogs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
F
Full Disclosure
Cloudbric
Cloudbric
The Cloudflare Blog
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
H
Hacker News: Front Page
腾讯CDC
L
Lohrmann on Cybersecurity
C
CERT Recently Published Vulnerability Notes
V2EX - 技术
V2EX - 技术
GbyAI
GbyAI
TaoSecurity Blog
TaoSecurity Blog
I
Intezer
The Last Watchdog
The Last Watchdog
G
GRAHAM CLULEY
Google Online Security Blog
Google Online Security Blog
T
The Blog of Author Tim Ferriss

Ming Blog

OpenClaw安全实战系列(四):幽灵连通性—揭秘CVE-2026-32038沙箱网络隔离绕过与靶标实战 OpenClaw安全实战系列(一):Agent Skill 供应链投毒路径重现与靶标建设 OpenClaw近期生态安全事件解读:从RCE漏洞到Skill供应链投毒分析 OpenClaw安全实战系列(二):白名单也防不住?复盘 CVE-2026-28363 授权绕过全过程 OpenClaw安全实战系列(三):利用网关劫持实现 OpenClaw 控制端 1-Click RCE (CVE-2026-25253) 从现网到靶场:2025云上AI安全事件深度复盘 提示词注入:近期大模型安全漏洞案例剖析 大模型生态的数据泄露危机:从向量数据库到AI助手的“失控链” 2025 Verizon DBIR解读 | 供应链攻击30%+勒索软件44%:边缘设备漏洞与AI滥用催生新风险 开源大模型推理软件的攻击面分析:云上LLM数据泄露风险研究系列(四) LLM数据泄露风险研究系列(三):基于LLM应用的攻击面分析 从环境构建到漏洞利用:如何用Metarget和Coogo复现K8s IngressNightmare攻击链 网盘数据泄露探索:从访问控制突破到敏感信息发现 从数据库沦陷到供应链投毒:大模型安全危机背后的“隐形战场 2024 Verizon DBIR解读 | 数据泄露转向连接云的第三方软件供应链 洞见RSA2024 | Kubernetes攻击与防御技术综述 RSAC 2024创新沙盒|Aembit:面向IAM的云工作负载访问控制平台 那些年陪自己走过的歌声 客户端文件直传对象存储的便捷与安全性探究 无题 日常记录 Service Mesh未来发展趋势浅析 云攻防课程系列:云计算基础与整体安全 RSA创新沙盒盘点Dazz — 面向SaaS化的云安全漏洞缓解平台 云原生API安全:背景、态势与风险防护 OpenTelemetry Operator for Kubernetes实践 利用Serverless函数造成的DoS攻击分析 Goodbye 2022, what up 2023 如何正确地使用CI/CD工具 红岩子游 云原生服务风险测绘分析【五】:Etcd Neosec — 面向API安全的SaaS化防护方案 巨浪 云原生服务风险测绘分析【三】:Kong和Apache APISIX 云原生服务风险测绘分析【二】:Harbor 平衡 云原生服务风险测绘分析【一】:Docker、Kubernetes 读书笔记 猫咪 one little candle 【云原生应用安全】云原生应用安全防护思考(二) 【云原生应用安全】云原生应用安全防护思考(一) 【云原生应用安全】云原生应用安全风险思考 RSA 创新沙盒盘点| WABBI — 面向应用全生命周期的安全防护方案 新年寄语 陀螺 主流开源Serverless平台OpenFaaS安全性研究 电影《Tschick》观后感 电影《Jojo Rabbit》观后感 Serverless安全研究 — Serverless安全防护 Serverless安全研究 — Serverless安全风险 夜晚随笔 云原生攻防研究 — 针对AWS Lambda的运行时攻击 Serverless安全研究 — Serverless概述 Music Corner 怀念2017的新西兰之旅 好书推荐 — Kubernetes安全分析 【云原生攻防研究】Istio访问授权再曝高危漏洞 RSA 创新沙盒盘点| AppOmni—面向SaaS数据泄漏的持续性监控和告警防护 主流云原生微服务API网关成熟度与安全功能对比分析 浦明的博客 浦明的博客 浦明的博客
云原生服务风险测绘分析【四】:Prometheus
Ming Blog · 2022-05-09 · via Ming Blog

本文转自绿盟科技研究通讯公众号云原生服务风险测绘分析(四):Prometheus

专题:【云原生服务风险测绘分析】

往期回顾:

云原生服务风险测绘分析(一):Docker和Kubernetes

云原生服务风险测绘分析(二):Harbor

云原生服务风险测绘分析(三):Kong和Apache APISIX

一. 概述

Prometheus是一套开源的监控、告警、时间序列数据库的组合工具。与Kubernetes由Google内部Borg系统演变而来相似,Prometheus由Google内部的Borgmon[6]监控系统演变而来,最初在2012年由前Google工程师Matt T. Proud于SoundCloud[5]进行研发使用并在短时间内迅速受到业界广泛认可,后于2015年初在GitHub上开源,目前已有42.2K的Star数和7.1的Fork数。其用户社区非常活跃,拥有将近700位贡献者,并在多数云原生组件中被集成。

2016年5月,Prometheus成为继Kubernetes之后第二个正式加入CNCF的项目,同年六月发布1.0版本,并与2018年8月顺利毕业。Prometheus现已被众多的企业、互联网公司和初创公司在其微服务业务环境下使用。

本篇为云原生服务测绘系列的第四篇,主要从资产发现、资产漏洞、资产脆弱性发现三个维度对国内暴露的Prometheus进行了测绘分析,最后笔者针对Prometheus提供了一些安全建议,希望各位读者通过阅读此文可对Prometheus服务风险暴露情况有更清晰的认识。

注:文中统计的测绘数据为近一个月的国内数据,相关技术仅供研究交流,请勿应用于未授权的渗透测试。

Kong是一个云原生,快速可扩展的分布式微服务抽象层(通常被称作API网关,API中间件),Kong于2015年被Mashape公司开源,其在Github上拥有31.6K的Star以及4.2K的Fork数量。Kong的核心价值主要体现在高性能和可扩展性上。扩展性上,Kong主要在Nginx的反向代理基础上,通过Lua实现了脚本化的扩展,同时所有管理功能都可通过RESTful API来实现。性能层面上,由于Kong内部使用了大量的缓存机制,从而很大程度上避免了阻塞式操作,使用性能上被广泛开发人员认可。

2.1 Kong资产暴露情况分析

借助测绘数据,我们可以了解到国内Prometheus资产地区和版本的分布情况,笔者也以这两个维度为各位读者进行介绍。

2.1.1 Prometheus资产地区分布

笔者从测绘数据中得到Prometheus相关资产共5908条数据,地区分布如图1所示(资产数较少的由于篇幅原因不在图中显示:

image
图1. Prometheus资产地区分布

以上Kong资产暴露的端口情况笔者进行了统计,如图2所示:

image
图2. Prometheus资产端口分布

由图1,图2我们可以得出如下信息:

  • 国内暴露的Prometheus资产信息中有约81%的数据来源于北京市、上海市、广东省、浙江省、香港特别行政区、江苏省,其中北京市暴露1403条数据位居第一

  • 国内暴露的Prometheus资产使用的端口主要分布在9090端口,9090为Prometheus Dashboard提供HTTP服务的默认端口,使用9090端口的资产数约占整体资产数的94%

2.1.2 Prometheus资产版本分布

借助测绘数据,笔者对国内暴露的Prometheus资产版本进行了分析,其分布情况如图3所示(资产版本数较少的由于篇幅原因不在图中显示):

image
图3. Prometheus资产版本分布

上图可以看出在统计的Prometheus资产中,24%的资产未获取到具体版本信息,剩余约76%资产中,绝大多数资产暴露版本分布在2.32.1、2.34.0、2.31.1、2.26.0、2.28.1、2.27.1、2.30.3之中。

2.2 Prometheus脆弱性风险和漏洞介绍

2.2.1 脆弱性风险介绍

Prometheus的2.24.0版本(2021.1.6发布,当前版本为2.35.0)之前,Prometheus未内置认证授权等安全机制,究其原因,笔者查看了官方Q&A文档[7],其中官方是这样解释的:

TLS and basic authentication is gradually being rolled out to the different components.Please follow the different releases and changelogs to know which components have already implemented it.

The components currently supporting TLS and authentication are:

  • Prometheus 2.24.0 and later

  • Node Exporter 1.0.0 and later

可以看出官方计划将TLS和Basic认证机制在不同的组件中实现,目前还在进行中,并给出了当前支持认证机制的具体版本范围,这也同时意味着在2.24.0及之前的版本中,只要用户对外暴露Prometheus的9090端口,那么任何人都可以对Prometheus Dashboard进行未授权访问。虽然Prometheus在2.24.0版本后针对Dashboard引入了TLS及Basic认证方式,但由于引入时间较晚,许多企业及组织已在云上部署了Prometheus,且未及时启用官方提供的认证机制,从而导致大量暴露在互联网Prometheus服务存在未授权访问风险。通过进一步挖掘,笔者发现这些Prometheus服务存在敏感数据泄露的风险,并将一些敏感的数据接口梳理如下:

  • /api/v1/status/config

​ 访问该接口将返回Prometheus服务相关的配置文件内容,文件格式为YAML,该文件内容包括Alertmanager组件(Prometheus告警组件)相关的配置、告警匹配规则、Prometheus任务配置、Prometheus监控的目标节点信息等,完整的内容可参考官方文档[4],示例配置文件如下图所示:

image
图4. Prometheus数据泄露接口返回内容1

值得注意的是,通过官方文档[4],笔者发现该接口返回的内容定义包含basic_auth配置项,通过此配置项Prometheus可访问到目标服务或监控服务,此配置项含有用户敏感信息,如下图所示[4]:

image
图5. Prometheus数据泄露接口参数定义

从以上信息我们可以看出若用户将目标服务或监控服务的认证信息写入配置文件,将会导致敏感数据泄露。

  • /api/v1/targets

访问该接口将返回Prometheus目标服务的当前状态,包括活动状态(activeTargets)、下线状态(DroppedTargets)等,示例如下图所示:

image
图6. Prometheus数据泄露接口返回内容2

我们还可以通过“/targets”接口看到目标服务状态的可视化UI,如下图所示:

image
图7. Prometheus数据泄露接口返回内容3
  • /api/v1/status/flags

访问该接口将返回Prometheus配置的flag值,如下所示:

image
图8. Prometheus 数据泄露接口返回内容4

其中,config.file参数提供用于存放Prometheus配置文件(该配置文件与/api/v1/status/config接口返回的配置文件信息一致)的完整目录,若配置文件存放在/home目录下,则可能导致系统用户名泄露。

此外,该接口返回的内容中还包含web.enable-admin-api参数,该参数代表用户是否可以使用其它Web Admin API的权限,默认值为false,如下所示:

image
图9. Prometheus 数据泄露接口返回内容5

根据官方文档[3],若用户将web.enable-admin-api项参数值设为true,则将额外开启一些管理API供操作者调用,这些管理API允许用户删除Prometheus所有已保存的监控指标以及关闭相应的监控功能,因而攻击者可针对未设置认证机制的Prometheus服务进行访问,并通过修改web.enable-admin-api项为false,直接关闭或删除Prometheus服务提供的指标,危害巨大。

  • /api/v1/status/buildinfo

访问该接口将返回Prometheus服务的构建信息,其中包括Prometheus版本、Go版本、构建日期等敏感信息,如下图所示:

image
图10. Prometheus 数据泄露接口返回内容6

2.2.2 漏洞介绍

Prometheus于2013年开源至今,已有约9年时间,在此期间一共曝出两个个漏洞[2],漏洞数量相对较少,从CVE编号信息我们可以看出漏洞披露时间分别在2019、2021年,根据CVSS2.0标准,两个漏洞均为中危漏洞。CVE-2021-29622漏洞类型为开放式重定向、CVE-2019-3826为XSS,其中CVE-2021-29662漏洞在市面上曝光度较大,笔者也针对这两个漏洞进行了信息汇总,其中包括公开暴露的PoC及ExP信息,如图11所示:

image
图11. Prometheus漏洞介绍

2.3 Prometheus资产脆弱性暴露情况分析

借助测绘数据,笔者从Prometheus漏洞维度,统计了现有暴露资产的漏洞分布情况,如图12所示:

image
图12. Prometheus漏洞介绍

可以看出,在国内互联网暴露的Prometheus资产中,有713个资产被曝出含有CVE-2021-29622漏洞(XSS), 从上图我们也可以看出命中CVE-2021-29622漏洞的资产数约占总资产数的12%,该漏洞是个重定向漏洞,虽然对业务自身运行无影响,但重定向漏洞可用来作钓鱼攻击,仍存在一定危害。CVE-2019-3826漏洞在互联网上并未发现有疑似暴露信息,从前面的Prometheus漏洞介绍,我们可以进一步了解这两个漏洞,篇幅原因此处不再赘述。

2.4 安全建议

  • 升级Prometheus版本为最新版本

  • Prometheus Dashboard使用认证机制,如Prometheus提供的Basic认证,使用TLS保证数据传输安全

  • 禁止将用户名密码等敏感信息以明文形式写入Prometheus的配置文件中

三.总结

Prometheus是CNCF第二个毕业的项目,也是除了Kubernetes之外被开发者普遍认为最火爆的项目,在其被大规模部署的同时,脆弱性配置及漏洞导致的风险也不容忽视,本文从测绘角度分析了国内暴露的Prometheus服务及其存在的风险,下一篇笔者将继续针对云原生环境下的其它组件进行相应的测绘风险分析,欢迎各位读者持续关注,若有任何问题欢迎提出,互相交流学习。

四.参考文献

[1] https://security.archlinux.org/CVE-2021-29622

[2] https://www.cvedetails.com/vulnerability-list/vendor_id-20905/product_id-61503/Prometheus-Prometheus.html

[3] https://prometheus.io/docs/prometheus/latest/querying/api/#tsdb-admin-apis

[4] https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config

[5] https://soundcloud.com/

[6] https://sre.google/sre-book/practical-alerting/

[7] https://prometheus.io/docs/introduction/faq/#why-dont-the-prometheus-server-components-support-tls-or-authentication-can-i-add-those