0x01:前言
Actuator 是 springboot 提供的用來對應(yīng)用系統(tǒng)進(jìn)行自省和監(jiān)控的功能模塊,借助于 Actuator 開發(fā)者可以很方便地對應(yīng)用系統(tǒng)某些監(jiān)控指標(biāo)進(jìn)行查看、統(tǒng)計(jì)等。在 Actuator 啟用的情況下,如果沒有做好相關(guān)權(quán)限控制,非法用戶可通過訪問默認(rèn)的執(zhí)行器端點(diǎn)(endpoints)來獲取應(yīng)用系統(tǒng)中的監(jiān)控信息。Actuator 配置不當(dāng)導(dǎo)致應(yīng)用系統(tǒng)監(jiān)控信息泄露對應(yīng)用系統(tǒng)及其用戶的危害是巨大的隱患。
0X02:Actuator 簡介
如上所言,actuator 是 springboot 提供的用來對應(yīng)用系統(tǒng)進(jìn)行自省和監(jiān)控的功能模塊。其提供的執(zhí)行器端點(diǎn)分為兩類:原生端點(diǎn)和用戶自定義擴(kuò)展端點(diǎn),原生端點(diǎn)主要有:
0X03:漏洞危害
actuator 的配置不當(dāng)漏洞,導(dǎo)致監(jiān)控信息的泄漏
(1.)認(rèn)證字段的獲取以證明可影響其他用戶;這個主要通過訪問/trace 路徑獲取用戶認(rèn)證字段信息,比如如下站點(diǎn)存在 actuator 配置不當(dāng)漏洞,在其 trace 路徑下,除了記錄有基本的 HTTP 請求信息(時間戳、HTTP 頭等),還有用戶 token、cookie 字段、trace 路徑:
(2.)用戶認(rèn)證字段泄露:
通過替換 token 字段可獲取其他用戶的信息:
(3.)數(shù)據(jù)庫賬戶密碼泄露;由于 actuator 會監(jiān)控站點(diǎn) mysql、mangodb 之類的數(shù)據(jù)庫服務(wù),所以通過監(jiān)控信息有時可以拿到 mysql、mangodb 數(shù)據(jù)庫;這個主要通過/env 路徑獲取這些服務(wù)的配置信息
(4.)后臺用戶賬號密碼泄露;這個一般是在/heapdump 路徑下,訪問/heapdump 路徑,返回 GZip 壓縮 hprof 堆轉(zhuǎn)儲文件。在 Android studio 打開,會泄露站點(diǎn)內(nèi)存信息,很多時候會包含后臺用戶的賬號密碼
危害總結(jié):
- 利用env加refresh可以getshell
- 利用mappings,獲取未授權(quán)接口
- 利用trace,獲取認(rèn)證信息(Cookie、tooken、Session),利用認(rèn)證信息訪問接口。
- env有可能泄露的數(shù)據(jù)庫賬號密碼。
0x04:安全措施
如果上述請求接口不做任何安全限制,安全隱患顯而易見。實(shí)際上Spring Boot也提供了安全限制功能。比如要禁用/env接口,則可設(shè)置如下:
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功能,配置訪問權(quán)限驗(yàn)證,這時再訪問actuator功能時就會彈出登錄窗口,需要輸入賬號密碼驗(yàn)證后才允許訪問
management.port=8099
management.security.enabled=true
security.user.name=admin
security.user.password=admin
0X05:安全建議
在使用Actuator時,不正確的使用或者一些不經(jīng)意的疏忽,就會造成嚴(yán)重的信息泄露等安全隱患。springboot項(xiàng)目若啟用actuator依賴,則有必要對安全依賴及配置進(jìn)行復(fù)查。安全的做法是一定要引入security依賴,打開安全限制并進(jìn)行身份驗(yàn)證。同時設(shè)置單獨(dú)的Actuator管理端口并配置不對外網(wǎng)開放。文章來源:http://www.zghlxwxcb.cn/news/detail-452631.html
0x06:參考鏈接
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator文章來源地址http://www.zghlxwxcb.cn/news/detail-452631.html
到了這里,關(guān)于SpringBoot應(yīng)用監(jiān)控Actuator使用的安全隱患的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!