Home > 전체기사
오픈소스 취약점, 줄어들었으나 안심할 단계는 아니야
  |  입력 : 2020-06-26 12:03
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
자바스크립트와 파이선, 데브옵스의 인기 높아지면서 오픈소스 사용율도 올라가
생태계 구조의 한계 때문에 취약점 전부 파악해 잡아내기 어려워...사용자가 관리해야


[보안뉴스 문가용 기자] 자바스크립트, 자바, 파이선의 치솟는 인기 덕분에 오픈소스 소프트웨어의 사용률이 2019년 한 해 동안 2배 증가했다고 한다. 이 때문에 오픈소스 내에서 발견되는 취약점들에 대한 경고의 수위도 점차 높아지고 있다. 그런 가운데 보안 업체 스닉(Snyk)이 “오픈소스의 취약점 수가 20% 감소했다”는 희망적인 연구 결과를 발표했다.

[이미지 = utoimage]


그러나 스닉은 ‘오픈소스 보안 현황 2020(State of Open Source Security 2020)’ 보고서를 통해 “취약점이 줄어들었다는 것 자체는 좋은 소식이 맞으나, 겨우 20% 정도일 뿐이고, 여전히 대다수 개발 팀들은 취약한 오픈소스를 그대로 활용하고 있다”고 경고했다. 즉 아직 뭔가 특별히 개선되었다고 할 만한 상황은 아니라는 것이다.

스닉의 애플리케이션 보안 고문인 알리사 밀러(Alyssa Miller)는 “예를 들어 한 자바 애플리케이션의 경우 80행의 코드와 7개의 디펜던시로 구성되어 있었으나, 추적해 들어가니 코드베이스가 59개의 하위 디펜던시로 구성되어 있으며, 총 코드 행이 70만개가 넘는다는 것을 알 수 있었다”고 설명하며 “눈에 보이는 것이 전부가 아니다”라고 설명한다.

그렇기 때문에 오픈소스 생태계의 취약점 문제는 대단히 복잡하고 까다로운 문제라는 것. “사실 개발자들은 취약점은커녕 자신이 사용하고 있는 디펜던시들도 다 알지 못합니다. 이 상황이 보안을 위태롭게 만드는 것입니다.” 그럼에도 오픈소스가 개발 행위에 있어 가장 중요한 요소라는 지금의 상황을 이전으로 되돌리기란 불가능하다. 최근 보안 업체 시놉시스(Synopsys)가 발표한 바에 따르면 애플리케이션 하나에 포함된 오픈소스 요소가 평균 445개라고 할 정도니 말이다.

그렇다면 쓸 수도, 안 쓸 수도 없는 오픈소스를 어떻게 해야 할까? 이 문제를 인터넷보안포럼(Internet Security Forum, ISF)이 ‘오픈소스 소프트웨어 활용 : 문제와 보상(Deploying Open Source Software : Challenges and Rewards)’이라는 보고서를 통해 다루고 있다. 위험할 수 있는 오픈소스를 안전하게 사용하는 방법을 제안하는 내용이다.

“이제 개발의 방법론으로써 애자일과 데브옵스를 도입한 조직들이 세계적으로 많아진 상태입니다. 이 때문에 오픈소스를 선택하고 활용하는 사례가 더욱 많아지고 있습니다. 그런 문화에서 나온 애플리케이션들은 거의 전부 ‘믹스드 소스(mixed-source)’라는 형태를 취하고 있습니다. 앞으로도 애플리케이션들은 오픈소스를 짜깁기 한 믹스드 소스가 될 것입니다. 그러니 오픈소스의 관리와 보호가 개발 과정에 반드시 도입되어야 합니다.” ISF의 수석 분석가인 폴 홀란드(Paul Holland)의 설명이다.

프로그래밍 언어마다 더 관리하고 주의해야 할 부분들이 다르다는 것도 알아두어야 한다. 예를 들어 PHP 애플리케이션들은 오픈소스 라이브러리의 사용율이 비교적 낮은 편이다(평균 34개). 하지만 그 오픈소스 하나하나에 내포된 취약점들이 더 많은 편이라고 보안 업체 베라코드(Veracode)는 경고한다.

자바스크립트의 경우는 어떨까? 스닉의 보고서에 의하면 일단 어마어마한 인기를 구가하는 중이다. 개발자들의 73%가 자바스크립트와 노드js(Node.js)를 사용 중에 있다고 할 정도다. 하지만 자바스크립트와 노드js 기반 애플리케이션들은 대단히 높은 오픈소스 의존도를 보여준다. 한 애플리케이션에 평균 377개의 디펜던시가 발견되는 상황이기 때문이다. 실제 자바스크립트 애플리케이션에서 발견되는 취약점의 86%가 전부 디펜던시로부터 나온다고 한다.

이런 취약점들 때문에 나타나는 실제적인 피해는 무엇일까? 스닉의 보고서에 의하면 ‘개발 프로젝트의 악의적 변경(혹은 조작)’이라고 한다. 공격자가 특정 애플리케이션들을 개발자 몰래 변경시켜 자신들의 목적을 달성하는 데 활용한다는 것인데, 실제 정부 지원 해커들이나 사이버 범죄자들 모두 이 방법을 자주 사용해 자신들이 드나들 구멍을 확보한다고 스닉은 경고한다. 하지만 이러한 사건이 아직 빈번하게 나타나고 있지는 않은 상황이라고 덧붙였다.

자바스크립트 생태계에서 발견되는 취약점의 경우, 단 한 개의 취약점이 수천 개의 패키지들을 오염시키는 사례도 종종 나타난다고 한다. 이를 ‘프로토타입 오염(prototype pollution)’이라고 부르기도 한다. 스닉은 “단 두 개의 프로토타입 오염 취약점이 (스닉이 연구를 위해 스캔한) 프로젝트들의 25%에서 발견되었다”고 예시를 들었다. “이런 취약점들은 찾아내기가 매우 어렵습니다. 디펜던시를 하나하나 추적해 들어가는 게 쉽지 않기 때문입니다. 그렇기 때문에 이런 취약점들을 비롯한 사건 사고들이 자주 보도되지 않는 것이기도 합니다.”

스닉은 도커(Docker)로 대표되는 소프트웨어 컨테이너 이미지들 역시 주의해야 할 대상이라고 보고서를 통해 경고했다. “컨테이너 이미지들은 여러 소프트웨어들을 하나로 모으는데, 이 때 취약점이 존재하는 것들도 같이 수집됩니다. 철저히 조사하고, 어지간하면 ‘풀 버전’보다 가벼운 버전을 찾아 사용하는 것을 권장합니다.”

5줄 요약
1. 오픈소스의 취약점, 20% 정도 줄어들었으나 안심할 단계는 아님.
2. PHP는 디펜던시 사용율이 적지만 하나하나에 취약점이 많음.
3. 자바스크립트는 엄청나게 많은 디펜던시를 사용하기 때문에 취약점을 모두 추적하는 게 불가능.
4. 오픈소스 취약점 활용해 애플리케이션에 구멍 미리 뚫어놓는 공격자들 존재.
5. 오픈소스 취약점, 단 하나가 수많은 앱을 오염시키기도 함.

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

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

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


  •  SNS에서도 보안뉴스를 받아보세요!! 
그린존시큐리티 4개월 배너모니터랩 파워비즈 6개월 2020년6월22~12월 22일 까지넷앤드 파워비즈 진행 2020년1월8일 시작~2021년 1월8일까지위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
코로나19 팬더믹 이후, 가장 기승을 부리고 있는 사이버 공격 유형은 무엇이라고 보시나요?
랜섬웨어
피싱/스미싱
스피어피싱(표적 공격)/국가 지원 해킹 공격
디도스 공격
혹스(사기) 메일
악성 앱
해적판 소프트웨어
기타(댓글로)