3줄 요약
1. PyPI에서 새롭게 발견된 악성 패키지 두 개, 상세히 분석 완료.
2. 하나는 감시와 데이터 유출에, 다른 하나는 웹훅 주입과 분석 방해에 특화되어 있었음.
3. 이런 패키지를 써서 뭔가를 만든다면, 각종 소송전에 휘말릴 수 있게 됨.
[보안뉴스 문가용 기자] 최근 파이선 리포지터리인 PyPI에서 악성 패키지가 두 개 발견됐다. 하나는 Zebo-0.1.0이고 다른 하나는 Cometlogger-0.1이다. 전자는 2024년 11월 16일에, 후자는 2024년 11월 24일에 발견됐다. 이 두 패키지는 다른 악성 패키지들이 그렇듯 합법적인 코드처럼 위장되어 있으며, 복잡한 논리와 난독화를 통해 해로운 기능을 숨기는 것으로 분석됐다. 보안 업체 포티넷(Fortinet)에서 이 두 패키지를 상세히 분석해 세상에 알렸다.
이미지 = [GettyImagesbank]
두 악성 패키지 상세 보기
Zebo-0.1.0(이하 제보)은 사용자의 프라이버시와 데이터 보안을 침해하는 도구인 것으로 분석됐다. 이런 악의적 목적을 달성하기 위해 여러 가지 작업을 수행하도록 설계되어 있었다고 하는데, 주요 구성 요소는 다음과 같았다.
1) 난독화 : 각종 탐지 기술을 회피
2) 키로깅 : 피해자가 키보드를 통해 입력한 모든 키스트로크를 확보
3) 스크린 캡처 : 주기적으로 사용자의 데스크톱 화면을 확보
4) 데이터 빼돌리기 : 민감한 정보를 원격의 서버로 업로드
5) 공격 지속성 확보 : 시스템 시작 시 악성 코드가 실행되도록 설정
한편 Cometlogger-0.1(이하 컴트로거)는 여러 가지 악성 신호를 포함하고 있다고 포티넷은 설명한다. 그 악성 신호들은 다음과 같다.
1) 웹훅 주입 : 사용자로부터 웹훅을 요청한 뒤, 이를 Comet.py와 Exela.py와 같은 파이선 파일에 삽입한다.
2) 정보 탈취 : 디스코드, 스팀, 인스타그램, 트위터 등 다양한 플랫폼에서 토큰, 비밀번호 등을 탈취한다.
3) 가상화 환경 탐지 : 각종 분석 및 샌드박스 환경을 미리 탐지한다. 탐지될 경우 악성 기능을 중단한다.
4) 동적 파일 수정 : 스크립트가 실행되는 와중에도 파이선 파일을 수정할 수 있는데, 이를 통해 악성 코드가 주입된다면 각종 추가 공격이 가능해진다.
5) 공격 지속성 : 피해자의 시스템에서 들키지 않고 머물 수 있게 되어 있다.
두 가지 악성 패키지를 간략히 정리한다면
제보는 악성 파이선 스크립트로 감시와 데이터 유출, 승인 과정 없는 외부 제어를 위해 만들어진 악성 코드라고 할 수 있다. 사용자에게 피해를 주려는 개발자의 의도가 노골적으로 드러나기도 한다. 여러 탐지와 감시의 망을 빠져나와 소프트웨어나 앱에 탑재되는 데 성공한다면 이 악성 파이선 스크립트는 큰 위험을 초래할 것이 분명해 보인다. “그렇기 때문에 보안 인식 향상과 강력한 방어 조치가 얼마나 중요한지를 다시 한 번 상기시켜 줍니다.”
컴트로거는 동적 파일 수정과 웹훅 주입, 정보 탈취, 가상 환경 탐지 기능으로 무장된, 전형적인 악성 패키지라고 할 수 있다. 최신 멀웨어들이 하나 둘 갖추고 있는 것들을 상당히 많이 가지고 있다. 게다가 투명성이 부족하고, 몇몇 의심스러운 행동 패턴을 보일 때가 있어 멀웨어가 아니라고 주장하기가 어색해질 정도다. 패키지와 스크립트의 확인이 얼마나 중요한지가 이 두 패키지를 통해 확연히 드러나고 있다고 포티넷은 설명한다.
어떻게 대처해야 하는가?
이런 악성 패키지를 미리 발견하지 못하여 이미 다운로드 받아 사용했다면 어떻게 해야 할까? 포티넷은 제일 먼저 해당 시스템을 인터넷으로부터 분리시켜야 한다고 강조한다. “감염된 시스템은 주로 또 다른 감염원을 가져오고, 이는 상황을 악화시킵니다. 데이터 유출이 심화될 수도 있고요. 그러므로 인터넷으로부터 분리하여 데이터가 나가지 않도록 해야 합니다.”
동시에 백신 소프트웨어를 실행시키는 것도 권장되고 있다. “신뢰할 수 있는 백신 소프트웨어를 사용해 시스템 내 존재하는 각종 악성 코드를 찾아 제거하는 작업을 이어가야 합니다. 그렇게까지 했는데도 이상한 일이 계속 일어난다거나 공격 시도가 이어진다면 시스템 포맷을 권장합니다. 아예 운영체제까지 다시 설치하는 게 좋습니다.”
하지만 대부분의 보안 사고가 그렇듯, 이러한 일도 미리 막으면 피해가 덜하다. 악성 패키지를 미리부터 발견하여 다운로드 받지 않았다면 후속 조차가 복잡해질 일이 전혀 없게 된다. 그래서 포티넷은 각종 예방 조치들을 취하는 것을 강력하게 권하고 있다. “외부 스크립트나 실행파일을 실행하기 전에는 여러 번 검토하는 게 기본입니다. 또 방화벽과 침투 탐지 시스템을 구축함으로써 네트워크 활동에 대한 모니터링 기능을 강화하는 것도 중요합니다. 그런 후 개발자들과 사용자들을 교육시켜 이러한 공격 시도가 있음을 알게 하고, 수상한 스크립트를 실행하지 않도록 해야 하겠죠.”
그래서?
공공 코드 리포지터리에 악성 패키지가 등장하는 건 이제 흔한 일이 됐다. 개발자들이 요 몇 년 사이 공격자들이 가장 많이 노리는 부류가 된 것도 사실이다. 공격자의 덫에 걸려 악성 패키지를 다운로드 받았고, 그 악성 패키지를 활용해 앱이나 소프트웨어를 개발했을 때, 그 결과물을 사용할 사용자들(즉 고객들)이 제일 먼저 위험해진다는 건 누구나 아는 사실이다.
하지만 이는 개발자들에게 큰 동기부여가 되지 않는 게 현실이다. “내가 만든 앱이, 우리 고객들을 위험에 빠트릴 수 있다”는 것이 어느 정도 경종을 울릴 수는 있지만 평소의 개발 행위와 습관까지 바꿀 정도로 강력한 동기가 되는 일이 그리 많지 않다는 것이다. 그래서 포티넷은 이번 보고서를 통해 “개발자 자신도 위험해질 수 있다”는 점을 계속해서 강조한다. 제보와 컴트로거라는 악성 패키지에 들어가 있는 악성 기능들 중 상당수가 이미 ‘불법’으로 규정이 완료된 것이라는 것이다.
법이 이미 ‘안 된다’고 설정해 둔 것을 자기도 모르게 쓰게 되면, 아무도 구제해줄 수가 없다. 그런 기능이 패키지 안에 들어가 있다는 걸 전혀 몰랐다는 걸 법정에서 입증하는 데에만 적잖은 노력과 비용, 시간이 들어갈 것이라는 건 쉽게 예상할 수 있다. 그러므로 이번 보고서는 특별히 법정 싸움에 익숙치 않은 개발자들이라면 누구나 유의해서 봐야 한다.
두 악성 패키지에 대한 상세 분석 내용과 실제 함수 등은 1월 2일에 발간될 프리미엄 리포트를 통해 접할 수 있습니다.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>