当前位置: 代码网 > it编程>前端脚本>Golang > node-exporter被检测出来pprof调试信息泄露漏洞问题

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

2024年05月26日 Golang 我要评论
说在前面惯例开篇吐槽,有些仔仔习惯搞点自研的安全扫描工具,然后加点diy元素,他也不管扫的准不准,就要给你报个高中危的漏洞,然后就要去修复,这次遇到个其他的就是node-exporter默认引入了pp

说在前面

惯例开篇吐槽,有些仔仔习惯搞点自研的安全扫描工具,然后加点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程序也可以这样进行操作。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com