당신을 잠 못 이루게 하는 오픈 소스의 문제점 TOP 3

어떻게 해결할 것인가?



들어가는 말


오픈 소스 모델은 지속 가능한 개발을 빠르게 이끄는 주역입니다. 강한 공동체 의식을 불어넣고 협업이 용이하며 투명성이 높아 개발자들 사이에서 인기가 높죠.

현 시대에 많은 기업이 오픈 소스 인프라를 기반으로 웹, 모바일, 클라우드 솔루션을 구축하고 있습니다. 클로즈드 소스를 사용하는 SaaS 기업은 자사 소프트웨어의 커뮤니티 버전을 제공하는 방법으로 오픈 소스 대열에 합류하고 있고요. 이렇게 응집하려는 노력은 생태계에 씨앗을 뿌리고 공동 혁신을 촉진하는 데 틀림없이 중요한 역할을 합니다.

하지만 오픈 소스에는 기업이 미처 대비하지 못할 수 있는 어두운 면도 존재합니다. 문제는 전혀 예상하지 못한 때 찾아오고 하룻밤 사이에도 잘못될 수 있어요. 사실 경영자 대다수는 사업 데이터의 보안이 잘 되어 있는지, 개발팀이 적절한 보호 메커니즘을 구축했는지 같은 걱정에 늘 시달립니다. 5,500명 이상의 IT 전문가를 대상으로 한 소나타입(Sonatype)의 데브섹옵스(DevSecOps) 커뮤니티 조사에 따르면 오픈 소스의 보안 침해는 지난 5년 사이 71%로 증가했다고 합니다. 경영진 41%는 조직에 오픈 소스 거버넌스를 도입하거나 강요하지 않는다고 답변했다고 해요. 애플리케이션의 약 90%에 오픈 소스가 보급되었다는 사실을 고려하면 참으로 우려스러운 결과가 아닐 수 없습니다.

“커뮤니티 기반” 기술이 개방형 표준을 사용하는 것은 이제 당연한 선택이 되었습니다. 하지만 그 안에 숨어 있는 중대한 리스크를 기업이 모르는 수가 있어요. 이 가이드에서는 모든 팀이 알고 있어야 할 대표적인 오픈 소스 문제 세 가지를 알아보겠습니다.


오픈 소스 보안 침해 증가율 71%



주의해야 할 오픈 소스 문제 3가지



1. 소프트웨어 패치가 늦어진다


최근의 사이버 범죄를 보면 보안 침해 사례가 무수히 많았죠. 크든 작든 데이터 유출 사고는 기업 평판에 치명적인 손상을 입힐 수 있습니다. 그로 인해 법적, 금전적 문제도 끝없이 이어지고요. 따라서 오픈 소스를 채택한 팀은 소프트웨어에 취약점이 감지되는 즉시 패치를 해야 한다는 막대한 책임을 가집니다. 취약점이 개발 주기의 후반부에 감지될수록 해결 비용은 더 높아져요. 많은 기업은 이 과정을 단축하고자 취약점 탐지에 돈과 자원을 추가로 투입합니다. 하지만 즉시 적용 가능한 패치가 없다면, 패치가 있어도 적용할 시점을 예측하지 못한다면 어떻게 될까요? 오픈 소스 개발자가 여러분의 애플리케이션에 포함된 코드를 자주 유지하지 않는다면 어쩌죠? 외부에서 접근하거나 업무 수행에 필수적인 앱은 그럴 경우 특히 위험해집니다. 개발팀은 대체 솔루션을 찾기 위해 취약점이 코드에 미친 영향을 몇 주씩이나 분석해야 할 수도 있습니다. 최후의 수단으로 애플리케이션을 일시 중단시켜야 하는 경우도 있고요. 이렇게 되면 금전적으로 엄청난 손해를 입겠죠. 오픈 소스로 인한 리스크는 대부분 클 수밖에 없습니다. 그렇기 때문에 기업은 경계심을 늦추지 말고 문제를 즉각 해결할 의무가 있어요.



2. 코드의 보안성과 호환성을 유지해야 한다


오픈 소스는 유비쿼터스식입니다. 그래서 규모와 상관없이 모든 개발팀이 어렵지 않게 오픈 솔루션을 찾아 프로젝트에 통합시킬 수 있는 거예요. 하지만 자사 제품에 사용된 오픈 소스 컴포넌트의 완전한 기록을 정확히 관리하고 유지하는 개발팀은 많지 않습니다. 여기다 경영진이 개발팀에 강력한 소프트웨어 법률 준수strong software legal complicance(SWLC)를 강조하지 않으면 장기적으로 심각한 결과를 초래할 수 있어요. NPM 블로그는 이렇게 썼습니다. “최신 자바스크립트 프로젝트들은 보통 700-1200개나 되는 패키지에 의존하고 있다!”라고요. 만약 개발팀이 코드 소스와 그 유효성을 감시하는 일과 화이트리스트 정책을 통합하는 일을 소홀히 한다면 문제는 눈 깜짝할 사이에 수습 불가능한 지경에 이릅니다.






3. 라이선스의 미묘한 차이를 이해하지 못한다


개발자라면 프로젝트에 오픈 소스를 추가할 때 라이선스 조건에 각별히 더 주의해야 합니다. 소프트웨어 라이선스는 간단하지 않아요. 재배포를 허용하는 것도 있고, 아닌 것도 있습니다. 단독으로 원활히 동작하던 것도 다른 라이선스 타입과는 미묘한 차이 때문에 충돌하기도 하죠. 문제가 생기면 까다로워질 수 있습니다. 명확하게 정의하기 힘든 상황이라면 더더욱 복잡해지고, 결과적으로 그런 시나리오에는 어느 정도의 리스크 요소가 따릅니다. 오픈 소스 코드를 사용하는 개발자는 라이선스 조건을 제대로 해석하고, 더 나아가 혹시 모를 법적 리스크를 최소화하기 위해 문장에 숨은 의미까지 파악해야 합니다. 여러분은 자신이 개발한 애플리케이션의 라이선스 제한 사항을 하나도 빠짐없이 알고 계시는지요?






센차 솔루션 - 더 스마트하고 더 안전하다


여러분이 사용하는 코드베이스의 법적 규정을 준수하고 코드가 노출된 보안 취약점을 주의 깊게 경계한다면 여기서 알아본 대부분의 문제는 줄일 수 있습니다. 하지만 상황을 다 통제하지 못하는 경우가 많죠. 그럴 때에는 하나의 엔티티가 지원하는 기업 솔루션을 선택하는 쪽이 더 안전합니다. 이 솔루션의 존재 목적은 오로지 사용성, 보안성, 현대화거든요. 즉각적인 도움을 줄 직원도 상시 대기 중이고요.





기업용 애플리케이션을 제작할 때




전문 기업이 만든 고성능 컴포넌트와 툴은 높은 상호 운용성으로 팀의 법적 리스크를 최소화하고 생산성을 최대화합니다. 센차 제품을 사용한다면 아직 발생하지도 않은 취약점 위협 때문에 스트레스를 받지 않아도 돼요. 라이선스 호환성 문제로 걱정하거나 방대한 코드 소스와 컴포넌트 화이트리스트를 유지할 필요도 없습니다. 그렇게 귀중한 시간과 자원을 아꼈다면 최신 기능을 더해 애플리케이션을 강화하고 기업의 성장 동력으로 활용하세요. 걱정에 사로잡혀 뜬눈으로 밤을 지새지 마십시오. 여러분의 팀을 위해 더 스마트하고 더 안전한 선택을 하기 바랍니다.





출처:


1. Sonatype, “DevSecOps Community Survey” 2019년

2. The npm Blog “Why use Semver” 2017년 6월 22일


* 본 문서는 센차 본사에서 제공한 문서를 한글 번역한 것입니다.

Featured Posts
Recent Posts