vulhub与Prometheus集成:漏洞环境监控指标配置
【免费下载链接】vulhub 项目地址: https://gitcode.com/gh_mirrors/vul/vulhub
引言
在网络安全领域,及时发现和响应漏洞至关重要。vulhub作为一个开源的漏洞环境集合,为安全研究人员和开发人员提供了丰富的漏洞测试环境。而Prometheus作为一款强大的监控工具,可以帮助我们实时监控这些漏洞环境的运行状态。本文将详细介绍如何将vulhub与Prometheus集成,配置漏洞环境的监控指标。
Prometheus简介
Prometheus是一个开源的系统监控和警报工具包,最初由SoundCloud开发。它采用了时间序列数据模型,通过HTTP协议采集指标数据,并提供了灵活的查询语言和可视化界面。Prometheus的主要特点包括:
- 多维数据模型:通过键值对的方式标识时间序列数据
- 灵活的查询语言PromQL:可以对采集的指标数据进行复杂的查询和聚合操作
- 无依赖的分布式存储:每个服务器都是独立的,不需要分布式存储
- 基于HTTP的拉取方式:可以通过HTTP协议主动拉取指标数据
- 支持推送网关:用于采集瞬时任务的指标数据
- 多种可视化方式:支持Grafana等可视化工具
vulhub中Prometheus相关配置
在vulhub项目中,我们发现了一些与Prometheus相关的配置文件。例如,在apisix/CVE-2021-45232/dashboard.yml文件中,配置了Prometheus插件:
plugins: # plugin list (sorted in alphabetical order)
- api-breaker
- authz-keycloak
- basic-auth
- batch-requests
- consumer-restriction
- cors
# - dubbo-proxy
- echo
# - error-log-logger
# - example-plugin
- fault-injection
- grpc-transcode
- hmac-auth
- http-logger
- ip-restriction
- jwt-auth
- kafka-logger
- key-auth
- limit-conn
- limit-count
- limit-req
# - log-rotate
# - node-status
- openid-connect
- prometheus
- proxy-cache
- proxy-mirror
- proxy-rewrite
- redirect
- referer-restriction
- request-id
- request-validation
- response-rewrite
- serverless-post-function
- serverless-pre-function
# - skywalking
- sls-logger
- syslog
- tcp-logger
- udp-logger
- uri-blocker
- wolf-rbac
- zipkin
- server-info
- traffic-split
apisix/CVE-2021-45232/dashboard.yml
这个配置文件中启用了Prometheus插件,说明vulhub中的某些漏洞环境已经支持Prometheus监控。
集成步骤
1. 安装Prometheus
首先,我们需要安装Prometheus。可以从Prometheus官方网站下载最新版本的Prometheus,也可以通过包管理器安装。这里我们以Docker方式安装为例:
docker pull prom/prometheus
docker run -d -p 9090:9090 --name prometheus prom/prometheus
2. 配置Prometheus
接下来,我们需要配置Prometheus以采集vulhub漏洞环境的指标数据。创建一个prometheus.yml配置文件:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'vulhub'
static_configs:
- targets: ['vulhub-environment-1:9100', 'vulhub-environment-2:9100']
在这个配置中,我们定义了一个名为'vulhub'的作业,指定了要采集指标数据的目标地址。这些目标地址应该是vulhub中各个漏洞环境的地址和Prometheus指标暴露端口。
3. 配置vulhub漏洞环境
对于vulhub中的每个漏洞环境,我们需要确保其已经启用了Prometheus指标暴露功能。以apisix/CVE-2021-45232为例,我们已经在dashboard.yml中看到Prometheus插件被启用。对于其他漏洞环境,我们需要检查其配置文件,确保Prometheus相关的插件或模块被正确配置。
例如,在某些使用Docker Compose的漏洞环境中,我们可能需要添加Prometheus相关的服务和配置。以一个假设的docker-compose.yml为例:
version: '3'
services:
vulnerability-environment:
build: .
ports:
- "8080:8080"
expose:
- "9100"
environment:
- PROMETHEUS_ENABLED=true
- PROMETHEUS_PORT=9100
prometheus-exporter:
image: prom/node-exporter
ports:
- "9100:9100"
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
在这个示例中,我们添加了一个prometheus-exporter服务,用于暴露漏洞环境的系统指标。同时,在漏洞环境服务中,我们通过环境变量启用了Prometheus指标暴露功能。
4. 启动并验证集成
完成上述配置后,我们可以启动Prometheus和vulhub漏洞环境:
docker start prometheus
cd vulhub/apisix/CVE-2021-45232
docker-compose up -d
然后,访问Prometheus的Web界面(通常在http://localhost:9090),在"Targets"页面中可以查看vulhub漏洞环境的指标采集状态。如果一切正常,我们应该能够看到所有目标都处于"UP"状态。
在"Graph"页面中,我们可以使用PromQL查询和可视化漏洞环境的指标数据。例如,查询某个漏洞环境的CPU使用率:
rate(node_cpu_seconds_total{job="vulhub", instance="vulhub-environment-1:9100"}[5m])
常用监控指标
以下是一些常用的vulhub漏洞环境监控指标:
-
系统指标:
- node_cpu_seconds_total:CPU使用时间
- node_memory_MemTotal_bytes:总内存
- node_memory_MemFree_bytes:空闲内存
- node_disk_io_bytes_total:磁盘IO字节数
-
应用指标(根据具体漏洞环境可能有所不同):
- http_requests_total:HTTP请求总数
- http_request_duration_seconds:HTTP请求持续时间
- process_cpu_seconds_total:进程CPU使用时间
- process_memory_bytes:进程内存使用量
结论
通过将vulhub与Prometheus集成,我们可以实时监控漏洞环境的运行状态,及时发现潜在的问题和异常。本文介绍了集成的基本步骤和常用监控指标,希望能为安全研究人员和开发人员提供帮助。
在实际使用过程中,我们还可以结合Grafana等可视化工具,创建更加直观和美观的监控仪表盘,进一步提升漏洞环境的监控效果。
最后,建议定期更新vulhub和Prometheus到最新版本,以获取最新的漏洞环境和监控功能。
【免费下载链接】vulhub 项目地址: https://gitcode.com/gh_mirrors/vul/vulhub
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



