오픈소스 패키지 이름 속이는 ‘타이포스쿼팅’으로 악성 패키지 유포하는 사례 빈번해
고려대 이희조 교수팀, 오픈소스 구성요소 탐지하는 ‘센트리스’로 공급망 공격에 대응

최근 전 세계 수많은 기업을 사이버보안 위협에 노출시킨 솔라윈즈 사태는 공급망 공격의 위험성을 다시 한 번 확인시켜준 ‘역대급’ 사건이다. 소프트웨어 공급망이란 소프트웨어 개발부터 배포, 설치, 유지보수에 이르는 모든 과정을 말한다. 공격자는 이 과정에 개입해 변조된 소프트웨어가 사용자의 시스템에 전달되도록 한다. 가령, 솔라윈즈 사태의 경우 유지보수(업데이트) 단계를 노렸다. 공격자는 솔라윈즈의 시스템 내부에 침입해 업데이트 파일을 변조하고, 정상적인 업데이트 채널을 통해 사용자에게 전파했다.

[이미지=utoimage]

개발 단계에서도 공급망 공격이 발생할 수 있다. 최근 파이썬(Python) 개발자 커뮤니티 PyPI에서는 가짜 패키지 4,000여개가 등록되는 사건이 발생하며 개발 단계에서도 공급망 공격이 발생할 수 있음을 보여줬다. PyPI는 파이썬을 통해 개발된 소프트웨어 기능(패키지)을 공유하는 커뮤니티다. 등록된 가짜 패키지는 정상적인 패키지의 이름을 조금만 바꿨다. 개발자가 가짜 패키지를 정상으로 오인해 내려받아 설치할 경우, 개발하는 소프트웨어에 악성코드가 심어질 수도 있다.

이처럼 오픈소스 소프트웨어 재사용을 노린 공급망 공격은 꾸준히 시도되고 있다. 오픈소스 커뮤니티의 경우 누구나 쉽게 접근할 수 있는 만큼 해커 역시 쉽게 악용할 수 있고, 개발자 역시 개발 효율을 높이기 위해 오픈소스를 적극 활용하고 있는 추세이기 때문에 공격을 수월하게 펼칠 수 있다. 이러한 공급망 공격을 차단할 수 있는 도구가 국내 연구팀에 의해 개발돼 화제를 모으고 있다.

센트리스(Centris)는 고려대학교 이희조 교수(소프트웨어보안연구소, 소장) 연구팀에서 개발한 기술로, 우승훈(제1저자), 박성한, 김슬배, 이희조(교신 저자), 오학주 교수 등이 참여했다. 연구팀은 오픈소스 보안에 관한 연구를 꾸준히 진행하고 있으며, 대표 실적으로는 재사용된 취약한 오픈소스 코드를 정확하고 빠르게 탐지하는 기술(VUDDY)을 보안 학술대회인 IEEE Security & Privacy(2017)에 발표한 바 있다.

▲고려대학교 컴퓨터보안연구실 박사과정 우승훈 연구원[사진=고려대학교]

연구팀은 “공급망 공격은 소프트웨어를 개발해 배포하는 과정에 있는 리포지토리(repository, 소프트웨어 버전 관리를 위한 저장소) 및 패키지 관리 시스템과 같은 소프트웨어 공급망에 침투해, 소프트웨어를 변조한 뒤 배포하는 공격기법이다. 이러한 공급망 공격은 2011년 이래 지속적으로 증가하는 추세”라고 말했다.

공급망 공격은 크게 △개발 서버 △소프트웨어 리포지토리 △패키지 매니저 등 세 가지 영역에서 발생할 수 있다. 공격자는 개발 서버 자체에 악성 IDE나 악성 플러그인을 삽입할 수 있고, 특정 소프트웨어 리포지토리의 메타데이터를 조작하거나 권한을 탈취할 수 있으며, 패키지 매니저를 활용한 타이포스쿼팅 공격(typo-squatting attack)을 통해 변조된 악성 패키지를 배포하기도 한다.

타이포스쿼팅이란 사회공학적 기법의 일종으로, 비슷한 모양의 텍스트를 이용해 사람들을 속이는 방식이다. 가령 마이크로소프트(microsoft)를 rnicrosoft(‘m’을 ‘rn’으로 위장)로 쓴다거나 구글(google)을 googIe(소문자 L을 대문자 I로 위장)로 쓰는 식이다. 공급망 공격에서 타이포스쿼팅은 정상적인 패키지 이름처럼 꾸며 악성 패키지를 배포하는 형태로 쓰이기도 한다.

연구팀은 “특히, 타이포스쿼팅 공격은 가장 많이 발견되는 공급망 공격 중 하나”라며, “실제로 PyPI에서 발생한 가짜 패키지 사건은 물론, 지난해에는 Ruby 프로그램의 패키지 매니저인 RubyGems에서 700개 가량의 악성 타이포스쿼팅 패키지가 발견되기도 했다. 예시를 들자면, ‘acpc_poker_types’라는 이름의 정상 패키지를 노리고 ‘acpc-poker_types’라는 이름의 악성 패키지가 배포되기도 했다”고 설명했다.

▲오픈소스 패키지를 설치하는 모습[이미지=보안뉴스]

공급망 공격은 한 번의 공격만으로 무수히 많은 소프트웨어 영향을 미칠 수 있다. 특히, 악의적으로 변조된 소프트웨어는 특정 소프트웨어에 의존하는 기업이나 연동 소프트웨어가 많을수록 피해가 더 커진다. 오픈소스 소프트웨어의 경우에는 소스코드가 공급망 단계에서 모두 공개돼 있고, 오픈소스 소프트웨어 상호간에 의존도가 높은 경우도 많아 공급망 공격에 특히 취약하다.

이처럼 공급망 공격 발생 가능성이 있는 오픈소스를 많은 개발자가 사용하는 이유는 무엇일까? 소프트웨어 개발 과정에 소요되는 시간과 비용을 획기적으로 줄일 수 있기 때문이다. 개발자가 원하는 특정 기능을 시간을 들여 개발할 필요 없이, 신뢰할 수 있는 오픈소스 소프트웨어로부터 기능을 가져와 재사용할 수 있으며, 특히 경쟁력 있는 프로그램 개발을 위해서 오픈소스 사용은 필수적이다. 최근 인공지능, 빅데이터, 블록체인, 사물인터넷 등 주요 기술은 오픈소스 프로젝트를 통해 진행되는 사례가 많다. 오픈소스의 재사용 없이 자체적으로 소프트웨어 기능을 구현하는 것은 경쟁력 측면에서 타 개발자에 뒤처지는 셈이며, 특히 호환성 문제 역시 발생할 수밖에 없다.

연구팀은 “오픈소스의 이점에도 불구하고, 관리되지 않은 오픈소스 소프트웨어의 재사용은 여러가지 보안 위협을 초래할 수 있다. 공급망 공격이 대표적이며, 이 밖에도 알려진 취약점 존재, 라이선스 위반 문제 등이 발생할 수 있다”며, “오픈소스 소프트웨어에 존재하는 작은 취약점은 전체 소프트웨어의 보안성을 저해하며, 라이선스의 상관관계를 파악하지 않은 재사용은 저작권 침해와 같은 문제로 이어진다. 특히, 패키지 매니저 등으로 배포될 수 있는 변조 오픈소스의 재사용은 심각한 공급망 공격으로 연결되기도 한다”고 말했다.

이희조 교수 연구팀이 개발한 센트리스는 재사용 중인 오픈소스 소프트웨어 구성요소를 빠르고 정확하게 식별하기 위한 도구다. 오픈소스 소프트웨어는 재사용 되는 과정에서 원본 구조 및 코드가 수정되는 경우가 잦다. 실제로 연구팀이 발표한 결과에 따르면 자주 사용되는 유명 오픈소스 소프트웨어의 95%는 코드 혹은 구조 수정과 함께 재사용되고 있다.

특히, 기존 접근방식으로는 수정된 오픈소스 소프트웨어 구성요소를 정확하게 탐지하기 어렵다는 설명이다. 구체적으로, 기존 오픈소스 구성요소 탐지 기술은 전체 오픈소스 재사용의 약 10% 정도만 탐지를 해낼 수 있는 수준이다. 이와 달리 센트리스는 코드 분할 및 중복 제거 알고리즘을 통해 전체 오픈소스 재사용의 90%이상 탐지할 수 있다고 덧붙였다.

연구팀은 “공급망 공격에 대응하기 위한 첫 걸음은 ‘어떤 오픈소스 소프트웨어의 어떤 버전을 쓰고 있는지’처럼 소프트웨어 내의 구성요소를 명확히 분석하는 것이다. 이 정보를 소프트웨어 명세서, 혹은 SBoM(Software Bill of Materials)이라고 부른다. 센트리스는 수정된 오픈소스 소프트웨어 구성요소까지도 정확하게 탐지할 수 있어 특정 소프트웨어의 SBoM을 제공할 수 있다”며, “센트리스가 찾아낸 소프트웨어 명세서를 꾸준히 관리해 나간다면 공급망 공격에 훨씬 빠르고 효과적으로 대응할 수 있을 것”이라고 덧붙였다.

예를 들어, 악의적으로 변조된 오픈소스 소프트웨어를 재사용하고 있는지 여부를 명세서 분석을 통해 확인할 수 있고, 만약 재사용하고 있다면 개발자가 이를 즉시 삭제할 수 있다. 또한, 타이포스쿼팅을 통한 공급망 공격이나 악성 패키지 배포와 같은 공격에 대해서도, 재사용한 오픈소스가 신뢰할 수 있는지 검증할 수 있다.

공급망 공격 이외에도, 알려진 취약점이 있는 오픈소스를 사용하고 있는지, 라이선스 충돌이 발생할 수 있는 오픈소스를 동시에 활용하고 있는지의 여부 역시 소프트웨어 구성요소 정보를 분석해 확인할 수 있다.

연구팀은 “결과적으로 센트리스가 제공하는 정보를 통해 개발자는 더 안전한 환경에서 안전한 소프트웨어를 개발할 수 있다. 센트리스 프로토타입은 IoTcube 플랫폼을 통해 소개할 예정이며, 오는 4월 19일 IoTcube의 대규모 업데이트에서 웹 페이지를 구성해 정식으로 공개한다. 추가적으로, 센트리스는 IoTcube 취약점 분석 플랫폼인 래브라도에도 적용돼 기업에서도 개발 또는 검수단계에서 오픈소스 소프트웨어 구성요소를 정확하게 식별해 낼 수 있도록 할 계획”이라고 말했다.

원문기사 링크 :
https://www.boannews.com/media/view.asp?idx=95883&kind=