การจัดการส่วนพึ่งพาอย่างปลอดภัย
ตรึงเวอร์ชันของส่วนพึ่งพา เฝ้าติดตาม CVE ใช้ไฟล์ล็อก และทำ SCA ในไปป์ไลน์ CI โดยอัตโนมัติ
การจัดการส่วนพึ่งพาอย่างปลอดภัย เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดการพึ่งพาจึงเป็นความเสี่ยง
แอปพลิเคชันสมัยใหม่นำเข้าแพ็กเกจจากบุคคลที่สามหลายร้อยรายการ การพึ่งพาแต่ละรายการ — รวมถึงการพึ่งพาแบบส่งต่อ — ขยายพื้นผิวการโจมตีของคุณ ช่องโหว่ในไลบรารียอดนิยม (เช่น Log4Shell ใน Log4j) อาจทำให้แอปพลิเคชันหลายพันรายการตกอยู่ในความเสี่ยงพร้อมกัน
ไฟล์ล็อกและการตรึงเวอร์ชัน
ไฟล์ล็อก (package-lock.json, yarn.lock, Pipfile.lock) จะตรึงการพึ่งพาทุกตัว รวมถึงการพึ่งพาแบบส่งต่อ ให้เป็นเวอร์ชันที่แน่นอน ควรส่งไฟล์ล็อกเข้าไปในการควบคุมเวอร์ชัน วิธีนี้ช่วยให้สร้างซอฟต์แวร์ซ้ำได้ผลเหมือนเดิมและป้องกันการอัปเกรดเวอร์ชันโดยไม่ตั้งใจซึ่งอาจนำช่องโหว่เข้ามา
การวิเคราะห์องค์ประกอบซอฟต์แวร์ (SCA)
เครื่องมือ SCA สแกนแผนผังการพึ่งพาเทียบกับฐานข้อมูล CVE เพื่อระบุแพ็กเกจที่มีช่องโหว่ OWASP Dependency-Check, Snyk และ GitHub Dependabot จะตรวจจับช่องโหว่ที่ทราบโดยอัตโนมัติ และแนะนำเวอร์ชันที่ได้รับการแก้ไขพร้อมคำแนะนำในการแก้ไขปัญหา
การอัปเดตการพึ่งพาโดยอัตโนมัติ
Dependabot และ Renovate Bot จะเปิดคำขอเปลี่ยนแปลงโดยอัตโนมัติเมื่อมีเวอร์ชันใหม่ที่ไม่ทำให้ความเข้ากันได้เสียหาย ทั้งสองเครื่องมือจะให้ความสำคัญกับการอัปเดตด้านความปลอดภัย คุณสามารถตั้งค่าการรวมอัตโนมัติสำหรับการอัปเดตแพตช์ที่ผ่านการตรวจสอบการผสานรวมอย่างต่อเนื่อง เพื่อให้การพึ่งพาเป็นปัจจุบันโดยใช้แรงงานด้วยตนเองน้อยที่สุด
การประเมินการพึ่งพารายการใหม่
ก่อนเพิ่มการพึ่งพา ให้ตรวจสอบจำนวนการดาวน์โหลด กิจกรรมการส่งการเปลี่ยนแปลงล่าสุด จำนวนปัญหาที่เปิดอยู่ ความเข้ากันได้ของใบอนุญาต และประวัติ CVE ที่ทราบ เลือกแพ็กเกจที่ได้รับการดูแลอย่างดีและมีกระบวนการรับมือด้านความปลอดภัยที่ดำเนินการอยู่ แทนทางเลือกที่ไม่มีการดูแล
ความเสี่ยงจากการพึ่งพาแบบส่งต่อ
การพึ่งพาโดยตรงของคุณอาจนำการพึ่งพาอื่นของตนเองเข้ามาด้วย เหตุการณ์ event-stream แสดงให้เห็นว่า ผู้โจมตีเข้าควบคุมการพึ่งพาแบบส่งต่อที่แพ็กเกจนับล้านใช้งานอยู่ได้ ควรตรวจสอบโครงสร้างต้นไม้การพึ่งพาทั้งหมด ไม่ใช่เฉพาะการพึ่งพาโดยตรง
รีจิสทรีแพ็กเกจส่วนตัว
การโจมตีด้วยความสับสนของการพึ่งพาเกิดจากการเผยแพร่แพ็กเกจที่เป็นอันตรายไปยังรีจิสทรีสาธารณะ โดยใช้ชื่อเดียวกับแพ็กเกจภายในองค์กร ให้ลดความเสี่ยงด้วยชื่อแพ็กเกจที่มีขอบเขต การตรวจสอบสิทธิ์กับรีจิสทรีส่วนตัว และการอนุญาตเฉพาะรีจิสทรีที่ได้รับอนุมัติใน .npmrc หรือ pip.conf
ความปลอดภัยของห่วงโซ่อุปทาน: SBOM
บัญชีรายการส่วนประกอบซอฟต์แวร์ (SBOM) คือรายการส่วนประกอบทั้งหมดในซอฟต์แวร์ของคุณที่เครื่องสามารถอ่านได้ ควรสร้าง SBOM ด้วย Syft หรือ CycloneDX โดย SBOM ช่วยให้ประเมินผลกระทบจากช่องโหว่ได้อย่างรวดเร็วเมื่อมีการเผยแพร่ CVE ใหม่ เพราะสามารถระบุเวอร์ชันที่ได้รับผลกระทบได้ภายในไม่กี่นาที
การปฏิบัติตามใบอนุญาต
ใบอนุญาต OSS กำหนดภาระหน้าที่บางประการ GPL อาจกำหนดให้เปิดเผยรหัสต้นฉบับ ส่วน MIT และ Apache 2.0 มีเงื่อนไขที่ผ่อนปรน FOSSA และ TLDR-Legal ช่วยประเมินความเข้ากันได้ของใบอนุญาตได้ ควรรวมการสแกนใบอนุญาตไว้ในระบบผสานรวมอย่างต่อเนื่อง เพื่อป้องกันไม่ให้ผลิตภัณฑ์เชิงพาณิชย์ปนเปื้อน GPL โดยไม่ตั้งใจ
การตรวจสอบความถูกต้องของข้อมูล
Subresource Integrity (SRI) สำหรับสคริปต์ที่โฮสต์บน CDN ใช้ค่าแฮชเชิงเข้ารหัสในแอตทริบิวต์ integrity ไฟล์ package.json ของ npm มีฟิลด์ integrity ควรตรวจสอบค่าตรวจสอบเมื่อดาวน์โหลดแพ็กเกจในระบบผสานรวมอย่างต่อเนื่อง เพื่อค้นหาการดัดแปลงห่วงโซ่อุปทาน
การดูแลการพึ่งพาให้เป็นปัจจุบัน
ใช้แพตช์ด้านความปลอดภัยภายใน 24–48 ชั่วโมงหลังเผยแพร่ CVE สำหรับช่องโหว่ร้ายแรง ใช้คะแนน CVSS และข้อมูลความสามารถในการใช้ประโยชน์เพื่อจัดลำดับความสำคัญ การพึ่งพาที่ได้รับแพตช์แต่ทำให้เกิดการเปลี่ยนแปลงที่เข้ากันไม่ได้ ยังดีกว่าช่องโหว่ที่ผู้โจมตีใช้ประโยชน์ได้ในระบบจริง
การทดสอบความรู้
การโจมตีด้วยความสับสนของการพึ่งพาคืออะไร
สรุป
การจัดการการพึ่งพาอย่างปลอดภัยต้องกำหนดเวอร์ชันในไฟล์ล็อก ใช้การสแกน SCA ในระบบผสานรวมและส่งมอบอย่างต่อเนื่อง ทำให้การอัปเดตแพตช์เป็นอัตโนมัติ สร้าง SBOM เพื่อประเมินผลกระทบ และประเมินสถานะด้านความปลอดภัยของการพึ่งพาใหม่ก่อนนำมาใช้
คำถามที่พบบ่อย
บทเรียน “การจัดการส่วนพึ่งพาอย่างปลอดภัย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดการส่วนพึ่งพาอย่างปลอดภัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดการส่วนพึ่งพาอย่างปลอดภัย”
ตรึงเวอร์ชันของส่วนพึ่งพา เฝ้าติดตาม CVE ใช้ไฟล์ล็อก และทำ SCA ในไปป์ไลน์ CI โดยอัตโนมัติ คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดการส่วนพึ่งพาอย่างปลอดภัย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตรวจสอบข้อมูลป้อนเข้าและการเข้ารหัสข้อมูลส่งออก
- การจัดการส่วนพึ่งพาอย่างปลอดภัย
- OWASP ASVS: มาตรฐานตรวจสอบความปลอดภัยแอปพลิเคชัน
- เทคนิคการตรวจสอบโค้ดอย่างปลอดภัย