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 |