purescript npm 설치 프로그램에서 발견 된 악성 코드

npm 순수 스크립트

며칠 전 PureScript 설치 프로그램의 npm 패키지 종속성에서 악성 코드가 발견되었습니다.이는 purescript 패키지를 설치하려고 할 때 나타납니다.

악성 코드 cwd-or-npm 종속성에서로드를 통해 포함 및 속도 맵 종속성. 최근까지이 npm 패키지를 유지 관리하는 데 관여했지만 다른 관리자에게 패키지를 보냈던 PureScript 설치 프로그램이있는 npm 패키지의 원래 작성자가 이러한 종속성이있는 패키지를 함께 제공 할 책임이 있습니다.

문제에 대해

패키지의 새로운 분석가 중 한 명이 문제를 발견했습니다., npm purescript 패키지의 원저자와 많은 불일치와 추악한 논의 끝에 유지 관리 권한이 양도되었습니다.

새로운 관리자 PureScript 컴파일러를 담당하며 그들은 설치 프로그램이있는 NPM 패키지는 프로젝트 외부의 개발자가 아니라 관리자가 직접 수리해야한다고 주장했습니다.

PureScript 설치 프로그램을 사용하는 npm 패키지의 작성자는 오랫동안 동의하지 않았지만 포기하고 저장소에 대한 액세스 권한을 부여했습니다. 그러나 일부 의존성은 그의 통제하에 남겨졌습니다.

지난주 PureScript 0.13.2 컴파일러의 릴리스가 발표되었습니다. 새로운 관리자는 설치 프로그램을 사용하여 npm 패키지의 해당 업데이트를 준비했습니다. 악성 코드가 탐지되었습니다.

악성 코드는 먼저 npm 패키지 "load-from-cwd-or-npm"에 삽입되었습니다. 버전 3.0.2에서 그리고 버전 1.0.3의 rate-map 패키지에서. 지난 며칠 동안 두 패키지의 여러 버전이 게시되었습니다.

퓨어 스크립트 설치 프로그램과 함께 npm 패키지 작성자의 게시물에서 옮겨온 그는 자신의 계정이 알려지지 않은 공격자에 의해 손상되었다고 말했습니다.

그러나, 현재 형태에서는 패키지 설치를 방해하는 것만으로 악성 코드의 행위가 제한됨, 이것은 새로운 관리자의 첫 번째 버전이었습니다. 명시적인 악의적 인 활동을 수행하지 않고 "npm i -g purescript"명령을 사용하여 패키지를 설치하려고하면 악의적 인 작업이 반복되었습니다.

두 가지 공격이 확인되었습니다.

요약하면, 코드는 다운로드가 완료되지 않도록하기 위해 purescript npm 설치 프로그램을 방해합니다., "플랫폼에 미리 컴파일 된 바이너리가 제공되는지 확인"단계 중에 설치 프로그램이 중단됩니다.

첫 번째 익스플로잇은 load-from-cwd-or-npm 패키지를 깨서이를 수행했습니다. loadFromCwdOrNpm ()에 대한 모든 호출은 예상 패키지 (이 경우 컴파일러 바이너리를 다운로드하는 데 사용했던 요청 패키지) 대신 통과 시퀀스를 반환합니다. 두 번째 익스플로잇 반복에서는 다운로드 콜백이 발생하지 않도록 소스 파일을 수정하여이를 수행했습니다.

4 일 후 개발자는 결함의 원인을 이해하고 종속성에서 cwd-o-npm에서로드를 제외하는 업데이트를 릴리스 할 준비를했습니다., 공격자는 악성 코드가 제거 된 또 다른 업데이트 load-cwd-or-npm 3.0.4를 발표했습니다.

그러나 다른 Rate-Map 1.0.3 종속성에 대한 업데이트가 거의 즉시 릴리스되었으며 다운로드에 대한 콜백 호출을 차단하는 수정 사항이 추가되었습니다.

즉, 두 경우 모두, load-from-cwd-or-npm 및 맵 속도의 새 버전의 변경 사항은 명백한 편차의 특성이었습니다.

또한 악성 코드에는 신규 메인테이너의 버전을 설치할 때만 실패한 동작을 유발하는 검사가 있었고, 이전 버전을 설치할 때는 전혀 나타나지 않았다.

개발자는 문제가있는 종속성이 제거 된 업데이트를 출시하여 문제를 해결했습니다.

문제가있는 버전의 PureScript 설치를 시도한 후 손상된 코드가 사용자 시스템에 설치되는 것을 방지합니다.

최종적으로 개발자가 권장합니다 시스템에 해당 버전의 패키지가있는 모든 사용자에게 node_modules 디렉토리와 package-lock.json 파일의 내용을 제거한 다음 purescript 버전 0.13.2를 설정하십시오.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.