현재 발생하고 있는 문제의 원인은 log4가 로그를 출력할 때 로그에 사용자ID 등이 있을때 자동으로 내부에서 운영중인 LDAP 서버 등에 접속을 해서 변환하는 기능을 제공하는데 이 기능을 이용하면 해커의 서버로 접속해서 해커가 만든 악성 코드를 서버로 다운로드 받게 하고 이 코드를 이용해서 서버를 탈취할 수 있게 됩니다.
예를 들어 로그를 남길때 다음과 같이 남긴다고 하면
log.info(“Request User Agent:{}“, request.getHeader(“X-Api-Version”));
해커가 악의적으로 HTTP 의 header의 X-Api-Version 값에 해커의 주소로 설정한 다음 요청을 보내면 위와 같은 동작원리에 의해 해커 서버로 요청이 전송되는 방식입니다.