보안정보

글로벌 정보보안 리더 윈스

악성 NPM 패키지는 Amazon, Slack을 대상으로 한다

침해사고분석팀 2021.03.03

공급망 공격

 

 

위협 행위자들은 새로운 '종속성 혼란(Dependency Confidence)' 취약점을 이용하여 Amazon, Zillow, Lyft 및 Slack NodeJS 앱을 표적으로 삼아 리눅스/유닉스 암호 파일을 훔치고 공격자에게 역방향 쉘을 연다.

 

지난달 BleepingComputer는 보안 연구원인 Alex Birsan이 오픈소스 개발 도구의 새로운 결함을 활용해 35개 회사로부터 버그 바운티를 받았다고 보고했다.

 

이 결함은 공격자가 회사 내부 리포지토리 또는 구성 요소와 동일한 이름을 사용하여 패키지를 생성하는 방식으로 작동한다. npm, PyPI, RubyGems를 포함한 공용 저장소에서 호스팅할 때 종속성 관리자는 애플리케이션을 빌드할 때 회사 내부 패키지가 아닌 공용 리포트에서 패키지를 사용한다.

 

이러한 "종속성 혼란"을 통해 공격자는 공급망 공격에서 맬웨어를 내부 애플리케이션에 주입할 수 있다.

 

 

위협 행위자가 종속성 혼란을 사용하기 시작함

 

악성 패키지의 이름은 'amzn', 'zg-rentals', 'lyft-dataset-sdk', 'server-slack-app'이며 GitHub 및 기타 프로젝트에서 알려진 리포지토리와 유사한 이름을 사용한다.

 

위협 행위자들이 악성 NPM을 만들 때 그들은 Birsan의 원래 PoC를 템플릿으로 사용했지만 악성 코드를 추가했다.

 

"그들은 Alex Birsan 연구원이 발표한 PoC와 거의 같은 코드 베이스로 시작하며 점차 창의력을 발휘하기 시작한다."라고 Sonatype 보안 연구원인 Juan Aguirre는 설명한다.

 

예를 들어, 'amzn' 및 'zg-rentals' NPM 패키지는 /etc/shadow 암호 파일(5행)을 훔쳐서 공격자(42행)에게 다시 보낼 뿐만 아니라 원격 쉘(26행)을 열어 위협 행위자에게 시스템에 대한 모든 액세스 권한을 부여한다.

 

 

악성 amzn 패키지

[그림1. 악성 amzn 패키지]

 

 

'yft-dataset-sdk'와 'serverless-slack-app'은 다른 작성자의 것으로 보이며 대신 리눅스 프로필 .bash_history 파일을 훔쳐서 공격자가 제어하는 원격 호스트로 전송한다.

 

 

.bash_history 파일을 훔치는 서버리스 슬랙 앱

[그림2. .bash_history 파일을 훔치는 serverless-slack-app]

 

 

공격자가 .bash_history 파일을 훔치려는 이유가 궁금할 수 있다.

 

히스토리 파일에는 인수로 전달된 암호를 포함하여 쉘에 입력한 모든 명령 목록이 들어 있으므로 .bash_history 파일을 훔치는 것은 공격자가 자격 증명을 수집하는 데 사용하는 알려진 기술이다.

 

리포지토리의 개방적이고 공개적인 특성과 종속성 혼란 공격을 쉽게 생성할 수 있기 때문에 애플리케이션 개발자가 구성 파일을 보호할 때까지 이러한 유형의 공격이 계속될 것으로 예상해야 한다.

 

Microsoft는 이러한 유형의 공급망 공격을 방지하는 팁을 제공하는 "개인 패키지 피드 사용 시 리스크를 완화하는 3가지 방법"이라는 백서를 만들었다.

 

Sonatype은 또한 Nexus Repository Manager 사용자가 자신의 개인 종속성이 공용 리포지토리의 기존 패키지의 이름을 따서 명명되었는지 확인하는 데 사용할 수 있는 스크립트를 생성했다.

 

 

출처

https://www.bleepingcomputer.com/news/security/malicious-npm-packages-target-amazon-slack-with-new-dependency-attacks/