오늘 날짜로 과기정통부에서, 아파치 '로그4j' 2 웹서비스 긴급 보안패치 권고가 올라왔다. 해당 내용은 심각한 수준이었다. 보통 서버를 관리하기 위해 자동화된 로그4j를 대부분 사용하는데, 이 모듈의 취약점이 발견되었는데 그 취약 (CVE-2021-44228)은 서버 관리자 권한으로 대상 서버의 브라우저를 열고 특정 URL을 오픈하는 등, 서버 전체를 조정할 수 있는 원격제어 수준인 것으로 밝혀졌다. 어떻게 하면 이 취약점을 벗어나고 패치하는지 알아보겠습니다.
1. 해결방법
대한민국에서 운영하고 있는 보호나라 사이트에 방문하면, 어떠한 조치를 통해 해당 취약점을 벗어날 수 있는지에 대해 나와있습니다. 엉뚱한 사이트를 방문하지 말고 신뢰성 있는 보호나라를 통해 방문하여 해당 모듈을 업데이트함으로써 벗어날 수 있습니다.
2021년 12월 11일 자의 보안공지를 클릭하시면 됩니다.
https://www.boho.or.kr/main.do
보호나라에 따르면 하단의 3가지 방법으로 취약점을 방어할 수 있습니다. 필자가 추천하는 방법은 제조사 홈페이지를 통한 원소스의 업데이트를 추천합니다.
o 2.0-beta9 ~ 2.10.0
- JndiLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-
*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
o 2.10 ~ 2.14.1
- log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정
o 제조사 홈페이지를 통해 최신 버전(2.15.0) 이상으로 업데이트 적용
https://logging.apache.org/log4j/2.x/download.html
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>
Java Spring Framework Maven 사용 시 log4j가 설치된 경로의 pom.xml 파일을 열어 “log4 j-core”로 검색 > 필자처럼 버전 2.15로 바꾸어 적어서 업그레이드를 하시면 됩니다. 따로 관리한다면 직접 다운로드하시어 기존 log4j.jar 있는 곳에 교체하세요
2. 취약한 log4 j 를 사용하고 있는지 어떻게 확인하나요?
log4j를 사용하는 제품에 관한 정보는 아래 링크에서 확인할 수 있습니다.
상용제품 사용 중인 경우 아래 링크에 접속하여 해당 제조사를 찾아 제조사가 안내하는 방법으로 확인하시면 됩니다.
* https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
log4 j 설치 여부, 버젼확인방법은 하단의 명령어를 사용하시면 됩니다.
dpkg –l | grep log4j
find / -name ‘log4j*’
윈도의 경우 window explorer의 검색 기능 (log4 j 검색)을 이용하시면 해당 서버에서 log4j를 사용하시는지 체크가 가능합니다.
3. 버전에 따라 어떻게 조치해야 하나요?
2.15 이상으로 업데이트가 가능한 환경이라면 업데이트를 추천드리며, 업데이트를 할 수 없는 상황이라면 log4 j 버전에 따른 해결 방안은 아래와 같습니다.
- 2.0-beta9 ~ 2.10.0 :
JndiLookup 클래스를 경로에서 제거
* zip –q –d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
- 2.10 ~ 2.14.1
* log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경 변수를 true로 설정
4. 보안 적용 또는 업데이트를 안 하게 되면 어떻게 되나요?
해당 취약점이 공개된 이상, 초등학생이든 해커가 되었든 간에 가장 손쉽게 해당 서버에 관리자 계정으로 파일을 업로드 또는 실행이 가능합니다. 즉 누구든 그 서버를 해킹할 수 있다는 소리입니다. 뭘 어떻게 되긴요. 수 많은 예비해커들의 손쉬운 사냥감이 되어 해커실습소가 될것입니다.
이상으로 마칩니다. 긴급하게 적용하시길 바랍니다. 취약점으로 뚫린 구멍은 시간이 지남에 따라, 점점 막을 수 없는 수준으로 번져나가기에 지체 없이 수정 하기길 바랍니다.
[관련 자료]
Apache Log4j 2 원격코드 실행(RCE) 취약점 주의! [CVE-2021-44228]
https://blog.alyac.co.kr/4341
Another Apache Log4j Vulnerability Is Actively Exploited in the Wild (CVE-2021-44228)
https://unit42.paloaltonetworks.com/apache-log4j-vulnerability-cve-2021-44228/
Log4j2 Vulnerability “Log4Shell” (CVE-2021-44228)
https://www.crowdstrike.com/blog/log4j2-vulnerability-analysis-and-mitigation-recommendations/
'JAVA' 카테고리의 다른 글
NoClassDefFoundError의 발생원인 (2) | 2022.12.15 |
---|---|
자바 스캐너 문제 3자리 정수를 키보드에서 읽어서 더하라. (4) | 2021.12.30 |
자바 중수로 가는 지름길 ? 무름표연산자, 삼항연산자 (1) | 2021.12.09 |
입력형식오류, InputMismatchException (in java) (0) | 2021.11.29 |
JAVA 숫자에러 NumberFormatException 해결방법 (1) | 2021.11.26 |
댓글