node 패키지 간 의존 관계 위험성

웅평·2023년 7월 21일
0

패키지 간 의존 관계 위험성을 알아보자

1. 악성코드 문제

모든 패키지를 본인이 직접 검사하는 것은 현실적으로 어렵겠지만 악성 코드가 있는 패키지를 설치하지 않으려면, 되도록 누구나 알 정도로 공신력있는 패키지들만을 골라서 사용하는 것이 좋다

패키지 내 코드의 취약점 문제

(1) npm outdated, npm update 정기적으로 실행하기
현재 작업 중인 패키지 안에서 npm outdated, npm update 라는 명령어를 자주 실행해주는 것이 좋다.

  • npm outdated는 현재 패키지에 설치된 하위 패키지들 중에 버전이 최신이 아닌 것들이 무엇이 있는지 보여주는 명령어
  • npm update는 현재 자신의 패키지에 설치된 모든 패키지들을 최신 패키지로 업데이트해주는 명령어

본인의 패키지 안에서 npm outdated로 오래된 패키지들이 많지는 않은지 확인해주고, npm update로 이것들을 최신 패키지로 업데이트해주는 작업을 정기적으로 수행해주면 좋다.

최신 버전의 패키지들을 사용할수록 일반적으로 보안상 더 안전하다.

npm update는 package.json 파일의 dependencies 필드에 표시된 해당 패키지의 Version Range Syntax가 허용하는 범위 내에서만 업데이트를 해준다. 현재 설치된 버전이 1.5.2고, 최신 버전은 3.0.0인 패키지가 있다고 해도 이 패키지에 의존 중인 패키지의 package.json 파일에서 dependencies 필드에 ~1.8.3 이라고 써있다면 1.9.0 미만의 최신 버전까지로만 업데이트해준다.

별도로 업데이트

npm update [패키지명] 

실행해서 원하는 패키지만 업데이트해줘도 된다.

만약 최신보다 약간 이전의 버전을 원하면 이런 식으로 특정 버전을 지정해주고 실행하면 된다.

npm update [패키지명]@[버전] 

npm audit, npm audit fix으로 취약점 점검하기

패키지 내의 보안을 유지하는 또 다른 방법은 npm audit이라는 커맨드를 사용것이다
현재 자신의 패키지 안에서 npm audit이라는 커맨드를 실행하면, npm이 현재 설치된 패키지들의 이름과 버전을 보고, 발표된 취약점이 있는 것들은 그 정보를 출력한다

취약점이 발견되었다면 npm install fix라는 명령어를 실행하면 npm이 Version Range Syntax를 준수하면서도, 취약점이 해결된 더 최신 버전의 패키지를 자동으로 설치해준다.

npm install fix 만으로는 문제를 해결하지 못하는 경우도 있는데요. 이럴 때는 More info에 있는 URL로 들어가서 필요한 해결 조치를 보고 직접 수행해야한다

참고
코드잇

0개의 댓글