08 오픈소스 라이브러리의 보안성 및 호환성 점검
인공지능 모델 개발 단계에 기간을 단축하고 최신 기술 동향을 빠르고 유연하게 적용하기 위해 다양한 오픈소스 라이브러리를 활용한다. 오픈소스 라이브러리 도입 전에는 필요성 여부, 필요한 기능의 포함 여부 등을 확인한다.
오픈소스 라이브러리를 사용할 때는 해당 버전의 신뢰성, 업데이트 안정성, 라이선스 기준 준수 여부 등을 지속적으로 모니터링하고 평가하는 것이 필요하다. 최근 연구에서는 「소프트웨어진흥법」 제49조 제2항[197]에 근거한 평가 기준을 마련하여 생성 AI 모델 개발 시 오픈소스 라이브러리의 적합성 및 보안성을 평가할 수 있는 프레임워크를 제공하고 있어 개발 단계에서 오픈소스 라이브러리를 사용하는 경우에 이 요건을 충족하는지를 고려할 수 있다.
08-1 오픈소스 라이브러리의 안정성을 확인하였는가?
오픈소스 라이브러리는 특정 조직이나 개인 및 기업에서 관리할 수 있으므로 다양한 운영 방식이 존재한다. 따라서 개발자는 프로젝트에 통합하는 오픈소스 라이브러리의 특성을 사전에 검토하고 평가하여 향후 발생할 수 있는 잠재적 위험을 최소화할 수 있도록 한다. 전문가들은 오픈소스 라이브러리를 프로젝트에 통합하기 전에 중요한 측면을 점검할 것을 권고한다[198].
생성 AI 모델 및 서비스 개발을 위해 오픈소스 라이브러리를 사용하기로 결정했다면, 안정성을 확인하기 위해 해당 오픈소스 라이브러리가 얼마나 많은 사용자를 보유하고 있는지, 업데이트는 자주 이뤄지는지, 이슈가 발생했을 때 대응은 신속하게 이루어지는지 등을 따져봐야 한다.
08-1a 활성화된 오픈소스 라이브러리를 사용하였는가?
오픈소스 라이브러리는 제공자가 라이브러리의 업데이트를 중단하면 보안 취약점 등을 가질 수 있으므로 개발 중인 생성 모델에 위험을 가할 수 있다[59].
<기업 공개 소프트웨어 거버넌스 가이드-정보통신산업진흥원>에 따르면, 오픈소스 프로젝트의 활성화 정도를 확인하는 것도 안정성 확인을 위한 한 가지 방법이 될 수 있다. 해당 오픈소스가 활발한 커뮤니티에서 논의되는지, 그 커뮤니티 내 구성원이 적극적으로 협력하고 있는지는 아주 중요한 선택의 표지석이 될 수 있다.
오픈소스 라이브러리를 GitHub에서 관리 중이라면, 오픈된 이슈 개수, Pull Request 수, 마지막 커밋 일시, 기여자 수, 사용자 수 및 스타 수 등을 통해 오픈소스 개발이 얼마나 활발하게 이뤄지고 있고, 지속적으로 발전할 가능성이 있는지 파악할 수 있다.
논문 및 연구 결과를 비교 분석하는 경우, Papers with Code에서 최근 라이브러리, 데이터셋, 프레임워크 등의 활성화 정도를 확인하여 사용자 평가와 라이브러리에 대한 기여도를 확인하여 활성화 정도를 평가할 수 있다.
Redhat의 경우, 회사가 오픈소스 기반의 가치화 모델을 개발하고(호환성 제공, 보안 강화, 기술 지원 등), 오픈소스 라이브러리를 업데이트할 때 커뮤니티 구성원의 제안을 적용한다. 따라서 가치화 모델을 기반으로 한 오픈소스 라이브러리도 개인 및 기업의 활발한 참여 프로젝트로 판단될 수 있다.
Hugging Face[199], EleutherAI[200], LAION[201] 등과 같은 생성 AI 모델의 문서와, 모델의 공유가 활발한 플랫폼에서, 모델의 해석가능성과 조율을 중점적으로 다루는 특정 커뮤니티 그룹도 확인할 수 있다.
08-2 오픈소스 라이브러리의 위험 요소는 관리되고 있는가?
오픈소스 라이브러리나 소프트웨어도 저작권자가 소스코드를 공개했을 뿐이며 지식재산권(IP, Intellectual Property)으로 보호받는 소프트웨어이다. 따라서 저작권자가 제시한 라이선스(저작권) 준수 조건이 엄연히 존재하며, 오픈소스 라이브러리마다 라이선스에 따라 다양한 의무 사항이 있다. 이때 라이선스 위반 및 저작권 침해로 법적 책임을 져야 할 위험이 있으므로 반드시 라이선스와 관련된 위험 요소를 분석하고 관리해야 한다.
오픈소스 라이브러리를 사용할 때 위험 요소를 관리할 필요가 있다. 개발 과정에서 사용되는 개발 환경의 버전이나 오픈소스 라이브러리의 변경으로 인한 호환성 문제를 고려하여 오픈소스 라이브러리의 종류와 버전을 신중하게 선택하는 것이 중요하다. 또한 선택한 오픈소스 라이브러리에 보안 취약점이 존재할 수 있으므로 이러한 문제를 관리가 필요한 잠재적 보안 위험으로 평가하는 것은 필수적이다.
08-2a 사용 중인 오픈소스 라이브러리의 라이선스 준수 사항을 이행하였는가?
오픈소스는 무료로 사용할 수 있지만 각 라이선스의 요구사항이 별도로 규정되어 있다. 따라서 오픈소스 라이브러리를 사용하여 인공지능 모델을 개발할 때는 사용할 오픈소스의 라이선스 유형과 라이선스 고지를 확인하고, 미래에 발생할 수 있는 법적 위험을 최소화하기 위해 먼저 권한이나 의무를 이해하는 것이 필요하다.
참고: 코드 생성기 AI 모델 개발 및 활용 시 오픈소스 라이선스 법적 쟁점 사례[203, 205]
AI 코드 생성기의 출력을 사용하면 개발자가 라이선스 침해 주장을 할 수 있는가?
오픈소스 라이선스는 오픈소스코드의 복사・수정・재배포를 허용하기 때문에 AI 도구에서 코드를 출력하는 것만으로는 침해가 되지 않을 수 있다. 그러나 코드가 출력되고 라이선스 준수 의무가 충족되지 않으면 계약 위반이 될 수 있으며, 일부 오픈소스 라이선스에서는 이러한 위반으로 인해 라이선스가 종료될 수 있다. 라이선스 해지 후에도 계속 사용하면 침해가 될 수 있다.
개발자가 새로운 소프트웨어 애플리케이션을 개발할 때, AI 코드 생성기의 출력을 사용하려면, 애플리케이션에 오픈소스 라이선스에 따라 라이선스를 부여하고 출력물(생성 소스코드)을 사용할 수 있어야 하는가?
AI 코드 생성기의 출력물이 제한적인 오픈소스 라이선스(예: 코드 공개)의 적용을 받는 경우, 다른 프로그램에 해당 출력물을 사용하면 해당 프로그램이 오염(taints)된다. 이를 방지하기 위해서는 프로그램 전체가 제한적인 오픈소스 라이선스와 동일한 조건으로 라이선스가 부여되어야 하며, 전체 프로그램의 소스코드를 제3자가 사용할 수 있도록 공개해야 할 수도 있다. 즉, 제3의 수신자는 프로그램을 무료로 복사・수정・재배포할 수 있는 권리를 갖게 된다. 유료로 라이선스를 받을 수 있는 독점 소프트웨어를 구축하려는 경우에는 AI 코드 생성기의 출력을 사용하는 것이 이상적인 솔루션은 아니다.
08-2b 사용 중인 오픈소스 라이브러리의 호환성 및 보안 취약점을 확인하였는가?
라이브러리의 버전 변경 과정에서 개발 환경, 언어, 도구 및 다른 라이브러리 버전과 호환되지 않는 호환성 문제가 발생할 수 있다. 따라서 라이브러리 간의 의존성(dependency)을 파악하는 등, 호환성을 고려하여 오픈소스 라이브러리 종류 및 버전을 선택해야 한다.
사용 중인 오픈소스 라이브러리에서 보안 취약점이 발견되기도 한다. 보안 취약점에 따른 영향을 최소화하기 위해 보안 취약점 및 버전 변경에 따른 릴리즈 노트를 지속적으로 확인하여 신속히 탐지하고 대응해야 한다.
CVE(Common Vulnerabilities and Exposures)와 같은 보안 취약점 분석, WhiteSource Bolt와 같은 라이선스 위험 분석 도구를 활용하여 최근 발견된 보안 위협 내용과 라이브러리 개발 팀의 대응 정도를 파악하여 라이선스 및 보안 취약점에 대응할 수 있다.
Last updated