Log4j의 취약성 (CV-2021-444228)

3690 단어 log4j취약성Java
취약성에 관하여
현재 사회에서 화제가 되고 있는 로고4j를 정리했다.
아직 CVE 정보를 완전히 공개하지 않은 상태에서 집필한 기사인 만큼 참고만 부탁드립니다.
Log4j 소개
Java를 위한 Logging의 클래스 라이브러리이며 Apache의 하위 프로젝트 중 하나입니다.

참조 소스: https://logging.apache.org/
위의 그림에서 보듯이 자바를 제외하고 많은 언어 프레임워크에서 Logo 4j를 사용할 수 있다.
자바의 주요 Logging 기법에 대해 다음과 같은 Qita 기사는 쉽게 알 수 있다고 생각합니다.
이번에 화제가 된 취약성에 대해(CV-2021-444228)
취약성 개요

Log4J에는 lookup이라는 임의의 곳에 존재하여 Log4j에 추가 값을 구성하는 기능이 있습니다.
lookup 기능을 사용하면 로그를 출력할 때 실행 시간에 정보를 출력할 수 있습니다.
예를 들어 '${java:runtime}' 변수를 사용하면 자바의 버전 정보로 바뀝니다. 예를 들어 '자바 (TM) SE Runtime Environment (build1.7.0 67-b01) from Oracle Corporation' 입니다.
이번 문제는 Jndi Loop 기능입니다.
변수 이름을 Java의 Java Naming and Directory Interface로 바꾼 것으로, 네트워크에서 값을 가져와 바꿀 수 있습니다.
${jnd:ldap://URL}
jndをjndiに読み替えてください。なぜかjndiと書くと反映されませんでした。2021/12/11現在
이 URL에서로그4j는 원격 LDAP 서버에서 자바 클래스 파일을 다운로드하고 읽을 수 있습니다.
따라서 이 취약성을 남용하면 공격용 자바 클래스 파일과 LDAP 서버를 준비하고 공격 대상의 로고 4j를 사용하는 직업 연마반이 ${jnd:ldap://URL} 형식으로 출력을 기록하여 임의의 코드 실행이 가능하다.
CEV: CVE-2021-44228
왜 이렇게 난리야?
하필 자바의 주요 기능이기 때문이다.자바로 제작된 시스템이 세계적으로 많기 때문에 그 시스템은 이번 취약성의 영향을 받았다.
또 공격도 원격으로 수행할 수 있고 공격 시 조건도 복잡하지 않고 사용자 권한도 필요하지 않기 때문에 이번에는 취약성이 강해 여러 시스템을 간단하게 공격할 수 있다.
또 자체 시스템에 로고 4j를 명시적으로 사용하지 않더라도 다른 플러그인과 소프트웨어에서 사용할 가능성이 높아 취약성 영향의 범위를 찾기 어렵다.
영향을 받는 시스템
릴리즈
Apache Log4j 2.x <= 2.15.0-rc1
영향을 받는 소프트웨어
  • Apache Struts
  • Apache Solr
  • Apache Druid
  • Apache Flink
  • ElasticSearch
  • Flume
  • Apache Dubbo
  • Logstash
  • Kafka
  • Spring-Boot-starter-log4j2
  • 완화 정책
    lookup 기능 비활성화
    시스템 속성log4j2.lookup 기능을 formatMsgNoLookop=으로 사용하면 정말 비활성화됩니다.
    클래스 경로에서 JndiLoop 클래스 제거
    예제
    zip -q -dlog4j-core-*。jarorg / apache / logging / log4j / core / lookup / JndiLookup.class
    
    WAF 활용
    사용된 WAF에서 이번 취약성에 대응할 수 있다면 위험을 완화할 수 있다.
    AWS에서 학급 방법 회사가 검증한 블로그를 참고하여 기재합니다.
    https://dev.classmethod.jp/articles/aws-waf-new-rule-log4jrce/
    사이트 축소판 그림
  • http://www.nurs.or.jp/~sug/soft/log4j/log4j1.htm
  • https://logging.apache.org/
  • https://qiita.com/NagaokaKenichi/items/9febd2e559331152fcf8
  • https://vuldb.com/ja/?id.187925
  • https://ezoeryou.github.io/blog/article/2021-12-10-log4j.html
  • https://access.redhat.com/security/cve/cve-2021-44228
  • 좋은 웹페이지 즐겨찾기