다양한 리눅스 배포판에서 사용되는 XZ Utils의 최근 패키지에서 백도어 코드가 포함된 것이 확인되었다. 이 포스트에서는 XZ Utils 및 XZ Utils의 라이브러리 내 존재하는 취약점 CVE-2024-30941에 대해 설명한다.
목차
XZ, XZ Utils는 무엇인가?
‘XZ‘는 무손실 데이터 압축의 한 유형이다. 그리고 ‘XZ Utils‘는 XZ형식 파일의 압축 및 압축 해제 기능을 포함하는 명령줄 도구(Command Line Interface)모음이다. XZ Utils는 데이터를 압축된 형태로 관리, 배포 및 저장하는 데 필수인 기능을 제공하여 다수의 리눅스 배포판에 채택되어 소프트웨어 패키징 및 아카이빙등에 사용된다.
취약한 XZ Utils 버전
취약성이 확인된 버젼은 XZ Utils 5.6.0
및 5.6.1
이다.
CVE-2024-3094 취약점
원격명령실행(RCE)이 가능한 악성 코드는 xz의 버전 5.6.0
, 5.6.1
tarball 파일에서 발견되었다. 해당 버젼의 tarball 파일을 사용해 XZ Utils를 빌드하면, 패키지 내 난독화되어 숨겨져있던 악성 코드가 빌드 과정에서 정상 파일에 추가되어 최종 바이너리가 만들어진다. 빌드 프로세스는 소스 코드 내부에서 테스트 파일로 위장한 악성 코드 객체 파일을 추출하고, 이 객체 파일이 포함되며 liblzma 코드의 특정 함수가 수정된다. 결과적으로, 이 라이브러리를 링크해 사용하는 모든 소프트웨어가 악성 코드에 노출된다. 악성코드가 liblzma 라이브러리 내부에 위치하므로, 같은 라이브러리를 사용하는 프로세스들이 조작된 함수를 호출 시 그 과정에서 전달되는 함수 인자값 및 반환값 데이터를 가로채거나 조작할 수 있다.
원격 명령 실행 및 sshd 인증 우회
- CVE-2024-3094: 공격자가 sshd 인증을 우회하고 원격 코드 실행을 통해 시스템에 무단으로 액세스할 수 있게 한다. 공격자는 RSA_public_decrypt 함수를 가로채고 고정된 키 Ed448을 사용하여 호스트 서명을 검증한 후, 검증이 성공하면 system() 함수를 통해 전달한 악성 코드(명령)를 실행한다.
피해 예상 범위
이 백도어를 통해 공격자가 sshd 서비스의 인증을 우회하고, 원격에서 시스템에 무단 액세스가 가능하고 임의의 명령을 실행할 수 있다. 궁극적으로, 해당 취약 시스템을 완전 장악 할 수 있고, 이는 정보 유출, 추가 악성 코드 설치, 내부 네트워크 침투 등 다양하고 치명적인 위험을 초래할 수 있다.
취약성 존재 여부 확인 방법
시스템에 설치된 XZ Utils 바이너리를 버젼(-V, --version) 옵션을 사용해 실행하거나, 바이너리에서 문자열을 추출해 XZ Utils 5.6.0
이나 XZ Utils 5.6.1
문자열이 존재하는지 확인한다.
영향을 받는 배포판
Tenable에서 취약점 관련 FAQ페이지를 만들어 취약점 정보 및 영향을 받는 리눅스 배포판 정보2를 제공중이다.
영향을 받지 않는 배포판
아래 목록은 이 취약점에 영향을 받지 않음이 확인된 배포판들이다.
- Fedora Linux 40
- RedHat Enterprise Linux
- Debian stable 버젼
- Amazon Linux, AWS Infrastructure (xz 미사용)
- SUSE Linux Enterprise, Leap
취약점 패치 방법
CISA에서는 취약한 버젼이 확인된 경우 즉시 XZ Utils를 취약하지 않은 이전 버전(예: 버전 5.4.6)으로 다운그레이드할 것을 권장했다.3
요약(TL;DR)
XZ Utils 5.6.0 버전 및 5.6.1 버전에 CVE-2024-3094 백도어가 포함되며 일부 리눅스 배포판에 영향을 미쳤다. 이 취약점은 공격자가 원격 시스템에 sshd 인증을 우회하여 무단으로 액세스하고 임의의 명령을 실행해 최종적으로 시스템을 장악 할 수 있게 한다. 영향을 받는 시스템은 즉시 5.6.0
, 5.6.1
이전 버전으로 다운그레이드할 것을 권장한다.
참고자료
- CVE-2024-3094
https://nvd.nist.gov/vuln/detail/CVE-2024-3094 ↩︎ - Frequently Asked Questions About CVE-2024-3094, A Backdoor in XZ Utils
https://www.tenable.com/blog/frequently-asked-questions-cve-2024-3094-supply-chain-backdoor-in-xz-utils ↩︎ - Reported Supply Chain Compromise Affecting XZ Utils Data Compression Library, CVE-2024-3094
https://www.cisa.gov/news-events/alerts/2024/03/29/reported-supply-chain-compromise-affecting-xz-utils-data-compression-library-cve-2024-3094 ↩︎