(붙임) 2022 - 금융분야 오픈소스 소프트웨어 활용ㆍ관리 안내서 (배포용)
(붙임) 2022 - 금융분야 오픈소스 소프트웨어 활용ㆍ관리 안내서 (배포용)
(붙임) 2022 - 금융분야 오픈소스 소프트웨어 활용ㆍ관리 안내서 (배포용)
2022–12–9
금융분야
오픈소스 소프트웨어
활용·관리 안내서
2022. 12.
OSS
OSS
<제・개정 이력>
제・개정 일자 주요 내용 비고
2022.12.9. 안내서 최초 제정
2
금융분야 오픈소스 소프트웨어 활용・관리 안내서
목 차
Ⅰ. 개요 ·····································································································1
1. 배경 및 목적 ····································································································2
2. 적용 대상 및 범위 ···························································································3
3. 안내서 구성 및 활용 ························································································3
2. 세부 관리 절차 ······························································································28
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅰ
개요
1. 배경 및 목적
2. 적용 대상 및 범위
3. 안내서 구성 및 활용
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅰ
개요
1 배경 및 목적
2
Ⅰ. 개요
2 적용 대상 및 범위
3 안내서 구성 및 활용
3
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅱ
오픈소스 소프트웨어
소개
1. 오픈소스 소프트웨어에 대한 이해
2. 오픈소스 소프트웨어 활용
3. 오픈소스 소프트웨어 공유 플랫폼
4. 오픈소스 소프트웨어 선택
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅱ
오픈소스 소프트웨어 소개
1 오픈소스 소프트웨어에 대한 이해
가. 개념
6
Ⅱ. 오픈소스 소프트웨어 소개
제25조(소프트웨어 연구 및 기술개발 촉진 등)
② 정부는 소프트웨어 분야의 국가연구개발사업을 하는 우 다음 각 호의 방법으로 소프트웨어
연구개발이 활성화되도록 노력하여야 한다.
2. 국가연구개발사업의 결과물을 공개소프트웨어(저작권자가 원시코드를 공개하여 활용・복제・
수정 및 재배포가 자유로운 소프트웨어를 말한다)로 배포
나. 특징
7
금융분야 오픈소스 소프트웨어 활용・관리 안내서
2 오픈소스 소프트웨어 활용
8
Ⅱ. 오픈소스 소프트웨어 소개
[그림 2] Golang 공동 개발
9
금융분야 오픈소스 소프트웨어 활용・관리 안내서
10
Ⅱ. 오픈소스 소프트웨어 소개
11
금융분야 오픈소스 소프트웨어 활용・관리 안내서
12
Ⅱ. 오픈소스 소프트웨어 소개
[표 3] 플랫폼에서 제공하는 보안 기능
보안 기능 설명
- 로그인 시, 이중 인증을 통한 계정 보호
- 코드 수정・삭제 시 기밀성, 부인방지 등을 위해 전자서명 활용
접근제어
- 업무에 따른 코드 및 설정에 대한 접근제어
- 특정 IP만 접근할 수 있도록 제한
- 오픈소스 코드를 일일이 분석하여 취약점, 버그 등을 자동으로 찾아내어
보안 모니터링 작성자에게 경고 및 수정 요청
- 오픈소스에 악의적인 코드를 추가하려는 사용자 탐지 및 차단
자문 서비스 - 보안을 포함한 다양한 이슈에 대하여 자문 서비스를 운영
- 저작권・상표권 침해, 개인정보 유출, 악성코드, 피싱 등의 유해 오픈소스를
신고 제도
신고할 수 있는 제도 운영
4 오픈소스 소프트웨어 선택
[표 4] 오픈소스 소프트웨어 선택 기준
구분 내용
- 프로젝트에서 필요한 기능을 충족하며 사용하기 적합한지 고려
기능성
- 필요 이상으로 지나치게 과도한 기능을 제공하는 것은 지양
오픈소스 사용 - 프로젝트의 아키텍쳐나 운영체제와의 호환성 검토
조건 및 성능 - 벤치마킹을 수행하여 성능 측정 가능
- 오픈소스에 명시된 라이선스를 반드시 확인
라이선스
- 특히 GPL2) 등 코드 공개 의무가 있는 라이선스에 유의
- 취약점 발견 시 빠르게 조치가 이루어지고 있는지 등 검토
- 특히 마지막 릴리즈가 오래된 경우, 보안취약점을 가지고 있을 가능성이
보안 크므로 유의
- 오픈소스 계정에 게시된 이슈, 오픈소스 설명에 명시된 이슈 트래커 등을
통해 보안 이슈가 있는지 확인
13
금융분야 오픈소스 소프트웨어 활용・관리 안내서
구분 내용
- 오픈소스 제공 플랫폼의 Star 개수, Watch 또는 Fork 횟수 등을 통해 해당
오픈소스의 사용자 수를 추측
- 오픈된 이슈 개수, PR수, 마지막 커밋 일시 등을 통해 오픈소스의 활용도,
참여 활성화 수준
발전 가능성 등 파악
- StackOverflow 질문 수, 오픈소스 다운로드 수, Google 쿼리 결과 수 등과
같은 수치 활용
- 프로젝트에서 사용 중이거나 익숙한 프로그래밍 언어로 작성된 오픈소스를
사용하는 것이 유리
- 낮은 코드 품질의 오픈소스는 버그, 보안취약점, 성능 저하 및 유지관리 등의
소스 코드 이슈를 가질 가능성
- 단위 테스트 코드가 포함되어 있는지, 메서드 또는 함수가 읽기 쉽게 명명되어
사용 중인지, 코딩 컨벤션이 올바르게 지켜지고 있는지 등을 참고하여
소스코드의 품질을 판단
- 설치 방법, 튜토리얼, 참조 설명서 등 문서화가 잘 되어있는 오픈소스일수록
문서화
활용도가 높을 가능성
14
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅲ
오픈소스 소프트웨어
보안성 관리
Ⅲ
오픈소스 소프트웨어 보안성 관리
(출처 : Synopsys, Open Source Security And Risk Analysis Report, `21.5월)
16
Ⅲ. 오픈소스 소프트웨어 보안성 관리
2 보안성 관리
단계 고려사항 설명
- 오픈소스에 기능・보안성에 대한 사전검토
사전 기능 및 - 오픈소스 이슈 현황 확인
보안성 테스트 - 해당 오픈소스 취약점 정보(CVE, NVD 등) 확인
- 기관(ex. RedHat)에 검토 요청하여 신뢰성 검증
개발 전 - 코드 수정사항 발생 시 사용한 오픈소스에 대한 라이선스 정리를
통한 컴플라이언스 준수 검토
라이선스 검토 - 상호 충돌하는 라이선스 존재 여부 검토
- SCA를 활용한 라이선스 의무사항 검토
- 법무법인 및 사내 법무팀에게 자문 요청
- 보안부서와의 협업을 통해 개발이 완료되기 전에 중요기능(인증,
취약점 최소화
리소스 사용이 큰 기능 등)에 대한 취약점 최소화
- 중요기능의 경우, 기능 실패 혹은 법적 이슈 발생 시에 기능을
개발 중 대체수단 확보
장애 없이 수행하기 위한 대비책을 마련
자체 대응 및 - 중요기능의 경우, 단순 사용뿐 아니라 충분한 이해를 바탕으로
추가 개발 역량확보 자체적인 커스터마이징 및 문제 해결 능력 확보
- 테스트 부서, 보안부서 등에서 해당 프로젝트에 대한 기능 및
보안성을 검사
기능 및 보안성
개발 후 - 배포 전 오픈소스 테스트 자동화 도구를 통해 기능 및 성능 점검
테스트
- 오픈소스 취약점 이슈 검토 및 자체적인 정적・동적 분석을 통한
보안성 확보
17
금융분야 오픈소스 소프트웨어 활용・관리 안내서
단계 고려사항 설명
- 프로젝트에 사용된 외부 패키지 종속성 검사
종속성 검사
- 종속성 충돌 발생 시, 개발팀과 협의를 통해 빠른 문제해결
개발 후 - (운영팀) 사용된 오픈소스 현황 관리
모니터링
- (보안팀) 사용된 오픈소스 취약점 정보 모니터링
보안패치 - 사용한 오픈소스의 보안패치를 확인 및 적용하여 취약점을 최소화
참고 전자금융감독규정 시행세칙
제2조의2 (망분리 적용 예외)
② 규정 제15조제1항제5호에서 금융감독원장이 인정하는 경우란 다음 각 호와 같다.
2. 업무상 외부통신망과 연결이 불가피한 다음의 정보처리시스템(다만, 필요한 서비스
번호(port)에 한하여 연결할 수 있다)
가. 전자금융업무의 처리를 위하여 특정 외부기관과 데이터를 송수신하는 정보처리시스템
나. DMZ구간 내 정보처리시스템과 실시간으로 데이터를 송수신하는 내부통신망의
정보처리시스템
다. 다른 계열사와 공동으로 사용하는 정보처리시스템
③ 제1항 및 제2항의 규정은 금융회사 또는 전자금융업자가 자체 위험성 평가를 실시한
후 <별표7>에서 정한 망분리 대체 정보보호통제를 적용하고 정보보호위원회가
승인한 경우에 한하여 적용한다.
18
Ⅲ. 오픈소스 소프트웨어 보안성 관리
19
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅳ
오픈소스 소프트웨어
라이선스 관리
Ⅳ
오픈소스 소프트웨어 라이선스 관리
22
Ⅳ. 오픈소스 소프트웨어 라이선스 관리
복제・배포・수정에 대한 권한 ○ ○ ○ ○ ○
보증의 부인 및 책임의 제한 ○ ○ ○ ○ ○
배포 시, 라이선스 사본 첨부 ○ ○ ○ ○ ○
저작권 고지사항 ○ ○ ○ ○ ○
배포 시, 소스 코드 제공 의무 X X ○ ○ X
수정 시, 수정내용 고지 ○ X ○ ○ X
명시적 특허 라이선스의 허용 ○ X ○ ○ X
라이선시가 특허소송 제기 시
○ X ○ X X
라이선스 종료
조합저작물 작성 및 타
○ ○ X X ○
라이선스 배포 허용
※ 라이선스 내 관련 규정에 대한 언급이 없을 시, 별도의 제약이 없다고 간주
(출처 : WhiteSource, Open Source Licenses in 2022: Trends and Predictions, `22.1월)
23
금융분야 오픈소스 소프트웨어 활용・관리 안내서
참고 라이선스 위반 사례
국내 A사는 美 아티펙스사를 대상으로 오픈소스 라이선스 위반 관련 소송 합의금으로
205만달러(약 23억원) 지불(‘17.12.)
美 아티펙스사가 개발・공개한 오픈소스 ‘고스트스크립트(한글 문서를 PDF 파일로 변환하는
기능을 제공하는 라이브러리)’는 듀얼 라이선스*(GPL 또는 상용)가 적용
* 해당 오픈소스를 무료로 사용할 경우 오픈소스가 적용된 소프트웨어의 코드 공개 의무 부여(GPL 라이선스),
코드 공개 의무 없이 이용하고자 할 경우 사용료 지불을 통해 라이선스 구매(상용 라이선스)
24
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅴ
오픈소스 소프트웨어
관리 절차
1. 관리 절차 개요
2. 세부 관리 절차
금융분야 오픈소스 소프트웨어 활용・관리 안내서
Ⅴ
오픈소스 소프트웨어 관리 절차
1 관리 절차 개요
26
Ⅴ. 오픈소스 소프트웨어 관리 절차
10) the Open Web Application Security Project, 오픈소스 웹 애플리케이션 보안 프로젝트
27
금융분야 오픈소스 소프트웨어 활용・관리 안내서
2 세부 관리 절차
가. 식별
참고 전자금융감독규정
28
Ⅴ. 오픈소스 소프트웨어 관리 절차
참고 공개 소프트웨어 정보 교환 명세 주요 내용
소프트웨어 패키지와 관련된 저작권, 라이선스 컴포넌트들의 정보를 전달하기 위한 표준
서식을 정의, 국외 표준인 SPDX 명세(버전 2.2)* 참조
표준 서식은 생성정보, 패키지정보, 라이선스정보, 파일정보와 검토자 정보를 포함
* Software Package Data Exchange Specification Version 2.2(출처 : https://spdx.dev)
[표 7] 오픈소스 식별 및 관리 운영 사례
방법 설명
- LICENSE 혹은 COPYING 파일에서 라이선스 정보 확인
오픈소스 소스코드 저장소를
- 소스코드 파일 상단 주석(저작권 및 라이선스 정보 표기) 확인
통한 라이선스 확인
- README 파일 또는 웹사이트에서 라이선스 정보 확인
분석 도구를 활용한 라이선스 - 오픈소스 라이선스 및 보안취약점 식별을 위하여 오픈소스
및 보안취약점 식별 분석도구를 통한 자동화 식별 환경 구성
- 별도 오픈소스 게시판을 통해 개발자의 오픈소스 이용 문의 응대*
오픈소스 게시판 운영 * (사례) 특정 오픈소스 사용시 보안취약점 발생 이슈 문의 사항에 대해,
보안취약점 문제가 없는 상위 버전 업데이트 권고
29
금융분야 오픈소스 소프트웨어 활용・관리 안내서
나. 이슈 파악 및 해결
30
Ⅴ. 오픈소스 소프트웨어 관리 절차
발생한 경우로 나누어 대처할 수 있다. 활용하는 과정에서 발생한 경우, 해당 원인이 된
설계상의 실수나 소스코드를 수정하면 비교적 간단하게 이슈가 해결된다.
다. 승인
31
금융분야 오픈소스 소프트웨어 활용・관리 안내서
참고 오픈소스 거버넌스 체계 구축
OSPO 구성 절차 및 역할
(리더 지정) 오픈소스 개발 방법론을 충분히 이해하고, 오픈소스 전략과 정책을 모든
구성원이 이해하도록 전파할 수 있는 커뮤니케이션 역량을 갖춘 리더 임명
(인원 구성 및 역할 정의) 기업마다 규모나 업종이 다르고, 오픈소스를 통해 얻고자 하는
목적이 다르므로 OSPO 역할이 달라질 수 있음
(정책 및 프로세스 구축) 오픈소스 정책 수립 및 실행을 위한 프로세스 구성
(자동화 도구 지원) 자동화하기 위한 도구를 개발하여 제공하는 역할 수행
숕 인원 구성 및 숖 정책 및 숗 자동화 도구
숔 리더 지정
역할 정의 프로세스 구축 지원
※ 이 과정에서 부서 간 협업을 유도하고, 발생하는 이슈를 해결
32
Ⅴ. 오픈소스 소프트웨어 관리 절차
라. 관리
33
금융분야 오픈소스 소프트웨어 활용・관리 안내서
현황
관리 절차 항목
(O/X)
□ 소프트웨어 신규 개발・도입 시 포함된 오픈소스 소프트웨어 식별
절차가 마련되어 있는가?
(예시: 점검 도구를 사용하여 오픈소스 소프트웨어 식별 등)
34
Ⅴ. 오픈소스 소프트웨어 관리 절차
현황
관리 절차 항목
(O/X)
35
금융분야 오픈소스 소프트웨어 활용・관리 안내서
현황
관리 절차 항목
(O/X)
□ 오픈소스 소프트웨어 관리 대상 목록에 소프트웨어 이름, 소프트웨어
버전, 해당 소프트웨어를 사용하고 있는 다른 소프트웨어 목록,
라이선스 현황 등을 기록・관리하고 있는가?
36
Ⅴ. 오픈소스 소프트웨어 관리 절차
37
금융분야 오픈소스 소프트웨어 활용・관리 안내서
□ 소프트웨어 구성요소 관리 도구
SW360 □ 제품에 사용된 컴포넌트 추적, 보안취약점 평가, 라이선스 의무 관리, 고지문
등 법적 문서 생성 기능 제공
38
Ⅴ. 오픈소스 소프트웨어 관리 절차
별첨3 식별 및 관리 운영 사례
개발자 대상 교육 및 정보 공유
39
금융분야 오픈소스 소프트웨어 활용・관리 안내서
국내 가이드
국외 가이드
The Minium Elements For a Software Bill of Materials (SBOM) (NTIA, 2021)
40
Ⅴ. 오픈소스 소프트웨어 관리 절차
국내 표준
국외 표준
41
금융분야 오픈소스 소프트웨어 활용・관리 안내서
금융분야
오픈소스 소프트웨어
활용·관리 안내서