수년간 준비한 치밀한 해킹음모가 우연히 발각되었다!
최신 (2024.4월 초) 뉴스임
xz util 이라는 오픈소스 패키지가 존재함. 간단하게 설명하자면 알집이나 winrar 같은 압축 프로그램임.
오픈 소스라 개인개발자 한명이 개발하고 유지보수를 하는 프로젝트였음.
하지만 이 프로그램의 성능은 훌륭했고,
그래서 우리가 인터넷을 이용할 때 거치는 거의 모든 리눅스 서버에는 이 패키지가 깔려서 이용되고 있음.
2021년, Jia Tan 이라는 개발자가 이 프로젝트의 유지보수를 돕겠다고 나섰음.
오픈소스 생태계에서는 늘상 일어나는 일임. 누구나 프로젝트에 참여해서 도움을 줄 수 있음.
혼자서 개발하고 유지보수하는데 관심을 가지고 돕는 사람이 있다면 반갑고 고마운 일이지.
Jia Tan은 지속적으로 코드를 유지보수하여 패치를 만들어 올리면서 프로젝트 창립자의 신뢰를 얻어갔음.
2022년에 일부 유저들이 코드가 잘 업데이트 되지 않고 유지보수가 느리다, 개발자가 프로젝트를 방치한다면서
개발자에게 불만을 표하고 개발자를 공개적으로 비판하기 시작함.
그럴거면 운영권을 다른 사람에게 넘기라고 이메일로 원 개발자를 압박하기 시작함.
결국 수년간 혼자서 프로젝트를 만들고 유지보수 해오던 원 개발자는 열심히 패치를 올리던 Jia Tan 에게 프로젝트에 관한 권한을 부여함.
2023년 Jia Tan은 보안취약점에 관한 연락처 공지에서 원개발자의 연락처를 삭제하고 자기 연락처만 남김.
2024년 1월, 수년간 신뢰를 쌓은 Jia Tan은 마침내 프로젝트에 관한 모든 권한을 획득함.
2024년 2월 24일, Jia Tan은 xz util 버전 5.6.0을 업로드함.
이 xz util은 백도어 관련 기능을 테스트 코드에 숨겨 놓고, 특정 스펙의 시스템에서 실행될때만 기존 특정 기능을 백도어 코드로 대치하도록 되어 있었음.
그렇게 심어진 백도어 코드가 실행되면 원격제어를 위한 권한 인증 시스템을 무력화 시켜서 해커가 시스템에 접근할 수 있는 모든 권한을 얻도록 되어 있었음.
다시 말하지만 전 세계 리눅스 기반 시스템에 이 xz util 이라는 압축 프로그램이 깔려 있음.
2024년 3월 9일, Jia Tan은 xz util 버전을 5.6.1로 업데이트 함. 기존 5.6.0이 실행되면서 메모리 점검 프로그램에서 오류가 나자 이 오류를 내지 않고 실행되도록 업데이트 한 거임. 오류가 나면 시스템 관리자가 오류의 원인을 추적하면서 백도어의 존재를 들킬 가능성이 있으니까.
그러면서 Jia Tan을 비롯한 몇몇 유저들이 각 리눅스 배포자들에게 기존 버전에 대해 버그리포팅을 하며 xz util 5.6.0으로 업데이트 하라고 요청함. 실제로 몇몇 리눅스 배포판은 요청을 반영하여 그들이 배포하는 리눅스에 포함된 xz util 을 해당 버전으로 업데이트 함.
한편, 마이크로 소프트에서 일하던 유명 개발자 Andres Freund는,
한 프로세스가 CPU를 엄청나게 많이 쓰는 걸 보고 이상하게 여겨 조사를 시작함
그리고 곧 XZ Utils이 문제의 원인이며, XZ Utils 에서 백도어를 심는다는 것을 발견해 내고
3월 29일에 이를 알림으로써 전세계에 이 백도어의 존재가 알려지게 됨.
원개발자를 비판하고 압박했던 유저들이나, 리눅스 배포자들에게 버그리포팅을 하고 버전업을 해달라고 요청했던 유저들도 다 한통속 또는 동일인물이었던 것으로 의심되고 있음.
다행인 점은, 많은 리눅스 배포판이 아직은 백도어를 심는 두 최신버전을 이용하지 않고 있었다는 점임.
만약 그대로 문제를 모른채 시간이 흘렀다면 결국 모든 리눅스 시스템은 xz util 의 버전을 5.6.1으로 업그레이드 했을 테니까
전세계 서버가 해커에게 뚫리는 건 시간문제였지만,
다행히도 그렇게 되기 전, Andres Freund의 작은 호기심과 실력이 전 지구적 참사를 막은 거임.
“어? 이 프로세스는 왜 이렇게 CPU를 많이 잡아먹지? 한 번 알아볼까?”
그리고 한편….

설마 하고 내 컴퓨터를 확인해 보니 버젓이 깔려 있는 xz util 5.6.1
이거 봤을때는 아직 백도어가 특정 시스템에만 설치된다는 걸 모르고 있어서 순간 온몸에 소오오름이….
아직도 좀 께름칙함.
여러분도 터미널이나 콘솔 열어서 확인해 봐요. 리눅스 기반 운영체제에서 2월 3월 사이에 시스템 업데이트 등의 작업을 했다면 깔려 있을 수도 있음.


