Log4j의 취약성 (CV-2021-444228)
현재 사회에서 화제가 되고 있는 로고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
영향을 받는 소프트웨어
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/
사이트 축소판 그림
Reference
이 문제에 관하여(Log4j의 취약성 (CV-2021-444228)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryuseiarai/items/8f3a7600df1b1e064ecb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)