보안뉴스 창간 15주년을 축하합니다!!

Home > 전체기사

눈덩이처럼 불어나는 소프트웨어 디펜던시 문제, 물자표 제도 필요해

  |  입력 : 2021-04-15 14:37
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
이제 오픈소스 없이는 소프트웨어를 만드는 게 불가능할 정도가 되었다. 그렇다고 오픈소스를 하나하나 추적해 취약점을 해결한다는 것에도 한계가 있다. 어쩌면 소프트웨어 유통 구조 자체를 변경해야 할지도 모른다.

[보안뉴스 문가용 기자] 소프트웨어 애플리케이들은 평균 500개가 넘는 오픈소스 라이브러리들을 탑재하고 있다고 한다. 2년 전만 해도 298개였으니, 짧은 기간 동안 디펜던시가 77%나 올라갔다는 소리가 된다. 그렇다는 건 소프트웨어를 구성하는 요소들을 하나하나 점검한다는 것이 점점 더 어려워진다는 뜻도 된다. 이러한 내용을 보안 업체 시놉시스(Synopsys)가 발표했다.

[이미지 = Pixabay]


시놉시스의 발표 자료에 의하면 애플리케이션의 98%에서 오픈소스 요소들이 최소 1개 이상 발견되고 있으며, 애플리케이션 코드의 평균 75%가 오픈소스 라이브러리에서 따온 것들이라고 한다. 디펜던시가 광범위해지고 있다는 건데, 그래서 그런지 애플리케이션의 84%에서 최소 한 개 이상의 취약점이 존재한다고 한다. 참고로 한 애플리케이션에 있는 취약점의 개수는 평균 158개였다.

시놉시스의 수석 보안 전략가인 팀 맥키(Tim Mackey)는 “결국 현대 소프트웨어들에는 전부 디펜던시 문제가 있다는 것”이라고 요약한다. “그렇다고 디펜던시를 낮추는 흐름으로 역행할 수는 없습니다. 결국 소프트웨어를 구성하고 있는 수많은 요소들에서 취약점을 찾아내 패치할 수 있는 방안을 마련해야 하겠지요. 지금은 이 부분을 전혀 제대로 하고 있지 못하고, 심지어 고민도 별로 없는 상태입니다. 시장에 계속해서 구멍 난 소프트웨어들만 나오게 될 겁니다.”

오픈소스 디펜던시 문제는 현대 IT 생태계에서 점점 더 심각한 것이 되어 가고 있다. 특별히 자바스크립트 애플리케이션 프레임워크와 관련된 것들에서 그 심각성이 도드라지게 나타나는 중이다. 자바스크립트라는 언어 자체가 가진 특유의 구조 때문이다.

지난 해 활발히 활용되고 있는 4만 5천여 개의 리포지터리들을 분석했을 때 자바스크립트 기반 애플리케이션들은 평균 10개의 직접 디펜던시들을 보유하고 있었다. 하지만 이 10개의 디펜던시들 역시 다른 디펜던시들과 연결되어 있어 결국 한 개 애플리케이션이 700개에 달하는 디펜던시와 엮여 있음이 조사되기도 했었다. PHP 애플리케이션들은 평균 70개, 루비 애플리케이션들은 평균 68개의 디펜던시들을 보유하고 있다는 것을 생각해 보면 자바스크립트의 심각성을 알 수 있다.

“오픈소스 취약점 문제를 해결하려면 제일 먼저 ‘오픈소스에 취약점들이 존재한다’는 것부터 인지해야 합니다. 하지만 많은 조직들에서 개발을 진행하면서 이 부분을 간과하거나 무시하고 있습니다. ‘오픈소스도 취약하다’는 걸 인지하게 되면, 자신이 사용하고 있는 오픈소스 요소의 취약점을 찾아내 해결하고 싶어질 겁니다.” 시놉시스의 설명이다.

오픈소스 요소들에서 나타나는 취약점들 중 이미 발견된 지 오래된 것들도 상당한 비중을 차지하고 있다고 시놉시스는 지적했다. 오픈소스에서 가장 빈번하게 나타나는 고위험군 취약점 10개 중 2020년에 발견된 건 2개 뿐이었다. 2019년에 발견된 취약점은 1개, 2018년에 발견된 것이 3개, 나머지는 다 그 전에 발견된 것들이었다.

맥키는 “디펜던시 문제가 까다로운 이유는, 디펜던시가 또 다른 디펜던시를, 그 디펜던시가 또 다른 디펜던시와 엮여 있어 취약점 추적이 대단히 길어질 수 있기 때문”이라고 설명한다. “단순 취약점 스캔만으로는 가장 직접적인 오픈소스 요소들까지만 점검할 수 있습니다. 그 뒤에 길게 이어진 디펜던시의 사슬들까지 다 보지 못합니다.”

그렇기 때문에 취약점을 최소 한 개라도 가진 애플리케이션들이 전체 애플리케이션의 84%를 차지하고 있다는 결과가 나온다고 시놉시스는 설명한다. 산업별로 봤을 때 마케팅 기술 분야에서 가장 많은 취약점이 발견됐다. 감사를 거친 애플리케이션들 중 95%가 취약한 오픈소스를 사용하고 있었던 것이다. 에너지, 도소매, 전자상거래, 의료, 사물인터넷 제조 등이 65~80%를 기록하며 마케팅 기술 분야의 뒤를 이었다.

이러한 문제를 어떻게 해결해야 할까? “오픈소스를 사용하는 기업들이 모든 디펜던시들을 추적해 하나하나 점검할 수 있습니다. 하지만 소프트웨어 구조가 대단히 복잡하다면 꽤나 비효율적인 방법이 되겠지요. 아마 불가능한 경우도 있을 겁니다. 또한 취약점이 발견된다 하더라도 패치를 금방 구할 수 없어 대체품을 찾느라 다시 발품을 팔아야 할 수도 있습니다. 오픈소스 요소들을 꼼꼼하게 점검하라고 권고하긴 하지만, 노력한 만큼의 성과가 나오지 않을 수 있는 상황이라는 겁니다.”

그래서 맥키는 “결국 오픈소스 커뮤니티 및 개발 관리 책임자가 능동적으로 취약점 관리를 하고 패치를 내야 하는 문제에 봉착하게 된다”며 “소프트웨어 생태계에서도 물자표(BOM) 체계가 도입되어야 한다”고 주장한다. 물자표란 어떤 제품을 생산하는 데 있어 소요된 부품의 양을 나타내는 문건이다. “오픈소스의 활용도가 높아지면 높아질수록 생태계 구조가 바뀌어야 할 겁니다. 각 소프트웨어가 어떤 요소들로 구성되어 있는지 표기하는 걸 필수로 할 필요도 있어 보입니다.”

3줄 요약
1. 오픈소스에 대한 의존도, 갈수록 높아지고 있어 오픈소스 없이 소프트웨어 개발도 불가능한 상황.
2. 그런데 이 오픈소스에 있는 취약점은 간과되고 있는 상황.
3. 소프트웨어를 구성하는 요소들을 표시하는 ‘물자표’ 제도가 필요하다는 주장이 나오고 있음.

[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
2021 전망보고서위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
지난 5일 밤 발생한 카카오톡 장애로 인해 일명 ‘넷플릭스법’에 대한 관심이 다시금 높아지고 있는데요. 통신서비스 품질 유지 의무를 부과하고 있는 기업 가운데 가장 안정적인 서비스를 제공하는 부가통신사업자는 어디라고 생각하시나요?
네이버
카카오
웨이브
넷플릭스
구글
페이스북