配置不当引高危漏洞,交易所如何正确用Spring boot
独孤客
发表于 2022-12-14 01:36:08
189
0
0
/ Q' A" D7 f) b/ a! s$ ]3 v5 ^
多家加密货币交易所使用spring boot用以提高开发效率
现有不少交易所开发者为了更高效快速的部署和监控Web应用,都采用了Spring Boot 框架进行微服务开发,由于该框架使用了特定的方式来进行配置,使开发人员不再需要定义样板化的配置,从而更加高效快速的部署项目。4 g$ Y5 n" h" Q4 @
% w) U0 Q l# w
Spring Boot使用Actuaotr进行更好的健康的监控) K. d; D6 V' w4 ^
在Spring Boot当中,Actuaotr是Spring Boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管、审计、收集应用的运行情况,通过Actuator可以在生产环境监控当前应用的健康,虚拟机等信息,通过前端以可视化的界面展示出来,针对微服务而言它是一个必不可少的环节。
/ X& x. S& Z* Q, m
行业开发者安全意识的缺乏导致用户信息泄露甚至造成经济损失* a9 w$ l: I/ G2 U" s5 x9 {" P* i
随着区块链3.0的发展,一些开发者的安全意识比较薄弱,在配置Actuaotr监控端点时,配置不当可能导致系统应用配置信息、度量指标信息泄露等严重安全问题,其中trace路径下动态记录了最近的100条请求记录信息,请求信息中包含了用户认证字段数据,可通过更替认证字段任意操作用户数据,由此几乎可威胁所有用户数据安全。
$ I" T6 e t+ o; F# }
例如在传统行业当中,全球的企业和政府组织每年需要为网络攻击造成的损失支付40亿美元。IBM的资料也显示,全球公司每年因数据泄露造成的平均损失从350万美元上升至380万美元,部分甚至上亿。3 n" h5 U7 n( E
随着数据价值的提高,黑客越来越多地将攻击目标转向企业内部存留的用户、员工数据,当企业发生数据泄露,损失的不仅仅是经济利益。一旦企业发生数据泄露,损失的不仅仅是经济利益,更会给品牌形象带来严重的负面影响: A. E4 L5 b1 [+ T0 [" L
3 g7 a2 H7 t# a5 v
DVP案例分解—配置Actuaotr不当造成的漏洞危害( `! G' @% ]: b H" [/ b
2018年7月30日,DVP漏洞平台已经收到过关于Spring Boot Actuaotr配置不当导致敏感信息泄露的高危漏洞并且第一时间通报厂商。
根据DVP安全研究员介绍:案例当中,攻击者可利用此配置不当,获取到网站的敏感信息和用户个人信息,甚至可通过这些接口控制用户的账号进行一系列的敏感操作。
+ M% h" D, A2 C: ^' [2 j% z2 ^
以下链接是DVP 漏洞平台公开白帽子发现并演示此漏洞的详情,DVP平台在第一时间向厂商通报了此漏洞。6 ~2 Y i- X- X/ C( q# W
5 b3 {! p* ]. t' \
https://dvpnet.io/info/detail/id/653
; {8 [. q" L( U- k
如果开发人员配置不当,会导致黑客获取敏感数据。如:将接口暴露在公网上或者未配置限制访问,黑客可以使用以下的Actuator监控原生端点获取到一些网站的敏感数据。
Actuator 提供的接口,具体如下表所示:
& t9 b# `7 ^6 f$ B
在黑客眼里这些端点的作用:
' D8 g4 _4 e) d* E8 ~
DVP真实案例:通报后漏洞已修复完成的厂商漏洞拆解, M% i/ ^& i1 M( N6 e
攻击者通过访问 /env 端点获取到泄露的环境配置信息
s# V: x) A7 h/ _) o9 z& u! f
通过此接口获取用户请求中携带的认证信息或者cookie来获取用户的敏感信息
3 Z4 ?. }+ a1 U9 K2 V
还可以通过获取到这些用户敏感信息直接登录用户账号% b K4 X$ ~4 q0 V% R- n
( H6 E) @+ i' e+ |7 i
攻击者通过访问 /configprops 端点获取到应用中配置的属性信息报告
攻击者通过访问 /dump 端点获取到程序运行中的线程信息: u, F N ~7 C" v$ t' S7 r0 n
T. k+ H/ H) z' \) a
攻击者通过访问 /autoconfig 端点获取到泄露应用的自动化配置报告,包括所有自动化配置的候选项。同时还列出了每个候选项自动化配置的各个先决条件是否满足。
攻击者通过访问 /beans 端点获取到泄露的应用上下文中创建的所有Bean' S1 J7 K; ^5 v: f( Z; M) [
& ?5 x s5 n' C6 a2 X" L2 I2 @
漏洞修复
9 S" C6 B# A' x7 x; n% `5 b0 V
通过DVP提供的真实案例可以看出,如果以上请求接口不做任何安全限制暴露在公网上的话, 极有可能引起严重的用户信息泄露问题。
不过Spring Boot提供安全限制功能,只要在部署的时候配置好相应的配置即可。
1、增加账号密码访问; }+ S- J6 I L' A+ c2 m' H J! @
在application.properties中指定actuator的端口以及开启security功能,配置访问权限验证,这时再访问actuator功能时就会弹出登录窗口,需要输入账号密码验证后才允许访问
) b" S4 D% z4 Y( } p& ^7 X5 N% z
2、禁用接口5 W& Z4 V. z7 a3 M
比如要禁用/env接口,则可设置如下:
endpoints.env.enabled= false
0 A* k5 R [7 D5 y \/ n6 T( D
如果只想对外开放部分接口,那就先禁用全部接口,然后启用需要的接口
" q. @# f" E: M( g+ @% a9 Y6 V! z
endpoints.enabled = false
endpoints.metrics.enabled = true. I3 G+ Q8 W4 h. P3 V
7 `2 ]" i+ R* E& R: |' ~" M5 d+ x
同时可设置单独的Actuator管理端口并配置不对外网开放。
成为第一个吐槽的人



