본문 바로가기

POST/Insight

10년의 소프트웨어 공급망 역사: 오픈소스의 성장, 리스크 그리고 미래

 

지난 10년간 Sonatype에서는 소프트웨어 공급망 현황 보고서를 매년 발간해왔습니다. 이 보고서를 통해 소프트웨어 개발에 있어서 오픈소스 소비의 변화를 관찰해 왔습니다.

 

10년의 진화

시간을 거슬러 10년 전 오픈소스 소비형태를 처음 추적하기 시작했을 당시의 환경은 지금과 매우 달랐습니다. 소프트웨어 개발에서 클라우드 네이티브 아키텍처는 막 시작되는 단계였고, 보안은 로컬에 더 집중되는 형태를 보였습니다. 오늘날 오픈소스 소비를 살펴보겠습니다. 오픈소스는 현대화된 애플리케이션의 코드의 약 90% 차지하고 있고 글로벌 오픈소스 소비는 급증해서 약 6.7조 다운로드로 추정되고 있습니다. AI, 클라우드 컴퓨팅, 데브옵스의 증가로 npm, PyPI의 사용이 폭발적으로 늘어났습니다.

 

이런 놀라운 성장의 어두운 이면도 늘어나고 있는 것이 현실입니다. 소프트웨어 공급망을 노리는 악의적인 공격도 급증하고 있습니다. 파편적으로 발생하던 Heartbleed, Equifax 공격과 같은 사건들이 더 정교하고 광범위하게 발생하기 시작되었습니다. 지난해에만 약 50만건 이상의 악성 오픈소스 패키지가 오픈소스 리포지토리(저장소)에 유입되었습니다. 이는 동년대비 156% 증가입니다. 이런 공격 방식은 이제 더이상 새롭게 등장하는 위협이 아니며 뉴 노말이 되었습니다.

 

지속적 위험과 안일함

올해 보고서의 중요 발견 중의 하나는 지속적 위험에 대한 것입니다. 이 용어는 Sonatype에서 수정되지 않은 취약점이 가하는 위험과 보안 이슈가 해소되지 않아 발생하는 잠식을 불러오는 위험을 나타내기 위해 처음 사용하였습니다.

 

건물의 철근 구조에 녹이 슬어 서서히 구조를 갉아먹어 약화시키는 것처럼 이런 지속적 위험은 소프트웨어 공급망에 위험을 가합니다. 대표적인 사례가 Log4Shell 로 최초 취약점 노출 이후 3년이 지난 지금까지도 수정 버전이 있음에도 불구하고 약 13%의 다운로드가 수정되지 않은 것으로 파악되고 있습니다.

 

더 심각한 것은 95% 이상이 보안이 강화된 안전한 대체 가능한 버전이 있음에도 80%의 애플리케이션 의존성이 1년 이상 업그레이드 되지 않은 상태로 남아있습니다. 이는 단순히 기술적인 문제가 아니며 많은 조직이 자신들의 소프트웨어 의존성을 관리함에 있어 만연해 있는 안일함에 그 원인이 있습니다. 의외로 많은 개발자들은 새로운 기능을 빠르게 개발해야 한다는 압박감 때문에 변화를 두려워합니다.

 

새로운 공급망 공격 형태: 오픈소스 말웨어

Sonatype은 새로운 공격의 형태에 대해서도 꾸준히 관찰 추적을 해 왔습니다. 공급망 오염 또는 악성 오픈소스 혹은 ‘오픈소스 말웨어’로 알려진 공격입니다. 올 한해에만 512,847건의 말웨어 패키지가 발견되었습니다. 그중 65000개는 심각 수준의 말웨어로 밝혀졌으며, 작년 대비 156%의 증가를 보여줍니다. 이 말웨어는 자동화된 빌드 환경에서부터 개인 개발자의 워크 스페이스까지 모든 곳을 타겟으로 삼고 있습니다.

 

오픈소스 말웨어는 특히 합법적인 개발 프로세스에 녹아 들어가 전통적인 보안을 우회하기 때문에 매우 교활한 공격 기법입니다. 이는 실제로 존재하는 공격기법으로 XZ Utils Backdoor 공격과 같은 사건을 예로 들 수 있습니다.

 

스케일이 불러온 복잡성, 복잡성으로 인한 리스크

오픈소스의 거대한 규모는 가장 큰 장점이자 도전 과제입니다. 자바 스크립트 환경(npm)만 살펴보더라도 올 한해에만 4.5조 패키지 리퀘스트가 발생했으며, 작년 대비 70%의 증가를 보여줍니다. 파이썬 환경 역시 유사한 추이를 보여주며, AI 혁명이 이를 견인하고 있습니다.

 

문제는 규모가 커지면 복잡성이 증가합니다. 개발자들은 넘쳐나는 선택지로 인해 압도당하거나 안전하지 않거나 오래된 구성요소를 선택을 하는 경우가 발생하게 되는데, 이는 복잡성으로 인해 발생한 노이즈 속에서 올바른 선택을 하는 것이 어렵기 때문입니다.

 

‘선택지 홍수’는 보안 위협의 주요 원인입니다. 약 700만개의 오픈소스 프로젝트 중에 10.5% 정도가 적극적으로 활용되며, 개발자는 대체로 인기있는 패키지를 별다른 검토 없이 사용하는 경향이 있습니다. 결국, 보안 취약점은 ‘만약’ 사용된다면이 아닌 ‘언제’ 사용되는가의 문제라고 볼 수 있습니다.

 

효율성과 낭비: 개발자의 딜레마

보안은 기술적인 문제이면서 동시에 생산성 문제입니다. 오픈소스 의존성 관리, 취약점 패치 작업, 라이센스 확인 작업은 개발 사이클에서 많은 시간을 차지합니다.

 

평균적으로 한개의 애플리케이션은 약 180개의 오픈소스 구성요소를 포함하며, 이 구성요소들의 의존성을 수작업으로 관리하는 것을 불가능합니다. 더 심각한 것은 공개된 취약점 데이터의 92%가 보안 연구팀의 검토 후 수정이 필요하다는 점입니다. 이로 인해 개발자는 보호받고 있다고 착각하지만 발견되었을 때는 이미 너무 늦은 ‘Surprise risk”에 직면합니다. NVD 에 올라있는 공개되었지만 프로세스 되지 않은 17,656개의 백로그 만하더라도 소프트웨어 구성요소 툴 없이 수작업으로 관리하려는 것은 보안에 큰 문제를 불러올 수 있습니다. 또, 법적 및 컴플라이언스와 같은 생산성과 기술에 영향을 미치는 여러가지 종류의 리스크도 고려해야 합니다.

 

선제적 관리 및 지속적 보안

지난 10년을 돌아보고 배운 점이 있다면, 선제적 대응이 더 효과적이라는 것입니다. 조직은 always-on 보안 관행을 도입해야 하며, SCA 도구를 CI/CD 파이프라인에 직접 통합하여 모든 구성요소가 검토, 모니터링 및 실시간 업데이트 될 수 있도록 해야 합니다. 일회성 보안 검사 또는 단일 지점 검사를 여러번 하는 것 만으로는 충분하지가 않습니다. 지속적인 모니터링이 필수라는 사실을 기업해야 합니다.

 

의존성 관리도 중요한 영역 중 하나입니다. 내 소프트웨어를 이해하는 것이 매우 중요하며, SBOM (소프트웨어 자재명세서)을 적극 활용하여 오픈소스 의존성을 추적하고 관리하는 조직이 SBOM을 활용하지 않는 조직보다 평균 264일 이상 취약성 개선에 드는 시간을 단축한다고 조사되었습니다. 현재 어떤 구성요소를 사용하고 있는지 확인하는 유일한 방법은 SBOM이며 애플리케이션 별로 SBOM을 두어 관리할 필요가 있습니다. 이를 통해 리스크를 감소하고, 효율성을 개선하며 더 강화된 보안을 적용할 수 있습니다.

 

향후 10년을 대비하는 방법

현 시점에서 오픈소스의 사용은 꾸준히 증가할 것으로 예측됩니다. 그리고 오픈소스를 활용하는데 따르는 책임도 커질 것입니다. 소프트웨어 공급망의 향후 10년은 더 나은 도구의 도입, 더 나은 모범 관행의 적용 및 보안을 우선시하는 개발팀의 조직 문화에 의해 정해질 것입니다. 또, 규제와 규제에 대한 대응에 따라서 큰 변화가 생길 것입니다.

 

이런 과제들은 보안팀만 해당되지 않으며 회사의 이사진, 경영 리더십, 개발자, 법무팀 및 제품 담당자 모두가 함께 풀어야할 숙제입니다.

Sonatype은 스타트업에서 대기업까지 모든 조직이 복잡한 오픈소스를 안전하고 효율적으로 사용할 수 있도록 지원하기 위해 오랫동안 노력해 왔습니다. 자동화, AI, 선제적 리스크 관리가 보안의 핵심이며 Sonatype Platform은 소프트웨어 공급망을 통제하고 관리하기 위해 필요한 기능을 지원하고 있습니다.

 

보안, 효율성, 혁신에 대한 더 상세한 인사이트를 원하신다면 Sonatype에서 발행한 10주년 소프트웨어 공급망 보안 현황 보고서를 확인해 주시기 바랍니다.

 

 

원문출처: 10 years of sofware supply chains: Navigating the growth, risks, and future of open source