많은 사람이 잘 모를 수도 있지만, 개발자들은 이미 오픈소스를 사용하고 있다. 문제는 얼마나 많은 오픈소스를 사용하고 있는지 정확히 파악하지도 못하고 있고, 안전하게 사용하지도 못한다는 데 있다. 오픈소스를 어떻게 관리하고, 왜 그렇게 해야 하는지 알아보자.
대기업들이 무분별할 정도로 오픈소스를 많이 사용하는 것처럼 보일 수 있다. 이에 대해
최근 SAS는 오픈소스 프로젝트의 수를 제한해야 한다고 주장했다. 이는 SAS가 겨냥하는 시장에서 데이터 과학과 분석용으로 오픈소스인 R 프로그래밍 언어 사용이 증가하고 있는데 대한 '저항'일 것이다. 그러나 여기에는 '좋은 지적'도 숨어있다. 오픈소스를 책임 있게 사용해야 한다는 것이다. 다시 말해 현재 사용중인 오픈소스를 파악하고, 추적하며, 유지관리 해야 한다는 의미다.
개발자들이 사용하고 있는 오픈소스의 수, 오픈소스가 초래하는 취약점을 잘 모르는 기업이 많다. 모르는 오픈소스 프로젝트를 대상으로 보안을 평가하고, 패치를 관리할 수 없는 법이다.
소나타입(Sonatype)의 '2016 소프트웨어 공급망 연구(2016 software supply chain study)'에 따르면, 써드파티 구성요소가 엔터프라이즈 자바 애플리케이션 코드의 80~90%를 차지하고 있다. 또 기업이 다운로드 받는 구성요소 6개 가운데 1개에 보안 취약점이 있다. 오래된 구성요소의 보안 취약점은 새 구성요소보다 3배 더 많다. 그런데 기업용 앱에서 쓰이는 구성요소 가운데 개발된 지 2년 이상인 구성요소가 절반 이상이다. 하트블리드(Heartbleed) 버그가 발견된 지 2년이다. 그런데 시스코 보안 연구소(Cisco Security Research)가 2015년 테스트 한 오픈SSL(OpenSSL) 버전 가운데 절반 이상이 여전히 취약한 것으로 드러났다.
2014년 베라코드(Veracode)가 애플리케이션 5,000개를 스캔한 결과에 따르면, 기업용 웹 애플리케이션에 쓰이는 오픈소스와 써드파티 구성요소의 취약점 수는 평균 24개다.
오픈소스 모니터링 및 관리 서비스 제공사인 화이트소스(WhiteSource)를 공동 창업한 CEO 라미 사스는 CIO닷컴(CIO.com)에 "오픈소스 사용을 알고 있는 소프트웨어 회사들도 이를 더 효과적으로 관리할 도구가 필요하다. 그런데 기업 내부에서 얼마나 많은 오픈소스를 사용하고 있는지도 모른다. 최근 은행과 금융 서비스 회사, 미디어 회사 등 대기업은 아주 큰 규모의 소프트웨어 엔지니어링 부서를 운영하고 있다. 그런데 오픈소스를 광범위하게 사용하고 있는 것에 놀란다. 또 수동인 인벤토리 추적 프로세스가 미흡한 것에도 놀란다. 평균적으로 자기 생각보다 3배가 많은 구성요소를 발견한다. 심지어 10배인 경우도 있다"고 말했다.
개발자들이 오픈소스로 얻는 이점을 금하라는 의미가 아니다. 특히 데브옵스(DevOps)를 도입하는 과정이라면 오픈소스가 매우 중요하다. 자체 코드 개발로 차별화를 달성할 수 없는 분야에 유용한 도구가 많기 때문이다. 사스는 "개발자들이 핵심 비즈니스에 계속 집중할 수 있도록 오픈소스를 이용하는 것이 맞다. 자체 개발 없이 필요한 것들을 많이 찾을 수 있다. 커뮤니티가 이미 검증을 마쳤고, 계속 유지관리 하고 있을 사용하는 것이 좋다. 그래야 효율적이다. 누구나 오픈소스를 좋아하는 이유가 여기에 있다. 그러나 오픈소스는 고유의 문제점이 있다"고 설명했다.