Computer >> 컴퓨터 >  >> 체계 >> Linux

Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

Log4Shell(CVE-2021-44228) 취약점은 많은 사이버 보안 연구원과 전문가에 의해 역사상 가장 치명적인 제로 데이 취약점으로 설명됩니다. 이는 2001년부터 일상적인 시스템 작업 및 소프트웨어 오류와 같은 이벤트를 기록하고 통신하기 위해 사용된 Log4j라는 이름으로 널리 사용되는 Java 유틸리티에 영향을 미칩니다. 여기에서 Linux 시스템을 보호하는 방법을 보여줍니다.

Log4Shell 취약점은 어떻게 작동합니까?

근본적인 수준에서 취약점은 부적절한 입력 유효성 검사로 인해 발생합니다. 이는 소프트웨어가 수신 데이터의 유효성을 제대로 검사하지 않아 취약점이 발생할 수 있는 경우에 발생합니다. 잘못 유효성이 검사된 입력을 사용하여 프로그램이 해서는 안 되는 작업을 수행하도록 할 수 있기 때문입니다.

Log4Shell은 특히 LDAP 및 JNDI를 사용하여 Log4j가 서버에 보내는 요청을 활용합니다. 이러한 요청을 이용하여 공격자는 취약한 시스템에서 코드를 실행할 수 있으며, 이로 인해 악의적인 행위자가 시스템을 완전히 제어하고 랜섬웨어를 설치하거나 데이터를 훔치는 능력을 가질 수 있습니다.

Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

Log4Shell은 무엇에 영향을 미칩니까?

Java는 매우 대중적인 프로그래밍 언어이기 때문에 Log4j를 로깅 기능으로 사용하는 Java로 작성된 많은 소프트웨어가 이 취약점의 영향을 받습니다. 이 취약점의 영향을 받는 가장 잘 알려지고 일반적으로 사용되는 소프트웨어로는 Apache와 Minecraft라는 비디오 게임이 있습니다.

영향을 받는 소프트웨어를 확인하는 방법

다른 사이버 보안 취약점과 마찬가지로 Log4Shell은 영향을 받는 소프트웨어를 패치하여 완화됩니다. 그러나 Log4Shell의 경우는 훨씬 다양한 소프트웨어에 영향을 미치고 영향을 받는 항목과 영향을 받지 않는 항목의 목록을 유지하는 것이 어려울 수 있기 때문에 좀 더 독특합니다.

운 좋게도 네덜란드 국가 사이버 보안 센터(National Cyber ​​Security Center)는 GitHub에 Log4Shell에 취약한지 여부를 알려주는 다양한 조직에서 개발한 소프트웨어 이름이 포함된 포괄적인 목록을 게시했습니다.

취약점에 대해 Apache 서버를 스캔하는 방법

이 취약점은 사이버 보안 및 소프트웨어 커뮤니티에 큰 영향을 미치므로 관리자가 서버에서 취약점을 검색할 수 있는 도구가 있다는 것은 놀라운 일이 아닙니다.

그러한 스캐너 중 하나는 Log4j-RCE-Scanner로, 여러 주소에서 Apache Log4j의 원격 명령 실행 취약점을 스캔할 수 있습니다.

Log4j-RCE-Scanner 설치

시작하기 전에 종속성을 설치해야 합니다. httpxcurl .

Curl은 apt를 사용하여 Ubuntu 및 Debian 기반 시스템에 쉽게 설치할 수 있습니다. 명령:

sudo apt install curl
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

pacman을 사용하여 Arch Linux에서도 동일한 작업을 수행할 수 있습니다. 명령:

sudo pacman -Sy curl

그리고 yum을 사용하는 CentOS 및 Fedora 설치에서 명령:

sudo yum install curl

다음 명령을 사용하여 httpx를 설치할 수 있습니다.

git clone https://github.com/projectdiscovery/httpx
cd httpx/cmd/httpx && go build .
sudo mv httpx /usr/local/bin/
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

필요한 모든 종속성을 설치한 후 Log4J-RCE-Scanner 저장소를 복제합니다.

git clone https://github.com/adilsoybali/Log4j-RCE-Scanner
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

새로 생성된 디렉토리에 액세스:

cd Log4j-RCE-Scanner/

마지막으로 Bash 스크립트에 필요한 실행 권한을 추가합니다.

chmod +x log4j-rce-scanner.sh
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

Log4j-RCE-Scanner 사용

스캐너를 설치하고 나면 마침내 실제로 사용하는 재미있는 부분에 도달할 수 있습니다.

다음을 입력하여 스크립트의 도움말 섹션을 읽으십시오.

bash log4j-rce-scanner.sh -h
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

이제 Log4shell 취약점에 대해 Apache 서버를 스캔할 수 있습니다.

bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]

-d를 사용하여 도메인과 Burp Collaborator를 지정할 수 있습니다. 및 -b 플래그. 도메인이 취약한 경우 취약한 도메인 이름을 가진 DNS 콜백이 Burp Collaborator로 전송됩니다.

또는 -l 플래그를 사용하여 도메인 목록을 지정할 수도 있습니다.

Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

Python 기반 스캐너 설치 및 사용

대신 Python 스크립트를 사용하려는 경우 미국 사이버 보안 및 인프라 보안국에서 개발한 log4-scanner를 사용할 수 있습니다.

설치하려면:

git clone https://github.com/cisagov/log4j-scanner/

디렉토리 액세스:

cd log4j-scanner/log4-scanner/

Python 기반 pip3를 사용하여 필요한 종속성을 설치할 수 있습니다. 명령:

pip3 install -r requirements.txt
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

-h를 사용하여 스크립트에서 제공하는 "도움말"을 볼 수 있습니다. 플래그:

python3 log4j-scan.py -h
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

단일 URL을 스캔하는 것은 간단하며 -u를 사용하여 수행할 수 있습니다. 플래그:

python3 log4j-scan.py -u example.com
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

-l을 사용하여 URL 목록을 스캔할 수도 있습니다. 플래그:

python3 log4j-scan.py -l list.txt
Log4Shell이란 무엇이며 이에 대해 Linux 시스템을 보호하는 방법

Apache 패치 방법

이 취약점을 해결하려면 Apache 구성을 최신 상태로 유지하는 것이 매우 중요합니다.

Apache 버전 확인은 CPanel 또는 WebHost Manager와 같은 관리 패널에서 확인하는 등 여러 가지 방법으로 수행할 수 있습니다. httpd를 실행하여 버전을 확인할 수도 있습니다. -v 명령 플래그:

httpd -v

Apache는 apt를 사용하여 가장 안전한 최신 버전으로 업데이트할 수 있습니다. Debian 및 Ubuntu 시스템의 명령:

sudo apt update && sudo apt upgrade apache2

yum을 사용해도 동일한 결과를 얻을 수 있습니다. CentOS에서 명령:

sudo yum install httpd

자주 묻는 질문(FAQ)

1. 취약점의 영향을 받는 Log4j 버전은 무엇입니까?

2.1.7.1 이하 버전은 익스플로잇에 취약합니다. 버전 2.15.0은 가장 쉽게 악용될 수 있는 요소를 수정했으며 2.17.1에서는 악용하기 어려운 원격 코드 실행 취약점을 수정했습니다.

2. 취약한 도메인 이름으로 DNS 콜백을 수신하려면 Burp Collaborator 유틸리티가 필요합니까?

Bash 기반 스캐너 개발자에 따르면 Burp Collaborator는 취약한 도메인 이름을 가진 DNS 콜백을 수신하기 위해 스크립트 자체와 함께 사용됩니다. 또는 Interact.sh 주소를 사용할 수 있습니다.

3. Bash 기반 스캐너를 사용하려면 다른 종속성이 필요한가요?

기본 사용의 경우 시스템에 종속성으로 httpx 및 Curl만 설치하면 됩니다. 그러나 일부 기능을 잠금 해제하려면 Subfinder, Assetfinder 및 Amass도 설치해야 합니다.