- 보안 업체 Kaspersky, 새로운 보안 도구 KVRT (Kaspersky Virus Removal Tool) 무료 공개 - 리눅스 플랫폼에서 바이러스를 찾아 삭제하는 기능 제공
2. 주요내용
- 최근 XZ Utils라는 백도어가 리눅스 생태계를 크게 위협 > Linux 시스템이 본질적으로 위협으로부터 안전하다는 일반적인 오해를 증명
- Kaspersky, 새로운 보안 도구 KVRT 무료 공개 > 실시간으로 멀웨어를 막아내는 도구는 아님 > 64비트 시스템만 지원하며 작동하려면 인터넷 연결이 필요 > 실행을 위해 루트 권한 필요하며, GUI, CLI 지원 > 스캔을 통해 이미 세상에 알려진 멀웨어나 익스플로잇을 탐지 및 치료 > 사용자는 매번 바이러스 백신 데이터베이스를 다운로드해야 함 > 삭제 또는 치료된 악성 파일의 복사본은 '/var/opt/KVRT2024_Data/Quarantine'(루트 사용자용)에 저장 > Linux 배포판, Red Hat Enterprise Linux, CentOS, Linux Mint, Ubuntu, SUSE, openSUSE, Debian 등에서 작동 확인
- 모든 GNU/리눅스 운영체제의 인기 오픈소스 ‘XZ Utils’ 라이브러리에서 백도어가 발견 > 일종의 소프트웨어 공급망 공격으로 볼 수 있음 > 기존 공급망 공격과 달리 운영체제 레벨에서 사용되는 오픈소스 프로젝트 저장소에 접근 -CVSS 점수 10.0 할당 되었으며, 무단 원격 엑세스를 허용하도록 설계된 백도어 설치 - XZ Utils에 대한 점검과 패치 개발이 완료될 때까지 다운그레이드하여 사용 권고
2. 주요내용
2.1 XZ Utils [1]
- 범용 데이터 압축 형식 - GNU/리눅스 운영체제에서 데이터 압축에 필요한 필수 유틸리티를 제공하는 인기 오픈소스
2.2 CVE-2024-3094 [2]
- XZ-Utils의 liblzma 라이브러리에서 백도어 악성코드가 발견 (CVSS: 10.0) > 백도어 동작시 공격자가 SSH 인증없이 서버 로그인 가능 > 일련의 복잡한 난독화 과정을 거쳐 라이브러리에 연결된 모든 소프트웨어에서 사용할 수 있는 수정된 liblzma 라이브러리가 생성 > 수정된 라이브러리를 사용해 XZ Utils 라이브러리와의 데이터 상호 작용을 가로채고 수정
영향받는 버전: XZ Utils 5.6.0 및 5.6.1
- 해당 백도어는 GCC 컴파일러의 GNU 간접 함수(IFUNC) 속성을 활용하여 실행 흐름에 악성코드를 삽입 [3]
> 삽입된 백도어 코드는 실행을 가로채거나 후크
> 페이로드 오브젝트 파일로부터 추출되고, 조작된 "_get_cpuid()"를 호출하는 코드를 삽입하기 위해
> cpuid를 확인하는 "is_arch_extension_supported"를 대체하기 위해 ifunc 호출을 수정
One of the core techniques used by the XZ backdoor to gain initial control during execution is the GNU Indirect Function (ifunc) attribute for the GCC compiler to resolve indirect function calls in runtime. The implanted backdoor code initially intercepts or hooks execution. It modifies ifunc calls to replace a check "is_arch_extension_supported" which should simply invoke "cpuid" to insert a call to "_get_cpuid" which is exported by the payload object file (i.e., liblzma_la-crc64-fast.o) and which calls malformed _get_cpuid() which is implanted into the code shown in the figure below.
- 2021년 공격자는 깃허브에 JiaT75(Jia Tan) 계정을 생성 [4] > 여러 프로젝트에 참여하며 평판을 쌓아 XZ 프로젝트 관련자로 참여 > 이후 새로운 관리자 계정 추가, 커밋 병합 등을 거쳐 백도어를 포함한 커밋이 저장소에 추가 > MS는 깃허브 서비스 약관 위반을 이유로 XZ Utils 리포지토리를 비활성화
3. 대응방안
① XZ-Utils 업데이트 금지 또는 5.4.x 버전으로 다운그레이드 [5] - xz --version 명령 결과가 'xz 5.6.1'이나 'liblzma 5.6.1'인 경우 다음 중 두 가지를 수행 1) 사용하고 있는 리눅스 배포판의 업데이트 버전이 여부 확인 및 있을 경우 업데이트를 진행 2) XZ 유틸즈는 다운그레이드 3) SSH 전체를 당분간 비활성화
> 악의적인 행위자는 이미 5.4 버전을 출시하고 서명했기 때문에 더 이전 버전으로의 다운그레이드 주장 의견도 존재
② 취약한 XZ-Utils를 포함하지 않는 리눅스 배포판으로 다운그레이드 또는 업데이트 버전으로 마이그레이션 [6]
③ 무료 온라인 스캐너 활용 [7]
> 펌웨어 보안 회사 Binarly는 취약점에 영향 받는 리눅스 실행 파일을 탐지하도록 설계된 새로운 온라인 스캐너 공개
> 바이트 문자열 매칭 및 파일 해시 차단 목록과 같은 기존 방법과는 다른 새로운 방식으로 탐지