กำไร:
- ความสามารถในการเข้าใจ DevSecOps และกฎทองของการจัดการความลับ (ไม่ได้ป้อนรหัส ถูกเก็บไว้ในห้องนิรภัย ถูกฉีดเข้าไปในรันไทม์ ถูกส่งคืน มีสิทธิ์น้อยที่สุด)
- ความสามารถในการใช้ปัญญาประดิษฐ์เพื่อจัดลำดับความสำคัญของเอาต์พุตการสแกนความปลอดภัย (SCA, SAST, รูปภาพ, IaC, ข้อมูลลับ) และโค้ดการตรวจสอบเพื่อวัตถุประสงค์ในการป้องกัน
- การรู้ว่าขั้นตอนแรกของการรั่วไหลที่เป็นความลับคือการเพิกถอน/การกลับรายการ และใช้ปัญญาประดิษฐ์เฉพาะในระบบที่ได้รับอนุญาตเท่านั้น เพื่อวัตถุประสงค์ในการป้องกัน ภายในขอบเขตที่กฎหมายกำหนด
ความรวดเร็วในการปรับใช้ระบบไม่ได้หมายความว่าในวันที่ระบบถูกโจมตี แม้ว่า DevOps จะมุ่งเน้นไปที่ความเร็ว แต่บางครั้งการรักษาความปลอดภัยก็ถูกปล่อยทิ้งไว้จนสุด — และการรักษาความปลอดภัยก็มักจะไม่เกิดขึ้นเลย DevSecOps เป็นแนวทางที่ให้ความสำคัญกับความปลอดภัยตั้งแต่เริ่มต้นและในทุกขั้นตอนของโฟลว์ DevOps: "การเลื่อนการรักษาความปลอดภัยไปทางซ้าย" นั่นคือการตรวจจับช่องโหว่ในไปป์ไลน์ในขณะที่กำลังเขียนโค้ด แทนที่จะเขียนในผลิตภัณฑ์ สำหรับมืออาชีพ DevSecOps การรักษาความปลอดภัยไม่ใช่งานของทีมที่แยกจากกัน แต่เป็นส่วนหนึ่งของทุกการกระทำ ทุกภาพ ทุกรายการ
หน่วยนี้มีสองแกนหลัก ประการแรกคือการจัดการความลับ: การสร้าง การจัดเก็บ การแจกจ่าย และการหมุนเวียนข้อมูลที่เป็นความลับ เช่น รหัสผ่าน คีย์ ใบรับรองอย่างปลอดภัย ประการที่สองคือการสแกนและเสริมความปลอดภัย: การค้นหาช่องโหว่ในการขึ้นต่อกัน อิมเมจ และการกำหนดค่า AI เป็นตัวช่วยที่ทรงพลังทั้งสองอย่าง โดยจะเปิดเผยช่องโหว่ จัดลำดับความสำคัญของเอาต์พุตการสแกน แนะนำการแก้ไข แต่ข้อแม้ที่สำคัญที่สุดใช้ได้ที่นี่: AI มีไว้เพื่อการป้องกัน การเข้าถึงระบบของผู้อื่นโดยไม่ได้รับอนุญาต การสแกนโดยไม่ได้รับอนุญาต หรือการสร้างเครื่องมือโจมตีนั้นผิดกฎหมายและเป็นข้อจำกัดที่เข้มงวดของแพลตฟอร์มนี้
กฎทองของการจัดการความลับ
- ความลับไม่เคยทำให้เป็นซอร์สโค้ด ไม่ใช่ Dockerfile ไม่ใช่ YAML ไม่ใช่สคริปต์ ไม่ใช่ Git เมื่อเข้าสู่ Git แล้วความลับก็ยังคงอยู่ในอดีต
- ความลับถูกเก็บไว้ในห้องนิรภัยกลาง HashiCorp Vault, AWS Secrets Manager, Azure Key Vault, GCP Secret Manager — ข้อมูลลับของร้านค้าเหล่านี้ได้รับการเข้ารหัส ควบคุมการเข้าถึง และติดตามข้อมูลเหล่านั้น
- มันถูกฉีดในขณะที่ทำการผ่าตัด แอปพลิเคชันดึงข้อมูลลับจากห้องนิรภัยหรือตัวแปรสภาพแวดล้อมขณะทำงาน ไม่ใช่จากดิสก์
- มันหมุนสม่ำเสมอ ยิ่งอายุความลับนานเท่าไรก็ยิ่งเสี่ยงต่อการรั่วไหลมากขึ้นเท่านั้น การหมุนอัตโนมัติเหมาะอย่างยิ่ง
- อำนาจขั้นต่ำ เฉพาะบริการที่ต้องการเท่านั้นที่สามารถเข้าถึงความลับแต่ละข้อได้
เคล็ดลับ: มาตรการรับมือที่มีประสิทธิภาพสูงสุดเพียงอย่างเดียวคือการวางเครื่องสแกนความลับ (เช่น git-secrets, gitleaks, trufflehog) ไว้ในไปป์ไลน์ โดยจะหยุดการคอมมิตหากมีการพยายามส่งความลับโดยไม่ตั้งใจ สิ่งนี้จะหยุดการรั่วไหลที่แหล่งกำเนิด AI ช่วยเขียนการรวมไปป์ไลน์ของเบราว์เซอร์เหล่านี้
ทีละขั้นตอน: ตอบสนองต่อการรั่วไหลของความลับ
หากความลับรั่วไหล อย่าตกใจ ลำดับเป็นสิ่งสำคัญ:
- ยกเลิกและหมุนทันที ทำให้คีย์ที่รั่วไหลไม่ถูกต้อง โปรดสร้างคีย์ใหม่ แค่ลบมันออกอย่างเดียวไม่พอ มันยังคงอยู่ในอดีต
- ประเมินผลกระทบ กุญแจนี้เข้าถึงได้จากที่ไหน? ถูกทำร้ายหรือเปล่า? ตรวจสอบบันทึก
- ปิดแหล่งที่มา มันรั่วได้อย่างไร? ล้างรหัส ประวัติ; แต่โปรดจำไว้ว่า: การยกเลิกจะต้องมาก่อนการหักบัญชี
- ป้องกัน. เพิ่มเบราว์เซอร์ลับลงในไปป์ไลน์เพื่อไม่ให้เกิดซ้ำ
ข้อควรสนใจ: เดิมพันที่แพงที่สุดคือการไม่ส่งคืนความลับที่รั่วไหลเพียงเพราะ "ไม่มีใครเห็น" คีย์ที่ทิ้งลงในพื้นที่เก็บข้อมูลสาธารณะจะถูกสแกนโดยบอทภายในไม่กี่วินาที หากมีข้อสงสัย ให้หมุน — ต้นทุนการหมุนต่ำ ต้นทุนการรั่วไหลถือเป็นหายนะ
ประเภทของการสแกนความปลอดภัย
DevSecOps ใช้การสแกนหลายชั้น AI มีประโยชน์ในการตีความผลลัพธ์ของแต่ละรายการ:
- SCA (การวิเคราะห์องค์ประกอบของซอฟต์แวร์): ค้นหาช่องโหว่ที่ทราบ (CVE) ในการพึ่งพาโอเพ่นซอร์สที่คุณใช้
- SAST (การทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่): สแกนซอร์สโค้ดเพื่อหาช่องโหว่โดยไม่ต้องเรียกใช้
- DAST (การทดสอบความปลอดภัยของแอปพลิเคชันแบบไดนามิก): ทดสอบแอปพลิเคชันที่ทำงานอยู่ภายนอก
- การสแกนรูปภาพ: ค้นหาช่องโหว่ในคอนเทนเนอร์อิมเมจ (trivy, docker scout)
- การสแกน IaC: ค้นหาการกำหนดค่าที่ไม่ถูกต้องใน Terraform/manifests (tfsec, checkov)
ข้อควรระวัง: เครื่องสแกนจะทิ้งการค้นพบหลายร้อยรายการ เป็นไปไม่ได้ที่จะแก้ไขทั้งหมดพร้อมกัน ใช้ AI เพื่อจัดลำดับความสำคัญของการค้นพบ: ข้อใดสามารถหาประโยชน์ได้อย่างแท้จริง ข้อใดชัดเจนในทางทฤษฎี แต่ไม่สามารถเข้าถึงได้ในทางปฏิบัติ แต่ตรวจสอบการจัดลำดับความสำคัญขั้นสุดท้ายด้วยบริบทของคุณเอง
ตารางเลเยอร์แรสเตอร์
ชั้น
มันสแกนอะไร?
ยานพาหนะตัวอย่าง
เมื่อ
สคเอ
ช่องโหว่ในการพึ่งพา (CVE)
พึ่งดาบอต, สไนค์
ทุกงานสร้าง
ศอ
ช่องโหว่ของซอร์สโค้ด
เซมเกรพ, CodeQL
ประชาสัมพันธ์ทุกๆท่าน
การสแกนภาพ
ช่องโหว่ของคอนเทนเนอร์
ทริวี่, สเกาท์
หลังสร้าง
การสแกน IaC
การกำหนดค่าไม่ถูกต้อง
tfsec เช็คอฟ
เทอร์ราฟอร์ม พีอาร์
สแกนความลับ
ความลับรั่วไหล
gitleaks
ทุกการกระทำ
มินิเคสสามอัน
กรณีที่ 1 — 300 CVE, 12 ความเสี่ยงที่แท้จริง การสแกนรูปภาพรายงานช่องโหว่ 300 รายการ ทีมเป็นอัมพาต มอบเอาต์พุตการสแกนให้กับ AI และถามว่า "อันไหนที่สามารถใช้ประโยชน์ได้จากระยะไกลและสามารถเข้าถึงได้" พวกเขาให้ความสำคัญกับมัน AI เน้นย้ำการค้นพบที่มีความเสี่ยงที่แท้จริง 12 รายการ ทีมงานปิดตัวลงก่อน เขาจ้างส่วนที่เหลือตามแผนที่วางไว้ จัดลำดับความสำคัญมากกว่าความตื่นตระหนก
กรณีที่ 2 — การหมุนทำให้การโจมตีล้มเหลว นักพัฒนาซอฟต์แวร์พุชคีย์คลาวด์ไปยังที่เก็บข้อมูลสาธารณะโดยไม่ตั้งใจ เสียงปลุกดังขึ้น ทีมงานยกเลิกและคืนกุญแจภายใน 4 นาที บันทึกแสดงให้เห็นว่าคีย์ได้รับการสอบถามจากบอทแล้ว แต่ตอนนี้คีย์ไม่ถูกต้อง การตอบสนองที่รวดเร็วช่วยป้องกันการเรียกเก็บเงินและข้อมูลรั่วไหลที่อาจเกิดขึ้นได้
กรณีที่ 3 — การสแกน IaC จับที่บัคเก็ตที่เปิดอยู่ การสแกน IaC ที่ได้รับความช่วยเหลือจาก AI จับที่เก็บข้อมูลในโค้ด Terraform ที่มีสิทธิ์ "อ่านแบบสาธารณะ" โดยไม่ต้องดำเนินการจริง ผู้พัฒนาได้เปิดมันขึ้นมา "เพื่อทดสอบ" และลืมปิดมัน ไปป์ไลน์หยุดการกระทำ; เปิดไม่เคยผลิตเลย นั่นคือจุดของการปัดไปทางซ้าย
เทมเพลตที่สามารถคัดลอกได้สี่แบบ
1) จัดลำดับความสำคัญของเอาต์พุตการสแกน:
จัดลำดับความสำคัญเอาต์พุตการสแกนความปลอดภัยด้านล่าง สำหรับการค้นพบแต่ละครั้ง:(1) สามารถหาประโยชน์ได้จริงหรือไม่ (ระยะไกล/ไม่ผ่านการรับรองความถูกต้อง) (2) สามารถเข้าถึงได้ในบริบทของเราหรือไม่ (3) ความพยายามในการแก้ไข (4) ลำดับความสำคัญที่แนะนำ (วิกฤต/สูง/ปานกลาง/ต่ำ) เน้น 5 ข้อเร่งด่วนที่สุด พูดให้ชัดเจน; ระบุว่าฉันต้องตรวจสอบลำดับความสำคัญแต่ละอย่างตามบริบทของฉัน เอาท์พุต: [สแกน]
2) การออกแบบการจัดการความลับ:
เสนอแนวทางการจัดการข้อมูลลับสำหรับ [แอปพลิเคชัน/โครงสร้างข้อมูลสารสนเทศ]: ห้องนิรภัยใด วิธีแทรกข้อมูลลับขณะรันไทม์ วิธีหมุนเวียนอัตโนมัติ วิธีบังคับใช้สิทธิ์ขั้นต่ำ อธิบายขั้นตอนที่ชัดเจนซึ่งไม่เคยฝังความลับไว้ในโค้ด
3) ค้นหาช่องโหว่ในโค้ด (การป้องกัน):
ตรวจสอบรหัสของตัวเองด้านล่างเพื่อความปลอดภัย (ฉันได้รับอนุญาต): มีการแทรกข้อมูล, ความลับที่ฝังอยู่, ค่าเริ่มต้นที่ไม่ปลอดภัย, ข้อมูลที่ไม่ผ่านการตรวจสอบหรือไม่ ให้ความสำคัญกับการค้นพบแต่ละข้อและการแก้ไข จุดประสงค์คือการป้องกันและการรวมกำลัง รหัส: [รหัส]
4) แผนการตอบสนองต่อการรั่วไหลของความลับ:
[ประเภทความลับ] อาจแทรกซึมเข้าไปใน [สถานที่] โดยไม่ได้ตั้งใจ แจ้งลำดับการแทรกแซงทีละขั้นตอนให้ฉัน: ฉันควรทำอย่างไรก่อน (การยกเลิก/การคืนสินค้า), วิธีประเมินผล, วิธีป้องกันการกลับเป็นซ้ำ? อธิบายด้วยว่าเหตุใดการลบเพียงอย่างเดียวจึงไม่เพียงพอ
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
จุดอ่อน: "ฉันจะแฮ็กระบบนี้/ใช้ประโยชน์จากช่องโหว่นี้ได้อย่างไร"
คำขอนี้ผิดจรรยาบรรณและอยู่นอกขอบเขตของแพลตฟอร์มนี้อย่างเคร่งครัด การใช้ AI เพื่อโจมตีเป็นสิ่งผิดกฎหมาย
แข็งแกร่ง: "อนุญาตรหัสของแอปพลิเคชันของฉันเองเพื่อความปลอดภัย: ค้นหาความลับที่ฝังอยู่ ความเสี่ยงในการแทรกซึม และค่าเริ่มต้นที่ไม่ปลอดภัย แก้ไขแต่ละรายการ เป้าหมายคือการทำให้ระบบแข็งแกร่งขึ้น"
ความแตกต่าง: คำขอที่สองมีวัตถุประสงค์เพื่อการป้องกัน ภายในขอบเขตอำนาจและเพื่อการรวมกลุ่ม นี่คือการใช้ AI ที่ถูกต้องใน DevSecOps
ข้อผิดพลาดทั่วไป
- การฝังความลับในโค้ด/ประวัติศาสตร์ ช่องโหว่ที่พบบ่อยที่สุดและคงอยู่
- ไม่คืนความลับที่รั่วไหลออกมา “ไม่มีใครเห็น” คือเดิมพันที่แพงที่สุด
- เห็นว่าผลการคัดกรองทั้งหมดเท่าเทียมกัน ถูกทำให้เป็นอัมพาตจากการจัดลำดับความสำคัญหรือพลาดความเสี่ยงที่แท้จริง
- ปล่อยให้การรักษาความปลอดภัยอยู่ต่อไป ช่องว่างในผลิตภัณฑ์มีราคาแพงกว่าช่องว่างในไปป์ไลน์หลายเท่า
- ข้ามอำนาจขั้นต่ำ ความลับ/บทบาทที่เข้าถึงทุกสิ่งได้ทำให้เกิดหายนะในการรั่วไหลเพียงครั้งเดียว
- พยายามใช้ AI เพื่อโจมตี ผิดกฎหมายและนอกแพลตฟอร์ม
โดยสรุป
DevSecOps วางการรักษาความปลอดภัยไว้ที่จุดเริ่มต้นและทุกขั้นตอนของโฟลว์ DevOps — การตรวจจับช่องโหว่ในโค้ดและไปป์ไลน์ ไม่ใช่ในผลิตภัณฑ์ กฎทองของการจัดการความลับ: ความลับไม่ได้ป้อนรหัส, ถูกเก็บไว้ในตู้นิรภัยกลาง, ถูกฉีดตอนรันไทม์, ถูกส่งคืนเป็นประจำ, และเข้าถึงได้โดยใช้สิทธิพิเศษขั้นต่ำ. ขั้นตอนแรกของการรั่วไหลคือการยกเลิก/ส่งคืนเสมอ AI มีประสิทธิภาพในการจัดลำดับความสำคัญของเอาต์พุตการสแกน ออกแบบโฟลว์ความลับ และตรวจสอบโค้ดเชิงป้องกัน — แต่จะใช้ในเชิงป้องกันเท่านั้นและอยู่ภายในขอบเขตทางกฎหมายบนระบบที่คุณมีอำนาจเหนือ
งานสมัคร
ดำเนินโครงการของคุณเอง (ซึ่งคุณมีอำนาจ) (1) ให้ตรวจสอบความลับและค่าเริ่มต้นที่ไม่ปลอดภัยที่ฝังไว้ด้วยเทมเพลต "กำลังมองหาช่องโหว่ในโค้ด" (2) จัดเรียงเอาต์พุตการสแกนความปลอดภัย (จริงหรือตัวอย่าง) ผ่านเทมเพลต "การคัดแยก" และระบุการค้นพบที่เร่งด่วนที่สุด 3 รายการ (3) สร้างแบบร่างโฟลว์สำหรับโปรเจ็กต์ของคุณด้วยเทมเพลต “การออกแบบการจัดการความลับ” ที่จะลบความลับออกจากโค้ดโดยสมบูรณ์
รายการตรวจสอบ
- [ ] ฉันได้ตรวจสอบแล้วว่าไม่มีความลับฝังอยู่ในโค้ด รูปภาพ และรายการของฉัน
- [ ] ฉันเก็บความลับไว้ในห้องนิรภัยกลางและฉีดมันตอนรันไทม์
- [ ] ฉันรู้ว่าขั้นตอนแรกในสถานการณ์การรั่วไหลคือการยกเลิก/ส่งคืน
- [ ] ฉันจัดลำดับความสำคัญของผลการสแกนตามความสามารถในการใช้ประโยชน์และบริบทของฉัน
- [ ] ฉันย้ายการสแกนความปลอดภัยไปที่ขั้นตอนแรกของไปป์ไลน์ (ไปทางซ้าย)
- [ ] ฉันใช้ AI เพื่อจุดประสงค์ในการป้องกันบนระบบที่ฉันมีอำนาจเท่านั้น