사이버보안 연구원들은 npm 패키지 레지스트리에서 원격 서버로부터 전송된 악성 명령을 실행하는 백도어 코드가 숨겨진 두 개의 악성 패키지를 발견했습니다.
문제의 패키지(img-aws-s3-object-multipart-copy 및 legacyaws-s3-object-multipart-copy)는 각각 190회와 48회 다운로드되었습니다. 이 글을 쓰는 시점에 npm 보안 팀에서 삭제했습니다.
소프트웨어 공급망 보안 회사인 Phylum은 분석에서 “이들은 패키지 설치 중에 실행되는 이미지 파일에 숨겨진 정교한 명령 및 제어 기능을 포함하고 있었습니다.”라고 밝혔습니다.
해당 패키지는 aws-s3-object-multipart-copy라는 합법적인 npm 라이브러리를 가장하도록 설계되었지만 JavaScript 파일(“loadformat.js”)을 실행하기 위해 “index.js” 파일의 변경된 버전이 함께 제공됩니다.
JavaScript 파일은 Intel, Microsoft, AMD의 회사 로고가 포함된 세 개의 이미지를 처리하도록 설계되었으며, Microsoft 로고에 해당하는 이미지를 사용하여 악성 콘텐츠를 추출하고 실행합니다.
이 코드는 호스트 이름과 운영 체제 세부 정보를 보내 명령 및 제어(C2) 서버에 새 클라이언트를 등록하여 작동합니다. 그런 다음 5초마다 공격자가 발행한 명령을 주기적으로 실행하려고 시도합니다.
마지막 단계에서는 명령 실행 결과가 특정 엔드포인트를 통해 공격자에게 다시 유출됩니다.
Phylum은 “지난 몇 년 동안 오픈 소스 생태계에 게시된 악성 패키지의 정교함과 양이 극적으로 증가하는 것을 보았습니다.”라고 말했습니다.
“이러한 공격은 성공적이라는 것을 오해하지 마십시오. 개발자와 보안 기관 모두 이 사실을 잘 알고 자신이 사용하는 오픈 소스 라이브러리에 대해 깊이 경계하는 것이 절대적으로 필수적입니다.”