08 오픈소스 라이브러리의 보안성 및 호환성 점검

  • 인공지능 모델 개발 단계에서는 개발 기간을 단축하고 최신 기술 동향을 빠르고 유연하게 적용하기 위해 다양한 오픈소스를 활용할 수 있다. 오픈소스 라이브러리 도입 전에는 필요성 및 원하는 기능의 제공 여부 등의 확인이 필요하다. 오픈소스 활용을 결정하였다면 사용할 라이브러리가 안정적으로 업데이트 중인지, 주의해야 할 라이선스 기준은 무엇인지 등을 확인한다. 오픈소스를 사용 중인 경우, 사용하던 오픈소스가 어느 날 라이선스 정책이 바뀌거나 취약점이 새롭게 발견될 수도 있다. 따라서 사용 중인 오픈소스의 목록 및 버전을 지속해서 확인하여 운영 및 보안상의 위험 요소를 점검한다.


08-1 오픈소스 라이브러리의 안정성을 확인하였는가?

  • 오픈소스 라이브러리는 특정 단체가 관리하기도 하거나, 개인 혹은 기업이 관리한다. 오픈소스를 운영하는 방식은 다양하므로 사전에 꼼꼼히 체크해야 향후 발생할 수 있는 위험(risk)을 최소화할 수 있다.

  • 인공지능 모델 개발에 오픈소스 라이브러리를 사용한다면, 안정성 확인을 위해 해당 오픈소스 라이브러리가 얼마나 많은 사용자를 보유하는지, 업데이트는 자주 이루어지는지, 이슈가 발생했을 때 대응은 신속하게 이루어지는지 등을 따져봐야 한다.

  • 베이스라인 모델 등 AI에서 자주 사용하는 오픈소스를 사용한다면, 적용한 후에도 지속적으로 업데이트 및 호환성 현황을 추적하여 관리하여야 한다.

08-1a 활성화된 오픈소스 라이브러리를 사용하였는가?

  • 오픈소스 라이브러리의 안정성은 많은 개발자가 적극적으로 참여할 때 가능하다는 의견이 있다. 따라서, 사용하려는 오픈소스 라이브러리의 개발과정을 주의 깊게 살펴볼 필요가 있다.

  • ‘기업 공개소프트웨어 거버넌스 가이드-정보통신산업진흥원’에 따르면, 오픈소스 프로젝트의 활성화 정도를 확인하는 것도 안정성을 확인하는 한 가지 방법일 수 있다. 해당 오픈소스가 활발한 커뮤니티에서 논의되는지, 그 커뮤니티 내 구성원들이 적극적으로 협력하고 있는지는 아주 중요한 선택의 표지석일 수 있다.

    • 오픈소스 라이브러리를 GitHub에서 관리 중이라면, 오픈된 이슈 개수나 Pull Request 수, 마지막 커밋 일시 등을 통해 오픈소스 개발이 얼마나 활발하게 이루어지고 지속해서 발전할 가능성이 어느 정도인지 파악할 수 있다.

    • 그 밖에도 해당 오픈소스와 관련된 StackOverflow 질문 수, 오픈소스 다운로드 수, Google 질의query 결과 수 등 간단한 측정을 통해서 해당 라이브러리의 활성화 정도를 확인할 수 있다.

    • Redhat의 경우, 오픈소스 기반의 수익화 모델(호환성, 보안 강화, 기술지원 등 제공)을 개발하고 있으며, 오픈소스 라이브러리 업데이트 시 커뮤니티 내 구성원들이 제안한 개선 사항도 적용한다. 이처럼 수익화 모델 기반의 오픈소스 라이브러리 역시 개인 및 기업의 참여가 활성화된 프로젝트로 판단할 수 있다.


08-2 오픈소스 라이브러리의 위험 요소는 관리되고 있는가?

  • 오픈소스 라이브러리 또는 소프트웨어는 저작권자가 소스코드를 공개했을 뿐이며 지식재산권으로 보호받는 소프트웨어이다. 따라서, 저작권자가 제시한 라이선스(저작권) 준수 조건이 존재하며, 오픈소스 라이브러리마다 다양한 의무 사항이 있다. 이때, 라이선스 위반 및 저작권 침해로 법적 책임을 져야 할 위험이 있으므로 반드시 라이선스와 관련한 위험 요소를 분석하고 관리해야 한다.

  • 오픈소스 라이브러리의 종류 및 버전 선택 시 개발 과정에서 사용된 오픈소스 라이브러리 또는 개발 환경 버전 변경에 따른 호환성을 고려하여야 하며, 이때 사용된 오픈소스 라이브러리에서 보안 취약점이 발견될 수 있으므로 이러한 이슈들을 확인하여 보안상의 위험 요소에 대한 관리도 필요하다.

08-2a 사용 중인 오픈소스 라이브러리의 라이선스 준수사항을 이행하였는가?

  • 오픈소스는 무료로 사용할 수 있지만, 라이선스별로 준수사항은 별도로 규정된다. 그러므로 오픈소스 라이브러리를 활용하여 인공지능 모델을 개발한다면, 사용할 오픈소스의 라이선스 종류 및 라이선스 고지문을 확인하고, 허용 또는 의무 사항을 우선해서 숙지해야 향후 발생할 수 있는 법률적 위험을 최소화할 수 있다.

  • 다음은 OSI(Open Source Initiative) 단체에서 정한 오픈소스 라이선스의 준수사항이다.

    • 자유로운 재배포 (Free Redistribution)

    • 소스코드 공개 (Source Code Open)

    • 2차 저작물 허용 (Derived Works)

    • 저작자의 소스코드 원형 유지 (Integrity of The Author's Source Code)

    • 개인이나 단체에 대한 차별 금지 (No Discrimination Against Persons or Groups)

    • 사용 분야에 대한 차별 금지 (No Discrimination Against Fields of Endeavor)

    • 라이선스의 배포 (Distribution of License)

    • 특정 제품에만 유용한 라이선스 금지 (License Must not be specific to a product)

    • 다른 소프트웨어를 제한하는 라이선스 금지 (License Must not restrict other software)

    • 기술 중립적인 라이선스 제공 (License must be Technology-Neutral)

08-2b 사용 중인 오픈소스 라이브러리의 호환성 및 보안취약점을 확인하였는가?

  • 라이브러리의 버전 변경 과정에서 개발 환경, 언어, 도구 및 다른 라이브러리 버전과 호환되지 않는 호환성 문제를 초래할 수 있다. 따라서 오픈소스 라이브러리 종류 및 버전 선택 시 라이브러리 간 의존성(dependency)을 파악하는 등 호환성을 고려해야 한다.

  • 사용 중인 오픈소스 라이브러리에서 보안취약점이 발견되기도 한다. 보안 취약점에 따른 영향을 최소화하기 위해 보안취약점 및 버전 변경에 따른 릴리즈 노트(release note)를 지속해서 확인하여 신속히 탐지 및 대응해야 한다.

개선 의견 보내기

Last updated