오픈 소스 소프트웨어 공급망의 위험성
오픈소스 소프트웨어는 소프트웨어 개발 생태계의 중요한 구성 요소로 부상했습니다. 비용 효율성, 적응성, 커뮤니티 중심 지원 등의 장점으로 인해 전 세계 개발자들 사이에서 널리 채택되고 있습니다.
기존 소프트웨어 구성 요소에 대한 액세스를 통해 기업은 개발 프로세스를 개선하고 제품을 훨씬 빠르게 시장에 출시할 수 있습니다. 하지만 애플리케이션 개발에서 오픈 소스 패키지의 사용이 증가함에 따라 보안 문제도 증가하고 있습니다. 이 블로그 게시물에서는 오픈소스 공급망 보안의 문제점과 이를 해결하는 방법에 대해 설명합니다.
공격자를 위한 스위트 스팟
오픈 소스 사용이 계속 증가함에 따라 위협 그룹은 소프트웨어 공급망을 악용하여 이를 사용하는 광범위한 대상에 액세스할 수 있는 기회를 얻게 됩니다.
사이버 범죄자들은 많은 조직이 시스템에 사용되는 오픈 소스 소프트웨어와 해당 구성 요소에 존재하는 취약점을 인식하지 못하고 있다는 사실을 잘 알고 있습니다. 해커들은 조직의 사용자 지정 코드를 해킹하는 데 오랜 시간을 소비하는 대신 공개적으로 사용 가능한 익스플로잇을 사용하여 광범위한 조직을 대상으로 취약한 오픈 소스 구성 요소가 있는 시스템을 찾아 공격하고 있습니다.
또한 오픈소스 공급망에 대한 공격이 성공하는 주된 이유 중 하나는 종속성 그래프가 매우 복잡하기 때문입니다.
젠가 효과
모든 오픈소스 패키지에는 고유한 공급망이 있으며 여러 타사 오픈소스 라이브러리에 의존할 수 있습니다. 이러한 타사 라이브러리는 다른 라이브러리에 의존하는 경우가 많기 때문에 매우 복잡한 상호의존성 사슬을 형성합니다.
많은 오픈 소스 패키지에서 널리 사용되는 인기 라이브러리는 그 중 하나의 취약점으로 인해 전체 생태계에 큰 혼란을 야기할 수 있다는 사실을 고려할 때, 라이브러리 중 하나의 취약점이 전체 생태계에 큰 영향을 미칠 수 있습니다. 이러한 사례는 이미 여러 차례 무료인 Log4j 로깅 라이브러리의 취약점 의 취약점부터 가장 최근에 한 오픈소스 개발자가 매우 인기 있는 npm 패키지에 깨지는 코드를 도입한 사례까지 여러 번 보았습니다. colors.
출처: https://xkcd.com/2347/
보이지 않는 것은 보호할 수 없습니다.
완벽한 시나리오에서 엔지니어링 팀은 조직 내에서 사용되는 오픈 소스 소프트웨어에 대한 포괄적인 문서(소프트웨어 자재 명세서라고도 함)를 유지 관리합니다. 새로운 종속성이 추가될 때마다 이 문서를 업데이트하여 log4j와 같은 특정 라이브러리가 어디에서 사용되고 있는지 쉽게 파악할 수 있습니다.
이 문서는 추가적인 보안 위험을 초래할 수 있는 유지 관리되지 않는 패키지를 적시에 발견하는 데도 도움이 됩니다. 그러나 개발자가 소프트웨어 구성 요소를 일관되게 문서화하는 연습을 하려면 많은 노력이 필요합니다. 동시에 많은 조직의 보안팀은 회사에서 사용하는 종속성에 대한 더 많은 가시성을 필요로 합니다.
시장 출시 기간 단축
오픈 소스 소프트웨어 종속성 체인의 복잡성을 고려할 때 모든 최신 취약점 수정을 따라잡고 동시에 혁신을 추진하는 것은 거의 불가능한 일입니다.
보안과 법률 준수를 보장하기 위해 기업들은 새로운 오픈소스 컴포넌트를 도입할 때 공식적인 승인 절차를 적극적으로 시행하기 시작했습니다. 경우에 따라 새로운 컴포넌트의 승인을 받는 데 최대 한 달 이상이 걸릴 수 있습니다.
동시에 경쟁력을 유지하기 위해 개발 리소스의 균형을 신중하게 유지해야 하는 제품 관리자는 애플리케이션에 영향을 미치는 증가하는 취약점보다 새로운 기능의 우선순위를 정하는 데 어려움을 겪습니다. 이로 인해 개발이 크게 지연되고 결과적으로 시장 출시 시기가 늦어질 수 있으며, 이는 매우 중요할 뿐만 아니라 기회를 잃는 결과를 초래할 수 있습니다.
앞으로 나아갈 길
오픈 소스 소프트웨어 공급망 보안과 관련하여 조직이 직면한 문제에 대한 잠재적인 해결책 중 하나는 사전 승인되고 지속적으로 보안이 유지되는 오픈 소스 구성 요소의 리포지토리를 중앙에서 관리하는 관행입니다. 직접 구축하거나 신뢰할 수 있는 공급업체와 협력하여 구축 및 관리할 수 있습니다.
이러한 리포지토리에 액세스하면 다음과 같은 작업을 수행할 수 있습니다:
- 종속성에 취약점과 악성 코드가 없는지 확인하여 보안 위험을 최소화하세요.
- 각 패키지에 대해 제공되는 보증된 소프트웨어 BOM을 통해 종속성 그래프를 관리할 수 있습니다.
- 보안 수정에 대한 신뢰할 수 있는 SLA를 설정하여 패치 정책 및 규정 요구 사항을 준수하세요.
- 과도한 승인 프로세스를 없애고 기술 부채를 줄임으로써 시장 출시 기간을 단축하세요.
검증된 오픈 소스 패키지의 신뢰할 수 있는 단일 리포지토리를 통해 애플리케이션의 보안을 자동으로 유지하면서 혁신을 지속할 수 있습니다. Java 공급망 보안에 관심이 있으시다면, 지금 무료 Java 리포지토리에 액세스하세요..

