트러블슈팅

JMX Port를 통해 공격자가 서버에 접근하는 보안 문제

MJ.Lee 2024. 11. 15. 21:35

문제

JMX(Java Management Extensions)는 Java 응용 프로그램의 모니터링과 관리기능을 제공한다.

JMX에서 사용하는 port에 대한 인증 설정이 없으면 공격자가 JMX port를 통해 원격 접근이 가능하다.

 

참고로 공격자는 java_jmx_server라는 JMX의 취약점을 이용하는 exploit module을 이용했다.

https://www.rapid7.com/db/modules/exploit/multi/misc/java_jmx_server/

 

원인

supervisor.ini.j2에서 JVM Option을 설정하는데, 여기에 JMX를 사용하기 위해 아래와 같이 JMX 설정이 추가되어 있었다.

보다시피, authenticate와 ssl이 false로 보안 설정이 되어 있지 않다.

    -Dcom.sun.management.jmxremote.port=21099
    -Dcom.sun.management.jmxremote.authenticate=false
    -Dcom.sun.management.jmxremote.ssl=false

 

해결

위 설정을 제거해도 모니터링 시스템에서 문제없이 metric 정보를 수집하는 것을 확인하였다.

설정을 제거함으로써 JMX Port를 닫아 문제를 해결했다.