고강빈([email protected]), 2024년 4월 18일 (최종업데이트: 2024년 4월 22일)

리눅스 오픈소스에서 발견된 심각한 보안 위협

지난 3월 29일, 사이버 보안 분야에 충격적인 사건이 발생했습니다. 거의 모든 리눅스 및 유닉스 계열 운영체제에서 사용되는 XZ Utils에 심각한 보안 취약점이 발견된 것입니다. 세계 상위 백만 개 웹사이트 중 96%, 클라우드 컴퓨팅 서비스의 90%가 리눅스에서 실행된다는 점을 생각하면 엄청난 위협이 되는 공격이었죠.

National Institute of Standards and Technology(NIST): National Vulnerability Database

National Institute of Standards and Technology(NIST): National Vulnerability Database

이 취약점은 최악의 보안 심각도 점수인 10점을 받았는데, 더욱 놀라운 것은 이것이 우연히 발견되었다는 점입니다. 기존 어떤 보안 시스템과 프로세스로도 이를 막지 못했던 것이죠.

3년을 준비한 최악의 해킹

XZ Utils는 데이터를 압축하고 해제하는 데 사용되는 중요한 프로그램으로, 리눅스 커널을 압축하는 데에도 활용됩니다. 이 오픈소스 프로젝트는 단 한 명의 개발자인 Lasse Collin(이하 L)에 의해 유지 관리되고 있었습니다.

이번 사태의 범인인 Jia Tan(이하 J)은 2년 이상 동안 이 오픈소스에 성실하게 contribute 하면서 신뢰를 얻었습니다. 그러던 중 L은 Denis Ens(이하 D)와 Jigar Kumar(이하 K)라는 사용자로부터 몇 건의 메일을 받게 됩니다. 그 메일의 내용은 ‘오픈소스가 관리되지 않고 있다’라는 불평을 담은 메일이었죠. 지속해서 압박을 가하던 D와 K는 관리자 권한을 다른 이에게 넘길 것을 강요했고, 마침내 2023년 1월, J는 XZ Utils 라이브러리의 관리자 권한을 획득하게 되죠. 여기서 무서운 점은, 그 이후 D와 K는 모두 감쪽같이 종적을 감추었다는 사실입니다. 많은 개발자는 이 3명의 사용자가 모두 같은 사람일 것으로 추측 중입니다.

AI 제작 이미지

AI 제작 이미지

이와 같이 L을 압박해 관리자 권한을 얻게 된 J는 2023년 3월, 보안 취약점 발견 보고를 위한 연락처에서 L을 삭제하였고, 마침내 2024년 1월, J는 모든 권한을 얻게 됩니다. 그 후 한 달이 지난 2024년 2월, J는 XZ Utils에 공격자가 불법적으로 시스템에 접근할 수 있도록 하는 악성 코드인 백도어(Back-door)를 테스트 파일과 빌드용 스크립트에 포함하는 교묘한 방식으로 악의적인 버전을 배포했고, 이 버전은 곧 우분투, 페도라, 데비안 등 주요 리눅스 배포판에 포함되어 퍼져나갔습니다. 이처럼 치밀하게 계획되고 작업 된 공격에 모든 사람은 XZ와 같이 널리 사용되는 오픈소스에 악성코드가 존재하리라고는 의심치 않았습니다. 심지어 보안 연구원들과 리눅스 전문 개발자들을 포함해서 말이죠.

정말 다행히도, 이 문제는 2024년 3월 29일, Microsoft의 데이터베이스 개발자인 Andres Freund에 의해 우연히 발견되었습니다. 그는 단순한 데이터베이스 벤치마크 작업 중 한 프로세스의 시스템 자원 사용이 비정상적으로 높은 것을 발견하고 원인을 추적하다가 이 심각한 보안 결함을 밝혀냈습니다. 다행히 Unstable 버전, 즉 정식 배포 이후 일정 기간의 유예를 두는 기간에 발견되어 큰 피해는 없었지만, 만약 Stable 버전으로 올라가기 전에 Freund가 발견하지 못했다면 J는 MS, Google, OpenAI는 물론 세상 거의 모든 컴퓨터에 로그인하여 정보를 탈취할 수 있었을 것입니다.

큰 타격을 입은 오픈소스 생태계

이번 사건은 오픈소스 생태계에 큰 타격을 줄 것입니다. 우분투, 데비안, 페도라와 같은 리눅스 프로젝트는 J의 공격이 있기 이전으로 모든 버전을 되돌려야 하며, J가 누군지 밝혀지지 않은 이상 그가 또 어떤 오픈소스 프로젝트에 공격을 가하고 있는지 알 수 없기 때문이죠.

‘모든 소프트웨어는 개방되어야 한다’라는 정신 아래 시작된 오픈소스(Open-source)는 1983년, 리처드 스톨만(Richard Stallman)에 의해 시작되었고, 1990년대 리눅스의 아버지 리누스 토발즈(Linus Torvalds) 등이 동조하며 점차 확산된 문화입니다. 이처럼 자발적 참여와 신뢰를 바탕으로 40년이 넘는 시간 동안 발전해 온 오픈소스 정신이 이번 사건을 통해서 크게 훼손되었다는 것은 정말 슬픈 일이자 무서운 일입니다.

이번 사태를 계기로 전 세계는 오픈소스 프로젝트의 관리 체계와 보안 프로세스 전반에 대한 개선이 필요하다는 것에 의견을 모으고 있습니다. 오픈소스의 장점을 보호하면서도 악의적 공격으로부터 안전할 수 있는 방안을 마련해야 한다고 말이죠. 신뢰와 기여를 바탕으로 한 문화가 불신으로 점철되어 폐쇄적으로 변질되지 않기를 바랍니다.