ค้นหาและแก้ช่องโหว่อย่างต่อเนื่อง
เรียนจบแล้วสร้างกระบวนการต่อเนื่องตั้งแต่ตรวจพบช่องโหว่จนถึงการแก้ใน production ที่ตรวจสอบแล้ว เข้าใจช่องว่างด้านการบำรุงรักษาที่ต้นแบบซึ่งทำงานสำเร็จอาจซ่อนไว้
เผยแพร่โดย Taigaวิธีเขียนเนื้อหาของเรา
ตรวจความเข้าใจแอปพลิเคชันไม่เปลี่ยนมาสามเดือน การสแกน dependency ล่าสุดผ่านตอนออก release ข้อใดมีหลักฐานรองรับ?ทำแบบฝึกหัด
สิ่งที่จะได้เรียนรู้
- อธิบายว่าทำไมซอฟต์แวร์ที่ไม่เปลี่ยนยังต้องทบทวนความปลอดภัยต่อเนื่อง
- จับคู่การสแกนแต่ละประเภทกับขอบเขตและข้อจำกัด
- ติดตามข้อค้นพบผ่านการจัดลำดับ การแก้ไข deployment และการตรวจสอบ
ต้นแบบที่ทำงานได้อาจกลายเป็นบริการที่ไม่มีการดูแล
Vibe coding สร้างต้นแบบที่มีประโยชน์ได้เร็ว ความเสี่ยงใน production เพิ่มขึ้นเมื่อผู้คนใช้ต่อโดยไม่มีการบำรุงรักษาความปลอดภัยต่อเนื่อง นี่เป็นช่องว่างสำคัญ: ซอฟต์แวร์ยังเปิดรับความเสี่ยง ขณะที่ผู้สร้างถือว่างานเสร็จแล้ว
ช่องว่างนี้เป็นทั้งเรื่ององค์กรและเทคนิค อาจมีเครื่องมือสแกนแต่ไม่มีผู้รับผิดชอบ ข้อค้นพบอาจมีผู้รับผิดชอบแต่ไม่มีช่องทางออก release การแก้ที่ merge แล้วอาจปล่อยให้ artifact เก่าใน production ทำงานต่อ
ประเมินแพลตฟอร์มพัฒนาที่ใช้จริงและการกำหนดค่า เครื่องมือบางตัวมี feature ด้านความปลอดภัย ชื่อประเภทผลิตภัณฑ์ไม่ได้ยืนยันว่าแอปพลิเคชันที่ deploy ของคุณได้รับการสแกนต่อเนื่องและการแก้ที่ตรวจสอบแล้ว
สแกนเมื่อหลักฐานอาจเปลี่ยน
เรียกการตรวจสอบที่เกี่ยวข้องกับการเปลี่ยนแปลงที่เสนอและ artifact ที่ build แล้ว ประเมินเวอร์ชันที่ยังสนับสนุนซ้ำตามตาราง เพราะข้อมูลประกาศช่องโหว่เปลี่ยนได้โดยไม่มี commit เริ่มตรวจทานเพิ่มเติมเมื่อมีประกาศที่เกี่ยวข้อง การเปลี่ยนการเปิดรับความเสี่ยง หรือ incident
ระบุขอบเขตให้ชัดเจน ระบุ repository, branch, lockfile, image ค่า digest ที่ deploy, runtime และสภาพแวดล้อม รวมแอปพลิเคชันที่ไม่มีงาน feature ใหม่แล้วแต่ยังให้บริการผู้ใช้
การสแกนที่ล้มเหลวหมายถึงหลักฐานที่ขาด ตรวจติดตามความใหม่ของผลสแกน ความขัดข้องของ feed ข้อมูลประกาศช่องโหว่ ความล้มเหลวในการยืนยันตัวตน component ที่ไม่รองรับ และช่องว่างของขอบเขต รายการข้อค้นพบที่ว่างหลัง job ล้มเหลวไม่ใช่ผลที่ยืนยันว่าไม่มีปัญหา
ใช้การตรวจสอบต่างกันสำหรับคำถามต่างกัน
| การตรวจสอบ | ขอบเขตที่มีประโยชน์ | ข้อจำกัดสำคัญ |
|---|---|---|
| Software composition analysis หรือ SCA | ช่องโหว่ dependency ที่ทราบ รวม package ทางอ้อมที่ระบุได้ | ไม่ได้ยืนยันว่า authorization ของแอปพลิเคชันถูกต้อง |
| Static application security testing หรือ SAST | รูปแบบโค้ดที่ไม่ปลอดภัยซึ่งเครื่องมือรองรับการตรวจพบ | อาจพลาดพฤติกรรมขณะทำงาน และให้ข้อค้นพบที่ต้องคัดแยก |
| Secret scanning | รูปแบบข้อมูลรับรองที่เครื่องมือรู้จักในเนื้อหาที่สแกน | การลบข้อความออกอาจยังเหลือข้อมูลรับรองที่ใช้ได้ในที่อื่น |
| การตรวจโครงสร้างพื้นฐานและการกำหนดค่า | การละเมิดนโยบายที่กำหนด ในทรัพยากรหรือการกำหนดค่าที่สแกน | การกำหนดค่าใน repository อาจต่างจากสภาพแวดล้อมที่ทำงานจริง |
| Dynamic testing ที่ได้รับอนุญาต | พฤติกรรมแอปพลิเคชันที่ทำงานอยู่ภายในขอบเขตทดสอบ | ต้องมีสิทธิ์ ข้อมูลที่เหมาะสม และความระมัดระวังต่อผลข้างเคียง |
ใช้การตรวจเหล่านี้ร่วมกับการตรวจทานและ security test ที่เกี่ยวข้อง อย่าอ้างว่าการสแกนใดพิสูจน์ว่าไม่มีช่องโหว่
ติดตามข้อค้นพบสมมติจนถึง production
| เวลา | เหตุการณ์ | สถานะจริง |
|---|---|---|
| วันจันทร์ 09:00 | ประกาศใหม่ระบุ dependency สำหรับ PDF ที่ได้รับผลกระทบ | Release ที่มีอยู่ต้องได้รับการประเมิน |
| วันจันทร์ 09:15 | การสแกนตามตารางระบุเวอร์ชัน production | ตรวจพบข้อค้นพบแล้ว ยังไม่แก้ |
| วันจันทร์ 10:00 | ผู้รับผิดชอบยืนยันความเสี่ยงและเลือก patch ที่มีการสนับสนุน | วางแผนแก้ไขแล้ว |
| วันจันทร์ 13:00 | Test ผ่านและ PR ของ patch ถูก merge | Repository แก้แล้ว แต่ production ยังต้อง deploy |
| วันจันทร์ 14:00 | Pipeline deploy image ที่แก้แล้ว | Artifact ใหม่ทำงานอยู่ ยังต้องตรวจสอบ |
| วันจันทร์ 14:20 | การสแกน artifact และ regression check ของการส่งออกผ่าน | ตรวจสอบการแก้แล้วภายในขอบเขตที่ตรวจ |
จัดลำดับด้วยความรุนแรง หลักฐานการใช้โจมตี การเปิดรับความเสี่ยง ข้อมูลที่ได้รับผลกระทบ และวิธีบรรเทาที่มี Catalog ของ CISA ช่วยระบุการใช้โจมตีที่ทราบแล้ว เป็นข้อมูลประกอบหนึ่งอย่าง ไม่ใช่การประเมินความเสี่ยงทั้งหมด CISA catalog
ข้อยกเว้นชั่วคราวต้องมีหลักฐาน ผู้รับผิดชอบ มาตรการชดเชย และเวลาสิ้นสุดหรือเงื่อนไขทบทวน หากไม่มี patch ให้พิจารณาวิธีแก้ขัดที่ได้รับอนุญาต การจำกัด feature หรือการนำ component ที่ได้รับผลกระทบออก
ปิดช่องว่างด้านการบำรุงรักษา
วัดเวลาคัดแยกและเวลาแก้ไขจนตรวจสอบแล้ว แยกตามลำดับความสำคัญ ติดตามข้อยกเว้นเกินกำหนด ผลสแกนเก่า เวอร์ชัน production ที่ได้รับผลกระทบ และข้อค้นพบซ้ำ จำนวนข้อค้นพบที่ลดลงอาจสะท้อนขอบเขตการตรวจที่ลดลงด้วย ให้ตรวจสอบตัวหาร
Taiga Maintaining สแกน repository ที่เชื่อมโยงหลังการเปลี่ยนแปลงและเป็นระยะ บันทึกข้อค้นพบและเชื่อมการแก้กับ initiative และการเปลี่ยนแปลงที่ตรวจทานแล้ว ตรวจสอบสถานะรอบสแกนและพฤติกรรมตามเอกสารปัจจุบัน Maintaining
Pipeline ของคุณยังต้องมีเงื่อนไขตรวจสอบก่อน release ที่เหมาะสม ผู้รับผิดชอบบริการยังต้องยืนยัน deployment และความถูกต้องในการทำงาน กระบวนการต่อเนื่องทั้งหมดนี้เป็นส่วนหนึ่งของการดำเนินงานโรงงานซอฟต์แวร์ AI รวมถึงผลิตภัณฑ์ที่เวอร์ชันแรกเริ่มจากต้นแบบ
ทำแบบฝึกหัด
ใช้ลำดับเวลาในสถานการณ์สมมติของบทเรียน ระบุจุดที่ทีมอาจประกาศว่าสำเร็จอย่างผิดพลาด กำหนดเงื่อนไขเริ่มสแกน alert เมื่อสแกนล้มเหลว ผู้รับผิดชอบแก้ไข การตรวจสอบ release และเวลาสิ้นสุดข้อยกเว้นชั่วคราว
ดาวน์โหลดใบงาน (Markdown)การยกเลิกตัวเลือกนี้จะลบความคืบหน้าทั้งหมดที่บันทึกใน browser นี้
ความคืบหน้าอยู่ใน browser นี้ ไม่ใช้บัญชีและไม่ติดตามการใช้งาน
แหล่งข้อมูลและเนื้อหาอ่านเพิ่มเติม
- NIST: Secure Software Development Framework ↗
- CISA: Known Exploited Vulnerabilities Catalog ↗
- Taiga docs: Maintaining ↗