AI / / 2021. 5. 23. 15:30

(OSS) 공개SW 라이선스 이해

1강 공개SW 라이선스 관리 필요성

▣ 공개SW의 활용

- 공개SW는 소스코드, 라이브러리, 유틸리티, 툴, 완제품 수준에 이르기까지 다양한 방법으로 활용될 수 있음

- 특히, 다양한 공개SW를 활용함에 있어서는 결합형태에 따라 소스코드 공개 범위가 상이할 수 있어 결합형태에 따른 라이선스 호환성 검토를 수행해야 하며, 라이선스 이슈는 보통 소스 코드와 라이브러리 수준의 결합 형태에서 많이 발생 됨

※ AGPL은 완제품 수준에서도 이슈가 발생될 수 있음

 

▣ 공개SW 유입 경로

공개SW 코드

- 내부적 검토완료 된 공개SW

- 개발자가 다운로드 한 검토되지 않은 공개SW

- 재사용되는 내부코드에 포함된 공개SW

- 상용 소프트웨어에 포함된 공개SW

- 써드파티 라이브러리에 포함된 공개SW

- 외주개발에서 사용된 공개SW

 

▣ 공개SW 관리체계 구축

- 2019, NIPA 공개SW 시장조사에 따르면 45.7%가 소비자(사용자)로서 공개SW의 코드 일부 활용

- OSBC 공개SW 관리 성숙도 단계에 따르면 많은 기업들이 공개SW를 활발하게 사용함에도 불구하고, 공개SW를 관리하는 조직 성숙도 단계는 초기단계인 위험노출단계에 머물러 있음을 알 수 있음

 

=>현황분석&관리체계 수립 → 통제&관리 필요

- 진단 및 전략 정의를 통해 공개SW 관리체계 수립 범위를 확정

- 기존 SW개발 프로세스를 기반으로 관리 항목에 대한 개선과 이행사항을 검토하여 체계 구축 수행


2강 공개SW 라이선스 이해

▣ 공개SW의 정의

- 공개SW와 상용 소프트웨어의 가장 큰 공통점은 저작권이 있다는 것

- 다만, 저작권리의 행사방식이 가장 큰 차이점이며 일반적인 공개SW 저작권자들은 소스 코드를 공개하고 누구나 복제, 설치, 사용, 변경, 재배포가 가능하도록 저작권리를 행사하고 있음

 

▣ 공개SW 라이선스 개념 분류

º Free Software (Richard Stallman, 1983)

- 프로그램을 실행할 수 있는 자유

- 프로그램을 채택하고 연구할 수 있는 자유

- 프로그램을 재 배포할 수 있는 자유

- 프로그램을 개선할 수 있는 자유

 

º Open Source Software (Eric Raymond, 1998)

- 개발되는 방식에 초점을 맞추는 실용적 접근

- 산업계는 물론이고 개발자에게도 경제적인 보상을 할 수 있어야 한다고 주장

- "보는 눈만 많다면, 어떤 버그라도 쉽게 잡을 수 있다"

 

▣ 공개SW 철학에 따른 라이선스 분류

Permissive Copyleft
- 사용함에 있어서 별다른 요구사항을 부여하지 않고 광범위한 권한을 부여
- 라이선스 요구사항 최소화
(라이선스 copy, notice 보전)
- 소스코드는 누구든지 사용할 수 있게 공개
- 라이선스는 원래 저작물 뿐 아니라 파생저작물에도 적용

º Permissive

- 고지의무 : BSD, MIT

º Weekly Protective

- 수정코드에 대한 공개 : MPL, EPL, LGPL

º Strongly Protective

- 결합된 모든 코드에 대한 공개 : GPL

 

▣ Open Source Initiative 공개SW 정의

(1) 자유로운 재배포

(2) 원시코드 제공

(3) 파생저작물

(4) 저작자의 소스코드 원형 유지 : 최초 원시코드 & 패치

(5) 개인 및 단체에 대한 차별 금지

(6) 사용 분야에 대한 차별 금지

(7) 라이선스의 배포

(8) 특정 제품에만 유효한 라이선스 금지

(9) 다른 소프트웨어를 제한하는 라이선스 금지

(10) 라이선스의 기술 중립성

 

▣ 공개SW 라이선스 주요용어 및 개념

º 라이선스

- 행정상의 허가나 면허, 또는 그것을 증명하는 문서, 면허, 면허장으로 순화

- 수출입이나 그 밖의 대외 거래의 허가, 또는 그 허가증

- 외국에서 개발된 제품이나 제조 기술의 특허권, 또는 그것의 사용을 허가하는 일

사용 형태 범위 의무 사항
복제 ?
파생물 ?
수취, 실행 only X
배포 공개 범위, 특허 포기, 공개 방법,
양립성, 고지

 

주요 라이선스 및 의무사항

- 주요 공개SW 라이선스의 GPL, LGPL, CPL, MPL 등은 공개SW 코드 뿐 아니라 사용자 코드 공개의무 발생

- 공개SW를 홀용하면서 공개하기 어려운 코드를 보호하기 위해서는 적절한 라이선스 관리가 필요함

라이선스 주요 의무사항 공개 범위
GPL - 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, GPL 명시
- 소프트웨어 수정 링크 시 모든 코드를 GPL에 의해 공개
GPL 코드와 연결된 모든 코드
LGPL - 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, LGPL 명시
- 소프트웨어 라이브러리 수정 및 링크 시 라이브러리 소스 코드를 LGPL에
의해 공개, 파일단위 복제 및 수정 시
GPL에 의해 공개
LGPL 라이브러리를 구성하는 모든 코드
MPL - 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, MPL 명시
- 특허 권리 포기 조항(공개SW 사용자들에게 특허권리를 주장할 수 없음)
- 소프트웨어 수정 사용 시 해당 파일을 공개
MPL 코드를 수정한 해당 파일
EPL - 자유로운 사용, 복제, 배포 및 수정
- 저작권 표시, 보증책임이 없다는 표시, EPL 명시
- 특허 권리 포기 조항(공개SW 사용자들에게 특허권리를 주장할 수 없음)
- 소프트웨어 수정 사용 시 해당 모듈을 공개
EPL 코드를 수정한 해당 모듈

 


3강 공개SW 라이선스 분쟁 및 관리 사례

▣ 공개SW 라이선스 주요 위반 사례

- Patric McHardy

- Google vs Oracle

- 한글과 컴퓨터 vs Artifex

 

▣ 관리 사례

- LG 전자 오픈소스 사이트

- 카카오서비스

- 미 연방정부 코드 공개 및 공유

 

▣ 공개SW 가시화 및 관리

º 다섯 가지 주요 공개SW 관리 프로세스

(1) INVENTORY : 공개SW 사용 목록 구축

(2) MAP : 알려진 보안취약점 맵핑

(3) IDENTIFTY : 라이선스와 품질 리스크 식별

(4) TRACK : 공개SW 리스크 정책 집행

(5) ALERT :  새로운 보안취약점 모니터링

'AI' 카테고리의 다른 글

Ubuntu CUDA 재설치 + PyTorch  (0) 2023.07.31
(AI-03) 딥러닝 개발 환경  (0) 2021.05.23
(AI-02) 인공지능 개발 이해  (0) 2021.05.23
(AI-01) 인공신경망 이해  (0) 2021.05.23
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유