ความปลอดภัยกับ GitHub Copilot

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

เมื่อ bug กลายเป็นช่องโหว่

 

nanobanana: half: นักพัฒนากำลังมองเห็น bug เล็กน้อยบนหน้าจอแล็ปท็อปด้านหนึ่ง และอีกด้านหนึ่งเป็นเงาของบุคคลที่มีข้อมูลไหลออกจากเซิร์ฟเวอร์ ภาพประกอบเวกเตอร์แบบ flat แสดงสองสถานการณ์ที่แตกต่างกัน

 

  • โค้ดที่มีช่องโหว่มักจะดูเหมือนโค้ดทั่วไปทุกประการ
  • ผ่านการทดสอบ รีวิว และบางครั้งขึ้น production
  • 🤖 Copilot ทำหน้าที่เป็นผู้ตรวจสอบด้านความปลอดภัยได้
การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

ฟังก์ชันที่มีช่องโหว่

 

def get_user(username):
    query = f"SELECT * FROM users \
WHERE username = '{username}'"
    return db.execute(query)

 

ผู้โจมตีสามารถแทรก SQL ได้:

  • ข้ามการยืนยันตัวตนได้ทั้งหมด
  • ดึงข้อมูลทั้งตาราง users
  • ลบฐานข้อมูลทิ้ง
การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

[screencast]

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

[screencast]

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

Prompt ด้านความปลอดภัยที่ได้ผล

 

ตรวจสอบแบบเจาะจง

Review #selection for SQL injection and XSS vulnerabilities

 

สแกนทั้ง Codebase

@workspace scan for hardcoded credentials or API keys

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

[screencast]

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

จากการตรวจสอบสู่การป้องกัน

nanobanana: half: โล่ความปลอดภัยที่เรืองแสงล้อมรอบด้วยไอคอนเตือนภัยแทนภัยคุกคามทางไซเบอร์ประเภทต่างๆ ภาพประกอบเวกเตอร์แบบ flat บนพื้นหลังสะอาด

 

การสร้างโค้ดเชิงป้องกัน

Add input validation to this endpoint. Reject unexpected types and enforce length limits.

 

ไม่ใช่แค่ค้นหาช่องโหว่ — แต่ป้องกันด้วย

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

ฝังความปลอดภัยไว้ในทุกคำแนะนำ

 

.github/copilot-instructions.md

## Security standards
- Use parameterized queries
- Never hardcode credentials or API keys
- Validate and sanitize all user input
- Use bcrypt or argon2 for password hashing
การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

กฎความปลอดภัยเฉพาะภาษา

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

- Use secrets module instead of random for tokens
- Escape all user input in Jinja2 templates

 

✅ ความปลอดภัยกลายเป็นส่วนหนึ่งของวิธีเขียนโค้ด

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

มาฝึกกันเถอะ!

การพัฒนาซอฟต์แวร์ด้วย GitHub Copilot

Preparing Video For Download...