一、Spring Boot Actuator漏洞描述
- 事件
2019年2月28日,阿里云云盾應急響應中心監測到有國外安全研究人員披露Spring Boot
Actuator模塊中間件存在未授權訪問遠程代碼執行漏洞。
- 漏洞描述
Actuator是Spring Boot提供的服務監控和管理中間件,默認配置會出現接口未授權訪問,部分接口會泄露網站流量信息和內存信息等,使用Jolokia庫特性甚至可以遠程執行任意代碼,獲取服務器權限。
- 漏洞評級
嚴重
- 影響版本
全版本且無安全配置
- 安全建議
禁用所有接口,將配置改成:endpoints.enabled = false
或者引入spring-boot-starter-security依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
開啓security功能,配置訪問權限驗證,類似配置如下:
management.port=8099
management.security.enabled=true
security.user.name=xxxxx
security.user.password=xxxxxx
- 原文地址:https://bbs.aliyun.com/read/592982.html
二、基本原理
Spring Boot Framework包含許多稱爲執行器的功能,可幫助您在將Web應用程序投入生產時監視和管理Web應用程序。它們旨在用於審計,運行狀況和指標收集,它們還可能在配置錯誤時打開服務器的隱藏門。
當Spring Boot應用程序運行時,它會自動將多個端點(例如’/ health’,’/ trace’,’/ beans’,’/ env’等)註冊到路由進程中。對於Spring Boot 1 - 1.4,它們無需身份驗證即可訪問,從而導致嚴重的安全問題。從Spring 1.5版開始,默認情況下,除“/ health”和“/ info”之外的所有端點都被視爲敏感和安全,但應用程序開發人員通常會禁用此安全性。
以下Actuator端點可能具有安全隱患,從而導致可能的漏洞:
- /dump - 顯示線程轉儲(包括堆棧跟蹤)
- /trace - 顯示最後幾條HTTP消息(可能包含會話標識符)
- /logfile - 輸出日誌文件的內容
- /shutdown - 關閉應用程序
- /mappings - 顯示所有MVC控制器映射
- /env - 提供對配置環境的訪問
- /restart - 重新啓動應用程序
對於Spring 1x,它們在根URL下注冊,並且在2x中它們移動到“/actuator/”基本路徑。
- 備註
通過上述url可以獲取部分關鍵信息,如/env客戶獲取應用的配置信息(數據庫、kafka、redis等其他依賴項);/restart重啓應用,如果淘寶暴露此漏洞,你可以重啓淘寶應用,想想都可怕; /shutdown關閉應用,那還得了;/mappings 獲取應用所有接口列表,對其進行攻擊,致使接口無法正常使用;
- 更多說明參考原文
作者:慕凌峯
鏈接:https://www.jianshu.com/p/3162ce30a853
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。