당신의 npm 패키지, 취약성의 괴설. 서둘러 최신으로 해!

npm 편리하네요.

요즈음 프런트 web개발로 Node.js가 등장하지 않는 것은 없기 때문에, 여러분 사용하시겠습니까라고 생각합니다만, 제대로 버전 관리하고 있습니까?

저는 없는 웹 제작자이지만 npm 패키지 없이는 개발할 수 없습니다.

단지 그렇게 말하면 버전 관리를 하고 있지 않다고 생각해, 현재 버전과 최신 버전을 비교해 보는 것에. 그렇다면 ...
$ npm outdated


微妙にパッケージが古くなってた...

npm-check-updates 설치



먼저 package.json을 최신 버전으로 업그레이드하는 npm-check-updates를 설치합니다.
npm i npm-check-updates

그렇다면,
ncu -u

그러면

Run npm install to install new versions.
라는 메시지가 나오면 OK, 마지막으로 패키지를 설치합니다.
npm i

그러면...


뭔가 불안한 메시지.

660의 취약성이 있기 때문에 고치기 위해 npm audit fix하라!

라는 것 같습니다 👀

예...
(npm의 업데이트 사보였던 사람은 모두 수백 레벨이라고 생각됩니다)

우선 명령을 실행합니다. 취약성이 있는 부분을 자동 수정해 주는 명령입니다.
npm audit fix

그러면



나머지 12개의 취약성은 수작업으로 수음! !

라는 것 같다.

진짜.
npm audit

로 취약성 일람을 내보자.



15개의 취약성 가운데, 1개의 위험성이 high 입니다 (취약성으로부터 정규 표현을 사용한 DoS 공격을 받을 가능성이 있다고 합니다)

high의 것을 자세히 살펴 보겠습니다.
───────────────┬──────────────────────────────────────────────────────────────┐
│ High          │ Denial of Service                                            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ http-proxy                                                   │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ >=1.18.1                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ browser-sync [dev]                                           │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ browser-sync > http-proxy                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://npmjs.com/advisories/1486                            │
└───────────────┴──────────────────────────────────────────────────────────────┘
browser-syncが依存している、http-proxyに問題があるそう。なんぞこれ...?
조사해 보면, 집필 시점 5일전에 업데이트가 나오고 있어 최신판으로 할 필요가 있을 것 같습니다.

우선
$ npm install http-proxy

에서 최신판을 다운로드하고 다시 취약성이 있는 부분을 자동 수정해 주는 명령↓
npm audit fix

그러면...


fixed 9 of 13 vulnerabilities in 1275 scanned packages
  4 vulnerabilities required manual review and could not be updated

high 사라졌고, 4개까지 줄일 수 있어서 좋았다! !

누와 ~ 응 지쳐도 ~ 응! !

결론 npm은 정기적으로 관리하라.



버젼은 낡고 있어, 취약성은 있고, 아마 자동화할 수 있는 것이겠지만 약약 엔지니어이므로, 앞으로 조사해 보겠습니다.

모두 npm 패키지의 버전 관리, 하자! !

좋은 웹페이지 즐겨찾기