오픈소스를 사용하면 개발자가 시간과 비용을 절약할 수 있다. 다시 말해 개발자에게 오픈소스 활용은 일상이 됐다. 하지만, 그만큼 보안에 대한 위험 부담도 있다. 오픈소스를 사용하면서 보안을 향상하는 데 필요한 사항을 소개한다.
올해 에퀴팩스(Equifax) 해킹은 오픈소스 소프트웨어와 구성요소가 여러 이점이 있지만 적절하게 유지하고 관리하지 않으면 기업 보안에 엄청난 위험을 유발한다는 점을 상기시켰다.
4월, 플래시포인트 인텔리전스(Flashpoint Intelligence)의 연구원들은 범죄자들이 인기 오픈소스 마젠토(Magento) 전자상거래 플랫폼에 대해 강압적인 암호 공격을 사용하여 해킹된 접근으로 신용카드 기록을 확보하고 암호화폐 채굴에 초점을 둔 악성코드를 설치했다고 밝혔다.
연구원들은 최소 1,000개의 마젠토 관리자 패널이 해킹당했다는 사실을 발견하고 2016년 이후로 딥웹(Deep Web)과 다크웹(Dark Web)에서 해당 플랫폼에 대한 관심이 수그러들지 않고 있다고 말했다. 게다가 파워프론트(Powerfront) CMS와 오픈카트(OpenCart)에 대한 관심도 잘 알려져 있다.
수년 동안 오픈소스 코드의 인기가 상승했으며 모든 산업에서 모든 규모의 기업들이 사용하고 있다.
시장에서 널리 알려진 오픈소스 운영체제 외에도 기업 사용자들은 오픈소스 생산성 소프트웨어, 관리자와 개발자를 위한 툴과 자체 소프트웨어 개발에 사용하는 다양한 코드 라이브러리를 활용한다. 심지어 상용 소프트웨어도 일반적으로 오픈소스 코드를 기반으로 개발된다.
큐델스키 시큐리티(Kudelski Security)의 CTO 앤드류 하워드는 “기업에서 오픈소스 소프트웨어가 더욱 광범위하게 도입되고 있다”고 밝혔다. 이어서 “기업이 애자일 방법론으로 가면서 오픈소스가 더욱 중요해지고 있으며 더 많은 툴이 제공되고 있다. 오늘날 시장에 진입하는 새 소프트웨어 개발자를 보면 오픈소스 기술에 익숙하게 교육을 받았다”고 덧붙였다.
오픈소스의 보안 이점
개발자는 오픈소스 소프트웨어에 크게 의존하며 기업들은 특히 대형 그룹이 유지관리하는 주요 오픈소스 프로젝트에 익숙하다. 또한 보안에 대한 ‘다수의 관찰자’ 접근방식이 존재한다. 하워드는 “오픈소스 소프트웨어를 사용할 때의 주요 이점이 있다. 무엇보다 비용이 절감된다”고 강조했다. 이어서 “이론적으로 더 많은 사람이 관심을 두고 있다. 하지만 그는 소규모 프로젝트나 코드 라이브러리에는 적용되지 않는다. 일부 소프트웨어는 커뮤니티가 전혀 없다”고 덧붙였다.
오픈소스 코드의 또 다른 보안 이점은 문제가 있는 경우 기업이 이를 공개하여 즉시 해결할 수 있다는 점이다. 시놉시스(Synopsys, Inc.)의 오픈소스 솔루션 관리자 멜 라구노에 따르면, 코드가 비전매 특허 계약에 따라 라이선스가 있는 경우 일반적으로 업체가 대응할 때까지 기다려야 한다.
오픈소스 소프트웨어가 보안 위협을 유발하는 이유
시놉시스는 오픈소스 코드의 결함을 스캔하는 무료 서비스인 커버리티(Coverity)를 관리한다. 라구노는 “전체적으로 오픈소스 소프트웨어의 품질이 개선되었다”고 강조했다. “우리의 스캔 프로젝트에 약 7억 5천만 줄의 오픈소스 코드가 참여하고 있으며 110만 개의 결함을 식별했고 65만 개의 결함이 이미 해결되었다.” 그는 소규모를 포함한 많은 프로젝트에서 코드의 잠재적인 보안 취약성을 스캔하지 않는다고 말했다.
예를 들어, 블랙덕 소프트웨어(Black Duck Software, Inc.)는 55만 프로젝트에서 100억 줄 이상의 오픈소스 코드를 추적한다. 이것이 다가 아니다. 리눅스 재단은 310억 줄의 코드가 오픈소스 저장소에 제출되었다고 보고했다.
이 모든 오픈소스 코드를 누가 사용하고 있을까? 모두가 사용하고 있다. 최근의 블랙덕 보고서에 따르면 오픈소스 구성요소는 현재 상업용 애플리케이션 중 96%에 사용되고 있다. 일반적인 애플리케이션은 147개의 오픈소스 구성요소가 있었으며 애플리케이션 중 67%는 취약성이 알려진 구성요소를 사용했다.
미 정부는 CVE(Common Vulnerability Enumeration) 목록과 NVD(National Vulnerability Database)를 후원한다. 2017년, 8,000개 이상의 새 취약성이 CVE 목록에 추가되됐. 높은 수치다.
그렇다면 기업들이 오픈소스 소프트웨어를 사용하는 이유는 무엇일까? 시놉시스의 블랙덕 보안 전략가 마이크 피팅거는 “일반적인 애플리케이션에서 코드 기반의 1/3 이상이 오픈소스다”고 강조했다. “이 코드 기반의 1/3을 대체하려면 개발팀이나 개발 시간을 50% 보강해야 하며, 현재로서는 불가능한 옵션이라고 생각한다”고 덧붙였다.
런던에서 여행 검색 엔진을 만드는 스카이스캐너(Skyscanner Ltd.)를 예로 들어보자. 해당 기업은 닷넷 같은 폐쇄적인 비전매 특허 플랫폼을 사용해 운용했었다. 스카이스캐너의 보안 엔지니어 알렉스 해리스에 따르면, 지난 수년 동안 오픈소스를 포함하여 더욱 광범위한 언어와 기술로 마이그레이션했다. 그는 “우리 엔지니어들이 이제는 다양한 소스로부터 의존성을 가져와 수 분 안에 코드를 배치할 수 있다”고 말했다.
또한 해리스는 이로 인해 보안 문제도 발생했다고 지적했다. “오픈소스는 커뮤니티가 라이브러리의 보안 버그를 검토한다는 점을 맹신하고 있는 것 같다”며 “현실적으로 항상 그런 것은 아닌 것 같다”고 그는 전했다.
해리스에 따르면, 여러 보편적인 라이브러리에는 취약성이 문서로 잘 정리돼 있다. 엔지니어들은 이런 라이브러리에서 코드를 가져와 배치하기 때문에 시인성 문제가 발생했다. 그는 “우리 제품에 있는 의존성이 몇 개인지 몰랐을 뿐”이라고 밝혔다.
오픈소스 소프트웨어 보안에는 더욱 상당한 ‘주의’ 필요
스카이스캐너뿐만이 아니었다. 최근의 베라코드(Veracode) 보고서에 따르면 조직 중 28%만이 애플리케이션에 어떤 구성요소가 내장되어 있는지 파악하기 위해 정기적으로 분석한다. 오픈소스 코드 사용량이 증가하면서 이런 위험 표면도 확대되고 있다.
오픈소스 코드에서 새로운 취약성이 지속해서 발견되고 있으며 문제를 찾아 해결하는 메커니즘이 마련되지 않은 프로젝트가 많다. 최근 오픈소스 유지관리자를 대상으로 진행한 스닉(Snyk) 설문조사에 따르면 44%가 보안 감사를 수행한 적이 없으며 17%만이 높은 수준의 보안 노하우가 있다고 밝혔다.
또한 오픈소스 프로젝트에서 보안을 문서로 정리할 정도의 표준이 존재하지 않는다. 깃허브(GitHub)에 있는 40만 개의 공개 저장소 중 2.4%만이 보안 문서가 마련되어 있었다.
그리고 문제가 해결되면 모든 기존 코드 사용자를 찾아 알려줄 방법이 없는 경우가 많다. 블랙덕의 피팅거는 “오픈소스 커뮤니티는 누가 구성요소를 사용하는지 모른다”고 지적했다.
스닉 설문조사에 따르면 오픈소스 유지관리자 중 88%가 릴리즈 노트(Release Note)에 보안 관련 발표사항을 추가하며 34%는 오래되고 안전하지 못한 버전을 반대한다고 말했다. 25%는 취약성 사용자에게 알리기 위한 노력을 전혀 기울이지 않는다고 말했으며 10%는 CVE를 제출한다.
스닉의 CEO 겸 공동 설립자 가이 포자니는 많은 사람이 CVE 프로세스가 어떻게 작동하는지 모르거나 이를 살펴볼 시간이 없다고 지적했다. 그는 “예를 들어, 자바스크립트에서는 우리가 추적하는 취약성 중 13%만이 CVE 번호가 있다”며 “나머지는 단순히 버그로 기록된다”고 이야기했다.
스닉은 릴리즈 노트와 깃허브 및 아파치 문제 추적 시스템 등에서 실마리를 찾아 오픈소스 라이브러리의 보안 문제 조짐을 찾는 보안 연구팀이 있다. 결과는 취약성 데이터베이스에 공개되며 가능한 경우 CVE 목록에도 제출한다.
하지만 CVE를 확보하는 것이 복잡할 수 있으며 위원회가 CVE 세부사항에 합의하고 프로젝트 소유자가 동의해야 한다. 포자니는 “현재 방식이 확대되지 않는다”고 말했다.
마지막으로 취약성이 발견되고 패치되며 패치가 공개되는 경우 해당 코드를 사용하는 기업이 이를 모르거나 모든 인스턴스를 찾는 데 어려움이 있을 수 있다. 예를 들어, 올해의 대규모 에퀴팩스 해킹에는 아파치 스트럿(Apache Struts) 오픈소스 소프트웨어의 취약성이 관련되어 있었다. 패치는 해킹이 발생하기 수개월 전에 공개되었으며 에퀴팩스는 패치에 관해 알고 있었지만 제때에 픽스(Fix)를 적용하지 못했다.
또 다른 문제는 기업들이 구 버전의 코드를 운용하고 있으며 호환성 문제, 준수성 또는 기타 이유로 최신 버전으로 이행할 수 없다는 점이다. 스닉에 따르면 취약성 픽스 중 16%만이 다른 버전으로 백포트(Backport)되고 있다고 한다.
찾아서 해결하기
이상적인 세상에서는 애플리케이션이 개입 없이 보안 패치가 나오자마자 모두 스스로 업데이트할 것이다. 하지만 실제로는 불가능할 때가 있다.
대신에 기업들은 자사의 환경에서 오픈소스 코드의 모든 인스턴스를 찾고 이 목적을 지속해서 업데이트하며 개발자들이 오래되고 안전하지 못한 라이브러리를 피하도록 안내하며 새 취약성이 발견될 때마다 패치를 배치하는 방법을 찾아야 한다.
스카이스캐너의 해리스는 “제품에서 취약한 라이브러리의 위치를 알 때만 제거할 수 있으며, 라이프사이클 중 조기에 수행할수록 비용이 절감되고 쉬워진다”고 밝혔다.
많은 기업이 스닉, 블랙덕, 베라코드 등의 업체에 도움을 청하고 있다. 그래서 스카이스캐너도 그렇게 했다. 해리스는 “스닉을 통해 어떤 프로젝트에 어떤 패키지가 사용되고 있는지, 포함된 취약성 및 코드에 도입된 경로를 파악할 수 있었다”고 말했다. 또한 그는 스닉이 코드를 작성하고 있는 개발자들에게 취약성을 즉시 알려 코드를 생산에 배치하기 전에 문제를 해결할 수 있도록 했다고 강조했다.
사용 중인 모든 코드를 추적하기가 어려울 수 있기 때문에 오픈소스 취약성 스캔을 개발 프로세스에 통합하는 것이 특히 대기업에 중요하다. 베라코드의 연구 VP 크리스 엥은 “우리가 대응하는 대부분 기업은 보유하고 있는 애플리케이션 인벤토리 전체를 파악하고 있지 못하며, 다소 걱정되는 부분이다”고 우려를 표했다.
베라코드가 취약성 스캔을 수행할 때 기업들은 바이너리(Binary) 코드를 업로드하며 베라코드는 NVD에 대해 이를 확인한다. 기업들이 운용하고 있지만 잘 모르고 있는 애플리케이션에 관해 파악할 수 있도록 돕기 위해 베라코드는 해당 기업의 주위도 스캔한다. 엥은 “노출되지 않은 다른 내부 앱을 찾아내지는 않겠지만, 어쨌든 이런 것들은 낮은 노출로 인해 위험도 낮을 것이다”고 말했다.
또한 그는 기업들이 내부적으로 무엇을 운용하고 있는지 파악하기 위해 사용할 수 있는 네트워크 툴이 있으며 네트워크가 분할된 경우 사각지대가 있을 수 있다고 덧붙였다. 기업들은 종점 장치에 에이전트를 설치하여 무엇이 운용되고 있는지 추적할 수 있다. 이어서 앵은 “모든 곳에 에이전트를 설치하지 않으면 일부 사각지대가 존재할 수도 있다. 이 모든 것을 한 번에 얻는 방법은 없기 때문에 문제가 어려운 것이다”고 이야기했다.
에퀴팩스에게는 분명 어려운 문제였다. 지난 10월, 전 CEO 리차드 스미스는 콩그레스(Congress)에 해당 기업의 정보보안 부서가 실제 해킹으로 이어진 아파치 스트럿 취약성을 찾기 위해 스캔하고 있다고 밝혔다. 그는 이 스캔에서 “이 취약성이 적용된 아파치 스트럿은 발견되지 않았으며 취약성은 에퀴팩스의 웹 애플리케이션에 생각보다 오래 머물러 있었다”고 전했다.
블랙덕의 피팅거는 “이 툴로 스캔할 환경에 있는 모든 서버를 파악해야 한다”고 말했다. 스캔이 완료되고 정확하다 하더라도 조직에 엄청난 수준의 관리 간접비를 발생시킨다. 개발 프로세스에 보안 점검이 내장되어 있지 않은 경우 스캔을 지속적으로 운용해야 하고 애플리케이션의 취약성을 개별적으로 반복해서 확인해야 한다.
개발자들은 애플리케이션을 업데이트하면서 취약한 새 라이브러리를 적용할 뿐 아니라 이전에 안전하다고 생각했던 기존의 라이브러리에서 새 취약점이 발견된다. 엥은 “소프트웨어가 시간이 지난다고 해서 와인처럼 숙성되는 건 아니다. 오히려 시간이 지나면 상하는 우유 같다”고 빗대서 말했다.
엥은 개발자가 기존 프로젝트에 사용한 라이브러리를 다시 검토하는 경우는 거의 없다고 지적했다. “나는 최신 버전을 다운로드하여 앱에 통합하고 다시는 떠올리지 않는다”고 그는 말했다.
현재 이 사안이 얼마나 중요한지는 이번 달 시놉시스가 5억 달러에 블랙덕을 인수한 것을 보면 알 수 있다. 데님 그룹(Denim Group, Ltd.)의 수석 존 딕슨은 “엄청난 시장 검증이라고 말하고 싶다”고 밝혔다. 그는 해당 거래의 규모에 놀랐다며 “중요하다고는 생각했었지만 그렇게 중요한 줄은 몰랐다. 해당 인수 건은 많은 이들의 관심을 불러일으켰다”고 덧붙였다. dl-ciokorea@foundryco.com