Log4j 취약점은 현대 시스템에서 가장 치명적인 보안 문제 중 하나입니다.

로깅은 최신 애플리케이션의 핵심 기능이며 로깅 라이브러리인 Log4j는 이 분야의 리더입니다.

이 라이브러리는 대부분의 응용 프로그램, 서비스 및 시스템에서 사용됩니다. 따라서 Log4j가 사용되는 모든 응용 프로그램은 모두 작년에 발견된 이 Log4j 취약점의 영향을 받습니다.

전 세계적으로 사이버 보안에 대한 우려가 증가함에 따라 조직과 개인은 애플리케이션, 시스템 및 데이터를 보호하기 위한 조치를 취하고 있습니다.

그리고 이 취약점이 발견되었을 때 전문가와 기업은 더욱 스트레스를 받았습니다.

따라서 데이터, 네트워크, 평판 및 고객 신뢰를 보호하려면 Log4j 취약점을 감지하고 수정하는 것이 필수적입니다.

이 기사에서는 Log4j 취약점이 무엇인지와 이를 감지하고 수정하는 단계에 대해 설명합니다.

Log4j와 왜 필요한지 이해하는 것으로 시작하겠습니다.

Log4j는 무엇입니까?

로그4j Java로 작성된 오픈 소스 로깅 유틸리티로, 주로 애플리케이션 및 시스템에서 생성된 로깅 레코드를 저장, 형식화 및 게시한 다음 오류를 확인하는 데 사용됩니다. 기록은 웹 페이지 및 브라우저 데이터에서 Log4j가 실행되는 시스템의 기술 세부 정보에 이르기까지 다양한 유형이 될 수 있습니다.

개발자는 코드를 처음부터 작성하는 대신 해당 코드를 앱에 통합하여 Log4j 라이브러리를 사용할 수 있습니다.

개발자는 Log4j를 사용하여 정확한 로깅 정보로 애플리케이션과 관련된 모든 이벤트를 추적할 수 있습니다. 애플리케이션을 모니터링하고, 적시에 문제를 발견하고, 성능 및/또는 보안 측면에서 더 큰 문제가 되기 전에 문제를 해결하는 데 도움이 됩니다.

이 Java 기반 라이브러리는 Ceki Gülcü에 의해 작성되었으며 Apache License 2.0에 따라 2001년에 릴리스되었습니다. JNDI(Java Naming and Directory Interface) 서비스를 활용하여 앱이 LDAP, DNS, CORBA 등과 같은 다른 앱과 상호 작용할 수 있도록 하고 Java 기반 애플리케이션에 대한 디렉토리 및 이름 지정 기능을 얻습니다. Log4j에는 작업을 수행하기 위한 세 가지 구성 요소가 있습니다.

  • 로깅 기록을 캡처하는 로거
  • 다양한 스타일의 로깅 레코드 형식을 지정하는 레이아웃
  • 다른 대상에 로깅 레코드를 게시하기 위한 Appenders

실제로 Log4j는 웹에서 가장 유명한 로깅 라이브러리 중 하나이며 여러 산업 및 국가의 조직에서 사용합니다. 그들은 이 로깅 라이브러리를 Google, Microsoft, Apple, Cloudflare, Twitter 등의 최고의 클라우드 서비스를 포함하여 많은 애플리케이션에 통합했습니다.

개발자인 Apache Software Foundation은 이전 릴리스에서 발견된 문제를 해결하기 위해 Log4j로 업그레이드한 Log4j 2를 개발했습니다. 작년에 Log4j에서 취약점이 발견되었습니다. 이 취약점을 해결하지 않으면 공격자가 애플리케이션과 시스템에 침입하고, 데이터를 훔치고, 네트워크를 감염시키고, 기타 악의적인 활동을 수행할 수 있습니다.

더 이해합시다.

Log4Shell – Log4j 취약점이란 무엇입니까?

Log4Shell은 라이브러리의 핵심 기능에 영향을 미치는 Log4j 라이브러리의 중요한 사이버 보안 취약점입니다. 이를 통해 공격자는 원격 코드 실행을 수행하여 인터넷에 연결된 장치 또는 애플리케이션을 제어할 수 있습니다. 성공하면 다음을 수행할 수 있습니다.

  • 장치 또는 시스템에서 모든 코드 실행
  • 모든 네트워크 및 데이터 액세스
  • 영향을 받는 앱 또는 기기의 파일 수정 또는 암호화

이 취약점은 Alibaba(중국 전자상거래 대기업)의 보안 연구원인 Chen Zhaojun이 2021년 11월 24일에 처음 보고했습니다. 이 취약점은 12월 9일 Alibaba의 클라우드 보안 팀이 발견한 Minecraft 서버에 영향을 미쳤습니다.

  iPhone에서 Apple Pay를 설정하고 사용하는 방법

다음으로 NIST는 이 취약점을 National Vulnerability Database에 게시하고 이름을 CVE-2021-44228로 지정했습니다. 그런 다음 Apache Software Foundation은 이 취약점을 CVSS 심각도에서 10으로 평가했습니다. 이것은 거의 할당되지 않으며 광범위하고 쉽게 악용될 가능성이 있어 조직과 개인에게 막대한 피해를 줄 수 있으므로 심각합니다.

이에 대한 대응으로 Apache는 이 취약점에 대한 패치를 발표했지만 여전히 일부 부분은 해결되지 않은 상태로 남아 있어 다른 취약점이 발생했습니다.

  • JNDI 조회를 통해 서비스 거부(DoS) 공격을 촉진한 CVE-2021-45046
  • CVE-2021-45105 – 해커가 스레드 컨텍스트 맵 정보를 제어하고 조작된 문자열을 해석하여 DoS 공격을 일으킬 수 있음
  • CVE-2021-44832는 RCE(원격 코드 삽입)를 통해 모든 Log4j 2 버전에 영향을 미칩니다.

Log4Shell은 어떻게 작동합니까?

심각도와 Log4Shell이 ​​할 수 있는 피해를 이해하려면 이 Log4j 취약점이 작동하는 방식을 배우는 것이 적절합니다.

Log4Shell 취약점을 통해 공격자는 원격으로 임의의 코드를 네트워크에 주입하고 이를 완전히 제어할 수 있습니다.

이 사이버 공격 시퀀스는 Log4j와 같은 로깅 라이브러리에서 시작하여 로그 정보를 수집하고 저장합니다. 로깅 라이브러리가 없는 경우 서버의 모든 데이터는 데이터가 수집된 후 즉시 아카이브됩니다.

그러나 이 데이터를 분석하거나 특정 로그 정보를 기반으로 몇 가지 조치를 취해야 하는 경우 로그 데이터를 보관하기 전에 구문 분석할 로깅 라이브러리가 필요합니다.

Log4j 취약점으로 인해 Log4j를 사용하는 모든 시스템이나 앱은 사이버 공격에 취약해집니다. 로깅 라이브러리는 입력을 기반으로 코드를 실행합니다. 해커는 취약점으로 인해 입력을 조작할 수 있으므로 로그 라이브러리가 유해한 코드를 실행하도록 강제할 수 있습니다.

그 동안 많은 일들이 백그라운드에서 일어납니다. Log4j가 특별히 제작된 문자열을 전달하면 LDP 서버를 호출하고 코드를 실행하기 위해 해당 디렉터리에 호스팅된 코드를 다운로드합니다. 이런 식으로 공격자는 코드가 실행되는 모든 서버를 제어하는 ​​데 도움이 되는 악성 코드를 저장할 LDAP 서버를 만들 수 있습니다. 그런 다음 악성 코드를 대상 앱이나 시스템으로 보내는 문자열을 전송하고 이를 완전히 제어합니다.

따라서 Log4j 취약점을 악용할 수 있는 방법은 다음과 같습니다.

  • 공격자는 취약한 Log4j 버전이 있는 서버를 찾습니다.
  • 그들은 악성 LDAP 서버의 링크와 함께 대상 서버에 get 요청을 보낼 것입니다.
  • 대상 서버는 요청을 확인하는 대신 이 LDAP 서버에 직접 연결합니다.
  • 공격자는 이제 악성 코드가 포함된 LDAP 서버 응답과 함께 대상 서버를 보냅니다. 코드를 수신하여 검증 없이 실행할 수 있는 Log4j의 취약점으로 인해 해커는 이 취약점을 악용하여 대상 서버에 침입하여 연결된 시스템, 네트워크 및 장치를 악용할 수 있습니다.

Log4j 취약점이 사용자에게 어떤 피해를 줄 수 있습니까?

Log4j 취약점은 광범위한 소프트웨어 응용 프로그램 및 시스템에서 사용되기 때문에 우려됩니다.

로깅은 대부분의 소프트웨어 앱에서 필수 기능이고 Log4j는 업계 최고의 솔루션이므로 Log4j는 다양한 소프트웨어 시스템에서 애플리케이션을 찾습니다.

Log4j를 사용하는 인기 있는 서비스 및 앱에는 Minecraft, AWS, iCloud, Microsoft, Twitter, 인터넷 라우터, 소프트웨어 개발 도구, 보안 도구 등이 있습니다. 따라서 공격자는 가정 사용자, 코드 개발자, 서비스 공급자, 기타 관련 전문가 및 개인의 수많은 응용 프로그램, 서비스 및 시스템을 대상으로 할 수 있습니다.

또한 Log4j 취약점은 공격자가 악용하기 매우 쉽습니다. 전체 프로세스에서는 공격을 수행하는 데 전문가 수준이 아닌 더 적은 수의 기술이 필요합니다. 이것이 이 취약점을 악용하는 공격의 수가 증가하는 이유입니다.

Log4j 취약점의 영향은 다음과 같습니다.

  • DoS 공격
  • 공급망 공격
  • 코인 채굴
  • 랜섬웨어 및 트로이 목마와 같은 맬웨어 주입
  • 임의 코드 주입
  • 원격 코드 실행

그리고 더.

이러한 공격의 결과로 애플리케이션, 시스템 및 장치에 대한 소유권을 잃을 수 있으며 데이터를 판매하거나 조작하거나 외부 세계에 노출할 수 있는 공격자에게 데이터가 희생될 수 있습니다. 따라서 귀하의 비즈니스는 규정 준수 위험은 고사하고 고객 데이터 개인 정보 보호, 신뢰, 조직의 비밀, 판매 및 수익 측면에서 해를 입을 수 있습니다.

  향상된 게임 플레이를 위한 30가지 최고의 Fallout 3 모드

보고서에 따르면글로벌 기업 네트워크의 40% 이상이 이 취약점으로 인해 공격을 경험했습니다.

따라서 애플리케이션에서 취약한 Log4j 버전을 사용하지 않더라도 타사 통합에서 이를 사용할 수 있으므로 앱이 공격에 취약해질 수 있습니다.

Log4j 2.17.0 이전의 모든 Log4j 버전에 유의하십시오. 영향을 받습니다. 따라서 사용하는 경우 로거를 업그레이드해야 합니다. 또한 이 Log4j 취약점의 영향을 받는 유명 벤더는 Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet 등이 있습니다. 이들 중 하나를 사용하는 경우 지속적으로 앱을 모니터링하고 보안 시스템을 사용하여 문제가 발생하는 즉시 문제를 해결하십시오. 발생합니다.

Log4j의 영향을 받는 프로그램을 감지하고 문제를 해결하는 방법

Log4Shell 취약점의 CVSS 점수는 10입니다. 따라서 Log4j의 모든 문제는 아직 패치되지 않았습니다. 그러나 귀하 또는 귀하의 타사 공급업체가 귀하의 애플리케이션에서 사용한 Log4j를 사용하고 있을 가능성이 있습니다.

따라서 데이터, 시스템 및 네트워크를 보호하려면 몇 가지 수정 단계를 따르십시오.

#1. Log4j 버전 업데이트

현재 Log4j 버전을 Log4j 2.17.1로 업데이트하는 것은 Log4j 취약점으로 인한 공격으로부터 장치와 앱을 보호하려는 경우 가장 효과적인 치료 기술입니다.

Log4Shell은 잠재적으로 소프트웨어 생태계에 영향을 줄 수 있는 일종의 제로 데이 공격입니다. Apache는 최신 버전의 일부 취약점을 수정했지만 업그레이드 전에 시스템이 손상된 경우 여전히 위험에 노출되어 있습니다.

따라서 이를 가정할 때 버전을 업그레이드할 뿐만 아니라 즉시 사고 대응 절차를 시작하여 시스템과 앱에 취약점이 없는지 확인하고 공격을 완화해야 합니다. 또한 모든 서버 로그를 검토하여 침해 지표(IOC)를 찾고 시스템과 네트워크를 지속적으로 모니터링해야 합니다.

#2. 최신 방화벽 및 보안 시스템 사용

WAF(웹 응용 프로그램 방화벽) 및 차세대 방화벽과 같은 방화벽은 들어오고 나가는 데이터 패킷을 검색하고 의심스러운 패킷을 차단하여 공격자로부터 네트워크 경계를 보호하는 데 도움이 될 수 있습니다. 따라서 네트워크의 최신 방화벽을 사용하고 서버에 엄격한 발신 규칙을 설정하여 Log4j 취약점과 관련된 공격을 방지하십시오.

공격자가 방화벽을 우회할 수 있지만 공격자의 요청을 차단할 수 있는 방화벽을 통해 어느 정도 보안을 유지할 수 있습니다.

또한 IDS(침입 탐지 시스템), IPS(침입 방지 시스템) 등과 같은 모든 보안 시스템을 최신 서명 및 규칙으로 업데이트하십시오. 이러한 시스템은 RMI 및 LDAP 트래픽이 악성 LDAP 서버에 연결되는 것을 차단하거나 필터링하는 데 도움이 됩니다.

#삼. MFA 구현

응용 프로그램과 시스템에 다중 요소 인증(MFA)을 설정하면 공격자로부터 더 나은 보안을 제공할 수 있습니다. 공격자가 첫 번째 계층을 파괴하더라도 두 번째 보안 계층을 제공합니다. 지문, 홍채 스캔 등과 같은 생체 인식을 통해 보안 질문을 설정하거나 보안 PIN을 활성화할 수 있습니다.

MFA를 사용하면 공격자의 난이도와 본격적인 공격을 수행하는 시간이 증가합니다. 그 동안, 그것은 또한 당신이 아직 시간이 있을 때 필요한 수정 조치를 취할 수 있도록 사건을 즉시 알릴 수 있습니다.

또한 데이터 침해를 줄이기 위해 엄격한 VPN 정책도 적용해야 합니다. 이를 통해 사용자는 공격자에 대한 두려움 없이 어디서나 안전하게 시스템에 액세스할 수 있습니다.

#4. 시스템 속성 변경

최신 버전의 Log4j 라이브러리로 업그레이드할 수 없는 경우 Log4j 2.10 ~ Log4j 2.14.1 버전을 사용하는 경우 즉시 Java 시스템 속성을 변경해야 합니다.

  Vudu 결제 방법 업데이트 방법

공격자가 취약점을 탐지하고 이를 악용하는 방법을 찾는 데 사용하는 조회를 방지하는 방식으로 설정해야 합니다.

#5. JNDI 제거

이 치명적인 보안 취약점의 원인은 설계에 있습니다. JNDI 조회 플러그인에는 공격자가 공격을 수행할 수 있는 설계 결함이 있습니다.

JNDI는 로그의 입력 데이터를 기반으로 코드 실행에 사용되며, 로거는 검증 없이 모든 요청을 수락하므로 누구나 쉽게 조작할 수 있습니다.

보안 연구원은 이 플러그인이 2013년에 출시된 이후로 항상 구문 분석되지 않은 데이터를 허용하고 이를 Log4j 라이브러리로 보내는 것을 발견했습니다.

따라서 Log4j 취약점은 간단한 문자열 삽입으로 악용되기 쉽습니다. 공격자가 그것을 주입하면 로거는 문자열에서 요청한 작업을 수락하고 검증 없이 즉시 실행합니다.

따라서 시스템과 애플리케이션을 보호하려면 JndiLookup 클래스를 비활성화해야 합니다. 이렇게 하면 로거가 로그 데이터를 기반으로 조치를 취하는 것을 방지할 수 있습니다.

사실 JNDI 조회는 애플리케이션과 시스템을 보호하기 위해 기본적으로 Log4j 2.16.0에서 이미 비활성화되어 있습니다.

따라서 2.16.0 미만의 Log4j 버전을 사용하는 경우 JNDI 조회를 비활성화했는지 확인하십시오.

#6. 공급업체에 문의

모든 것이 제대로 되었다면, 방화벽과 보안 시스템이 업데이트되고, Log4j 버전이 업데이트되고, JNDI 조회가 비활성화된 경우 등 아직 긴장을 풀지 마십시오.

애플리케이션에서 취약한 Log4j 버전을 사용하지 않더라도 타사 공급업체가 이를 사용할 수 있습니다. 따라서 실제 문제는 타사 통합에 있었기 때문에 애플리케이션이나 시스템이 어떻게 해킹되었는지 알 수 없습니다.

따라서 공급업체와 상의하고 그들도 Log4j를 최신 버전으로 업그레이드하고 위에서 논의한 다른 보안 사례를 구현했는지 확인하십시오.

#7. Log4j 취약점 스캐너 사용

시스템 및 애플리케이션에서 Log4j 취약성을 쉽게 감지할 수 있도록 하는 많은 Log4j 취약성 스캐닝 도구가 시중에 나와 있습니다.

따라서 이러한 도구를 찾을 때 많은 도구가 가양성을 생성하므로 정확도를 확인하십시오. 또한 Log4j 취약성 식별, 노출 보고 및 취약성 수정에 중점을 둘 수 있으므로 요구 사항을 충족할 수 있는 도구를 찾으십시오.

따라서 초점이 탐지라면 문제를 탐지할 수 있는 Log4j 취약점 스캐너를 찾거나 문제를 탐지하고 해결할 수 있는 스캐너를 사용하십시오.

최고의 Log4j 스캐닝 도구는 다음과 같습니다.

  • Microsoft 365 Defender: Microsoft는 네트워크에서 Log4j 악용을 감지하고 방지하는 데 도움이 되는 다양한 보안 솔루션과 도구를 제공합니다. 원격 코드 실행 및 악용 시도를 탐지하여 Windows 및 Linux 장치의 Log4j 취약성으로부터 보호할 수 있습니다.
  • Amazon Inspector 및 AWS: Amazon은 Amazon EC2 인스턴스 및 Amazon ECR에서 Log4j 취약점을 찾기 위한 스캔 도구를 만들었습니다.
  • CloudStrike 아카이브 스캔 도구(CAST): CloudStrike는 Log4j 취약점을 탐지하는 우수한 스캔 도구도 만들었습니다. 이를 통해 공격자가 악용하기 전에 문제를 제때 해결할 수 있습니다.
  • Google Cloud Logging 감지: Google의 클라우드 로깅 감지 솔루션을 사용하면 Logs Explorer를 사용하여 Log4j 익스플로잇을 감지할 수 있습니다. 이 도구에서 로그 쿼리를 만들고 잠재적인 악용 문자열을 검색할 수 있습니다.
  • Google은 또한 Log4j 취약점을 감지하기 위한 오픈 소스 파일 시스템 스캐너인 log4jscanner를 만들었습니다.
  • BurpSuite Log4j 스캐너: 전문가와 기업이 Log4j 취약점을 감지하는 데 도움이 되는 보안 플러그인입니다.
  • Huntress Log4Shell Vulnerability Tester: 이 도구는 입력 필드를 테스트하는 동안 사용할 수 있는 고유 식별자를 무작위로 생성합니다. 애플리케이션 또는 입력 필드에서 취약점을 발견하면 보안 LDAP 서버가 악성 연결을 즉시 종료하고 사용자를 안전하게 보호합니다.
  • WhiteSource Log4j Detect: WhiteSource는 Log4j 취약점(CVE-2021-445046 및 CVE-2021-44228)을 감지하고 수정하는 데 도움이 되도록 GitHub에서 호스팅되는 무료 CLI 도구인 WhiteSource Log4j Detect를 만들었습니다.
  • Log4j용 JFrog 오픈 소스 스캐닝 도구: JFrog는 바이너리 및 소스 코드에서 Log4j 취약점을 찾기 위한 다양한 오픈 소스 솔루션과 도구를 만들었습니다.

결론

Log4j 취약점은 중요한 보안 문제입니다. 이 로깅 라이브러리는 다양한 응용 프로그램과 시스템에서 널리 사용되기 때문에 Log4j 취약점이 널리 퍼져 공격자가 광범위한 시스템과 응용 프로그램을 악용할 수 있습니다.

따라서 이 취약점으로부터 시스템과 애플리케이션을 보호하려면 Log4j 라이브러리를 최신 버전으로 업그레이드하고 위에서 논의한 최상의 보안 사례를 구현해야 합니다.