njRAT 원격 액세스 트로이 목마를 설치하는 악성 NPM 패키지 침해사고분석팀 2020.12.02 |
|
njRAT 원격 액세스 트로이 목마를 설치하는 새로운 악의적인 NPM 패키지가 발견되었다. NPM이란, 개발자와 사용자가 패키지를 다운로드하여 프로젝트에 통합할 수 있는 자바스크립트 패키지 매니저다.
NPM은 개방형 생태계이며, 악성코드 검토나 스캔 없이 누구나 새로운 패키지를 업로드할 수 있다. 이러한 환경으로 인해 100만 개의 풍부하고 다양한 패키지가 저장되어 있는 반면, 위협 행위자들이 쉽게 악성 패키지를 업로드할 수 있도록 해준다.
오늘날, 오픈소스 보안 회사인 Sonatype은 JSON 파일로 데이터베이스를 만들기 위한 합법적인 도구로 가장하는 악의적인 NPM 패키지를 발견했다.
이들 패키지는 'jdb.js'와 'db-json.js'로 불리며 NPM에 의해 제거되었지만, 아래 스크린샷에서 볼 수 있듯이 프로젝트에 새로운 기능을 추가하는 데 사용될 수 있는 무해한 패키지처럼 보인다.
[그림 1. NPM의 JsonDB (db-json.js) 패키지]
db-json.js 패키지의 package.json 파일에서 볼 수 있듯이 종속성으로 'jdb.js'라는 다른 패키지가 존재한다. package.json 파일은 NPM이 db-json.js 패키지를 설치할 때 해당 패키지를 자동으로 설치하도록 한다.
[그림 2. db-json 용 Package.json]
이 jdb.js 패키지에는 아래와 같이 module.js, package.json 및 patch.exe tl 이 포함되어 있다. 설치되면 NPM은 설치시 자동으로 실행되도록 설정된 module.js를 자동으로 실행한다.
[그림 3. jdb 패키지 내용]
아래 파일은 난독화된 javascript 파일이며, njRAT 악성 프로그램인 patch.exe 실행 파일을 실행한다.
[그림 4. 난독화된 JavaScript]
설치되면 njRAT는 위협 행위자에게 피해자의 컴퓨터에 대한 완전한 원격 액세스를 제공하여 다음과 같은 악의적 인 동작을 수행할 수 있다.
- Windows 레지스트리 수정
- 파일 만들기 및 삭제 - 파일 업로드 - 명령 실행 - 컴퓨터에 대한 정보 가져오기 - 컴퓨터 제어 - 로그 키 입력 - 암호 도용 - 프로세스 제거 - 스크린샷 찍기
지난 1년 동안 악성코드를 설치하거나 악의적인 행동을 하는 NPM 패키지를 찾는 것이 점점 일반화되었다.
최근 NPM은 'fallguy'와 'discord.dll'이라는 악성 패키지가 Google Chrome, Brave Browser, Opera 및 Yandex Browser에서 Discord 토큰과 브라우저 정보를 훔치는 데 사용됐다는 사실을 밝혀내고 이를 삭제했다.
악의적인 NPM 프로젝트들이 합법적인 프로젝트와 유사한 이름을 사용하는 것이 일반화되고 있기 때문에 개발자들은 그들이 그들의 프로젝트에 통합한 패키지에 세심한 주의를 기울여야 한다.
출처 https://www.bleepingcomputer.com/news/microsoft/malicious-npm-packages-used-to-install-njrat-remote-access-trojan/ |