[AI요약] 최근 디지털 비즈니스를 구성하는 앱의 90% 이상이 오픈소스 코드를 활용해 제작되고 있는 상황에서 해커들은 소프트웨어 제작에 사용되는 수백 수천개의 오픈소스 패키지 사이에 교묘하게 악성코드를 심어 놓는다. 악질적인 것은 이러한 방식이 오픈소스 생태계를 유지해 온 ‘신뢰성’을 이용한 공격이라는 점이다.
코로나19 팬데믹을 거치면서 디지털 수요가 급증했다. 기업들은 시시각각 변화하는 시장의 속도에 맞춰 제품과 서비스를 빠르게 개발하기 위한 수단으로 ‘오픈소스’를 활용하고 있다. 오픈소스란 프로그래밍 설계도인 소스코드가 공개된 소프트웨어를 의미하는데, 누구나 자유롭게 배포·수정·복제·사용이 가능하다.
문제는 최근 디지털 비즈니스를 구성하는 앱의 90% 이상이 오픈소스 코드를 활용해 제작되고 있는 상황에서 클라우드 등의 보안은 강화되는 반면, 오픈소스 공급망 보안은 상대적으로 허술하게 관리되고 있다는 점이다.
이에 전문가들은 ‘아무것도 신뢰하지 않는다’를 전제로 한 사이버 보안 모델, ‘제로 트러스트(Zero Trust)의 개념이 오픈소스에도 적용돼야 한다고 지적하고 있다.
공격에 무방비한 오픈소스 생태계
소프트웨어 개발에 마이크로서비스 아키텍처(MSA)가 채택되며 미션 크리티컬 앱(실패 시사업이나 사회에 큰 문제를 끼치는 컴퓨팅 시스템)까지 오픈소스를 사용하게 됐다. 즉 오늘날 소프트웨어 공급망은 오픈소스 공급망이라고 해도 과언이 아니다. 소프트웨어를 제작하는 프로세스에서 대부분의 개발자들이 오픈소스 코드를 쓰거나 외부 코드와 결합해 작업을 진행한다. 완성된 이후 강력한 보안 시스템을 적용하는 소프트웨어라고 해도, 이미 제작 과정에서 상당한 외부 의존성을 포함하고 있다는 말이다.
오늘날 해커들은 소프트웨어 제작에 사용되는 수백 수천개의 오픈소스 패키지 사이에 교묘하게 악성코드를 심어 놓는다. 이러한 악성코드 중에는 특정 예외 상황 시에만 발동하도록 설정돼 있어 소프트웨어가 특정 상황에 직면할 때 비밀번호 등의 보안 정보가 유출되도록 하는 경우도 있다. 또 대부분의 개발자가 오픈소스 라이브러리에서 패키지를 가져올 때 최신 버전이 자동으로 업데이트되도록 설정하는데, 해커들은 이점을 노린다. 해당 패키지에 악성 코드를 미리 삽입 후 상위 버전으로 업로드 될 때 자동으로 악성 코드가 삽입되게 하는 것이다.
최근에는 오픈소스 커뮤니티에서 신뢰도가 높은 유명 개발자의 계정을 사칭해 악성 코드가 심어진 오픈소스 패키지를 배포하거나 사람들이 자주 내려 받는 오픈소스 패키지 개발자의 계정을 해킹해 멀웨어 등을 심는 방식으로 공격 양상도 다양해지고 있다. 악질적인 것은 이러한 방식이 오픈소스 생태계를 유지해 온 ‘신뢰성’을 이용한 공격이라는 점이다.
문제는 최근까지 내부 개발 환경 보안성을 높이고, 프로세스를 철저히 관리·보호하는 기업조차도 수많은 오픈소스 중에 섞여 있는 정체 불명의 코드에 대해서는 무방비 상태인 경우가 적지 않았다는 점이다. 이러한 악성 코드는 정상적인 코드와 동일한 파일명으로 설정돼 있거나, 개발자들이 파일을 검색할 때 자주 실수하는 오타, 정상 파일과 유사한 스펠링의 제목으로 설정돼 있어 쉽게 구별할 수 없다는 것도 문제다.
한국은 오픈소스 보안 사각지대, 사고 나면 것 잡을 수 없다
오늘날 약 4000만개 이상의 오픈소스 소프트웨어 컴포넌트가 존재하고 있고 오는 2026년에는 그 수가 10배 이상으로 늘어날 것으로 전망되고 있다. 현재도 주요 리포지토리(저장소)에서 1년에 다운로드 되는 오픈소스 패키지는 약 2조개에 달한다. 문제는 이렇듯 오픈소스 사용량이 엄청나게 증가하는 상황에서 일일이 모든 코드를 체크할 수 없다는 것이다.
글로벌 보안업체 소나타입의 SW 공급망 보고서에 따르면 잘 알려진 오픈소스 패키지 중 약 29%가 취약성을 포함하고 있는 것으로 나타났다. 이러한 취약성은 배포 시점부터 사용자에게 도달하는 모든 과정에서 존재한다.
또한 최근 우리나라를 방문한 체크막스의 조렌슈타인 공급망 보안 총괄은 "이메일 주소와 패키지 이름, 해당 패키지가 어떤 오픈소스 프로젝트와 관련 있는지 등을 기재하면 악성 오픈소스 패키지를 쉽게 생성할 수 있다"며 "특히 유명한 프로젝트 이름을 사용할수록 신뢰도는 더 높아진다"며 악성 오픈소스 패키지 공격의 실태를 지적했다.
체크막스는 이스라엘 보안 업체로 애플리케이션 보안 테스팅 솔루션을 통한 소프트웨어 공급망 보안 해법을 제시하고 있다. 문제는 체크막스와 같은 업체들의 노력에도 불구 매월 50만개 이상 만들어지는 악성 오픈소스 패키지의 증가세다.
조렌슈타인 총괄은 “빨리 소프트웨어를 개발해야 하는 개발자 입장에서는 오픈소스를 쓰지 않을 수 없다”면서 “일반적으로 바쁜 개발자들은 많은 사람이 사용한 패키지를 신뢰하는 성향이 있어 확인 없이 내려받다가 사고가 발생한다”고 피해 사례가 늘어나는 이유를 설명했다.
문제는 이러한 악성 오픈소스 패키지가 단지 소프트웨어 공급망을 위험하게 할 뿐 아니라 소프트웨어를 쓰는 모든 사람에게 피해를 입힐 수 있다는 점이다. 악성코드를 이용해 패스워드를 탈취하거나 심하면 사용자도 모르게 해당 컴퓨터를 좀비PC로 만들어 범죄에 악용할 수도 있다.
이에 조렌슈타인 총괄은 영화 스파이더맨에 나오는 “큰 힘에는 큰 책임이 따른다(With great power comes great responsibility)”는 문구를 인용하며 “우리가 쓰는 소프트웨어이기 때문에 결국 보호하는 것도 우리의 책임”이라고 강조했다.
소프트웨어 공급망 공격, 대응책은?
악성 오픈소스 패키지에 의한 피해를 줄이기 위해서는 앞서 체크막스와 같은 업체들이 제공하는 공급망 보안 솔루션을 활용하는 것이 방법이다. 이러한 솔루션은 오픈소스를 포함한 모든 소프트웨어의 구성을 분석하는 SCA와 함께 작동하며, 오픈소스 프로젝트의 건전성과 보안 이상 징후를 파악하고 ‘기여자 평판(Contributor Reputation)’을 분석해 실제로 신뢰할 수 있는 개발자가 개발한 것인지 검증한다.
또한 체크막스는 오픈소스를 포함한 모든 소프트웨어 개발 시 보안을 내재화 할 수 있도록 ▲Build/CI 솔루션을 통한 자동화된 보안 취약점 점검 절차 확립 ▲오픈소스 취약점 관리 ▲맞춤형 가이드를 통한 개발자 보안 역량 강화를 반드시 점검해야 한다고 지적한다. 현재 체크막스가 분석하는 오픈소스 패키지는 월 100만건에 달한다.
한편 업체에서 제공하는 솔루션 외에도 리눅스 재단 산하 프로젝트 오픈소스보안재단(이하 오픈SSF)은 협업을 통해 소프트웨어 공급망을 안전하게 만드는 노력을 펼치고 있다. 리스크가 높은 SW 프로젝트를 찾고 우선순위를 부여하거나 특정한 프로젝트에 대해 감사를 진행하거나 팀을 구성해 빌드를 지원하고 버그를 수정할 수 있도록 돕는 노력 등이다.
그 외에도 오픈SSF는 보안 문제를 해결하기 위해 개발자 교육에도 중점을 두고 있다. 교육은 대략 15~20 시간 분량으로 개발자라면 누구나 들을 수 있다. 교육을 마친 개발자를 대상으로는 퀴즈를 풀게 하고 이를 통과하면 인증을 해주는 테스트도 진행한다.
소셜댓글