본문 바로가기

트러블슈팅

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

문제

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를 닫아 문제를 해결했다.