소프트웨어 공급망에서 오픈 소스 구성 요소 관리
게티 이미지/iStockphoto
오픈 소스 구성 요소는 오늘날 소프트웨어 애플리케이션의 필수적인 부분이지만 보안이라는 중요한 비용이 발생할 수 있습니다.
최신 소프트웨어 애플리케이션은 오픈 소스 소프트웨어(OSS)를 비롯한 다양한 소스의 구성 요소로 구성됩니다. 이는 개발 속도 향상, 개발 비용 절감, 확장성 향상 등 소프트웨어 개발 수명 주기에 이점을 추가할 수 있습니다.
그러나 다양한 소스의 구성 요소를 사용하면 애플리케이션의 공격 표면이 넓어지고 공격자가 애플리케이션과 민감한 데이터에 액세스하는 데 사용할 수 있는 진입점 수가 늘어납니다. DevOps 팀은 공격을 완화하기 위한 사전 조치를 시행하여 소프트웨어 공급망의 보안을 보장해야 합니다.
소프트웨어 공급망은 소프트웨어 애플리케이션을 만드는 데 사용되는 모든 사람, 프로세스, 도구, 코드 라이브러리 및 기본 IT 인프라로 구성됩니다. 여기에는 코드 구축, 테스트, 배포, 출시 후 유지 관리 등 소프트웨어 개발 수명 주기(SDLC)의 모든 측면이 포함됩니다.
프로젝트의 소프트웨어 공급망을 구성하는 많은 구성 요소는 오픈 소스입니다. 예를 들어, 디자인 자동화 회사인 Synopsys는 2023년 2월에 상용 코드베이스에 대한 1,700개 이상의 감사 결과를 조사한 보고서를 발표했습니다. 보고서에 따르면 애플리케이션의 96%에 최소한 하나의 오픈 소스 구성 요소가 존재하는 것으로 나타났습니다. 거의 모든 상용 애플리케이션에는 오픈 소스 구성 요소가 포함되어 있습니다.
소프트웨어 공급망 공격은 공격자가 공급업체의 소프트웨어에 침투하여 해당 소프트웨어를 사용하는 클라이언트를 감염시키는 악성 코드를 심을 때 발생합니다. 침입은 SDLC 중 어느 시점에서나 발생할 수 있으며 많은 파괴적인 사이버 공격이 소프트웨어 공급망을 사용합니다. 최근 공급망 공격에는 SolarWinds 공격과 Log4j 취약점이 포함됩니다.
기본 소프트웨어 공급망 보안에서는 취약한 영역을 확인해야 합니다.
OSS 구성 요소는 소프트웨어 개발 프로젝트에서 점점 인기를 얻고 있습니다. IT 제공업체는 다음과 같은 오픈 소스 프로젝트 생성을 활용하고 지원합니다.
주요 애플리케이션을 구동하는 것 외에도 OSS 구성요소는 수많은 이점을 제공합니다. 상용 앱을 개발할 때에도 무료로 사용할 수 있습니다. OSS 구성 요소는 코드가 공개되어 있기 때문에 사용자 정의가 가능합니다. 개발자는 더 많은 기능을 포함하도록 기능을 확장할 수 있습니다.
OSS는 개발 시간을 단축할 수 있습니다. OSS 라이브러리에는 사용자가 응용 프로그램에 통합하려는 거의 모든 기능에 대한 구성 요소가 포함되어 있습니다. 이를 통해 개발자는 다른 개발 영역에 더 많은 시간을 투자할 수 있습니다. 오픈 소스 프로젝트는 종종 특정 표준에 따라 개발되므로 다양한 오픈 소스 구성 요소가 번거로움 없이 상호 운용됩니다.
마지막으로 오픈 소스 프로젝트는 강력한 코드 품질과 보안을 가질 수 있습니다. 이는 소프트웨어 구성 요소에 대한 충분한 테스트를 보장하는 많은 기여자에 의해 개발되는 경우가 많습니다. 또한 모든 개발자는 OSS 구성 요소의 보안 취약성을 검사할 수 있으므로 개발자가 보안 문제를 검사할 수 없는 독점 코드보다 보안이 더욱 강화됩니다.
OSS의 수많은 이점에도 불구하고 공격자는 여전히 오픈 소스 구성 요소에 침투할 수 있습니다. 가장 일반적인 공격 방법은 소프트웨어 공급망의 OSS 측면을 악의적인 목적으로 남용하는 것이며, 이는 다양한 방식으로 발생할 수 있습니다.
소프트웨어 공급망에서 오픈 소스 구성 요소의 보안을 관리하려면 DevOps 팀은 다음 모범 사례를 고려해야 합니다.
애플리케이션을 개발할 때 보안 코딩 관행을 따르고 소프트웨어 공급업체에도 요청하십시오. 이러한 코딩 방법에는 다음이 포함됩니다.
또한 팀은 개발 전반에 걸쳐 소프트웨어 공급망 환경이 안전한지 확인해야 합니다. 모범 사례에는 다음이 포함됩니다.