2021년 12월 13일

전자정부프레임워크 3.6.0 환경에서 아파치 Log4j 제로데이 취약점 (CVE-2021-44228) 조치 방법

Apache 재단은 보안 취약점 1 ~ 10 구분하고 있는데 이번에 알려진 Apache Log4j 2 에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)은 가장 높음 10단계에 해당하는 아주 심각한 보안 취약점이다.

KISA 에서는 긴급 보안 업데이트 권고 형태로 즉각적인 조치를 권하고있다. (12/13)

https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389


스프링 기반의 전자정부 프레임워크를 사용하는 환경우 경우 아래와 같은 절차로 처리가 가능하다.

대상 환경은 아래와 같다. 

  • 전자정부 프레임워크 버전 : 3.6.0 
  • Spring : Spring 4.1.2-RELEASE
  • Java : 1.8 이상


조치 방법

① 전자정부 프레임워크 기반 자바 프로그램을 maven 도구를 사용하도록 되어 있다. 프로젝트에서 Log4J2 의 의존성을 제거하기 위하여 pom.xml 설정에서 아래와 같이 exclusion 을 설정을 추가한다.



 
   	
		3.6.0
    
     
		
			egovframework.rte
			egovframework.rte.psl.dataaccess
			${egovframework.rte.version}
			
				
					org.apache.logging.log4j
					log4j-api
				
				
					org.apache.logging.log4j
					log4j-core
				
				
					org.apache.logging.log4j
					log4j-slf4j-impl
				
				
					org.slf4j
					log4j-over-slf4j
				
			
		 
     
    


② pom.xml 에 최신 LOG4J 2 버전으로 의존성을 추가한다.



 
   	
		3.6.0
		2.15.0
		1.7.32        
    
     
		
			egovframework.rte
			egovframework.rte.psl.dataaccess
			${egovframework.rte.version}
			
				
					org.apache.logging.log4j
					log4j-api
				
				
					org.apache.logging.log4j
					log4j-core
				
				
					org.apache.logging.log4j
					log4j-slf4j-impl
				
				
					org.slf4j
					log4j-over-slf4j
				
			
		 
        
		
		
			org.slf4j
			slf4j-api
			${project.dependency.slf4j.version}
		 
	    
            org.slf4j
            jcl-over-slf4j
            ${project.dependency.slf4j.version}
            runtime
        
 		
			org.apache.logging.log4j
			log4j-api
			${project.dependency.log4j.version}
		        
		
			org.apache.logging.log4j
			log4j-core
			${project.dependency.log4j.version}
		  
        
		
			org.apache.logging.log4j
			log4j-slf4j-impl
			${project.dependency.log4j.version}
		 
        
  		
			org.apache.logging.log4j
			log4j-web
			${project.dependency.log4j.version}
			runtime
		
		
        
     
    


⓷ 기존 프로젝트에서 Spring 에서 제공하는 log4j 설정 기능을 사용하고 있었다면 아래와 같이 web.xml 파일에서 해당 설정을 제거한다.




    



④ 기존 프로젝트를 새롭게 빌드하여 배포한다.

댓글 없음:

댓글 쓰기