오픈소스 라이선스가 요구하는 고지 의무 및SBOM에 기반한 오픈소스 고지문 자동 생성 방안
'SK텔레콤 장학성'
소프트웨어를 개발하면서 오픈소스를 사용하지 않는 경우는 찾아보기 힘든 개발 환경이다.
그만큼 오픈소스는 여러 산업 분야에서 광범위하게 사용되고 있음은 더 이상 설명할 필요가 없다. 더불어 소프트웨어 제품/서비스를 개발하는 기업이라면 오픈소스 라이선스 컴플라이언스와 보안취약점 관리가 필요함에 대해 대부분 인식하고 있으며 어떻게 효율적으로 관리할지가 관건인 상황이다.
먼저 오픈소스 라이선스 컴플라이언스 측면에서 보면 대표적인 오픈소스 라이선스 의무는
‘고지’ 이다. GPL과 같이 소스 코드 공개를 요구하는 라이선스도 소스 코드를 제품과 함께 배포하는 대신‘Written Offer (서면 약정서)’를 오픈소스 고지문에 포함하여 제공한다. 따라서 기업은 오픈소스 라이선스가 요구하는 바를 파악해 이를 포함한‘오픈소스 고지문’을 생성하여 제공하는 것이 중요하다. 대부분의 오픈소스 라이선스는 바이너리 형태로 오픈소스를 배포 시 저작권 정보와 라이선스
사본을 포함하고, (소스 코드 공개 요구 조건이 있는 경우) Written Offer의 제공을 요구한다. Written Offer에는3년간 유효하고(valid for at least three years), 누구에게나 제공하며(to give any third party), 소스 배포에 필요한 최소한의 비용만 청구한다(for a charge no more than your cost of physically performing source distribution)는 내용을 포함해야 한다.
보안취약점 측면에서 살펴보면 소프트웨어 공급망의 보안 공격 사례가 증가하면서SBOM(Software Bill of Materials)의 관리 요구가 크게 증가하고 있다. 2021년5월에는 국가 사이버 보안 개선을 위한 미 연방 행정명령(14028)이 발표되었다. 여기에서는SPDX, CycloneDX 혹은SWID Tag 데이터 형식을 사용하여SBOM을 생성할 것을 요구한다.
이 중 오픈소스 프로젝트에서 만들어진SPDX는SBOM 정보를 전달하기 위한 개방형 표준으로2021년에는 ISO/IEC5962(https://www.iso.org/standard/81870.html) 국제 표준으로 등록되었다.
이렇게 오픈소스를 사용하여 소프트웨어를 개발/배포하는 기업은 소프트웨어 구성요소 및 공급망 내 가시성과 신뢰성 확보를 위해SBOM을 작성하고 관리하는 것은 필수가 되었다. 어떤 포맷으로SBOM을 생성하여 관리할지는 기업의 소프트웨어 개발 환경에 따라 달라질 수 있지만, 국제 표준인SPDX를 활용하는 것이 기본이고, 필요에 따라 다른 포맷으로도 관리할 수 있을 것이다.
SPDX(https://spdx.dev/specifications/)는 다음과 같은 정보를 포함하는 문서이다.
위의 이미지와 같이 소프트웨어가 포함하는 패키지, 파일, 스니핏(코드조각)등에 대해 라이선스, 버전, 저작권 등의 정보를 관리할 수 있다. SPDX 문서를 자동으로 생성하고 읽을 수 있도록JSON, YAML 등의 데이터 포맷을 지원한다. 기업은 위의 방법대로 개발/배포용 소프트웨어에 대한SBOM을 작성하고 관리한다.
이러한 국제 표준을 기반으로SBOM을 충실히 생성하고 관리한다면, 오픈소스 라이선스 컴플라이언스와 보안취약점에 대한 근간을 갖추었다고 볼 수 있다. 이를 기준으로 오픈소스 고지문을 작성하는 등 라이선스 컴플라이언스를 위한 프로세스도 갖출 수 있다.
끝으로SPDX 형태로 작성한SBOM의 내용을 오픈소스 고지문으로 자동 생성하는 도구를 소개한다. https://github.com/sktelecom/onot
SK텔레콤이 공개한onot은SPDX 문서를 기반으로 오픈소스 고지문을 자동으로 생성하는 도구이다.
onot을 사용하기 위해서는 먼저SPDX에서 제공하는Excel 형태의 문서 내에 패키지, 버전,
라이선스, 저작권 등의 정보를 기재한 SBOM을 생성한다.
그리고, 이를input으로onot을 실행하면 아래와 같이 오픈소스 고지문이 생성된다.
여기에는 일반적인 오픈소스 라이선스가 요구하는 라이선스 전문, 저작권 정보, Written Offer 등이
포함되어 있어서, SPDX 형태의SBOM을 올바르게 관리하고 있는 기업이 오픈소스 고지문을 생성할 때
요긴하게 사용할 수 있다.
onot은SPDX 형태의SBOM을 기반으로 오픈소스 라이선스가 요구하는 내용을 포함하는 오픈소스 고지문을
자동으로 생성하는 도구 이고, 이는 기업이 오픈소스 라이선스가 요구하는 고지 의무를 준수할 수 있게하는
효율적인 방안이 될 것이다.
|