การพัฒนาซอฟต์แวร์โดยให้ความปลอดภัยเป็นหลักด้วย AI

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

จากการทดสอบสู่ความปลอดภัย

โล่ป้องกันโค้ดของแอปพลิเคชัน

 

 

  • ผ่านการทดสอบแล้วไม่ได้หมายความว่า ปลอดภัย
  • มุ่งเน้น การป้องกันช่องโหว่ ก่อนถึง production
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

หลักการ security-first

 

 

แผนภาพหลักการ security-first

 

 

  • ✔ ตรวจหา รูปแบบช่องโหว่ ตั้งแต่เนิ่นๆ
  • ✔ แก้ไขด้วย แนวทางที่ปลอดภัย ไม่ใช่การแก้ปัญหาเฉพาะหน้า
  • ทำให้การตรวจสอบความปลอดภัยเป็นอัตโนมัติ
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

ทำไมต้องใช้ AI สำหรับด้านความปลอดภัย?

หุ่นยนต์ AI สแกนโค้ดเพื่อตรวจหาปัญหาด้านความปลอดภัย

 

 

  • สแกน โค้ดที่ไม่คุ้นเคยได้อย่างรวดเร็ว
  • ระบุ จุดเสี่ยงสำคัญ
  • เสนอ แนวทางแก้ไขที่ชัดเจน
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การตรวจสอบความปลอดภัยด้วย AI

🤖 Security prompt:

คุณคือวิศวกรด้านความปลอดภัยของแอปพลิเคชัน

สแกน repository นี้เพื่อหา ช่องโหว่ทั่วไป เช่น SQL injection, cross-site scripting, cross-site request forgery, command injection, การขาดการตรวจสอบ authentication และ authorization หรือการเปิดเผยข้อมูลสำคัญ โดยอ้างอิง CWE Top 25 Most Dangerous Software Weaknesses

สำหรับแต่ละข้อที่พบ ให้ระบุ:

  • ตำแหน่ง ที่เกิดขึ้นและเหตุผลว่าทำไมจึงเป็นความเสี่ยง
  • input ตัวอย่างขั้นต่ำที่อาจกระตุ้นให้เกิดช่องโหว่
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

ผลลัพธ์การตรวจสอบความปลอดภัย

ช่องโหว่อันดับต้น

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การตรวจสอบด้วย security scanner

 

scan-commands.png

  • ตรวจสอบผลลัพธ์ของ AI ด้วย scanner
  • pip-audit → ช่องโหว่ใน dependency
  • semgrep → รูปแบบโค้ดที่ไม่ปลอดภัย
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การตีความผลลัพธ์จาก scanner

🤖 Interpreting results prompt:

ต่อไปนี้คือผลลัพธ์จากการสแกน กรุณาช่วยตีความผลและระบุช่องโหว่ที่พบโดยใช้ชื่อทางการหากมี

จัดกลุ่มผลลัพธ์เป็น: แก้ไขได้เร็ว, ใช้ความพยายามปานกลาง, และต้องเปลี่ยนแปลงเชิงสถาปัตยกรรม พร้อมประเมินความเสี่ยงและระดับความรุนแรงของแต่ละรายการ

<วางรายงานความปลอดภัยที่นี่>

scan-reports.png

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

การทำให้การตรวจสอบความปลอดภัยเป็นอัตโนมัติ

 

🤖 CI prompt:

เพิ่มคำสั่ง pip-audit และ semgrep ลงใน CI workflow ของ codebase นี้ เพื่อรันการสแกนความปลอดภัยเป็นประจำ

กำหนดค่า workflow ให้ล้มเหลวเมื่อพบช่องโหว่ระดับสูง และให้ผลลัพธ์คงที่ทุกครั้ง

ai-ci.png

  • รวมเข้ากับ CI workflow
  • ทำ unit/integration test อัตโนมัติ
  • ทำ dependency auditing และ static analysis อัตโนมัติ
  • เพิ่ม OWASP ZAP สำหรับ web service
AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

รูปแบบ prompt ที่ปลอดภัย

การเปรียบเทียบ prompt แบบคลุมเครือกับแบบปลอดภัย

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

รูปแบบสามส่วน

 

 

  • Threat model → สิ่งที่ต้องปกป้อง
  • Secure defaults → primitives ที่ปลอดภัยกว่า
  • Validation tests → ป้องกันไม่ให้เกิดซ้ำ

 

 

รูปแบบ prompt แบบสามส่วน

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

มาฝึกกันเลย!

AI-Assisted Coding ขั้นสูงสำหรับนักพัฒนา

Preparing Video For Download...