나무위키에 아주 자세히 설명이 되어 있을만큼... 엄청난 보안 이슈가 터졌다고 해서 깜짝 놀랐는데요... 사실 logback을 사용중이였던 터라 체감은 잘 안나긴 했지만 국정원이며 전세계적으로 한번 떠들썩한 큰 보안 이슈였다고 합니다ㅠㅠ
logback을 사용한다고 하더라도 log4j는 스프링(부트) 프로젝트를 만들었다면 기본적으로 탑재되어 있는 녀석이다보니 저도 모르는 사이에 사용하게 될 수도 있는 노릇이기 때문에! 조심한다고 해서 그걸 봐줄 나쁜놈들이 세상 천지 어디있겠습니까! 그냥 원천 봉쇄! 해버려야죠!(스프링부트로 프로젝트를 생성하였다면 큰 문제는 없다고 스프링 부트 블로그에 올라와 있네요. https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot)
이 부분을 해결할 수 있는 방법은 현재 인터넷 상에서 여럿 돌아다니고 있어 보이지만 가장 간단한 해결 방법은 log4j를 2.15.0버전 2.16.0버전 2.17.0버전으로 업데이트 하는 것입니다! (아뉘....언제 16 나온건데...분명...15가 최신이였잖아..!15버전도 문제가 있다고 하네요...)
(2.16.0 버전도 취약점 발견! https://zdnet.co.kr/view/?no=20211220093320 ... 네;;... 2.17.0 버전으로 업데이트...ㅎ)
저는 그래들로 프로젝트를 생성했기 때문에 그래들에서 log4j 버전 관리를 해줬습니다!
// 21.11.24 log4j Issue -> 21.12.13 Issue contact, Risk hedging -> 21.12.17...wtf ver.15
// 21.12.20 wt... ver.16
ext['log4j2.version'] = '2.17.0'
// or
implementation(platform("org.apache.logging.log4j:log4j-bom:2.17.0"))
// or
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.apache.logging.log4j') {
details.useVersion '2.17.0'
}
}
}
첫번째는 (https://mvnrepository.com/) 이곳에서 log4j를 검색해 (2.15.0, 2.16.0) 2.17.0 버전을 찾아 입력하는 방법.
나머지 방식들은 사실상 log4j의 버전을 (2.15.0, 2.16.0) 2.17.0으로 사용하겠다고 선언하는 방식입니다!
이중에서 한가지 방식으로 하셔도 될 것 같긴하지만....(불안하면 그냥 다 추가하시는 것도 하나의 방법이...ㅎ 모든 log4j를 찾아 버전 업데이트를 하는 방식보다 전체 패키지를 한번에 관리하는 방식을 권장합니다.)
하지만 (2.15.0, 2.16.0) 2.17.0버전은 자바 8버전 이상부터 정식 지원하는 버전이기 때문에 아쉽게도 자바 8 미만의 버전은 다른 방식으로 해결해야 된다고 합니다...
자세한건 제가 봤던 아래 링크에서 확인 가능할 거 같습니다...!!
https://velog.io/@composite/log4j-%EC%B7%A8%EC%95%BD%EC%A0%90-%EB%B0%9C%EA%B2%AC-%EB%B9%A8%EB%A6%AC-%ED%8C%A8%EC%B9%98%ED%95%98%EB%9D%BC
처음엔 log4j? 난 그거 안쓰는데 하고 별로 관심을 갖지 않았었는데... 생각보다 큰 보안 문제였더라구여...
그냥 서버 자체를 통으로 뺏어버릴 수 있는...;;(https://www.clien.net/service/board/park/16764230 -> 아파치 log4j 원격코드실행 취약점이라고 합니다. 저는 봐도 잘 모르긴 하지만...ㅠㅠ 공부공부)
난 그거 사용 안하는데? 하고 넘기지 말고 자바 개발자라면..! 눈여겨 봐야할 이슈인거 같습니다...! 물론 세상은 넓고 개발자는 많기 때문에 금새 해결 될 문제이긴 하겠지만...ㅎㅎ 저희 모두 일류 개발자가 되는 그날까지!!
참고 사이트(이슈 터지면 1주일 정도는 정말 이곳저곳 돌아다니면서 업뎃에 업뎃... 개발자는 정보가 살길입니다...ㅠㅠ 됬나 싶어도... 완벽한 건 없지만 그 방향성을 추구하며 끊임없는 검색과 노력!!)
https://www.ncloud.com/support/notice/all/1252
https://logging.apache.org/log4j/2.x/download.html
https://github.com/apache/logging-log4j2
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot