問題の説明
Actuator は、アプリケーション システムのイントロスペクションと監視のために Springboot によって提供される機能モジュールであり、開発者は Actuator を利用することで、アプリケーション システムの特定の監視指標に関する統計を簡単に表示および収集できます。アクチュエーターが有効になっている場合、関連する権限が制御されていない場合、不正なユーザーがデフォルトのアクチュエーター エンドポイントにアクセスすることでアプリケーション システムの監視情報を取得できます。
脆弱性シナリオ:
注:对于Spring 1x,它们在根URL下注册,并且在2x中它们移动到“/actuator/”基本路径。
例如:http://ip:port/actuator/env
次の Actuator エンドポイントにはセキュリティ上の影響があり、脆弱性が発生する可能性があります。
- /dump - スレッド ダンプ (スタック トレースを含む) を表示します。
- /trace - 最後のいくつかの HTTP メッセージを表示します (セッション ID が含まれる場合があります)
- /logfile - ログファイルの内容を出力します。
- /shutdown - アプリケーションをシャットダウンします。
- /mappings - すべての MVC コントローラー マッピングを表示します
- /env - 構成環境へのアクセスを提供します
- /restart - アプリケーションを再起動します
解決:
1: 認証を構成する
在项目的pom.xml文件下引入spring-boot-starter-security依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
然后在application.properties中开启security功能,配置访问账号密码,重启应用即可弹出。
management.security.enabled=true
security.user.name=admin
security.user.password=admin
2. インターフェースを無効にする
endpoints.enabled = false
禁用部分接口,如env:
endpoints.env.enabled = false
具体的な例:
yml ファイルで次のように設定します。
management:
endpoints:
web:
exposure:
include: "*"
enabled-by-default: false
endpoint:
health:
show-details: always