当前位置: 首页 > news >正文

【漏洞修复】node-exporter被检测出来pprof调试信息泄露漏洞

node-exporter被检测出来pprof调试信息泄露漏洞

  • 说在前面
  • 解决方法
  • 结语

说在前面

惯例开篇吐槽,有些二五仔习惯搞点自研的安全扫描工具,然后加点DIY元素,他也不管扫的准不准,就要给你报个高中危的漏洞,然后就要去修复,这次遇到个其他的就是node-exporter默认引入了pprof做一些性能指标的采集,然后二五仔的漏洞扫描工具就给你扫出来这么一条奇葩漏洞:

在这里插入图片描述
先不说处理方法,去github看了一圈,确实有人提了issue:

在这里插入图片描述
看到是中文我就大概知道这些二五仔可能是从同一个货源采购的安全扫描工具,对于这个问题官方在另一个issue中提了一下:

node-exporter[issues]-1911

在这里插入图片描述
大概意思是开发者并没有发现pprof会泄漏啥信息,issue提出者使用的是gosec工具做的静态安全扫描,可能产生很多编译期间的误报,然后社区达成一致的结论是和prometheus社区保持一致,转而使用codeql工具。

在这里插入图片描述

解决方法

但是为了能过所谓的安全检查还是要处理这个事情,处理之前,打开http://{node-exporter-ip}:{port}/debug/pprof的访问链接会出现这样的内容;

在这里插入图片描述

原因也很简单,就是因为在node-exporter.go中引用了pprof包,我们要做的就是把引用删除,重新编译:

import ("fmt"stdlog "log""net/http"_ "net/http/pprof" // 删除这一行"os""os/user""runtime""sort""github.com/prometheus/common/promlog""github.com/prometheus/common/promlog/flag""github.com/go-kit/log""github.com/go-kit/log/level""github.com/prometheus/client_golang/prometheus"promcollectors "github.com/prometheus/client_golang/prometheus/collectors""github.com/prometheus/client_golang/prometheus/promhttp""github.com/prometheus/common/version""github.com/prometheus/exporter-toolkit/web""github.com/prometheus/exporter-toolkit/web/kingpinflag""github.com/prometheus/node_exporter/collector"kingpin "gopkg.in/alecthomas/kingpin.v2"
)

在这里插入图片描述
把二进制包替换掉原来的,然后重启一下,再访问/debug/pprof就会直接跳到Metrics主页了:

在这里插入图片描述

结语

这种操作就是关闭了pprof性能指标的采集,适用于大部分版本的node-exporter,其他类似的go程序也可以这样进行操作。

http://www.lryc.cn/news/92635.html

相关文章:

  • 在linux 上安装 NFS服务器软件
  • 网卡中的Ring buffer -- 解决 rx_resource_errors 丢包
  • 六月九号补题日记:Codeforces Round 877 (Div. 2)
  • python基础选择题,高中适用
  • Linux 面试题-(腾讯,百度,美团,滴滴)
  • DDD--战略设计步骤
  • Web Scoket简述
  • “Docker 技术在企业中的应用及挑战解决方案“
  • vue中开发包、生产包、全局包的区别以及安装语法
  • list的模拟实现
  • ChatGLM简介和SSE聊天接口测试效果
  • darknet yolo标注、训练详细说明
  • chatgpt赋能python:Python如何产生随机整数?
  • 大话Stable-Diffusion-Webui-客制化主题(四)
  • Excel函数VLOOKUP常用方法
  • systemV的工作原理+原理代码
  • Kubeflow--TFJob实现机制学习
  • 百度出品,Nature重磅 -- 优化的mRNA设计算法可改善mRNA的稳定性和免疫原性
  • CKA 01_docker部署Kubernetes 部署docker 使用kubeadm引导集群 安装Pod网络
  • Redis的使用规范小建议
  • 操作受限的线性表——栈
  • C++基类指针或引用指向或引用派生类对象(实现动态多态四种手段)父类指针访问子类成员变量(需要dynamic_cast)
  • WTM框架运行报错0308010C:digital envelope routines::unsupported
  • (二)CSharp-索引器
  • 配合AI刷leetcode 实现1170
  • English Learning - L3 作业打卡 Lesson5 Day36 2023.6.9 周五
  • 前端框架笔记
  • 详细设计文档
  • Java011——Java数据类型转换(基本数据类型)
  • mybatis-plus用法(二)