개발자들을 노리는 소프트웨어 공급망 공격이 확대되고 있다. 자바와 파이선 생태계에서만 주로 발견되던 공격 행위가 누겟이라는 닷넷 리포지터리에서도 등장했다. 개발자와 리포지터리 운영 주체의 보안 강화가 필요하다.
[보안뉴스 문정후 기자] 닷넷 소프트웨어 개발자들을 위한 리포지터리인 누겟(NuGet)에서 악성 패키지 13개가 발견됐다. 암호화폐 채굴, 백도어 및 정보 탈취, 피해자 시스템 장악 등의 기능을 가진 것으로 분석됐다. 소프트웨어 공급망 보안 업체 제이프로그(JFrog)는 분석 보고서를 통해 이 사실을 공개했으며, 해당 패키지들은 누겟에서 삭제될 때까지 총 16만 번 이상 다운로드 되었다고 한다.
![[보안뉴스 / 3.23.] 닷넷 개발자들도 안심 금물! 누겟 리포지터리에서도 악성 패키지 나와](http://www.boannews.com/media/upFiles2/2023/03/486647165_1563.jpg)
[이미지 = utoimage]
최근 각종 리포지터리들에서 악성 패키지들이 매일처럼 발견되고 있다. 공격자들 사이에서 소프트웨어 공급망 공격이라는 것이 유행하기 시작하면서 나타난 현상이다. 개발자들이 리포지터리들에서 패키지들을 가져와 사용할 때 일일이 확인하지 않는다는 사실을 악용하는 공격 기법이라고 할 수 있다. 제이프로그의 보안 연구 책임자인 샤차르 메나시(Shachar Menashe)는 “닷넷과 C#은 공격자들이 크게 선호하지 않는 언어인데도 소프트웨어 공급망 발견되는데, 다른 생태계는 어떻겠느냐”고 말한다.
“공격자들이 가장 선호하고 개발자들도 가장 많은 언어는 파이선과 자바스크립트입니다. 두 생태계 모두 커다란 규모의 리포지터리들을 보유하고 있지요. 실제로 그런 곳들에서는 악성 패키지들이 자주, 많이 발견되는 편입니다. 파이선 생태계의 PyPI와 자바스크립트 생태계의 NPM이 대표적이죠. 이곳을 이용하는 개발자들이라면 다운로드 받는 패키지를 늘 꼼꼼하게 확인해야 할 것입니다.”
실제로 공격자들은 코드 리포지터리들을 집중적으로 노리고 있다. 공격자가 조작해 놓은 패키지를 개발자가 가져다가 쓰고, 그 패키지로 애플리케이션을 완성시켜 배포하면 공격자 입장에서 높은 효과를 누리게 되기 때문이다. “악성 패키지 하나 만들었을 뿐인데, 개발자들이 멀웨어를 알아서 양산하는 것과 같습니다.”
리포지터리 공격을 가능하게 하는 것, 타이포스쿼팅
리포지터리에 심은 악성 패키지는 어떤 경로로 개발자들의 컴퓨터에 안착하는 걸까? 공격자들이 가장 많이 사용하는 기법은 ‘타이포스쿼팅(typosquatting)’이다. 인기 높은 패키지 이름과, 자신들이 만든 악성 패키지의 이름을 똑같이 하되 철자 하나 둘 정도를 바꾸어 놓고 누군가 패키지 검색을 할 때 오타를 낼 때까지 기다리는 것이다. 제이프로그의 보안 연구원 나탄 네호라이(Natan Nehorai)와 브라이언 무살리(Brian Moussalli)는 “그래서 패키지 이름을 꼼꼼하게 살피는 것이 보안의 첫 걸음”이라고 강조한다.
“누겟에서 악성 패키지가 발견된 건 이번이 처음입니다. 누겟이 다른 리포지터리에 비해 조금 덜 알려지기도 했고, 여기서 사용되는 언어인 닷넷이 공격자들의 주목을 덜 받기 때문이죠. 하지만 처음이 어렵지 한 번 이렇게 물꼬가 터지면 더 많은 공격이 이어질 가능성이 높습니다. 다른 리포지터리에서 어떤 일이 발생했고, 어떤 안전 대책이 마련됐는지를 살펴가며 ‘누겟 강화’를 도모해야 할 것입니다.” 네호라이와 무살리가 말한다.
즉각적인 자동 실행, 문제 많다
파일들 중에는 개발자 도구에 의해서 자동으로 즉각 실행되는 것들이 있다. 편리하긴 하지만 보안의 측면에서 봤을 땐 위험천만한 특성이다. “이런 기능 때문에 PyPI 생태계에서 시스템 감염 문제가 더 많이 이어지는 것입니다. 공격의 경로와 가능성을 줄이려면 이런 파일들을 사용하지 말아야 합니다. 자동 실행 기능을 차단하는 것도 비슷한 맥락에서 도움이 됩니다.”
그래서 제이프로그는 “누겟 측에서 해당 패키지들을 전부 삭제했지만 안심할 수 없는 상태”임을 강조하고 있다. “누겟 패키지들에도 설치 후 곧바로 코드가 실행되는 기능이 적잖이 적용되어 있습니다. 닷넷 개발자들이 이 점을 신경 쓰지 않는다면 누군가 소리 소문 없이 악성 패키지를 생태계에 심어 큰 효과를 누릴 수 있게 됩니다.” 메나시의 경고다.
제이프로그는 개발자들이 다음과 같은 수칙을 지켜야 안전해질 수 있다고 강조했다.
1) 임포트 되거나 설치된 패키지에 오타가 있는지 확인한다.
2) 실수로, 혹은 어쩌다가 이상한 패키지를 설치하는 일이 없어야 한다.
3) 만약 2)번의 일이 발생했다면 이를 코드 안에나 패키지 설명을 통해 언급해야 한다.
4) 추가로 뭔가를 다운로드 받아 설치하는 기능을 가진 실행파일이 패키지 안에 없다는 걸 확인해야 한다. 정상적인 소프트웨어들에도 이런 기능이 내포되어 있을 수 있으나, 악성 패키지에 비교도 안 될 정도로 많다.
메나시는 “리포지터리들에서 공격이 너무 많이 일어나고 있어 보안이 강화되고 있는 게 사실이지만 그 속도가 충분히 빠르지는 않다”고 지적했다. “리포지터리 운영자들이 할 수 있는 일에는 한계가 있습니다. 이용자인 개발자들 사이에서 변화가 있어야 합니다. 그게 더 중요합니다.”
3줄 요약
1. 닷넷 생태계의 코드 리포지터리인 누겟에서 악성 패키지 다량 발견됨.
2. 현재는 패키지들이 전부 삭제되었으나 앞으로 더 나타날 가능성 높음.
3. 패키지를 받아 설치하자마자 실행되는 것은 위험할 수 있음.
[국제부 문정후 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>