| 개발을 편리하고 빠르게 만들어 주는 오픈소스, 관리는 어떻게 할까? | 2022.04.20 |
오픈소스는 개발의 속도를 크게 향상시켜 주는 소중한 자원이다. 그런데 그 잠재력을 온전히 누리려면 관리라는 걸 해줘야 한다. 사용하고 있는 오픈소스가 무엇인지 기록해 두는 것은 물론 그 오픈소스와 관련된 디펜던시들까지도 염두에 두고 모니터링 해야 한다. 까다로울 수 있는 일이지만, 오픈소스 없이 개발하는 것보다야 훨씬 쉬운 일일 것이다.
[보안뉴스 문정후 기자] 요즘 오픈소스의 위험성에 대한 말이 많은데, 사실 오픈소스를 쓰는 모든 조직들이 다 위험에 노출되어 있다거나, 어마어마한 위험을 감수하고 있는 건 아니다. 다만 오픈소스를 쓰는 만큼 조금 더 신경을 써야 할 부분이 분명히 있고, 이를 간과하는 건 꽤나 심각한 결과를 초래할 수 있다. ![]() [이미지 = utoiimage] 현대 사회 내에 존재하는 대부분의 소프트웨어와 애플리케이션들은 오픈소스를 기반으로 만들어져 있다. 그리고 오픈소스의 사용자 풀이 굉장히 크고, 대형 커뮤니티가 이미 검증한 오픈소스라면 기업 내부에서 독자적으로 만든 소프트웨어보다 더 안전할 가능성도 높다. 그러니 오픈소스를 이제 와서 몇몇 보안 취약점을 이유로 적으로 돌리는 건 말이 안 되는 이야기다. 그저 이전보다 조금 더 신경써 관리하면 오픈소스도 우리의 좋은 친구가 될 수 있다. IT 업체 블로브래킷(BluBracket)의 제품 관리자 케이시 비손(Casey Bisson)은 “예를 들어 오픈SSL이라는 오픈소스는 세계에서 가장 많이 사용되고 신뢰 받는 암호화 도구이지만 만약 사용자들이 비밀 키를 리포지터리에 그대로 저장해 두면 아무런 소용이 없는 것”이라고 예를 든다. 오픈소스와 생산성의 상관 관계 비손은 “오픈소스도 제대로 관리만 하면 얼마든지 리스크 없이 사용할 수 있다”고 강조한다. “오픈소스 관리법만 익힌다면 개발자들은 빠르고 스마트하게 일할 수 있게 됩니다. 더 이상 개발을 어렵게만 하지 않아도 되지요. 오픈소스만큼 생산성을 향상시켜 주는 개발 도구는 없습니다. 대신 안전하게 사용하는 법을 익혀야 하는 것은 필수입니다. 이 필수 항목이 간과되고 있어서 문제죠.” 비손은 계속해서 “오픈소스 소프트웨어는 개발 팀과 사업 운영의 속도를 높이기 위해 반드시 사용해야 하는 요소”라며, “오픈소스 관리법을 익힌다는 건 업무의 속도를 높이고 생산성을 향상하는 효과접적인 방법”이라고 강조한다. “그러면서 꼭 이해해야 할 것이 하나 더 있는데, ‘인간의 손길이 어린 정성’ 같은 개념은 보안과 생각보다 어울리지 않는다는 겁니다. 오픈소스 관리는 반드시 자동화 기술을 동반해야 합니다.” 오픈소스 소프트웨어 관리 전략을 마련할 때 중요하게 생각할 것이 보안이라는 건 당연한데, 사실 보안에만 너무나 강조점이 맞춰져 있어 실패하기도 한다고 비손은 설명을 이어간다. “보안 만큼 중요한 건 개발자의 개발 속도이기도 합니다. 그걸 같이 고려하여 전략을 세워야 합니다. 예를 들어 자동화로 CI와 CD 프로세스를 구축함으로써 개발자의 속도 향상을 지원해 주면서 동시에 보안을 그 자동 CI와 CD 프로세스에도 주입해야 한다는 겁니다. 개발자보고 보안의 속도에 맞추라고 하는 데서부터 오픈소스 관리 전략은 실패합니다.” 여기서 비손은 한 가지를 더 이야기 한다. “오픈소스를 적극적으로 활용하다 보면 작은 개발사들도 대기업 만큼의 속도를 낼 수가 있습니다. 그것에 신이 나 자원을 더 아끼는 방향으로 가기도 합니다. 이 만큼이나 성과를 내면서 자원을 절약할 수 있다는 것에 집중하는 것인데요, 그러면서 놓치는 것들이 생겨납니다. 자동화 기술을 활용한 오픈소스 관리 체제 같은 것이 좋은 예죠.” 비손은 자동화 코드 스캐닝 기술이 포함된 자동 CI/CD 기술이 지금 시대의 개발 과정에 필수적인 요소라고 보고 있다. “특히 권한과 관련된 설정 사항을 자동으로 모니터링하고, 정책을 자동으로 적용시켜 주는 기술은 개발의 속도와 안전을 동시에 향상시켜 줍니다. 다른 건 몰라도 이 두 가지는 꼭 도입하는 게 좋습니다. 이미 작업이 다 끝난 후에 보안 취약점이 나오는 상황은 그 어느 개발자도 원하지 않습니다. 중간 중간 보안 점검을 함으로써 프로젝트 완료 후 허겁지겁 수정 작업을 하지 않게 하는 건 개발자들도 환영합니다. 다만 그것 때문에 속도를 잃는 건 싫은 것이죠.” 디펜던시 관리의 중요성 엔비지움(nVisium)의 애플리케이션 보안 컨설턴트인 미클레인 케펠러(Miclain Keffeler)는 “모든 오픈소스 관리 전략에서 가장 중요한 건 ‘디펜던시’임을 기억해야 한다”고 강조한다. “대부분의 팀들은 자신들이 사용하는 오픈소스 소프트웨어의 목록을 가지고 있습니다. 아무 거나 막 가져다 쓰는 개발 팀은, 제대로 된 개발 회사에서 운영하지 않죠. 하지만 오픈소스 목록을 꼼꼼하게 유지하는 회사라 해도 각 오픈소스 소프트웨어의 디펜던시들은 간과할 때가 많습니다. 즉 오픈소스 소프트웨어와 연결되어 있는 디펜던시 코드에서 취약점이 발견될 경우 업데이트를 진행해야 한데 목록 관리를 하지 않다 보니 놓칠 때가 생긴다는 겁니다. 공급망 문제가 생기는 것이고, 평소 이런 디펜던시(종속성) 관리를 하지 않는다면 고치는 데 긴 시간이 걸립니다.” 케펠러는 이런 문제를 다루고 싶어 하는 조직들에 오픈소스 보안 관리에 널리 사용되는 도구인 레노베이트 봇(Renovate Bot)을 추천한다. 자동으로 프로젝트나 라이브러리의 업데이트를 적용해 주는 도구로, 사용자가 설정한 오픈소스의 디펜던시들을 항상 최신화 시킬 수 있게 해 준다고 케펠러는 설명한다. 그 외에 OWASP 디펜던시 트랙(OWASP Dependency Track)과 같은 간단한 도구들도 추천할 만하다고 케펠러는 덧붙있다. “개발에 참여하고 오픈소스를 사용하는 모든 인원들이 디펜던시라는 걸 늘 염두에 두고 있어야 합니다. 그게 오픈소스의 가장 큰 특성 중 하나니까요.” 비손 역시 ‘오픈소스 보호 = 공급망 보호’라는 케펠러의 말에 동의한다. 그러면서 “오픈소스 관리에 있어 공급망 관리라는 건 빼놓을 수 없는 개념”임을 강조한다. “오픈소스 소프트웨어는 이미 수많은 조직들에서 더 이상 빼놓고 생각할 수 없는 요소가 됐습니다. 작년 한 해 동안 공급망 공격이라는 게 큰 이슈가 됐죠. 물론 과거에도 있던 일이지만 요 근래 큰 화제가 된 건 왜일까요? 오픈소스가 그만큼 널리 사용되고 있기 때문입니다. 오픈소스로 이득을 보고 있다면서, 오픈소스로 인해 생기는 공급망 문제에 무관심하다는 건 대단히 근시안적인 태도입니다.” 비손은 “오픈소스 관리는 담당자 한 사람이 할 수 없는 일이며, 모두가 참여해야 하는 성질의 일”임을 강조하기도 한다. “오픈소스는 말 그대로 열려 있는 자원이죠. 누구나 사용할 수 있습니다. 그렇다면 그 누구나가 오픈소스에 대한 책임을 어느 정도는 공유해야 합니다. 그게 마땅하죠. 누구나 사용하고 변경하고 관리할 수 있는 게 오픈소스라면, 모두가 책임감을 가지고 관리하는 게 맞습니다.” 글 : 네이선 에디(Nathan Eddy), IT 칼럼니스트 [국제부 문정후 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|