주니봉
  • [전자정부프레임워크] Apache Log4j 2 보안 업데이트 권고
    2021년 12월 13일 17시 18분 31초에 업로드 된 글입니다.
    작성자: 봉주니

    아래와 같은 이슈가 발생한 것 같다.

     


    □ 영향을 받는 버전
     o CVE-2021-44228
       - 2.0-beta9 ~ 2.14.1 버전 (Log4j 2.12.2 제외)
     o CVE-2021-45046
       - 2.0-beta9 ~ 2.12.1 및 2.13.0 ~ 2.15.0 버전
     o CVE-2021-4104
       - 1.x 버전
          ※ JMSAppender를 사용하지 않는 경우 취약점 영향 없음

    □ 대응방안
     o 제조사 홈페이지를 통해 최신버전으로 업데이트 적용[3]
       ※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
        - CVE-2021-44228, CVE-2021-45046
          · Java 8 : Log4j 2.16.0으로 업데이트[3]
          · Java 7 : Log4j 2.12.2으로 업데이트[9]
               ※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음
       - CVE-2021-4104
          · Java 8 : Log4j 2.16.0으로 업데이트[3]
          · Java 7 : Log4j 2.12.2으로 업데이트[9]
     o 신규 업데이트가 불가능할 경우 아래와 같이 조치 적용
        - CVE-2021-44228, CVE-2021-45046
          · JndiLookup 클래스를 경로에서 제거

        - CVE-2021-4104
          · JMSAppender 사용 확인 후 코드 수정 또는 삭제
              ※ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전(2.x) 업데이트 적용 권고

    자바 8버전을 사용하는 경우, 2.15.0 으로 업그레이드 하는게 최선인 것 같아 변경을 해본다.

    pom.xml을 확인해보라는데, pom.xml 에 보면 logging 관련 dependency가 없다!

     

    그래서 maven 으로 설치된 파일을 찾아보니, 나는 아래의 경로에서 확인 했다.

    target -> 프로젝트명 -> WEB-INF -> lib -> egovframework.rte.fdl.logging-3.8.0.jar 였다.

    해당 jar를 열어서 , pom.xml 을 열어보면 log4j 2.10.0 이 되어있었고,

     

    해당 logging dependency는 또, egovframework.rte.fdl.commn-3.8.0.jar에서 호출하는 것 같았다.

     

    따라서, jar 파일은 두고 기본 pom.xml에서 처리해보려고 한다.

    해당 logging을 불러와 2.10 버전을 강제로 exclusion 시켰다.

    <dependency>
      <groupId>egovframework.rte</groupId>
      <artifactId>egovframework.rte.fdl.logging</artifactId>
      <version>${egovframework.rte.version}</version>
        <exclusions>
          <exclusion>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-core</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-slf4j-impl</artifactId>
          </exclusion>
      </exclusions>
    </dependency>

    그리고, 2.16.0 버전을 추가해주고

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.16.0</version>
    </dependency>

    프로젝트를 maven clean 하고, maven install 해봤더니 2.16.0 으로 잘 적용되었다.

     

     

    반응형
    댓글