짱짱해커가 되고 싶은 나

패키지 악성코드 문제 본문

news

패키지 악성코드 문제

동로시 2021. 3. 6. 23:12

node.js를 공부해보니 외부 모듈, 패키지를 설치할 때 그냥 npm install 을 하면 해당 패키지의 depencies를 참고해서 자동으로 다른 패키지들도 설치가 된다. 이런 패키지 간의 의존성은 위험성이 존재한다.

 

1. 악성코드

2017년 cross-env라는 패키지와 이름이 비슷한 crossenv 라는 패키지에 악성코드가 들어있던 적이 있었다.

사용자들이 패키지를 설치할 때 오타를 별로 신경 쓰지 않고 패키지를 설치해버리는 type-squatting 기법을 사용한 경우다.

2018년에는 Event-Stream이라는 패키지가 의존하던 Flatmap-Stream이라는 패키지에 비트 코인 관련 악성코드가 포함된 사건도 있다.

2020년에는 유닉스 시스템의 중요 정보를 빼가는 악성패키지도 발견됐다.

 

2. 코드의 취약점

패키지의 코드에 보안 측면에서의 취약점이 존재할 수 있다.

이런 문제를 예방하기 위해 npm outdated, npm update를 정기적으로 실행하는 것이 좋다.

또 npm auit, npm audit fix를 통해 발표된 취약점들이 있는지 확인하고 최신 버전의 패키지를 설치할 수 있다.

 

3. 가용성 문제

사용 중이던 패키지가 사라지거나 관리되지 않고 방치될 수도 있다.

2016년 left-pad라는 아주 단순한 패키지의 주인이 npm 저장소에서 패키지를 삭제해버린 적이 있었는데 이로 인해 left-pad에 의존하고 있던 React, Babel 같은 대형 프로젝트들에도 큰 문제가 발생했었다.

현재는 npm 저장소에 한 번 올린 패키지는 올린 지 72시간 후에는 함부로 삭제할 수 없게 되어있다.

Comments