비상!!!!! 비상!!!!!
전세계 Log4j 취약점이 터졌다.
아파치소프트웨어재단에서 보안위협단계 1~10단계중 10단계에 해당하는 긴급조치가
필요한 취약점이라고 발표가 나왔다.
13억개 이상의 Java로 된 어플리케이션이 돌아가고 있고, 현실적으로 이미 배포된 폐쇄망, 버려진 오래된 소스 등
버전업을 하여 재배포하기란 쉽지 않다. 어쩔수 없다면, 아래와 같이 보안취약점에 해당하는 class 파일을 제거하는
방법을 고려해보자.
일단 내 로컬에 log4j-1.2.x 대 버전을 두고
zip -d log4j-1.2.12.jar org/apache/log4j/net/JMSAppender.class 혹은
zip -d log4j-1.2.*.jar org/apache/log4j/net/JMSAppender.class (* 모든버전일괄)
zip : 압축하는 리눅스 명령어
-d : 특정경로의 class를 delete 한다.
위의 명령어를 실행하면 deleting : org/apache/log4j/net/JMSAppender.class 라고 출력메세지가 나온다.
log4j-2.x 버전도 똑같다.
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
위의 명령어를 실행하면 아무 메세지가 뜨지 않고 삭제가 된다.
-q 옵션이 메세지 출력 제한 옵션이다.
삭제를 한뒤 Jar 파일을 압축해제하여 해당 경로에 문제가 되는 JndiLookup.class 를 확인해보니 잘 삭제가 되었고,
Jar 파일 용량도 20KB 줄어 있었다.
중요한 사실은 1.2.x 버전은 log4j.jar 안에 JMSAppender 가 문제가 되고,
2.x 버전은 log4j-core 안에 JndiLookup이 문제가 된다. 1버전과 2버전의 경로가 다르다.
그래서 마지막으로 -q 옵션을 빼고 실행해보았다.
폭풍 Warning.....
아무튼 오늘은 버전업데이트 불가시 위협이 될 수 있는 Class 파일 삭제 조치를 하는 방법을 알아보았다.
누군가에게 도움이 되길 바란다.
* 참고자료
https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389
- KISA 한국인터넷진흥원 ([6] 취약점 대응 가이드)
본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요.
정보 공유를 위한 포스팅에 큰 힘이 됩니다.
만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다.
읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요.
'JAVA' 카테고리의 다른 글
java.util.NoSuchElementException: No value present (0) | 2022.01.18 |
---|---|
onClick , onkeydown 마우스클릭 / 엔터 이벤트 처리 (0) | 2022.01.14 |
[JAVA] java cron expression (0) | 2021.10.29 |
[JAVA] contains 함수의 재밌는 원리 (1) | 2021.10.28 |
[JAVA] Json key값 존재 여부 확인 .has() (0) | 2021.10.26 |