Sicherheit mit GitHub Copilot

Softwareentwicklung mit GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Wenn Bugs zu Schwachstellen werden

 

nanobanana: half: Links ein Entwickler, der einen kleinen harmlosen Bug auf einem Laptop sieht; rechts eine Schattenfigur mit aus einem Server strömenden Daten; flache Vektorillustration, die beide Szenarien kontrastiert

 

  • Verwundbarer Code sieht oft identisch aus
  • Besteht Tests, Reviews und landet teils in der Produktion
  • 🤖 Copilot kann als Security-Reviewer agieren
Softwareentwicklung mit GitHub Copilot

Eine verwundbare Funktion

 

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

 

Angreifer können SQL einschleusen:

  • Authentifizierung komplett umgehen
  • Ganze users-Tabelle auslesen
  • Deine Datenbank löschen
Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

Sicherheits-Prompts, die funktionieren

 

Gezielte Prüfung

#selection auf SQL-Injection und XSS prüfen

 

Scan des gesamten Codes

@workspace auf hartcodierte Zugangsdaten oder API-Keys scannen

Softwareentwicklung mit GitHub Copilot

[Screencast]

Softwareentwicklung mit GitHub Copilot

Von Prüfung zu Prävention

nanobanana: half: Ein leuchtendes Sicherheitsschild, umgeben von Warnsymbolen für verschiedene Cyberbedrohungen, flache Vektorillustration auf sauberem Hintergrund

 

Defensives Code-Generieren

Füge Input-Validierung zu diesem Endpoint hinzu. Unerwartete Typen ablehnen und Längen begrenzen.

 

Nicht nur finden, sondern verhindern

Softwareentwicklung mit GitHub Copilot

Sicherheit in jede Empfehlung einbetten

 

.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
Softwareentwicklung mit GitHub Copilot

Sprachspezifische Sicherheitsregeln

 

.github/instructions/security.instructions.md

applyTo: "**/*.py"

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

 

✅ Sicherheit wird Teil deiner Arbeitsweise

Softwareentwicklung mit GitHub Copilot

Lass uns üben!

Softwareentwicklung mit GitHub Copilot

Preparing Video For Download...