Node.js npm 보안은 수백만 개의 패키지로 이루어진 방대한 생태계 때문에 어렵습니다. 이는 취약점 및 공급망 공격의 위험을 증가시킵니다. package-lock.json 파일은 package.json을 넘어서는 위험을 식별하는 데 중요한, 전이적 종속성을 포함한 전체 종속성 트리를 상세히 설명합니다. 이 가이드는 취약한 패키지를 찾고 수정하는 실질적인 조언을 제공합니다. 주요 위험에는 알려진 CVE, 악의적인 공급망 공격, 그리고 종종 전이적 종속성에서 발생하는 버려진 패키지가 포함됩니다. npm audit이 도움이 되지만, 완전하지 않아 잠재적으로 취약점을 놓치거나 전이적 종속성에 대한 복잡한 수정을 제공할 수 있습니다. lodash 및 axios와 같이 일반적으로 취약한 패키지는 빈번한 등장과 과거 취약점 때문에 주의가 필요합니다. package-lock.json을 감사하고 Vulert와 같은 도구를 사용하는 것은 종속성에 대한 포괄적인 시각을 제공합니다. 취약점을 수정하는 것은 직접 종속성을 업그레이드하거나, 전이적 문제에 대해 상위 패키지를 업그레이드하거나, overrides를 사용하는 것을 포함합니다. 지속적 통합/지속적 배포(CI/CD) 파이프라인은 npm audit을 통합하여 배포 전에 취약점을 포착하는 데 도움이 됩니다. 실질적인 워크플로우는 lockfile 스캔, 취약점 우선순위 지정, 패키지별 그룹화, 그리고 더 안전한 애플리케이션을 위한 종속성 업그레이드를 포함합니다.
dev.to
npm Package Security — How to Find and Fix Vulnerable Dependencies in Your Node.js Application
