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