Beveiliging met GitHub Copilot

Softwareontwikkeling met GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Als bugs kwetsbaarheden worden

 

nanobanana: half: Een developer ziet een klein onschuldig bugje op een laptopscherm; aan de andere kant een schimmige figuur met data die uit een server stroomt, vlakke vectorillustratie die de twee scenario’s contrasteert

 

  • Kwetsbare code lijkt vaak identiek aan andere code
  • Slaagt voor tests en reviews en gaat soms naar productie
  • 🤖 Copilot kan optreden als security-reviewer
Softwareontwikkeling met GitHub Copilot

Een kwetsbare functie

 

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

 

Een aanvaller kan SQL injecteren:

  • Authenticatie volledig omzeilen
  • De hele tabel users dumpen
  • Je database verwijderen
Softwareontwikkeling met GitHub Copilot

[screencast]

Softwareontwikkeling met GitHub Copilot

[screencast]

Softwareontwikkeling met GitHub Copilot

Effectieve beveiligingsprompts

 

Gerichte review

Review #selection op SQL-injectie en XSS-kwetsbaarheden

 

Scan van hele codebase

@workspace scan op hardcoded credentials of API-sleutels

Softwareontwikkeling met GitHub Copilot

[screencast]

Softwareontwikkeling met GitHub Copilot

Van review naar preventie

nanobanana: half: Een gloeiend veiligheidsschild omringd door waarschuwingspictogrammen voor diverse cyberdreigingen, vlakke vectorillustratie op een rustige achtergrond

 

Defensieve codegeneratie

Voeg inputvalidatie toe aan deze endpoint. Weiger onverwachte types en stel lengtelimieten in.

 

Niet alleen vinden van kwetsbaarheden — ze voorkomen

Softwareontwikkeling met GitHub Copilot

Borg security in elke suggestie

 

.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
Softwareontwikkeling met GitHub Copilot

Taalspecifieke securityregels

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

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

 

✅ Security wordt onderdeel van hoe je code schrijft

Softwareontwikkeling met GitHub Copilot

Laten we oefenen!

Softwareontwikkeling met GitHub Copilot

Preparing Video For Download...