파이선이라는 가장 인기 높은 프로그래밍 언어에서 15년 전 취약점이 다시 발굴됐습니다. 이미 이 취약점이 내포된 오픈소스 프로젝트가 35만에 이르고, 그 프로젝트들이 활용된 애플리케이션은 수를 셀 수가 없을 정도라고 합니다. 최악의 취약점 로그4셸을 능가할 수 있을까요?

파이선 오픈소스 프로그래밍 언어에서 15년 동안 패치되지 않은 오류가 발견됐습니다. 이 오류는 이미 전 세계 수십만 개의 프로젝트에 삽입되어 있는 상황이라고 합니다. 그런데도 이 취약점에 영향을 받은 기업들은 태반이 그러한 사실을 모르고 있습니다. 다시 한 번 전 세계 소프트웨어 공급망에 커다란 문제가 발생한 것입니다.

[이미지 = freepik]
이러한 사실을 처음 발견한 건 보안 업체 트렐릭스(Trellix)이고, 문제의 취약점은 CVE-2007-4559라는 경로 조작 오류입니다. 현재까지 조사된 바에 의하면 35만 개 이상의 오픈소스 리포지터리들에 이 취약점이 발견되고 있다고 합니다. 오픈소스와 리포지터리를 활용한 최근의 소프트웨어 개발 방식을 생각하면 이 오픈소스들을 포함한 애플리케이션들의 수를 세는 게 불가능할 정도라는 걸 납득할 수 있을 것입니다.

트렐릭스의 수석 연구원인 더글라스 맥키(Douglas McKee)는 문제의 취약점을 내포한 코드베이스가 소프트웨어 개발, 인공지능, 머신러닝, 코드 개발, 보안, IT 관리, 미디어 등 다양한 곳에서 발견되고 있다고 설명하며 문제의 심각성을 자사 블로그를 통해 알렸습니다. 그 외에도 AWS, 페이스북, 구글, 인텔, 넷플릭스 등이 생성하고 유포한 프레임워크들에도 광범위하게 발견되는 중이라고 경고했습니다.

“사실상 현대 각종 IT 서비스들에 만연하게 퍼져 있다고 보면 됩니다. 이 취약점을 익스플로잇 하면 공격자가 피해자의 시스템 내 아무 곳에나 파일을 위치시킬 수 있게 되며, 종국에는 악성 코드를 실행시킬 수도 있게 됩니다. 만약 현재 조직 내 보유 중인 파이선 기반 서비스나 프로젝트들을 점검하지 않는다면 경로 조작 공격과 임의 코드 실행 공격에 당할 수 있게 됩니다.” 맥키의 설명입니다.

 

새로운 문제, 오래된 취약점

트렐릭스의 연구원들은 제일 처음 파이선에서 제로데이 취약점을 찾아낸 것으로 생각했었다고 합니다. 하지만 분석을 이어가다 보니, 이미 상당히 오래 전에 발견됐던 취약점이라는 사실이 드러났습니다. 문제의 근원은 파이선의 tarfile 모듈인 것으로 분석됐는데 깃허브(GitHub)와의 공동 조사를 통해 약 58만 8천 개의 고유 리포지터리들에서 이 tarfile 모듈들이 발견되었다고 합니다. 이 중 약 61%가 취약한 것으로 조사됐으며, 그래서 35만여 개의 파이선 리포지터리가 감염된 것으로 추정하고 있다고 트렐릭스는 밝혔습니다.

그렇다면 왜 15년이나 아무도 이 취약점을 패치하지 않았을까요? 여기에는 여러 가지 이유가 있을 수 있습니다. 하지만 그 책임이 파이선이라는 오픈소스를 유지 관리하는 단체나 오픈소스 참여자들에게만 있는 것은 아닙니다. 맥키도 이번에 취약점에 대해 알리며 제일 먼저 “특정 단체나 부류, 인물에게 책임을 전가할 수는 없는 문제”라는 걸 강조했습니다. “파이선과 같은 오픈소스 프로젝트에는 수많은 사람들이 자발적으로 참여하는 것이 보통입니다. 그래서 취약점 추적과 픽스를 전담할 사람이 없기도 하지요. 오픈소스의 특성입니다.”

게다가 이미 오래 전부터 파이선 프로젝트의 개발자 노트라는 문서에는 “tarfile을 사용할 때 리스크가 있을 수 있으니 신뢰할 수 없는 곳에서부터 받은 압축 파일을 해제하지 말라”는 경고문이 존재해 왔습니다. 보안 경고문이 꽤나 오래 전부터 파이선 개발자들 사이에서 공유되어 왔었다는 소리입니다. 다만 오픈소스에 첨부된 권고문 등의 텍스트 파일은 사람들이 그리 꼼꼼하게 읽지 않기 때문에 이 경고가 지난 15년 동안 묻혀 왔었던 것이라고 맥키는 설명했습니다.

“파이선의 공식 문서도 그렇고, 각종 파이선 튜토리얼 사이트들에서도 tarfile 모듈의 리스크를 정확히 어떻게 예방하고 완화시킬 수 있을지 알려주지 않습니다. 개발자들이 취약점 노트를 스스로 읽어서 알아내지 못했다고 하기에는 전체적인 분위기 자체가 그런 쪽으로 형성되지 않았습니다. 아무도 보지 않고, 아무도 알려주지 않으니까 말이죠. IT 업계 모두가 잊어버린 취약점이라고 해야 합니다. 어쩌면 이런 취약점들이 더 있을 수도 있습니다.”

익스플로잇 난이도, 더 쉬울 수가 없을 정도

상기했다시피 CVE-2007-4559는 경로 조작 취약점입니다. 파이선의 tarfile 모듈에 존재합니다. 공격자는 TAR 아카이브의 파일 이름에 “..”이라는 문자열을 첨부함으로써 피해자의 시스템 내 경로에 임의의 파일을 덮어쓰기 할 수 있게 됩니다. 트렐릭스의 분석가 찰스 맥팔랜드(Charles McFarland)는 “공격자가 사실상 피해자의 파일 시스템에 원격에서 접근할 수 있게 되는 것과 마찬가지 효과를 갖는다”고 설명합니다. 또한 “‘..’만 파일 이름에 더하면 되니 익스플로잇도 매우 간단하다”고 덧붙이기도 했습니다.

참고로 파이선의 tarfile은 다양한 종류의 파일과, 그 파일들의 메타데이터를 포함합니다. 나중에 아카이브의 압축을 해제할 때 이 메타데이터들이 활용됩니다. 파일 이름, 파일 크기, 파일 검사합, 파일 생성자 정보 등이 포함되어 있습니다. “tarfile 모듈은 TAR 아카이브를 생성하는 과정에서 각 파일의 메타데이터를 검사하고 수정할 때 이용되는 각종 필터를 손쉽게 추가할 수 있게 해주는 것입니다.” 트렐릭스 측의 설명입니다.

또 다시 조명 받는 공급망 공격

이번에 발견된 파이선 취약점은 다시 한 번 소프트웨어 공급망의 태생적 약점을 드러냅니다. 공격자들이 이 취약점 하나만 노려도 그 수를 다 셀 수도 없는 애플리케이션들에 영향을 줄 수 있다는 것이 공급망 공격의 전형적인 특징입니다. 공격 효율이 매우 좋아진다는 것이고, 그렇기에 최근 몇 년 동안 해커들 사이에서 공급망 공격이 계속해서 연구되고 실행되어 왔습니다. 파이선 라이브러리가 공유되는 사이트인 PyPI도 잦은 공격의 대상이 된 바 있습니다.

이 취약점은 사상 최악의 취약점이라고 불리는 로그4셸(Log4Shell)을 연상시키기도 합니다. 자바스크립트 생태계에서 발견된 이 취약점은, 사실상 자바스크립트 요소가 포함된 모든 웹사이트와 서비스, 애플리케이션들에 존재하는 것으로 알려져 있으며, 그렇기 때문에 찾아내어 픽스를 적용하는 것조차 앞으로 수년이 걸릴 것으로 예상됩니다. 아직 이번 파이선 취약점에 대한 정확한 평가가 다 내려지지는 않았지만 로그4셸과 비슷한 파급력을 가질 수 있다고 일부 보안 전문가들은 예상하고 있습니다.

제품에 대해 궁금한 점이 있으신가요?
빠르고 정확한 답변을 도와드리겠습니다.

TEL : 031-784-8500~1
E-mail : sales@pplus.co.kr