Wins Security Information

보안 정보

앞 내용 보기 다음 내용 보기
보안 동향가짜 Browserify NPM 패키지에 숨겨진 새로운 Linux, macOS 멀웨어
작성일 2021-04-14 조회 2436

 

 

Linux 및 Apple macOS 운영 체제를 사용하는 NodeJS 개발자를 대상으로하는 npm 레지스트리에서 이번주에 새로운 악성 패키지가 발견되었다.

 

이 악성 패키지는 web-browserify라고하며 오랫동안 1억 6천만회 이상 다운로드된 인기있는 Browserify npm의 구성 요소를 모방한다.

 

web-browserify는 수백 개의 합법적인 오픈 소스 구성 요소를 결합하여 자체적으로 구축되며 감염된 시스템에서 광범위한 정찰 활동을 수행한다.

 

또한, 현재 구성 요소에 포함된 ELF 악성 코드는 모든 주요 안티 바이러스 엔진에서 탐지율 0을 기록하고 있다.

 

이번 주 에 npm 레지스트리 에서 악성 구성 요소 web-browserify가 발견되었다.

 

이 구성 요소는 Sonatype의 자동화된 맬웨어 탐지 시스템인 Release Integrity에 의해 탐지되었으며 Sonatype 보안 연구팀에서 분석한 결과 악성 코드로 간주되었다.

 

web-browserify는 매주 130만 건 이상의 다운로드를 기록하고 356,000개가 넘는 GitHub 레포지토리에 사용된 Browserify 구성 요소의 이름을 따서 명명되었다.

 

이와 대조적으로 악성 구성 요소인 web-browserify는 게시 2일 이내에 npm에서 가져오기전까지 50회 다운로드되었다.

 

 

 

[그림1. web-browserify 구성 요소의 npm 페이지]

 

 

web-browserify는 스티브 잡스라고 자신을 설명하는 익명의 저자에 의해 만들어졌다.

 

패키지는 매니페스트 파일, package.json, postinstall.js의 스크립트 및 npm 구성 요소 내에서 run.tar.xz이라는 이름의 ELF 실행 파일 등으로 구성되었다.

 

 

 

[그림2. 멀웨어 디렉토리 구성과 package.json 파일]

 

 

개발자가 web-browserify를 설치하자마자 스크립트는 아카이브에서 "run" Linux 바이너리를 추출하고 실행하는데 이 바이너리는 사용자에게 상승된 권한 또는 루트 권한을 요청한다.

 

추출된 run 바이너리의 크기는 약 120MB이며 악용되고있는 수백 개의 오픈 소스 npm 구성 요소가 번들로 포함되어 있다.

 

예를 들어, 이러한 구성 요소 중 하나는 사용자에게 macOS 및 Linux 배포에서 맬웨어 루트 권한을 부여하라는 메시지를 표시하기 위해 run에서 사용하는 교차 플랫폼 "sudo-prompt" 모듈이다.

 

web-browserify가 설치되는 것과 거의 동시에 상승된 권한이 요청되기 때문에 개발자는 상승된 권한이 필요한 합법적인 설치 프로그램 활동이라고 오해할 수 있다.

 

ELF가 상승된 권한을 획득하면 Linux 시스템에서 지속성을 얻고 이후에 부팅할 때마다 실행되는 위치에서 /etc/rot1로 자신을 복사한다.

 

 

 

[그림3. /etc/rot1 폴더로 복사되는 ELF]

 

 

이 악성 코드에는 또 다른 npm 구성 요소인 systeminformation을 사용하여 감염된 시스템에서 시스템 사용자 이름, 운영 체제 정보, Docker 이미지 정보, 블루투스 연결 장치, CPU 속도/모델/코어, RAM 크기, 하드 드라이브 용량, 디스크 레이아웃, 시스템 아키텍처등 과 같은 정보를 수집한다.

 

이런 핑거프린팅된 정보들 중 적어도 일부는 GET 매개 변수로 일반 텍스트 연결(HTTP)을 통해 공격자가 제어하는 ​​도메인으로 유출된다.

 

 

 

[그림4. 공격자가 제어하는 도메인으로 유출되는 정보]

 

 

특히 주목할 점은 공격자가 이러한 활동을 수행하기 위해 사용하는 도메인이다.

 

http://me.ejemplo[.]me

 

분석 당시 이 도메인이 가리키는 서버가 404(찾을 수 없음)로 응답하는 것을 관찰했지만 ejemplo라는 단어는 스페인어로 "예제"를 의미한다.

 

따라서 ejemplo.me 와 같은  도메인은 응용 프로그램 및 해당 설명서에서 인용한 example.com 과 같은 합법적인 테스트 도메인으로 인식될 수 있다.

 

또한 특정 상황에서 악성 코드는 systemctl 유틸리티 및 systemd 디렉토리를 변조해 /etc/디렉토리의 내용을 제거하고 중요한 Unix 서비스 비활성화 시도를 한다.

 

합법적인 오픈 소스 구성 요소를 남용하여 악용하는 악성 코드임에도 불구하고 분석 당시 VirusTotal에서 완벽한 0점을 기록했다.

 

 

 

[그림5. Virus Total 탐지율]

 

 

이 멀웨어에 포함된 모든 기능과 그 명확한 목적은 아직 불분명하다.

 

 

 

 

출처

https://www.bleepingcomputer.com/news/security/new-linux-macos-malware-hidden-in-fake-browserify-npm-package/

첨부파일 첨부파일이 없습니다.
태그 web-browserify