“오픈소스, 늘 조심”…개발자들 보안 관행 ‘허술’

개인 개발자들 특히 위험, 기업·조직 비해 매우 취약 일부 개발자, 악감정으로 코드 삭제, 라이브러리 백도어 삽입도 전문가들 “MFA 토큰 필수, 중요 프로젝트 계정은 기업·조직 계정으로 전환”

2024-12-05     이윤순 기자
오픈소스 이미지. (사진=셔터스톡)

[애플경제 이윤순 기자] 오픈소스는 일군의 개발자들에 의해 만들어져, 널리 보급된다. 그러나 이들 오픈소스 개발자들의 보안 관행이 매우 허술하다는 지적이다. 그로 인해 오픈소스 전체 생태계가 위험해지고 있다.

최근 ‘스마트건설 엑스포 2024’에서 만난 스마트 안전 기술 업체 관계자도 “비용 절감을 위해 주로 오픈소스 기반 솔루션을 개발하면서 보안에도 나름대로 신경을 쓴다”고 했다. 그는 “그럼에도 우리가 알 수 없는 누군가로부터 도입한 것이다보니 찜찜한 구석이 없는 것은 아니다”고 했다. LLM 경량화 모델 전문인 S사 관계자도 “업무 특성상 다양한 오픈소스에 의존할 수 밖에 없는데, 솔직히 말해 그로 인한 보안 문제에 완벽하게 대처할 방법은 없다”고 밝혔다.

리눅스 재단 “개발자 보안 재평가해야”, 국내 IT업계도 “늘 찜찜”

실제로 이런 오픈소스에 대한 보안 우려는 국내뿐 아니다. 최근 리눅스 재단이 조사한 바에 따르면, 개별적인 개발자 계정의 보안은 오픈소스 생태계에 심각한 위협을 가하는 것으로 나타났다.

이에 따르면, 소위 가장 인기있다는 오픈소스 패키지를 포함해 이를 만든 개발자 계정의 보안이 허술한 경우가 많아 오픈소스 커뮤니티 전체에 심각한 위협이 되고 있다. 리눅스 재단은 1만 곳 이상의 기업을 대상으로 조사를 실시, 이같은 결과를 얻어냈다. 이를 위해 프로덕션 애플리케이션에 사용되는 오픈소스 소프트웨어(FOSS) 라이브러리에 대한 1,200만 건 이상의 관찰 데이터를 집계했다. 즉 FOSS의 광범위한 실태를 조사한 것이다.

국내에서도 IT업계는 물론, 산업계 전반에 걸쳐 FOSS는 필수적인 요소가 되고 있다. 오픈소스 기반 솔루션의 경우 코드베이스의 96%가 FOSS를 포함하고 있다는 조사 결과도 있다. 그러므로 프로젝트 개발자의 보안을 재평가해야 한다는 목소리가 높다.

앞서 리눅스 재단에 따르면 조사에서 확인된 상위 500개 오픈소스 패키지의 상당 부분이 한 개인의 개발자 계정으로 호스팅된 것들이다. 즉 완벽한 보안을 장담할 수 없다는 의미도 된다. 이들 개인 개발자들은 보안의 중요성을 충분히 인식하지 못할 수도 있다는 경고가 따른다.

그럼에도 오픈소스 생태계에선 이런 개인 개발자 계정에 대한 의존도가 매우 높다. 그럼에도 불구하고, 이런 계정은 대부분 기업이나 조직 계정보다 보안 기능이 취약할 수 밖에 없다. 실제로 많은 개인 개발자 계정은 다중 인증(MFA)과 같은 가장 기본적인 보안 보호 기능조차 갖추지 못한 경우가 많은 것으로 드러났다. 특히 기업이나 조직과는 달리 권한 부여나 엑세스 관리, 노출 제어 등의 보안 기능이 취약하기 짝이 없다.

상대적으로 개발자 계정은 만들기가 쉽다는 것도 문제다. 특히 개인 개발자가 계정만 만들어놓고 오랜 휴면기를 갖거나, 코드 업데이트가 이루어지지 않는 경우 문제는 더 심각해질 수 있다는 지적이다. 이런 계정은 언제든 악용되거나 사이버범죄자들이 침해하기 쉽기 때문이다.

사진은 '국제보안엑스포 2024'로서 본문과 직접 관련은 없음. (사진=애플경제)

깃허브 가짜 계정 악용, 개인 개발자 계정 악의적 ‘인수’도

최근엔 깃허브와 같은 오픈 플랫폼이나 파이썬 기반의 인데스인 ‘PyPI’를 포함한 저장소에서 이런 개인 개발자 계정을 ‘인수’하는 빈도가 증가하고 있음이 포착되고 있다. 이는 분명 휴면 계정을 악용하려는 제3자의 악의적 시도를 의심케 하는 징후라는 분석이다.

제3자 혹은 사이버범죄자들이 이런 개인 계정에 침투하기 위해 구사하는 수법은 다양하다. 그 중 가장 인기있는 방법 중 하나는 백도어링이다. 이는 해커가 악성 코드를 인기있는 패키지에 삽입, 패키지가 시스템에 설치되면 쉽게 진입할 수 있는 통로를 제공한다.

리눅스에 따르면 실제로 2019년에 루비(Ruby) 개발자의 계정이 침해되어 11개의 패키지에 백도어가 삽입되는 사고가 발생하기도 했다. 리눅스는 “당시 (제3자의) 개인 계정 ‘인수’가 소프트웨어 보안에 상당한 위험 요인기긴 하지만, 널리 보급된 패키지를 유지 관리하는 개인 개발자가 마음먹기에 따라선 더 큰 문제가 생길 수도 있다”고 짚었다.

예를 들어, 개발자가 프로젝트를 제거하거나 '삭제'하기로 결정함으로써 심각한 혼란을 일으킬 수 있다. 실제로 지난 2015년에도 이런 일이 있었다. 당시 오픈소스 패키지를 유지, 관리해오던 개발자는 자신의 처우에 대한 항의의 표시로 코드를 제거해버렸다. 이로 인해 무심하게 그의 ‘작은 ‘코드 조각’이 들어있던 패키지를 수백 개씩 다운받았던 업체들이 큰 피해를 입었다. 다운받은 수 많은 패키지가 모조리 망가진 것이다.

이처럼 개발자가 유지 관리하는 소프트웨어를 의도적으로 파괴하는 사례가 가장 위험한 경우다. 대표적으로 지난 3월 마이크로소프트의 개발자가 리눅스 라이브러리 XZ 버전 중 한 곳에 백도어가 심어져 있음이 발견되기도 했다. 이같은 XZ-Utils에서 보듯, 악의적인 개발자들, 혹은 개발자로 위장한 해커들이 장시간 신뢰를 쌓으며 이처럼 백도어를 심어두는 사례도 드물지 않다.

지난 2월에도 여러 주요 리눅스 배포판의 인기 있는 데이터 압축 라이브러리에 악성 백도어가 심어져 수백만 대의 시스템이 위험에 처한 적이 있다. 당시 이런 위협을 가한 공격자는 자신의 가짜 깃허브 계정을 사용, 유틸리티의 원래 작성자의 신뢰를 얻기 위해 노력했다. 결국 수년간의 신뢰를 바탕으로 자신을 오픈소스 프로젝트의 공동 유지 관리자로 만드는데 성공한 후, 이같은 짓을 저지른 것이다.

다행히 당시 마이크로소프트 개발자 안드레스 프로인트의 예리한 관찰력 덕분에 백도어를 미리 발견할 수 있었다. 이를 오픈월 프로젝트의 보안 메일링 목록에 등재, 여러 소프트웨어 공급업체에 문제를 알림으로써 더 이상 큰 피해를 막을 수 있었다.

이에 보안 전문가들은 “평소 오픈소스 개발자 계정을 잘 파악하면서, 이를 강력하게 보호하는 것이 중요하다”면서 “늘 MFA 토큰을 사용하고, 중요 프로젝트를 호스팅하는 일부 개인 계정을 추가 보안 계층이 있는 기업이나 조직 계정으로 전환할 필요가 있다”고 제안하기도 한다.