[보안뉴스 문가용 기자] 타이포스쿼팅(typosquatting) 기법으로 개발자들을 공략하는 악성 npm 패키지가 발견됐다. 이 패키지 안에는 원격 접근 트로이목마(RAT)가 포함되어 있었다. 즉 멀웨어를 품고 있던 npm 패키지였다는 건데, 멀웨어의 이름은 디스코드랫 2.0(DiscordRAT 2.0)이며, 해킹을 처음하는 초보자들을 위해 제작된 ‘친절한’ 공격 도구라고 한다. 누구라도 디스코드랫 2.0을 사용하면 사전 지식이나 별도의 기술 없이도 오픈소스를 통해 소프트웨어 공급망을 공략할 수 있다.

[이미지 = gettyimagesbank]
문제의 악성 패키지는 node-hide-console-windows라는 이름을 가지고 있다. 정상적인 오픈소스 npm 패키지 중에 node-hide-console-window라는 것이 있다. 끝에 s라는 철자 하나가 달라졌을 뿐으로, 개발자가 맨눈으로 패키지 이름을 확인했을 때 놓치기 쉽다. 참고로 정상적인 npm 패키지(s가 없는 것)는 일주일에 꾸준히 300회 정도 다운로드 될 정도로 준수한 지명도를 가지고 있다. 악성 패키지도 비슷한 기능을 가지고 있지만 디스코드랫 2.0이 추가되어 있다. 패키지 리포지터리에서 약 700회 정도 다운로드 된 후 삭제됐다.
“오픈소스에는 오픈소스 만의 장점이 있기도 하지만 단점도 존재합니다. 하지만 단점보다 장점이 훨씬 많은 게 사실입니다.” 보안 업체 리버싱랩스(ReversingLabs)의 위협 분석가 애슐리 벤지(Ashlee Bengee)의 설명이다. “그래서 많은 이들이 오픈소스가 가진 치명적 단점들에도 불구하고 꾸준히 사용하는 것이죠. 지금에 와서 오픈소스를 사용하지 않도록 하는 것은 불가능하며, 따라서 이제 오픈소스의 단점을 보완하는 것에 집중해야 할 차례입니다.”
리버싱랩스가 발견한 가짜 패키지의 경우 8월 25일에 npm 리포지터리에 업로드 되었다. 업로드에 사용된 계정은 완전히 새로 만들어진 것으로, 이전에 그 어떤 프로젝트와도 연결되어 있지 않았다. 업로드 된 패키지 안에는 index.js라는 파일이 있었고, 이 파일 내부에는 난독화 처리가 된 악성 코드가 숨겨져 있었다. 사용자가 이 파일을 다운로드 받아 실행시킬 경우 또 다른 실행파일이 다운로드 되는데, 바로 이 실행파일이 디스코드랫 2.0이다.
문제의 디스코드랫 2.0은 C#을 기반으로 한 원격 해킹 도구로, 또 다른 코드 리포지터리인 깃허브에도 공개되어 있다. 깃허브의 디스코드랫 2.0 소개글에는 ‘교육용으로만 활용되도록 만들어졌다’고 적혀 있다. 당연하게도 ‘위장’을 위한 문구다. “대단히 많은 악성/가짜 패키지들이 이렇게 ‘교육용’이라고 소개되어 있습니다. 다운로드 받으려는 사람들을 속이기 위해서입니다. 하지만 정말 ‘교육용’이기도 합니다. 왜냐하면 초보 해커들이 이런 패키지들을 무료로 다운로드 받아 실제 해킹 공격을 실시할 수 있기 때문입니다. 공격자들이 어떤 의도로 ‘교육용’이라는 표현을 썼는지 모르겠지만 맞기도 하고 틀리기도 합니다.” 벤지의 설명이다.
디스코드랫 2.0의 경우 실제로 초보자들이 사용하기에 매우 간편하도록 만들어졌다. 여러 명령을 쉽게 수행할 수 있고, 이런 쉬운 명령들을 통해 공격자는 별다른 해킹 경험 없이도 민감한 정보와 파일들을 훔쳐낼 수 있다. 심지어 디도스 공격도 가능하다. “하지만 그 중에서도 눈에 띄는 건 !rootkit이라는 명령어”라고 벤지는 짚는다. “이 명령을 실행하면 두 번째 오픈소스 멀웨어인 r77이 다운로드 됩니다. r77은 일종의 루트킷입니다.”
루트킷은 사이버 공격자가 원격에서 피해자 시스템을 완전히 장악할 수 있도록 해 주는 공격 도구다. 루트 권한을 공격자에게 부여하기 때문에 루트킷이라고 불리며, 루트 권한을 가진 자는 사실상 해당 시스템 내에서 원하는 모든 행위를 할 수 있게 된다. 민감한 데이터를 열람하고 훔쳐내고 삭제할 수 있으며, 별도의 계정을 만들거나 아무 프로그램이나 설치할 수 있다. 권한이 높은 상태이기 때문에 이런 행위들을 함에 있어서 어려운 절차를 거칠 필요도 없다. 루트킷은 그 자체로 해킹 공격을 매우 쉽게 만들어준다.
벤지는 “루트킷과 같은 도구들이 점점 널리 활용되고 있다”며 “해커들의 순수 실력이 해킹 범죄에 더 이상 큰 요인으로 작용하지 않는다는 걸 나타낸다”고 말한다. “해킹 실력이 없더라도 해킹 범죄를 시작하고자 하는 사람들이 많다는 것을 증명하기도 합니다. 사이버 공격 시장의 진입 장벽이 낮아지면서 이쪽 분야로의 진출이 활성화 되고 있고, 이는 결코 좋은 소식이 아닙니다. 각종 해킹 범죄가 빈번해질 것으로 예상됩니다.”
3줄 요약
1. 개발자 노리는 사이버 공격자들, npm에 악성 패키지 등록.
2. 악성 패키지 안에는 루트킷이라는 ‘초보자용’ 해킹 도구가 포함됨.
3. 초보 해커들이 고급스러운 공격 할 수 있는 시대가 되었음.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>