리눅스에서 데이터 압축에 필요한 도구인 'XZ Utils'에서 백도어가 발견되었습니다. CVE-2024-3094로 명명된 이 취약점은 현지 시간으로 2024년 3월 29일 발표되었습니다. 소프트웨어 공급망 공격의 일종으로, 5.6.0 ~ 5.6.1 버전에서 무단 원격 액세스를 허용하도록 하는 백도어가 심어져 있었다고 합니다. 이 백도어가 동작하면 공격자가 서버의 SSH에 인증 없이 로그인이 가능하다고 합니다. 이 취약점은 대부분 리눅스와 관련이 있지만 일부 macOS에서도 같은 문제가 있는 것으로 나타났습니다.
CVSS 점수라고 하는 취약점의 위험성을 표기하는 점수가 있습니다. 이 취약점은 CVSS 점수 10.0점으로, 부여할 수 있는 최대 점수를 받았습니다. 그만큼 IT 업계에서는 이 취약점을 심각하게 보고 있다는 것입니다. 한국인터넷진흥원 인터넷침해대응센터에서도 4월 1일 공지를 올리며 보안 조치를 적용할 것을 권고했습니다.
이번 사건이 다른 사건과 다른 점이 하나 있습니다. 이번 사건에서는 공격자가 GitHub에서 2021년부터 여러 오픈소스 프로젝트에 참여하면서 XZ 프로젝트 관련자로 등극한 이후 백도어를 심었고, 거의 2~3년 가까이를 공들이면서까지 이번 공격을 실행했다는 점입니다. GitHub에서는 XZ Utils 관련 깃허브를 폐쇄시켰습니다.
그렇다면, 이 취약점이 나에게도 해당되는지 궁금할 수도 있을 것 같습니다. 그래서 직접 확인해 보았습니다. 확인하는 방법은 간단합니다. 리눅스나 맥의 터미널에서 이 명령어를 입력해 봅니다.
xz --version
이 명령어의 결과값이 이 둘 중 하나라면 이 취약점에 해당된다는 겁니다.
xz (XZ Utils) 5.6.0 또는 5.6.1 liblzma 5.6.0 또는 5.6.1
만약에 이렇게 나온다면 다음 세 가지 조치 중 두 가지를 하면 된다고 합니다.
- 리눅스 배포판 또는 macOS를 업데이트한다.
- XZ Utils를 다운그레이드하거나,
- SSH 전체를 비활성화시킨다.
문제가 될 수 있는 리눅스 배포판은 다음과 같습니다.
- 레드햇: 페도라 41과 페도라 로하이드
- 수세: Tumbleweed, MicroOS
- 데비안: Stable 버전에서는 없음
- 칼리: 3월 26일~29일 사이 업데이트를 진행한 적이 있다면 해당
리눅스뿐만 아니라 맥에서도 XZ Utils를 일부 사용하고 있는 만큼 맥에서도 조치가 필요할 텐데요, brew update
, brew upgrade xz
를 실행하면 XZ가 5.4.6으로 다운그레이드됩니다.
다운그레이드한 버전에서도 취약점이 발견되지 않으리라는 보장은 없지만, 현 시점에서 공식적으로 확인된 바는 없다고 합니다. 공격자가 여러 프로젝트에 참여하면서 500회 이상의 커밋을 한 것으로 알려져 있어, 백도어가 심어진 다른 프로그램이 존재할 수도 있다고 합니다.
국내에서는 이 취약점으로 인한 피해는 아직 접수된 바가 없다고 하지만, 치명적인 취약점인 만큼 최신 버전으로의 업데이트를 하지 않을 것을 당부했습니다.