Securitate cu GitHub Copilot

Dezvoltare software cu GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Când bug-urile devin vulnerabilități

 

nanobanana: half: Un dezvoltator care descoperă un bug inofensiv pe ecranul unui laptop pe o parte, și pe cealaltă parte o figură în umbră cu date care se scurg dintr-un server, ilustrație vectorială plată ce contrastează cele două scenarii

 

  • Codul vulnerabil arată adesea identic cu celălalt cod
  • Trece testele, recenziile și uneori ajunge în producție
  • 🤖 Copilot poate acționa ca revizor de securitate
Dezvoltare software cu GitHub Copilot

O funcție vulnerabilă

 

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

 

Un atacator poate injecta SQL:

  • Ocolirea completă a autentificării
  • Extragerea întregului tabel users
  • Ștergerea bazei de date
Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

Prompturi de securitate eficiente

 

Revizuire țintită

Revizuiți #selection pentru vulnerabilități SQL injection și XSS

 

Scanare la nivel de bază de cod

@workspace scanare după credențiale hardcodate sau chei API

Dezvoltare software cu GitHub Copilot

[screencast]

Dezvoltare software cu GitHub Copilot

De la revizuire la prevenire

nanobanana: half: Un scut de securitate luminos înconjurat de pictograme de avertizare reprezentând diferite tipuri de amenințări cibernetice, ilustrație vectorială plată pe fundal curat

 

Generare de cod defensiv

Adăugați validare a intrărilor pentru acest endpoint. Respingeți tipurile neașteptate și impuneți limite de lungime.

 

Nu doar identificați vulnerabilitățile — preveniți-le

Dezvoltare software cu GitHub Copilot

Integrați securitatea în fiecare sugestie

 

.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
Dezvoltare software cu GitHub Copilot

Reguli de securitate specifice limbajului

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

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

 

✅ Securitatea devine parte din modul în care scrieți cod

Dezvoltare software cu GitHub Copilot

Să exersăm!

Dezvoltare software cu GitHub Copilot

Preparing Video For Download...