오픈소스 이니셔티브(OSI)의 '오픈 소스 정의'에 의하면 소프트웨어(SW)의 소스코드가 공개돼 누구나 자유롭게 사용할 수 있고, 누구나 SW의 기능을 개선하거나 새 기능을 추가할 수 있는 SW를 말한다.
오픈소스 SW의 대표적인 예로는 웹 브라우저인 크롬, 운용체계인 리눅스, 데이터베이스인 MySQL 등이 있다. 업무용 SW, 자율주행 자동차나 바이오 신약 개발은 물론 메타가 제작한 라마3와 같은 생성형 인공지능(AI) 등 크고 작은 SW 개발 시 오픈소스를 기본으로 하고 있다.
오픈소스를 사용하면 개발 비용을 절감할 뿐만 아니라 다양한 기능을 추가하거나 개선하거나 빠른 기술의 발전을 따라 잡을 수 있는 장점이 있다. 오픈소스는 정보기술 산업 발전에 중요한 역할을 하고 있다. 특히 클라우드 환경에서 자바와 같은 SW 언어가 사용되고 오픈 데이터베이스가 사용되는 현 시점에서 오픈소스 역할과 위력은 대단하다.
하지만 이렇게 사용하기 쉽고 많이 사용하는 오픈소스 활용에는 극복해야 할 단점이 있다. 첫째, 사이버보안 문제다. 오픈소스는 누구나 소스코드를 수정할 수 있기 때문에 악의적인 목적으로 취약점을 심어 넣을 수 있다. 둘째, 기술지원 한계다. 오픈소스는 주로 커뮤니티로 지원이 이뤄지므로 커뮤니티의 활성화 정도에 따라 지원 질과 속도가 달라질 수 있다. 셋째, 법적 분쟁이다. 오픈소스 SW는 저작권법에 따라 보호되므로 저작권법을 위반하면 법적 분쟁에 휘말릴 수 있다.
예를 들어 데이터센터에 수천대 서버에 수백 종류 SW가 가동되고 있고, 이 SW 대부분이 수천, 수만개 오픈소스 연결에 의해 개발됐다고 생각해 보자. 그런데 이 오픈소스가 그 누구도 버전 관리나 보안 취약성 관리 없이 복사에 복사를 거듭하면서 임의로 변경해 사용하고 있다면 과연 데이터센터는 안정성이나 해킹에 안전할까? 해커의 피싱 메일, 지능형위협(APT) 공격, 랜섬웨어 유포 등은 물론 향후 로봇이나 자율 자동차, 군수 무기, 원자력 등이 임의로 조작된다면 사회적으로 어떤 재앙이 뒤따를지 모른다.
더욱이 생성형 AI가 프로그램을 자동으로 작성해 주는 편리함이 있는 반면, 생성형 AI 코드 생성 학습데이터가 오픈소스라면 오픈소스 규약에 의거 어느 오픈소스를 사용했는지를 밝혀야 하는데 챗GPT는 소스를 밝히지 않는다. 그렇기 때문에 이를 그냥 사용할 경우 보안·버전 관리 등을 할 수 없게 된다.
미국에서도 국가 사이버 보안 강화를 위한 행정명령에 조 바이든 대통령이 서명을 했다. 주요 내용으로는 첫째, 연방 정부의 사이버 보안 강화를 위해, 클라우드 서비스 및 제로 트러스트 아키텍처를 채택하고, 다중 요소 인증과 암호화를 배포해야 하며, 엔드포인트 탐지 및 대응(EDR) 시스템을 구축하고, 정보 공유를 개선해야 한다. 둘째, 민간 부문 사이버 보안 강화를 위해, SW 공급망 보안 강화 노력을 해야 하는데, SW 취약점을 식별하고 수정하기 위한 프로세스를 마련해야 한다. SW 보안 정보를 공개해야 하는 것 등이 포함돼 있다. 미국 통신정보관리청(NTIA)에서는 상용 SW는 물론 오픈소스를 포함한 모든 SW 공급망 보안 강화를 위한 구체적인 방안으로 SW 구성 목록(SBOM) 가이드라인을 제시하고 있다.
우리도 SW 품질보증(QA) 프로세스를 도입해 라이선스를 관리하고, 오픈소스 코드 보안 취약점을 자동으로 검사하는 도구를 사용하거나, 보안 취약점을 신고하고 수정하는 과정을 체계화하는 등 오픈소스 단점을 최소화하고 장점을 극대화할 수 있는 체계를 마련해야 한다.
이경배 연세대·성균관대 겸임교수 kb.lee@yonsei.ac.kr