Home > 전체기사

파이선 코드 공유 플랫폼인 PyPI에서 4천여 개 가짜 패키지 발견돼

  |  입력 : 2021-03-08 12:28
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
파이선 개발자들이라면 모를 수가 없는 PyPI에 의로운 공격자가 등장했다. 4천여 개의 가짜 모듈을 올려놓고 ‘자, 너네가 모듈을 막 받으면 이렇게 위험할 수 있어’라는 메시지를 생태계 전체에 퍼트리려고 한 것이다.

[보안뉴스 문가용 기자] 파이선 개발자들을 노리는 공급망 공격이 발견됐다. 보안 업체 소포스(Sophos)가 자사 블로그에 공개한 바에 의하면 PyPI라는 대형 파이선 개발자 커뮤니티에 4천여 개의 가짜 파이선 모듈 및 패키지가 조용히 도사리고 있었다고 한다. 피해 규모는 아직 확인되지 않았지만, 다행히 0에 가까운 것으로 보인다.

[이미지 = utoimage]


먼저 PyPI란 ‘파이선 패키지 인덱스(Python Package Index)’의 준말로, 이곳에서는 파이선 개발 프로젝트를 돕기 위한 30만여 개의 오픈소스 모듈 및 패키지들이 공유되고 있다. 파이선을 사용해본 사람이라면 누구나 PyPI를 한 번쯤 사용해봤을 정도로 널리 알려진 커뮤니티라고 소포스는 설명한다.

이러한 코드 공유 커뮤니티들은 사용도 매우 간편하다. 몇 줄 되지 않는 다운로드 명령어만 입력하면 자동으로 PyPI에 업로드 되어 있는 모듈이나 패키지를 사용할 수 있게 된다. 이 때문에 다운로드 된 요소들을 하나하나 검사해 보는 경우는 드물고, 이를 악용해 커뮤니티에 악성 모듈을 업로드 해둬 개발자 중 누군가 이를 가지고 앱을 만들도록 유도하는 경우가 왕왕 발생한다.

소포스의 설명에 의하면 이러한 가짜 패키지들의 경우 대부분 “정상 패키지들과 똑같이 작동하기 때문에 개발자가 악성 요소를 알아채기 힘들다”고 한다. “정상 패키지와 똑같지만 거기에 은밀히 작동하는 악성 기능이 한두 개 추가되어 있죠. 이런 패키지로 만들어진 앱은, 공격자가 따로 손을 쓰지 않아도 자동으로 감염되어 추후 공격에 활용될 수 있습니다.”

최근 보안 전문가 알렉스 버산(Alex Birsan)이 이와 유사한 방식의 ‘공급망 공격’을 통해 애플, 페이팔, 마이크로소프트, 쇼피파이, 아마존, 리프트, 슬랙 등의 대형 IT 업체의 내부 프로젝트를 감염시키는 데 성공했고, 이를 통해 10만 달러의 버그바운티를 거머쥐기도 했다. 또한 이를 실제로 공격한 사례가 등장하기도 했는데, 이는 본지가 지난 주 기사(https://www.boannews.com/media/view.asp?idx=95348)를 통해 다룬 바 있다.

그 외에도 솔라윈즈(SolarWinds) 사태라는 대규모 공급망 공격이 지난 해 말에 발생하기도 했었다. 러시아 정부가 조정하는 것으로 보이는 공격 단체가 솔라윈즈라는 IT 업체의 솔루션을 오염시켜 사용자 기업들과 조직들에 침투한 것으로, 미국 역사상 최악의 사이버 공격 사건으로 불린다. 얼마 전에는 중국의 APT 단체가 MS의 익스체인지 서버에서 발견된 제로데이를 통해 사용자 조직들 수만 개를 공격하고 있다는 사실이 드러나기도 했다.

하지만 솔라윈즈나 MS 익스체인지 익스플로잇 사건은 실행하기가 어려운 축에 속한다. 이번에 소포스가 PyPI에서 발견한 공급망 공격은 알렉스 버산의 그것과 유사하며, 실행이 간단하다. 공격자들은 파이선 개발자들이 자주 사용하는 유명 패키지들을 파악한 뒤, 그것과 이름이 거의 똑같은 패키지를 가짜로 만들어 등록하는 것이다. 누군가 패키지를 검색하는 과정에서 오타를 내는 등의 실수를 할 때까지 기다리는 수법으로, 이를 타이포스쿼팅(typosquatting)이라고 부른다. 웹 공격에서는 흔히 사용되는 기법이다.

소포스가 든 예시로는 beautsoup4라는 패키지가 있다. 진짜 패키지의 이름은 beautisoup4로 i라는 글자 하나의 차이가 있으며, 쉽게 눈에 띄지 않는다. 이런 패키지들은 현재까지 약 4천 개 발견됐으며, 전부 ‘Remind Supply Chain Risks’라는 이름을 가진 사용자가 업로드한 것으로 분석됐다. ‘공급망의 위험성을 상기시켜라’라는 이름으로, PyPI 생태계의 위험 요소를 알리기 위해 이번 캠페인을 진행한 것으로 보인다. 실제 4천여 개의 가짜 패키지에서는 악성 요소가 발견되지 않았다고 한다.

하지만 소포스는 “이미 개발자들과 보안 전문가들이라면 잘 알고 있는 내용을 굳이 이렇게까지 재차 강조할 필요가 있었느냐”며 “좀 더 생산적인 다른 일에 집중하는 것이 나았을 것”이라고 비꼬았다. 그러면서 PyPI 사용자들에게도 “이름이 비슷해 보인다고 해서 패키지를 무조건 가져다 쓰지 말라”고 권고했다. 특히 내부 개발자들이 사용하는 빌드 시스템에 도입할 코드를 공공 리포지터리에서 점검 없이 가져다 쓰는 건 위험할 수 있다고 짚었다.

PyPI 관리자들은 'Remind Supply Chain Risks‘가 남긴 4천여 개의 가짜 패키지를 모두 삭제한 상태다. 그렇다고 현재 PyPI가 깨끗하다고 말할 수는 없다. 누군가 악의적으로 비슷한 공격을 시도하고 있을 가능성을 배제할 수 없다.

3줄 요약
1. 파이선 개발자라면 누구나 한 번쯤 써봤을 코드 공유 커뮤니티, PyPI.
2. 누군가 여기에 가짜 패키지를 4천여 개 업로드 함.
3. 다행히 악성 요소 없었으나, PyPI에서 코드 받을 때 경계심 유지는 반드시 필요.

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

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

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

  •  SNS에서도 보안뉴스를 받아보세요!! 
2021 전망보고서넷앤드 파워비즈 진행 2020년1월8일 시작~2021년 1월8일까지위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
과기정통부가 발표한 ‘K-사이버방역 추진전략’ 8대 과제 가운데 가장 시급하고 중요하게 해결해야 할 과제는?
사이버보안 대응체계 고도화
수요자 중심 디지털보안 역량 강화
차세대 융합보안 기반 확충
신종 보안위협 및 AI 기반 대응 강화
디지털보안 핵심기술 역량 확보
정보보호산업 성장 지원 강화
디지털보안 혁신인재 양성
디지털보안 법제도 정비