ขั้นตอนแก้ไขเบื้องต้นเมื่อเจอช่องโหว่ใน Dependency ของ Nodejs
เมื่อเราใช้ trivy scan หาช่องโหว่ Dependency ใน Nodejs เจอแล้ว ให้ดูว่า Library ไหนที่โดน ดูว่าติดตั้ง version ไหน และดูว่ามันได้รับการแก้ไขที่ version ไหนหรือยัง? จากนั้นกดไปดู Link รายละเอียดของ Vulnerability เพิ่มเติมได้
แล้วลองพิมพ์ npm audit
ตรวจสอบอีกรอบว่า Library ที่โดนเป็นยังไงบ้าง
ถ้ามีอันไหนบอกว่า fix available via npm audit fix
ก็ให้เราพิมพ์ npm audit fix
เพื่อมันแก้ไขไปก่อน
จากนั้นจะเหลือตัวที่เราต้องแก้ไขเอง ให้เอาชื่อ Library ไปค้นหาใน package-lock.json
ถ้ามันแสดงแบบนี้ คือมันติดตั้ง 3.43
"node_modules/@koa/cors": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/@koa/cors/-/cors-3.4.3.tgz",
"integrity": "sha512-WPXQUaAeAMVaLTEFpoq3T2O1C+FstkjJnDQqy95Ck1UdILajsRhu6mhJ8H2f4NFPRBoCNN+qywTJfq/gGki5mw==",
"dependencies": {
"vary": "^1.1.2"
},
"engines": {
"node": ">= 8.0.0"
}
},
ให้เราหาต่อไปจนเจอ Library อยู่ใน dependencies ไหน ตามข้างล่างแสดงว่ามันอยู่กับ @strapi/strapi
"node_modules/@strapi/strapi": {
"version": "4.11.3",
"resolved": "https://registry.npmjs.org/@strapi/strapi/-/strapi-4.11.3.tgz",
"integrity": "sha512-nK+8mQpiIiq81Eyx8CO8/AZSigyl6j9q/tz6grF2NkDvZrG9eQh93ey1Cb+GxEf3ZPcZKkZtmdPamScXNUHvsw==",
"hasInstallScript": true,
"dependencies": {
"@koa/cors": "3.4.3",
เราก็ไปดูว่า @strapi/strapi
ใน npmjs.com มันเวอร์ชั่นอะไรแล้ว ให้เราอัพเดทตาม หรือไปแก้เลข version ใน package.json เลย เพราะว่าเมื่อเราทำอัพเดท @strapi/strapi
แล้ว โดยส่วนมากเจ้าตัว @koa/cors
ที่มันดึงมาด้วยก็จะอัพเดทตามให้ทันที
จากนั้นก็ไปแก้ code เราที่เกี่ยวข้องกับ Library นั้นๆ ว่าได้รับผลกระทบอะไรบ้าง มีการทำงานผิดพลาดอะไรไหม เพราะการอัพเดทบ้างครั้ง อาจจะต้องมีการแก้ไขการเขียนไปเป็นอีกรูปแบบ
อันนี้เป็นวิธีการอัพเดท Library ต่างๆ ที่เขาได้มีการแก้ไขช่องโหว่แล้ว แต่เราไม่ได้อัพเดทตามเขา... หากใครมีวิธีอื่นๆ ก็แชร์กันมาได้นะ 😄
Comments ()