Sicurezza con GitHub Copilot

Sviluppo software con GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Quando i bug diventano vulnerabilità

 

nanobanana: half: Da un lato uno sviluppatore che nota un piccolo bug innocuo su uno schermo laptop, dall’altro una figura ombrosa con dati che fluiscono da un server, illustrazione vettoriale piatta a contrasto

 

  • Il codice vulnerabile spesso sembra identico agli altri
  • Passa test, review e a volte arriva in produzione
  • 🤖 Copilot può fare da revisore sicurezza
Sviluppo software con GitHub Copilot

Una funzione vulnerabile

 

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

 

Un attacker può iniettare SQL:

  • Bypassare del tutto l’autenticazione
  • Scaricare l’intera tabella users
  • Cancellare il database
Sviluppo software con GitHub Copilot

[screencast]

Sviluppo software con GitHub Copilot

[screencast]

Sviluppo software con GitHub Copilot

Prompt di sicurezza efficaci

 

Revisione mirata

Analizza #selection per SQL injection e vulnerabilità XSS

 

Scansione dell’intero codebase

@workspace cerca credenziali o API key hardcoded

Sviluppo software con GitHub Copilot

[screencast]

Sviluppo software con GitHub Copilot

Dalla revisione alla prevenzione

nanobanana: half: Uno scudo di sicurezza luminoso circondato da icone di avviso che rappresentano vari tipi di minacce informatiche, illustrazione vettoriale piatta su sfondo pulito

 

Generazione difensiva di codice

Aggiungi la validazione degli input a questo endpoint. Rifiuta tipi inattesi e imposta limiti di lunghezza.

 

Non limitarti a trovare vulnerabilità: prevenile

Sviluppo software con GitHub Copilot

Integra la sicurezza in ogni suggerimento

 

.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
Sviluppo software con GitHub Copilot

Regole di sicurezza per linguaggio

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

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

 

✅ La sicurezza diventa parte di come scrivi codice

Sviluppo software con GitHub Copilot

Passons à la pratique !

Sviluppo software con GitHub Copilot

Preparing Video For Download...