【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架

https://xz.aliyun.com/t/2233

SpringBoot应用监控Actuator使用的安全隐患

概述

微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点决定了功能模块的部署是分布式的,运行在不同的机器上相互通过服务调用进行交互,业务流会经过多个微服务的处理和传递,在这种框架下,微服务的监控显得尤为重要。

Actuator正是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信以及Web请求的详细信息等。如果使用不当或者一些不经意的疏忽,可能造成信息泄露等严重的安全隐患。

Actuator使用

Actuator应用监控使用只需要添加spring-boot-starter-actuator依赖即可,如下:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

可以在application.properties中指定actuator的访问路径,如指定路径为/monitor:

management.context-path=/monitor

此时,运行示例,访问/monitor/env即可查看系统环境变量的配置信息,之后再访问/monitor/trace即可查看所有Web请求的详细信息,包括请求方法、路径、时间戳以及请求和响应的头信息甚至cookie信息,如图:

Actuator监控分成两类:原生端点和用户自定义扩展端点,原生的主要有:

路径 描述
/autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过
/beans 描述应用程序上下文里全部的Bean,以及它们的关系
/env 获取全部环境属性
/configprops 描述配置属性(包含默认值)如何注入Bean
/dump 获取线程活动的快照
/health 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供
/info 获取应用程序的定制信息,这些信息由info打头的属性提供
/mappings 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系
/metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
/shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
/trace 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)

安全措施

如果上述请求接口不做任何安全限制,安全隐患显而易见。实际上Spring Boot也提供了安全限制功能。比如要禁用/env接口,则可设置如下:

endpoints.env.enabled= false

如果只想打开一两个接口,那就先禁用全部接口,然后启用需要的接口:

endpoints.enabled = false
endpoints.metrics.enabled = true

另外也可以引入spring-boot-starter-security依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

在application.properties中指定actuator的端口以及开启security功能,配置访问权限验证,这时再访问actuator功能时就会弹出登录窗口,需要输入账号密码验证后才允许访问。

management.port=8099
management.security.enabled=true
security.user.name=admin
security.user.password=admin

安全建议

在使用Actuator时,不正确的使用或者一些不经意的疏忽,就会造成严重的信息泄露等安全隐患。在代码审计时如果是springboot项目并且遇到actuator依赖,则有必要对安全依赖及配置进行复查。也可作为一条规则添加到黑盒扫描器中进一步把控。
安全的做法是一定要引入security依赖,打开安全限制并进行身份验证。同时设置单独的Actuator管理端口并配置不对外网开放。

参考

原文地址:https://www.cnblogs.com/exmyth/p/10459043.html

时间: 2024-10-09 15:55:03

【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架的相关文章

市场上流行的国际加密货币交易所-MasterDAX

我们目前正处于加密货币革命期.发展到现在,加密货币已经从实验阶段成为主流.你去任何地方都能听别人谈论他们刚刚进行涉猎加密货币投资.在本文中,我们将讨论一些最流行的加密货币交易平台. Binance Binance是目前业内最受欢迎的交易所之一.这家总部位于香港的公司于2017年7月在中筹集了约1500万美元,看起来他们不会在短期内放缓.宾斯的关税结构是独一无二的.首先,他们有0.1%的标准交易利率,这已经大大低于其他各方.如果您使用自己的令牌(BNB)付款,您当前在协商率上获得50%的折扣,下降

菲律宾央行批准两家新加密货币交易所提供法币交易服务

菲律宾央行(BSP)批准了两家新的加密货币交易所提交的申请. 据报道,BSP的副总裁Chuchi G. Fonacier透露,菲律宾虚拟货币公司(Virtual Currency Philippines, Inc.)和ETranss已经被认证为可以将菲律宾比索兑换成虚拟货币的交易平台.通过这一举措,两家交易所已联手开展了rebitda, Inc., Betur, Inc.和BloomSolutions的交易. 菲侓宾央行已经认可数字货币能够提供更快.成本更低的交易,但仍对加密货币的高波动性.犯罪

据说struts2又出高危漏洞

无意间从blog.trtos.com和一些知名安全平台里看到了别人分享的struts2高危漏洞相关信息,甚是惊讶,心想:struts2框架是要被例如web应用黑名单的节奏啊,漏洞频出,一出就是高危.简直了,不过据了解该漏洞比较难以利用,原因是大部分网站没有使用存在这个漏洞struts2的插件,所以攻击者即使知道了怎么攻击,但是没有攻击对象就很没意思了. 下面是漏洞文章: http://blog.trtos.com/?id=822

Spring Boot (七): Mybatis极简配置

Spring Boot (七): Mybatis极简配置 1. 前言 ORM 框架的目的是简化编程中的数据库操作,经过这么多年的发展,基本上活到现在的就剩下两家了,一个是宣称可以不用写 SQL 的 Hibernate ,一个是对 SQL 非常友好的 Mybaties ,,两者各有特点,在企业级系统开发中可以根据需求灵活使用.发现一个有趣的现象:传统企业大都喜欢使用 Hibernate ,互联网行业通常使用 Mybatis . Hibernate 特点就是所有的 SQL 都用 Java 代码来生成

Spring Boot 探索系列 - 自动化配置篇

26. Logging Prev  Part IV. Spring Boot features  Next 26. Logging Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open. Default configurations are provided for Java Util Logging,Log4J, Log4J2 an

[转] Spring Boot配置多个DataSource

[From]  https://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000 Spring Boot配置多个DataSource 廖雪峰 / 编程 / 1-13 10:11 / 阅读: 14041 使用Spring Boot时,默认情况下,配置DataSource非常容易.Spring Boot会自动为我们配置好一个DataSource. 如果在application.yml中指定了s

Spring Boot . 4 -- 定制 Spring Boot 配置 【2】

除了第一篇中使用 覆写的方式进行 自动配置的更改外,还可以通过 Spring Boot 中提供的 application.properties 文件改变应用的运行时配置.这种配置的方式粒度是非常精细的. application.properties 在 Spring Boot 应用中,application.properties 文件在 resource/ 目录下,初始状态下,application.properties 是空白的.通过这个文件可以比较细粒度的控制Spring Boot 中的一些

全球网上零售巨头宣布接受60多种加密货币作为支付方式

电商与数字货币相结合已经形成趋势了. 就在近期,全球网上零售巨头:overstock已经全球网上零售巨头Overstock已经与加密货币交易所ShapeShift达成合作,这家零售商的网上商店已经开始接受60多种加密货币进行支付. Overstock在公告中表示消费者现在可以在结账时使用ETH.莱特币.达世币和Bitcoin Cash等进行支付,Overstock此前已经接受过比特币作为支付方式. Overstock最初于2104年接受比特币作为支付方式,此后它一直积极发展数字货币与电商结合,甚

Spring Boot 配置加载顺序详解

使用 Spring Boot 会涉及到各种各样的配置,如开发.测试.线上就至少 3 套配置信息了.Spring Boot 可以轻松的帮助我们使用相同的代码就能使开发.测试.线上环境使用不同的配置. 在 Spring Boot 里面,可以使用以下几种方式来加载配置.本章内容基于 Spring Boot 2.0 进行详解. 1.properties文件: 2.YAML文件: 3.系统环境变量: 4.命令行参数: 等等-- 我们可以在 Spring Beans 里面直接使用这些配置文件中加载的值,如: