Implementierung eines Sicherheitstraining-Programms für Entwickler
Ein Lehrplan und ein Bewertungsplan allein reichen nicht aus. Die eigentliche Herausforderung liegt in der Umsetzung: Management-Buy-in sicherstellen, skeptische Entwickler überzeugen, Schulungen skaliert einführen und einen dauerhaften Kulturwandel anstoßen.
Dieser Artikel bietet eine praktische, schrittweise Umsetzungs-Roadmap. Folgen Sie diesen Phasen in der angegebenen Reihenfolge – jede Phase baut auf der vorherigen auf. Am Ende verfügen Sie über ein funktionierendes Sicherheitsprogramm für Entwickler mit messbaren Ergebnissen.
Dies ist Teil 3 der Schulungsserie für Entwickler-Sicherheit:
- Lehrplan und Ressourcen — was zu vermitteln ist
- Bewertung und Kompetenzabbildung — wie Fähigkeiten bewertet werden
- Implementierungshandbuch (dieser Artikel) — wie das Programm eingeführt wird
Schritt-für-Schritt-Implementierungshandbuch
Phase 1: Buy-in sichern und Kontext verstehen (Woche 1–2)
Schritt 1.1: Kick-off-Meeting mit der Führungsebene
Bevor Sie irgendetwas anderes tun, sichern Sie sich die ausdrückliche Unterstützung des Managements. Ohne diese werden Entwickler das Sicherheitstraining als optional betrachten.
Teilnehmende am Meeting:
- CTO/VP Engineering
- Teamleiter / Engineering-Manager
- Sie (Security Champion)
Agenda:
## Developer Security Training - Kickoff Meeting
### 1. Why we need this (10 min)
- Industry statistics on developer-caused vulnerabilities
- Cost of fixing bugs in production vs development
- Recent incidents (company-specific or industry)
### 2. Proposed program overview (15 min)
- Competency framework
- Assessment approach
- Training resources
- Time investment required
### 3. What we need from leadership (10 min)
- Mandate for mandatory participation
- Protected time for training (X hours/quarter)
- Budget (if using paid platforms)
- Support for security culture initiatives
### 4. Timeline and next steps (10 min)
- Technology inventory (1 week)
- Assessment creation (2 weeks)
- Initial assessment (2 weeks)
- Training rollout (ongoing)
### 5. Questions and concerns (15 min)
Kernforderungen:
- Zeitkontingent — Entwickler brauchen dedizierte Stunden, nicht „in der Freizeit erledigen"
- Verpflichtende Teilnahme — Die Führungsebene muss kommunizieren, dass dies erforderlich ist
- Budget (optional) — für bezahlte Trainingsplattformen, falls benötigt
- Geduld — Kulturwandel dauert 6–12 Monate
Erfolgskriterium: Verlassen Sie das Meeting mit einer schriftlichen Genehmigung (Follow-up per E-Mail), die bestätigt:
- Das Programm ist genehmigt
- Das Zeitkontingent ist definiert (z. B. 4 Stunden/Quartal)
- Die Führungsebene wird das Programm ankündigen
Schritt 1.2: Technologie-Stack inventarisieren
Relevantes Training lässt sich nur erstellen, wenn Sie wissen, welche Technologien Ihre Teams nutzen. Verschiedene Stacks haben unterschiedliche Sicherheitsanforderungen.
Tabelle zur Technologieinventur:
| Team | Sprachen | Frameworks | Datenbanken | Cloud | APIs | Mobile | Sonstiges |
|---|---|---|---|---|---|---|---|
| Backend | Python, Go | Django, FastAPI | PostgreSQL, Redis | AWS | REST, GraphQL | - | Celery, RabbitMQ |
| Frontend | TypeScript | React, Next.js | - | Vercel | REST | - | - |
| Mobile | Kotlin, Swift | Android SDK, iOS SDK | SQLite | Firebase | REST | Android, iOS | - |
| Platform | Python, Bash | Terraform, Ansible | - | AWS, GCP | - | - | Docker, K8s |
| Data | Python, SQL | Spark, Airflow | Snowflake, PostgreSQL | AWS | - | - | - |
So erheben Sie die Daten:
- Teamleiter direkt befragen
package.json-,requirements.txt- undgo.mod-Dateien prüfen- CI/CD-Konfigurationen überprüfen
- Infrastructure-as-Code prüfen
Schritt 1.3: Technologien auf Sicherheitsthemen abbilden
Nicht jeder Entwickler benötigt jedes Thema. Ein Frontend-Entwickler braucht kein tiefgehendes SQL-Injection-Training, wenn er nie SQL schreibt.
Sicherheitsthemen-Matrix nach Rolle:
| Sicherheitsthema | Backend | Frontend | Mobile | DevOps | Data |
|---|---|---|---|---|---|
| Eingabevalidierung | ●●● | ●●○ | ●●● | ●○○ | ●●○ |
| SQL-Injection | ●●● | ○○○ | ●●○ | ○○○ | ●●● |
| NoSQL-Injection | ●●● | ○○○ | ●●○ | ○○○ | ●●○ |
| XSS | ●●○ | ●●● | ●○○ | ○○○ | ○○○ |
| CSRF | ●●● | ●●○ | ○○○ | ○○○ | ○○○ |
| Authentifizierung | ●●● | ●●○ | ●●● | ●●○ | ●○○ |
| Autorisierung/IDOR | ●●● | ●○○ | ●●● | ●○○ | ●●○ |
| Kryptografie | ●●○ | ●○○ | ●●○ | ●●○ | ●●○ |
| Secrets-Management | ●●○ | ●○○ | ●●○ | ●●● | ●●○ |
| Container-Sicherheit | ●○○ | ○○○ | ○○○ | ●●● | ●○○ |
| Cloud-Sicherheit | ●○○ | ○○○ | ○○○ | ●●● | ●●○ |
| API-Sicherheit | ●●● | ●●○ | ●●● | ○○○ | ○○○ |
| Mobile-Sicherheit | ○○○ | ○○○ | ●●● | ○○○ | ○○○ |
Legende: ●●● = Unverzichtbar | ●●○ = Wichtig | ●○○ = Bewusstsein | ○○○ = Nicht erforderlich
Phase 2: Bewertungsmaterialien erstellen (Woche 3–4)
Schritt 2.1: Bewertungsplattform auswählen
| Plattform | Vorteile | Nachteile | Am besten für |
|---|---|---|---|
| Google Forms | Kostenlos, einfach | Keine Code-Ausführung | Kleine Teams, schneller Start |
| Self-hosted CTFd | Gamifiziert, flexibel | Einrichtung erforderlich | Technikorientierte Unternehmen |
| Secure Code Warrior | Umfassend | Teuer | Unternehmen mit Budget |
| Custom-Quiz-App | Vollständige Kontrolle | Entwicklungsaufwand | Spezifische Anforderungen |
Für kleine Unternehmen: Starten Sie mit Google Forms und Code-Beispielen als Bild oder Text. Wechseln Sie auf eine bezahlte Plattform, wenn das Programm erfolgreich ist.
Schritt 2.2: Fragen nach Rolle erstellen
Verwenden Sie die Fragenvorlagen aus Teil 2 (Bewertung und Kompetenzabbildung). Erstellen Sie auf Ihren Technologie-Stack zugeschnittene Fragen.
Fragenverteilung nach Rolle:
## Backend Developer Assessment (40 questions)
Core (all backend devs):
- OWASP Top 10 concepts: 10 questions
- SQL/NoSQL injection: 5 questions
- Authentication/session: 5 questions
- Authorization/IDOR: 5 questions
- API security: 5 questions
Stack-specific (choose based on technology):
- Python security: 5 questions (if using Python)
- Node.js security: 5 questions (if using Node)
- Java security: 5 questions (if using Java)
- Go security: 5 questions (if using Go)
Advanced (for senior developers):
- Cryptography: 3 questions
- Threat modeling: 2 questions
Schritt 2.3: Bewertungsdurchführung einrichten
Logistik-Checkliste:
- Bewertung in der gewählten Plattform erstellen
- Zeitlimit festlegen (45–60 Minuten)
- Antwort-Randomisierung aktivieren (verhindert Abschreiben)
- Anweisungen für Teilnehmende vorbereiten
- Bewertungszeitraum festlegen (1–2 Wochen)
- Erinnerungen für Nicht-Abschließende vorbereiten
- Tabelle für Ergebnisanalyse erstellen
Phase 3: Erste Bewertung durchführen (Woche 5–6)
Schritt 3.1: Mit Entwicklern kommunizieren
Kommunikationsvorlage:
Subject: Developer Security Assessment - Action Required by [DATE]
Hi team,
As part of our security improvement initiative (announced by [CTO/MANAGER]),
we're running a baseline security assessment for all developers.
**What:** 45-minute security knowledge assessment
**Why:** Identify training priorities and build personalized learning paths
**When:** Complete by [DATE]
**Where:** [LINK]
This is NOT a performance evaluation. Results will be used only to:
1. Identify team-wide training needs
2. Create personalized learning recommendations
3. Track our improvement over time
Your individual scores are confidential. We'll share aggregate team results.
Questions? Reply to this email or ask in #security-champions.
Thanks,
[Your name]
Schritt 3.2: Bewertung durchführen
Während des Bewertungszeitraums:
- Erinnerung bei 50 % des Zeitraums versenden
- Letzte Erinnerung 2 Tage vor Ablauf versenden
- Abschlussquoten verfolgen
- Fragen zeitnah beantworten
Häufige Probleme und Lösungen:
| Problem | Lösung |
|---|---|
| „Ich habe keine Zeit" | Auf das Management-Mandat hinweisen, flexibles Zeitfenster anbieten |
| „Die Fragen sind unfair" | Feedback annehmen, für die nächste Bewertung anpassen |
| „Ich kann das Formular nicht aufrufen" | Direkten Link bereitstellen, Berechtigungen prüfen |
| Technische Probleme | Backup-Plan bereithalten (PDF-Version) |
Schritt 3.3: Ergebnisse analysieren
Ergebnisanalyse-Tabelle:
| Entwickler | Rolle | Kern-Score | Stack-Score | Erweiterter Score | Gesamt | Level |
|---|---|---|---|---|---|---|
| Alice | Backend | 75% | 80% | 40% | 72% | L2 |
| Bob | Frontend | 65% | 70% | N/A | 67% | L1 |
| Carol | DevOps | 60% | 85% | 50% | 68% | L1 |
| ... | ... | ... | ... | ... | ... | ... |
| Team-Durchschnitt | 67% | 75% | 45% | 68% |
Muster identifizieren:
- Welche Themen haben teamweit die niedrigsten Scores?
- Welche Rollen haben die größten Schwächen?
- Gibt es Einzelpersonen, die besondere Unterstützung benötigen?
Schritt 3.4: Team-Heatmap erstellen
Kompetenzen im Team visualisieren:
| Name | SQLi | XSS | Auth | IDOR | Krypto | API | Gesamt |
|---|---|---|---|---|---|---|---|
| Alice | ✓✓ | ✓✓ | ✓✓ | ✓ | — | ✓✓ | L2 |
| Bob | ✓ | ✓✓ | ✓ | ✓ | — | ✓ | L1 |
| Carol | ✓✓ | — | ✓✓ | ✓✓ | ✓✓ | ✓ | L1 |
| David | ✓✓ | ✓✓ | ✓✓ | ✓✓ | ✓ | ✓✓ | L2 |
| Priorität | OK | LÜCKE | OK | OK | LÜCKE | OK |
Schritt 3.5: Prioritäre Schulungsbereiche identifizieren
Schulung auf Basis der Ergebnisse priorisieren:
## Q1 Training Priorities
### Team-wide gaps (address first)
1. **Cryptography** - 45% average score
- Action: Schedule 2-hour workshop
- Resources: OWASP Cryptography Cheat Sheet
2. **XSS Prevention** - 55% average score
- Action: Assign PortSwigger XSS labs
- Resources: React security best practices
### Individual gaps
| Developer | Gap area | Recommended training |
|-----------|----------|---------------------|
| Alice | IDOR, Crypto | Auth/Authz module, Crypto workshop |
| Bob | Auth, SQLi | WebGoat auth labs, SQLi course |
| Carol | XSS | PortSwigger XSS labs |
Phase 4: Gezieltes Training bereitstellen (Woche 7–12)
Schritt 4.1: Individuelle Trainingspläne erstellen
Vorlage für den individuellen Plan:
## Security Training Plan: [Developer Name]
**Current level:** L1 (Aware)
**Target level:** L2 (Practitioner)
**Timeline:** 8 weeks
### Gap areas:
1. SQL Injection (scored 50%)
2. Authentication (scored 55%)
### Training schedule:
**Week 1-2: SQL Injection**
- Complete: PortSwigger SQL injection labs (4 hours)
- Read: OWASP SQL Injection Prevention Cheat Sheet
- Practice: Fix vulnerabilities in WebGoat
**Week 3-4: Authentication & Session Management**
- Complete: PortSwigger Authentication labs (4 hours)
- Read: OWASP Authentication Cheat Sheet
- Review: Our codebase's auth implementation
**Week 5-6: Input Validation**
- Complete: OWASP Input Validation module
- Practice: Write input validation for 3 APIs in our codebase
- Code review: Review PRs with security focus
**Week 7-8: Assessment and consolidation**
- Retake assessment
- Mentor session with senior developer
- Apply learning to current project
### Time allocation: 4 hours/week
Schritt 4.2: Gruppentraining für gemeinsame Lücken
Wenn viele Entwickler dieselbe Lücke aufweisen, führen Sie Gruppen-Sessions durch:
Vorlage für Gruppen-Trainingseinheit:
## Session: SQL Injection Prevention
**Duration:** 2 hours
**Attendees:** Developers scoring under 70% on SQLi questions
### Agenda:
**0:00-0:15 - Introduction**
- Why we're here (assessment results)
- What we'll cover
- Why this matters for our product
**0:15-0:45 - Concept review**
- How SQL injection works (demo with DVWA)
- Real-world examples and impacts
- Our codebase examples (anonymized)
**0:45-1:15 - Prevention techniques**
- Parameterized queries
- ORM usage
- Input validation
- Prepared statements
- Least privilege for database accounts
**1:15-1:45 - Hands-on practice**
- Fix vulnerable code samples
- Review actual PRs for SQL injection risks
**1:45-2:00 - Q&A and resources**
- Additional learning resources
- How to get help
- Next steps
### Post-session:
- Recording shared for those who couldn't attend
- Practice exercises assigned
- Follow-up quiz in 2 weeks
Schritt 4.3: Trainingsabschluss verfolgen
Trainings-Tracker:
| Entwickler | Erforderliches Training | Status | Abschlussdatum | Verifiziert |
|---|---|---|---|---|
| Alice | Krypto-Kurs | Abgeschlossen | 2024-02-15 | ✓ |
| Alice | TM-Workshop | In Bearbeitung | - | - |
| Bob | SQLi-Labs | Abgeschlossen | 2024-02-10 | ✓ |
| Bob | Auth-Labs | Nicht begonnen | - | - |
| Carol | XSS-Vertiefung | Abgeschlossen | 2024-02-12 | ✓ |
Phase 5: Neubewertung und Iteration (Fortlaufend)
Schritt 5.1: Follow-up-Bewertung einplanen
Zeitplan:
- Erste Bewertung: Woche 5–6
- Erste Wiederholung: 8–12 Wochen später
- Fortlaufend: Vierteljährlich
Die Follow-up-Bewertung sollte:
- Andere Fragen verwenden (um Lernen zu testen, nicht Auswendiglernen)
- Schwerpunkt auf Bereichen legen, in denen Schulungen angeboten wurden
- Einige neue Fragen für kontinuierliche Verbesserung enthalten
Schritt 5.2: Verbesserungen messen
Zu verfolgende Kennzahlen:
| Kennzahl | Basiswert | Ziel | Aktuell |
|---|---|---|---|
| Ø L1-Score | 72% | 90% | - |
| Ø L2-Score | 55% | 75% | - |
| Trainingsabschluss | 0% | 100% | - |
| Sicherheitsfehler je Release | 8 | 4 | - |
| Zeit zur Behebung von Sicherheitsfehlern | 5 Tage | 2 Tage | - |
Schritt 5.3: Programm auf Basis der Ergebnisse anpassen
Nach jedem Bewertungszyklus:
- Verbleibende Lücken identifizieren
- Schulungsprioritäten aktualisieren
- Bei Bedarf neue Themen hinzufügen
- Gut verstandene Themen entfernen
- Leistungsträger anerkennen
Phase 6: Onboarding-Materialien erstellen (Monat 3+)
Schritt 6.1: Sicherheits-Onboarding für neue Entwickler
Jede neue Fachkraft sollte im ersten Monat die Sicherheitsgrundlagen abschließen.
Onboarding-Sicherheitslehrplan:
| Woche | Thema | Format | Zeit |
|---|---|---|---|
| 1 | Sicherheitsgrundlagen | Selbststudium | 2 Stunden |
| 1 | Unternehmens-Sicherheitsrichtlinien | Pflichtlektüre | 1 Stunde |
| 2 | OWASP Top 10 | Selbststudiums-Kurs | 4 Stunden |
| 2 | Rollenspezifisches Training | Zugewiesene Module | 4 Stunden |
| 3 | Erste Bewertung | Quiz | 1 Stunde |
| 4 | Mentoring-Session | 1:1 mit Senior-Entwickler | 1 Stunde |
Schritt 6.2: Sicherheits-Onboarding-Paket erstellen
# Security Onboarding Packet
Welcome to [Company]! Security is everyone's responsibility.
Here's what you need to know in your first month.
## Required reading (Week 1)
- [ ] Company Security Policy (link)
- [ ] Secure Coding Guidelines (link)
- [ ] How we handle secrets (link)
## Required training (Week 2)
- [ ] OWASP Top 10 course (link)
- [ ] [Role-specific] security module (link)
## Assessment (Week 3)
- [ ] Complete security assessment (link)
- [ ] Review results with your mentor
## Getting help
- Slack: #security-questions
- Security Champion: [Name]
- Security office hours: Thursdays 3-4pm
## Your security checklist
Before your first commit:
- [ ] Read secure coding guidelines
- [ ] Understand our auth system
- [ ] Know how to handle secrets
- [ ] Complete security assessment
Schritt 6.3: Onboarding-Verfolgung automatisieren
Fügen Sie das Sicherheitstraining zur Onboarding-Checkliste in Ihrem HR-System hinzu oder verwenden Sie eine einfache Tabelle:
| Neuer Mitarbeiter | Startdatum | Lektüre | Training | Bewertung | Mentoring-Session |
|---|---|---|---|---|---|
| Eve | 2024-03-01 | ✓ | ✓ | 78% | Geplant |
| Frank | 2024-03-15 | ✓ | In Bearbeitung | - | - |
Zeitplan-Zusammenfassung
| Phase | Zeitraum | Aktivitäten |
|---|---|---|
| Fundament | Woche 1–2 | Management-Buy-in, Technologieinventur |
| Vorbereitung | Woche 3–4 | Bewertungsmaterialien erstellen |
| Bewertung | Woche 5–6 | Erste Bewertung durchführen |
| Training | Woche 7–12 | Training bereitstellen (fortlaufend) |
| Iteration | Woche 13+ | Neubewerten, iterieren, ins Onboarding integrieren |
| Regelbetrieb | Fortlaufend | Vierteljährliche Bewertungen, Kulturaufbau |
Checkliste: Ist Ihr Programm bereit?
Vor dem Launch prüfen:
- Führungsebene hat das Programm schriftlich genehmigt
- Zeitkontingent ist definiert und kommuniziert
- Technologieinventur ist abgeschlossen
- Rollen-Themen-Mapping ist erledigt
- Bewertungsmaterialien sind fertig
- Trainingsressourcen sind identifiziert
- Kommunikationsplan ist bereit
- Tracking-Tabelle/-System ist eingerichtet
- Mindestens ein Security Champion ist geschult
- Erfolgskennzahlen sind definiert
Eine sicherheitsorientierte Kultur aufbauen
Technisches Training allein reicht nicht. Es braucht kulturelle Praktiken, die Sicherheit dauerhaft verankern.
Sicherheits-Code-Review-Kultur
Machen Sie Sicherheit zum Bestandteil jedes Code-Reviews:
Sicherheits-Checkliste für Pull-Requests:
## Security Review Checklist
Before approving, verify:
### Authentication & Authorization
- [ ] Auth required for all sensitive endpoints
- [ ] Authorization checked for resource access
- [ ] No hardcoded credentials or secrets
### Input Handling
- [ ] All inputs validated and sanitized
- [ ] Parameterized queries for database access
- [ ] Output encoding applied
### Data Protection
- [ ] Sensitive data identified and protected
- [ ] No sensitive data in logs
- [ ] Proper error handling (no stack traces to users)
### Dependencies
- [ ] New dependencies reviewed for security
- [ ] No known vulnerabilities in dependencies
### If applies:
- [ ] File uploads validated and secured
- [ ] Crypto uses approved libraries/algorithms
- [ ] Rate limiting on sensitive endpoints
Sicherheitsreviewer zuweisen:
Bei risikoreichen Änderungen ist ein Review durch eine Person mit Sicherheitsfachwissen erforderlich:
# CODEOWNERS example
# Security-sensitive paths require security-trained reviewer
/auth/** @security-champions
/api/payments/** @security-champions
/crypto/** @security-champions
*.pem @security-champions
*.key @security-champions
Sicherheits-Sprechstunden
Regelmäßige Zeiten, in denen Entwickler Sicherheitsfragen stellen können:
Format:
- Wöchentlicher 1-Stunden-Slot
- Security Champion oder Sicherheitsteam verfügbar
- Jede Frage willkommen
- Keine Vorwürfe
Vorteile:
- Senkt die Schwelle für Sicherheitsfragen
- Identifiziert häufige Probleme (Schulungsthemen)
- Baut Beziehungen auf
- Erfasst Probleme frühzeitig
Sicherheits-Retrospektiven
Sicherheit in Sprint-Retrospektiven einbeziehen:
Diskussionsfragen:
- Haben wir in diesem Sprint Sicherheitsverbesserungen umgesetzt?
- Haben wir Sicherheitsprobleme gefunden? Wie?
- Gab es Sicherheitsfragen, die wir nicht beantworten konnten?
- Welche Sicherheitsschulden tragen wir mit uns?
Schuldfreie Sicherheitskultur
Wenn Schwachstellen gefunden werden:
- Systeme in den Fokus stellen, nicht Einzelpersonen
- „Wie ist das durch den Review-Prozess gekommen?" statt „Wer hat das geschrieben?"
- Prozesse verbessern, nicht Menschen bestrafen
- Meldende und Behebende anerkennen
Schlecht: „Wer hat diesen Pull-Request mit SQL-Injection genehmigt?"
Gut: „Wie können wir unseren Review-Prozess verbessern, um SQL-Injection zu erkennen, bevor sie die Produktion erreicht?"
Maßnahmen: SQL-Injection zur Code-Review-Checkliste hinzufügen · Semgrep-Regel für SQLi-Erkennung aktivieren · Auffrischungsschulung zu parametrisierten Abfragen
Gamification für Entwickler
Sicherheit attraktiv gestalten:
| Aktivität | Punkte | Hinweise |
|---|---|---|
| Sicherheitstraining abschließen | 100 | Pro Modul |
| Schwachstelle im Code-Review finden | 200 | Vor der Produktion |
| Sicherheitsbedenken melden | 50 | Fördert das Melden |
| Sicherheitsproblem beheben | 150 | Schneller = mehr Punkte |
| Sicherheitsquiz bestehen | 100 | Monatlich |
| An CTF teilnehmen | 200 | Teilnahme, Bonus für Platzierung |
| Anderen Entwickler mentoren | 150 | Zu Sicherheitsthemen |
Anerkennung:
- Monatlicher Sicherheits-MVP
- Security-Champion-Abzeichen
- Bestenliste (optional – für manche Teams motivierend)
- Konferenzteilnahme für Topperformer
Mit Entwicklern kommunizieren: Strategien und Einwandbehandlung
Die größte Herausforderung liegt nicht darin, Schulungsinhalte zu erstellen – sondern darin, Entwickler dazu zu bringen, sich damit zu befassen. Dieser Abschnitt bietet Strategien für effektive Kommunikation und die Behandlung der unvermeidlichen Einwände.
Die Psychologie von Entwicklern verstehen
Entwickler sind:
- Pragmatisch — Sie wollen wissen: „Hilft mir das bei meiner Arbeit?"
- Skeptisch — Sie haben viele Unternehmensinitiativen scheitern sehen
- Zeitlich eingeschränkt — Jede Stunde Schulung ist eine Stunde weniger Entwicklung
- Stolz auf ihre Arbeit — Sie hören nicht gern, dass ihr Code unsicher ist
- Autonom — Sie lassen sich nicht gern vorschreiben, was sie tun sollen
Kommunikationsprinzipien
1. Respekt zuerst, keine Angst
SCHLECHT: "Your code has vulnerabilities that could get us hacked."
GUT: "I'd like to share some patterns that could make this more resilient."
SCHLECHT: "You need to take this security training."
GUT: "There's some really interesting content on attack techniques —
thought you might find it useful."
SCHLECHT: "Security found issues in your PR."
GUT: "I noticed something that could be strengthened — mind if I explain?"
2. Ihre Sprache sprechen
Entwickler reagieren auf:
- Code-Beispiele, keine Aufzählungspunkte
- Technische Genauigkeit, kein Handwedeln
- Echte Angriffe, keine hypothetischen Risiken
- Effizienzverbesserungen, keine Bürokratie
SCHLECHT: "SQL injection is when malicious actors inject code into your queries."
GUT: "See this query?
cursor.execute(f'SELECT * FROM users WHERE id = {user_id}')
If user_id is '1 OR 1=1', you've just returned every user.
Here's the fix:
cursor.execute('SELECT * FROM users WHERE id = %s', (user_id,))"
3. Es um Entwicklung machen, nicht um Compliance
SCHLECHT: "Company policy requires annual security training."
GUT: "Security skills are in huge demand — this could be a career
differentiator for you. Companies like Google require security
expertise for senior roles."
4. Den Aufwand ehrlich eingestehen
SCHLECHT: "This won't take much time."
GUT: "I know this adds to your workload. Let me explain why we think
it's worth the investment, and I'm open to feedback on how to
make it less painful."
Häufige Einwände behandeln
Einwand: „Wir brauchen das nicht – wir wurden noch nie gehackt"
Was sie eigentlich sagen: „Ich sehe kein Zeichen eines Problems."
Reaktionsstrategie: Das Unsichtbare sichtbar machen.
**Response:**
"That's actually what most companies say before they get breached.
The thing is, you often don't know you've been compromised until much later.
Here's some data:
- Average time to detect a breach is 194 days (IBM 2024)
- 43% of web applications have high-severity vulnerabilities (Veracode)
- We've had [X] security findings from our SAST tools this quarter
Let me show you what our attack surface looks like from outside..."
**Action:** Run a quick vulnerability scan or Shodan search and show results.
Einwand: „Unsere Frameworks kümmern sich um die Sicherheit"
Was sie eigentlich sagen: „Ich vertraue den Tools, die ich nutze."
Reaktionsstrategie: Framework-Grenzen aufzeigen, ohne ihre Kompetenz in Frage zu stellen.
**Response:**
"You're right that modern frameworks have great built-in protections.
Django escapes output by default, React sanitizes JSX, ORMs prevent
most SQL injection.
But here are some gaps frameworks don't cover:
1. **Business logic flaws** — No framework prevents IDOR:
/api/users/123/orders # Can user 456 access this?
2. **Configuration mistakes:**
DEBUG = True # In production
ALLOWED_HOSTS = ['*']
3. **Framework bypasses:**
# Django: safe by default
{{ user_input }}
# But developers add |safe when they need HTML
{{ user_input|safe }} # Now vulnerable
4. **Authentication logic** — Frameworks provide primitives,
not complete solutions. Password reset flows, session handling,
MFA — those are on us.
I'm not saying our code is bad. I'm saying frameworks are layer one,
not the complete solution."
**Action:** Find a real example from your codebase where framework
defaults were overridden.
Einwand: „Wir haben keine Zeit dafür"
Was sie eigentlich sagen: „Das hat keine Priorität gegenüber meiner aktuellen Arbeit."
Reaktionsstrategie: Zeitaufwand vs. Zeitkosten von Problemen gegenüberstellen.
**Response:**
"I hear you — everyone's bandwidth is maxed. Let me share some numbers:
Time investment:
- Initial assessment: 45 minutes
- Quarterly training: 2-4 hours
- Total: ~12 hours per year
Time cost of security issues:
- Average CVE fix in production: 16 hours
- Security incident response: 40+ hours
- Post-breach remediation: weeks to months
Last quarter, we spent [X] hours fixing security bugs that could
have been prevented. This training is designed to reduce that.
Also, leadership has approved [X] hours of protected time for this.
It's not on top of your sprint work — it's part of it."
**Alternative approach:**
"What if we start with just the most critical topics for your role?
We've prioritized to make this as efficient as possible."
Einwand: „Das Training ist zu grundlegend / ich weiß das schon"
Was sie eigentlich sagen: „Verschwende meine Zeit nicht mit Grundlagen."
Reaktionsstrategie: Ihre Expertise würdigen, passende Herausforderung anbieten.
**Response:**
"I appreciate that — you clearly have security knowledge. Let's
make sure the training matches your level.
Option 1: Take the assessment first. If you score at L2 or higher,
we'll skip the basics and focus on advanced topics like threat
modeling, security architecture, and mentoring others.
Option 2: Instead of taking the training, would you be interested
in helping create or review the materials? We need people who
understand both development and security.
Option 3: The advanced CTF challenges are designed for people
like you. Want to try those instead?"
**Key:** Give them an out that still contributes to the program.
Einwand: „Sicherheit verlangsamt uns"
Was sie eigentlich sagen: „Ich habe schlechte Erfahrungen damit gemacht, dass Sicherheit meine Arbeit blockiert."
Reaktionsstrategie: Vergangene Reibung anerkennen, dieses Programm anders positionieren.
**Response:**
"I've heard that frustration before, and honestly, sometimes security
processes have been implemented poorly.
Here's what's different about this program:
1. **It's developer-led.** I'm an engineer, not a security auditor.
I understand shipping pressure.
2. **It's about enabling, not blocking.** The goal is to help you
ship faster by catching issues before they become blockers.
3. **It's practical.** No 50-page policies. Real code, real
vulnerabilities, real fixes.
4. **It integrates with your workflow.** Security tests in CI,
not manual reviews that hold up deploys.
Think of it like testing. Good test coverage doesn't slow you down —
it speeds you up by catching bugs early. Security is the same."
**Follow-up:** Ask about specific past friction points and address them.
Einwand: „Können wir nicht einfach ein Tool dafür kaufen?"
Was sie eigentlich sagen: „Automatisiert das Problem weg."
Reaktionsstrategie: Grenzen der Automatisierung aufzeigen.
**Response:**
"We should absolutely use tools — and we do. We've got [SAST/Snyk/etc]
in our pipeline.
But here's what tools can't do:
1. **Business logic vulnerabilities** — Tools can't know that user A
shouldn't access user B's data. Only developers understand the
business rules.
2. **False positives** — Someone needs to know if a finding is real
or not. Last month we had [X] findings — a developer who
understands security can triage in minutes vs. hours.
3. **Secure design** — Tools find bugs in existing code. They can't
help you design features securely from the start.
4. **New vulnerability types** — Tools lag behind attackers. The
team that found Log4Shell did it through understanding, not
scanning.
Tools are force multipliers, but they multiply human knowledge.
Without the knowledge, you're just multiplying by zero."
Einwand: „Das ist die Aufgabe des Sicherheitsteams"
Was sie eigentlich sagen: „Das ist nicht meine Verantwortung."
Reaktionsstrategie: Geteilte Verantwortung klarstellen, ohne belehrend zu wirken.
**Response:**
"If we had a 10-person security team, they'd still need developers
who understand security. Here's why:
1. **Scale** — We have [X] developers making [Y] commits per month.
No security team can review all of that. Developers are the
first line of defense.
2. **Context** — You understand the code better than anyone.
Security specialists might miss that edge case you know exists.
3. **Speed** — Waiting for security review slows everything down.
If you can self-review, you ship faster.
4. **Quality** — Writing secure code is like writing performant
code or maintainable code. It's a craftsmanship thing.
I'm not asking you to become a security expert. I'm asking you to
add security to your existing expertise. Like how you're not a
DBA but you understand database performance."
Einwand: „Ich repariere es einfach, wenn etwas schiefgeht"
Was sie eigentlich sagen: „Reaktiv ist gut genug."
Reaktionsstrategie: Die Kostenasymmetrie aufzeigen.
**Response:**
"That works for bugs, but security is different. When something
'breaks' in security, it means:
- Customer data is already leaked
- Attacker has access and is covering tracks
- We're in incident response mode, not bug fix mode
- Legal and PR are involved
- Regulatory penalties may apply
The fix-it-when-it-breaks approach costs 6x more for bugs, but
for security issues, it can be company-ending.
Remember [recent breach in news]? They probably had the same
attitude until it cost them [$ amount / reputation].
Prevention costs hours. Remediation costs weeks. Recovery from
breach costs months or years — if you survive."
Mit hartnäckigem Widerstand umgehen
Manchmal bleiben Entwickler trotz aller Bemühungen resistent. So gehen Sie damit um:
Gespräche dokumentieren
Halten Sie Einwände und Ihre Reaktionen fest. Das hilft:
- Muster im Team zu erkennen
- Bei Bedarf ans Management zu eskalieren
- Ihren Ansatz im Laufe der Zeit zu verbessern
Den Vorgesetzten einbeziehen
Wenn jemand dauerhaft das Pflichttraining verweigert:
**To manager:**
"Hi [Manager], I wanted to flag that [Developer] hasn't completed
the security assessment/training. I've discussed the importance
with them on [dates] and addressed their concerns about [X, Y, Z].
This is mandatory per [CTO/policy], and I wanted to make you
aware before I follow up again. Is there context I'm missing,
or anything I can do differently?"
Zuerst Verbündete finden
Versuchen Sie nicht, alle auf einmal zu überzeugen. Finden Sie Entwickler, die:
- Von Natur aus an Sicherheit interessiert sind
- Einfluss in ihrem Team haben
- Von Skeptikern respektiert werden
Bringen Sie diese zuerst an Bord. Sie helfen dabei, andere zu überzeugen.
Ergebnisse sprechen lassen
Wenn anfängliche Skeptiker sehen:
- Schwachstellen, die vor der Produktion entdeckt wurden
- CTF-Herausforderungen, die tatsächlich Spaß machen
- Kollegen, die wertvolle Fähigkeiten erwerben
...kommen sie oft von selbst um. Spielen Sie das lange Spiel.
Akzeptieren, dass manche sich nicht engagieren
Nicht jeder wird ein Sicherheitsbegeisterter. Das ist in Ordnung. Das Ziel ist:
- Grundkompetenz (L1) für alle
- Enthusiasten (L2+), die die Kultur vorantreiben
- Tools und Prozesse, die Lücken auffangen
Befürworter aufbauen, nicht nur Compliance
Das Ziel ist keine widerwillige Compliance – sondern echtes Engagement. So bauen Sie Befürworter auf:
Es interessant machen
**Instead of:** "Complete these training modules by Friday"
**Try:**
- "I found this fascinating write-up on how [company] got breached"
- "There's a bug bounty on our staging environment this month"
- "Check out this CTF challenge — bet you can't solve it in 30 min"
Ihnen Erfolgserlebnisse geben
- Let developers present security topics they've learned
- Celebrate when they find vulnerabilities in code review
- Create "security champion" badges or recognition
- Give credit in public channels when they improve security
An ihre Interessen anknüpfen
- Performance-focused? Security bugs can cause DoS
- Architecture-focused? Discuss secure design patterns
- Open-source contributor? OWASP needs help
- Career-focused? Security skills are differentiators
Eine Community schaffen
- Slack channel for security discussions (not just alerts)
- Monthly security brown-bags with interesting topics
- CTF teams that compete together
- Security office hours where questions are welcome
Beispiel-Gesprächsskripte
Ansprechen eines skeptischen Senior-Entwicklers
You: "Hey [Name], got a few minutes? I'm working on the security
training program and wanted your input."
Dev: "Sure, though I have to say I'm not sure we need more training."
You: "I get that — you've probably seen your share of checkbox
training. This is meant to be different. Can I ask what's been
your experience with security training before?"
Dev: [Shares experience]
You: "Makes sense. What we're building is more hands-on — actual
code, actual vulnerabilities. The goal is to make it relevant to
what you do daily.
Actually, given your experience, I was wondering if you'd be
interested in helping shape the content for senior developers?
We need someone who can call BS on anything too basic or theoretical."
Dev: "I could take a look, I guess."
You: "Great. Here's what we have so far — tell me what you think is
useful vs. waste of time. Your honest feedback would really help."
Reaktion auf einen frustrierten Entwickler nach der Bewertung
Dev: "I got flagged for 'low score' on authentication, but I've
been building auth systems for years. These questions are ridiculous."
You: "That's frustrating — let me look at your responses...
Ah, I see the disconnect. Question 12 was about JWT algorithm
confusion attacks. That's a pretty specific edge case — not
everyone would know that.
The assessment is meant to identify gaps, not judge overall
competence. You clearly have strong auth fundamentals. Would you
rather skip the basics and just cover the advanced edge cases
like algorithm confusion?
Also, if you think the question was poorly written, I'd value
your feedback. We're iterating on these."
Wenn jemand öffentlich sagt „Das ist Zeitverschwendung"
Dev (in Slack): "Why are we spending time on security training
when we have actual features to ship?"
You (reply in thread): "Fair question. The short answer: we
spent [X hours] fixing security bugs last quarter that could have
been prevented. The training is designed to reduce that.
The longer answer: leadership approved [Y hours] of protected time
specifically for this. It's not taking from feature work — it's
prioritized alongside it.
I'm also open to feedback on how to make it more useful. What
would make this worth your time?"
[Continue conversation in DM if needed]
Stimmung verfolgen und anpassen
Erstellen Sie eine einfache Möglichkeit, die Entwicklerstimmung zu verfolgen:
Trainings-Nachbefragung (anonym):
1. Was this training relevant to your work? (1-5)
2. Did you learn something new? (1-5)
3. Was the time investment reasonable? (1-5)
4. Would you recommend this to a colleague? (1-5)
5. What would make this training better? (free text)
6. What topics would you like to see covered? (free text)
Im Zeitverlauf verfolgen:
- Durchschnittliche Scores je Frage
- Häufige Themen im Freitext
- Veränderungen nach Anpassungen auf Basis des Feedbacks
Auf Feedback sichtbar reagieren:
"Based on your feedback from Q1:
- We shortened Module 2 from 2 hours to 45 minutes
- We added more code examples, fewer slides
- We created a 'skip to advanced' path for experienced developers
Keep the feedback coming — this program is for you."
Häufige Fehler vermeiden
- Start ohne Unterstützung der Führungsebene — Das Programm stirbt, wenn Prioritäten sich verschieben
- Freiwilligkeit — Nur Enthusiasten nehmen teil
- Einheitliches Training für alle — Verschwendet die Zeit aller
- Theorie ohne Praxis — Wissen setzt sich nicht fest
- Niedrige Scores bestrafen — Entmutigt ehrliche Bewertungen
- Keine Ergebnismessung — Kein Nachweis des Wertes
- Entwickler-Feedback ignorieren — Erzeugt Frustration
- Zu schnell vorgehen — Kulturwandel braucht Zeit
- Jeden Kampf kämpfen — Etwas Widerstand ist normal
- Wartung vergessen — Fähigkeiten verkümmern ohne Praxis
Workshop: Sicherheitsprogramm für Entwickler implementieren
Teil 1: Aktuellen Stand bewerten
-
Sicherheitswissen des Teams erfassen:
- Einfaches Sicherheitsquiz verteilen
- Aktuelles Training (falls vorhanden) prüfen
- Größte Wissenslücken im Team identifizieren
-
Vergangene Schwachstellen analysieren:
- Welche Arten von Problemen wurden gefunden?
- Im Code-Review, beim Testen oder in der Produktion?
- Welche Muster gibt es?
Teil 2: Lehrplan gestalten
-
Kompetenzen abbilden:
- Kompetenzrahmen für Ihr Team erstellen
- Aktuelle Levels bewerten
- Ziel-Levels festlegen
-
Trainingsressourcen auswählen:
- Kurse für jedes Thema auswählen
- Zeit für Training einplanen
- Praxisumgebungen einrichten
-
Trainingskalender erstellen:
- Monatliches Sicherheitsthema
- Vierteljährliche Bewertung
- Jährliches CTF
Teil 3: Praktiken implementieren
-
Code-Review-Prozess aktualisieren:
- Sicherheits-Checkliste hinzufügen
- Sicherheitsreviewer bestimmen
- CODEOWNERS für sensible Pfade einrichten
-
Sicherheitstests einrichten:
- SAST in CI/CD
- Beispiele für Sicherheitstests
- QA-Sicherheits-Checkliste
-
Kulturinitiativen starten:
- Sicherheits-Sprechstunden
- Slack-Kanal für Sicherheitsfragen
- Anerkennungsprogramm
Zu erstellende Artefakte
- Sicherheitskompetenz-Rahmen — Levels und Bereiche für Ihr Team
- Individuelle Kompetenzprofile — Bewertung für jeden Entwickler
- Schulungslehrplan — Themen, Ressourcen, Zeitplan
- Sicherheits-Checkliste für Code-Reviews — In PR-Prozess integriert
- Bewertungsmaterialien — Quiz, Code-Review-Übung
- Sicherheits-Sprechstunden-Zeitplan — Regelmäßige Kalendereinladung
Selbstkontrollfragen
- Was sind die sechs Phasen der Implementierung eines Sicherheitsprogramms für Entwickler?
- Warum ist der Rückhalt der Führungsebene vor dem Launch unverzichtbar?
- Wie reagieren Sie auf einen Entwickler, der sagt „Unsere Frameworks kümmern sich um die Sicherheit"?
- Was ist der Unterschied zwischen Sicherheitsschulung und dem Aufbau einer Sicherheitskultur?
- Wie oft sollten Entwickler neu bewertet werden?
- Welche Kennzahlen zeigen, dass das Programm funktioniert?
- Warum ist eine schuldfreie Kultur wichtig für die Sicherheit?
- Wie gehen Sie mit dauerhaftem Widerstand gegen das Training um?
- Was sollte das Sicherheits-Onboarding für neue Entwickler enthalten?
- Was ist der Zweck von Sicherheits-Sprechstunden?
So erklären Sie das der Führungsebene
Verbindung zum Geschäftsrisiko: „Unsere Entwickler schreiben den Code, der Kundendaten schützt. Wenn wir sie schulen, sicheren Code zu schreiben, verhindert das Sicherheitsvorfälle effektiver als jedes Sicherheitstool."
Die Rechnung aufmachen: „Eine Schwachstelle in der Entwicklungsphase zu beheben kostet 6-mal weniger als in der Produktion. Eine Investition von 10.000 € in Entwicklerschulungen könnte einen Sicherheitsvorfall in Millionenhöhe verhindern."
Bedenken ansprechen:
- „Der Zeitaufwand ist gering – ein paar Stunden pro Quartal"
- „Die meisten Ressourcen sind kostenlos (OWASP, PortSwigger)"
- „Wir können Verbesserungen mit Bewertungen messen"
Den Plan vorlegen: „Ich schlage strukturiertes Sicherheitstraining für alle Entwickler vor. Wir bewerten Fähigkeiten, bieten gezieltes Training und verfolgen Verbesserungen. Innerhalb von 6 Monaten erfüllt jeder Entwickler die Sicherheits-Grundkompetenz."
Wettbewerbsaspekt: „Unternehmen wie Google, Microsoft und Amazon verlangen Sicherheitstraining für alle Ingenieure. Das ist Branchenstandard für jedes Unternehmen, das mit Kundendaten umgeht."
Fazit
Das größte Hindernis für ein Entwickler-Sicherheitstraining ist nicht technischer Natur – es geht darum, ein konstantes Zeitkontingent zu sichern und den Schwung über das erste Quartal hinaus aufrechtzuerhalten. Sichern Sie sich diese Zusagen schriftlich, bevor Sie beginnen.
Was kommt als Nächstes
Weiter geht es mit: Sicherheitsrichtlinien und -verfahren — wie man Richtlinien schreibt, die Menschen tatsächlich lesen und befolgen.