오픈소스 소프트웨어의 활용이 혁신, 비용 절감 및 애질리티의 핵심이 되었습니다. 그러나 오픈소스를 사용하는 것에는 라이센스 관리, 컴플라이언스 및 리스크 감소 등에 대한 상당한 책임이 따릅니다.
오픈소스 라이센스의 종류
오픈소스 소프트웨어 라이센스는 하나가 아닙니다. 오픈소스 소프트웨어 라이센스의 종류를 제대로 이해하는 것은 기업의 소프트웨어 공급망에 있어 매우 중요합니다.
오픈소스 라이센스를 3가지 카테고리로 구분해 보면,
- 허용 라이센스 (Permissive license): 라이센스 중 제약이 가장 적어 사용자에게 광범위한 사용권한을 부여. 사용자가 원작자를 명시하도록 요구. 가장 대표적인 라이센스에 MIT 라이센스가 있으며, 개발자는 저작권과 라이센스 고지를 포함하면 자유롭게 소프트웨어를 사용, 수정, 배포 가능
- 카피레프트 라이센스 (Copyleft license): 소스코드 공개와 함께 원저작물과 원저작물을 기반으로 만들어지는 파생 저작물에도 동일한 라이선스로 공개되어야 한다는 소스코드 공유 개념의 라이선스. 대표적으로 General Public License (GPL) 이 있음.
- 강한 카피레프트 라이센스 (Banned license): 가장 제약이 많은 라이센스로 금융서비스와 같이 기밀 및 지적재산권이 중요한 산업에서 상용 사용을 제한. 상업적 사용을 금지하거나 파생저작물에 대한 완전산 소스코드 공개를 요구하여 독점시스템의 경우 문제가 될 수 있음.
배포에 가장 많이 사용되는 라이선스는 대략 10가지로 88% 정도로 사용되고 있다. 퍼미시브(허용) 계열 라이선스가 60%이상 사용되며, 강한 카피레프트 계열의 라이선스가 20% 정도 사용되고 있는 것으로 파악되고 있습니다.
순위 | 오픈소스 소프트웨어 라이센스명 | 비율 |
1 | Apache License 2.0 | 28% |
2 | MIT License | 26% |
3 | GNU General Public License v3.0 | 10% |
4 | GNU General Public License v2.0 | 10% |
5 | BSD 3-Clause "New" or "Revised" License | 5% |
6 | GNU Lesser General Public License v2.1 | 4% |
7 | BSD 2-Clause "Simplified" License | 2% |
8 | Microsoft Public License | 1% |
9 | Microsoft .NET Library License | 1% |
10 | GNU Library General Public License v2.0 | 1% |
출처 : https://www.whitesourcesoftware.com/resources/blog/open-source-licenses-trends-and-predictions/
라이센스 컴플라이언스를 위한 모범 관행
오픈소스 라이센스의 컴플라이언스를 강제하기 위해 다음의 모범관행을 따르는 것을 권합니다
- 라이센스 의무 이해: 사용중인 오픈소스 라이센스의 구체적인 이용 약관을 이해하는 것이 중요하며, 적절한 저작자 표시 보장, 카피레프트 요구사항 이해, 재배포 의무를 포함합니다.
- 라이센스 판별 자동화: 기업은 모든 오픈소스 구성요소의 라이센스를 파악하는 자동화 도구를 도입하여 컴플라이언스를 간소화할 수 있습니다. 이런 도구는 각 구성요소를 관장하는 라이선스에 대한 실시간 가시성을 확보하여 규정준수 이슈로부터 보호합니다.
- 정기 감사 및 리뷰: 오픈소스 소프트웨어 라이센스를 점검하여 라이센스 의무의 준수여부를 정기적으로 감사해야 하며, 자동화 도구를 통해 감사 및 리뷰 시간을 절감할 수 있습니다.
거버넌스 프레임워크의 중요성
많은 기업에게 이미 구축된 거버넌스 프레임워크에 오픈소스 라이센스 관리를 통합하는 것은 매우 중요합니다. 구조화된 접근을 통해 라이센스 사용에 대한 전반적인 통찰력을 제공하고 라이센스 불법 사용에 대한 위험을 낮춰줍니다.
다음의 전략들을 고려해 볼 필요가 있습니다.
- 정책 생성 및 강제: 명확한 오픈소스 라이센스 정책을 생성하여 소프트웨어의 사용처에 맞는 라이센스를 정의할 수 있습니다. 예를 들어, 카피레프트 라이센스는 내부용 앱에는 적절하지만, 대 고객용 제품에는 적절하지 않을 수 있습니다.
- 라이센스 선택: 다중 라이센스 구성요소를 위해 기업은 현명한 선택을 통해 각 라이센스가 포함한 위험과 혜택의 균형점을 찾아야 합니다. 이런 신중한 선택은 의도치 않게 지적재산 코드의 공개를 요구하는 라이센스를 선택하는 위험을 피할 수 있습니다.
- 법적 위험 완화: 오픈소스 라이센스 의무를 준수하지 않으면 조직이 법적, 재정적 위험에 노출될 수 있습니다. Nutanix의 MinIO 라이센스 위반 사례가 대표적으로, 법정 공방, 강제 코드 제거 및 브랜드 평판에 악영향을 미칠 수 있습니다.
오픈소스 라이센스 관리 간소화 도구
수백개의 오픈소스 컴포넌트로 구성된 서비스를 운영하는 기업에게 오픈소스 라이센스를 관리하는 것은 매우 어려운 일입니다. 다양한 도구를 통해 관리의 과정을 간소화하고 컴플라이언스를 효율적으로 유지할 수 있습니다.
- 라이센스 스캐닝 도구: 자동화 도구를 통해 애플리케이션 구성요소의 라이센스를 파악하고 구성 리포트를 작성할 수 있습니다. 대표적인 도구에 Sonatype Lifecycle 이 있으며, 수작업을 통한 비용 및 시간을 절감하고 정확도를 높일 수 있습니다.
- 소프트웨어 자재명세서(SBOM): SBOM은 소프트웨어 구성요소를 관리하는 필수 도구입니다. 애플리케이션의 모든 구성요소에 대한 포괄적인 리스트를 제공받을 수 있으며, 조직이 라이센스의 의무와 규정준수를 추적할 수 있게 해줍니다. Sonatype SBOM Manager는 추적, 가시성 및 지속적 모니터링을 자동화하고 기업이 라이센스 관리, 규정준수, 보안 위험 감소 및 업데이트를 통한 라이센스 변경을 파악할 수 있습니다.
빠르게 진화하는 개발 환경에서 소프트웨어 공급망 내의 적극적인 오픈소스 라이센스 관리는 매우 중요합니다. 오픈소스 라이센스의 복잡성을 이해하고 모범관행의 강제 및 자동화를 통해 오픈소스 혁신을 적극 활용하고 위험은 완화할 수 있습니다.
참고링크: