Zum Hauptinhalt springen

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.

Dreiteilige Serie

Dies ist Teil 3 der Schulungsserie für Entwickler-Sicherheit:

  1. Lehrplan und Ressourcen — was zu vermitteln ist
  2. Bewertung und Kompetenzabbildung — wie Fähigkeiten bewertet werden
  3. 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:

  1. Zeitkontingent — Entwickler brauchen dedizierte Stunden, nicht „in der Freizeit erledigen"
  2. Verpflichtende Teilnahme — Die Führungsebene muss kommunizieren, dass dies erforderlich ist
  3. Budget (optional) — für bezahlte Trainingsplattformen, falls benötigt
  4. 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:

TeamSprachenFrameworksDatenbankenCloudAPIsMobileSonstiges
BackendPython, GoDjango, FastAPIPostgreSQL, RedisAWSREST, GraphQL-Celery, RabbitMQ
FrontendTypeScriptReact, Next.js-VercelREST--
MobileKotlin, SwiftAndroid SDK, iOS SDKSQLiteFirebaseRESTAndroid, iOS-
PlatformPython, BashTerraform, Ansible-AWS, GCP--Docker, K8s
DataPython, SQLSpark, AirflowSnowflake, PostgreSQLAWS---

So erheben Sie die Daten:

  1. Teamleiter direkt befragen
  2. package.json-, requirements.txt- und go.mod-Dateien prüfen
  3. CI/CD-Konfigurationen überprüfen
  4. 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:

SicherheitsthemaBackendFrontendMobileDevOpsData
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

PlattformVorteileNachteileAm besten für
Google FormsKostenlos, einfachKeine Code-AusführungKleine Teams, schneller Start
Self-hosted CTFdGamifiziert, flexibelEinrichtung erforderlichTechnikorientierte Unternehmen
Secure Code WarriorUmfassendTeuerUnternehmen mit Budget
Custom-Quiz-AppVollständige KontrolleEntwicklungsaufwandSpezifische 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:

ProblemLö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 ProblemeBackup-Plan bereithalten (PDF-Version)

Schritt 3.3: Ergebnisse analysieren

Ergebnisanalyse-Tabelle:

EntwicklerRolleKern-ScoreStack-ScoreErweiterter ScoreGesamtLevel
AliceBackend75%80%40%72%L2
BobFrontend65%70%N/A67%L1
CarolDevOps60%85%50%68%L1
.....................
Team-Durchschnitt67%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:

NameSQLiXSSAuthIDORKryptoAPIGesamt
Alice✓✓✓✓✓✓✓✓L2
Bob✓✓L1
Carol✓✓✓✓✓✓✓✓L1
David✓✓✓✓✓✓✓✓✓✓L2
PrioritätOKLÜCKEOKOKLÜCKEOK

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:

EntwicklerErforderliches TrainingStatusAbschlussdatumVerifiziert
AliceKrypto-KursAbgeschlossen2024-02-15
AliceTM-WorkshopIn Bearbeitung--
BobSQLi-LabsAbgeschlossen2024-02-10
BobAuth-LabsNicht begonnen--
CarolXSS-VertiefungAbgeschlossen2024-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:

KennzahlBasiswertZielAktuell
Ø L1-Score72%90%-
Ø L2-Score55%75%-
Trainingsabschluss0%100%-
Sicherheitsfehler je Release84-
Zeit zur Behebung von Sicherheitsfehlern5 Tage2 Tage-

Schritt 5.3: Programm auf Basis der Ergebnisse anpassen

Nach jedem Bewertungszyklus:

  1. Verbleibende Lücken identifizieren
  2. Schulungsprioritäten aktualisieren
  3. Bei Bedarf neue Themen hinzufügen
  4. Gut verstandene Themen entfernen
  5. 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:

WocheThemaFormatZeit
1SicherheitsgrundlagenSelbststudium2 Stunden
1Unternehmens-SicherheitsrichtlinienPflichtlektüre1 Stunde
2OWASP Top 10Selbststudiums-Kurs4 Stunden
2Rollenspezifisches TrainingZugewiesene Module4 Stunden
3Erste BewertungQuiz1 Stunde
4Mentoring-Session1:1 mit Senior-Entwickler1 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 MitarbeiterStartdatumLektüreTrainingBewertungMentoring-Session
Eve2024-03-0178%Geplant
Frank2024-03-15In Bearbeitung--

Zeitplan-Zusammenfassung

PhaseZeitraumAktivitäten
FundamentWoche 1–2Management-Buy-in, Technologieinventur
VorbereitungWoche 3–4Bewertungsmaterialien erstellen
BewertungWoche 5–6Erste Bewertung durchführen
TrainingWoche 7–12Training bereitstellen (fortlaufend)
IterationWoche 13+Neubewerten, iterieren, ins Onboarding integrieren
RegelbetriebFortlaufendVierteljä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ätPunkteHinweise
Sicherheitstraining abschließen100Pro Modul
Schwachstelle im Code-Review finden200Vor der Produktion
Sicherheitsbedenken melden50Fördert das Melden
Sicherheitsproblem beheben150Schneller = mehr Punkte
Sicherheitsquiz bestehen100Monatlich
An CTF teilnehmen200Teilnahme, Bonus für Platzierung
Anderen Entwickler mentoren150Zu 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:

  1. Pragmatisch — Sie wollen wissen: „Hilft mir das bei meiner Arbeit?"
  2. Skeptisch — Sie haben viele Unternehmensinitiativen scheitern sehen
  3. Zeitlich eingeschränkt — Jede Stunde Schulung ist eine Stunde weniger Entwicklung
  4. Stolz auf ihre Arbeit — Sie hören nicht gern, dass ihr Code unsicher ist
  5. 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

  1. Start ohne Unterstützung der Führungsebene — Das Programm stirbt, wenn Prioritäten sich verschieben
  2. Freiwilligkeit — Nur Enthusiasten nehmen teil
  3. Einheitliches Training für alle — Verschwendet die Zeit aller
  4. Theorie ohne Praxis — Wissen setzt sich nicht fest
  5. Niedrige Scores bestrafen — Entmutigt ehrliche Bewertungen
  6. Keine Ergebnismessung — Kein Nachweis des Wertes
  7. Entwickler-Feedback ignorieren — Erzeugt Frustration
  8. Zu schnell vorgehen — Kulturwandel braucht Zeit
  9. Jeden Kampf kämpfen — Etwas Widerstand ist normal
  10. Wartung vergessen — Fähigkeiten verkümmern ohne Praxis

Workshop: Sicherheitsprogramm für Entwickler implementieren

Teil 1: Aktuellen Stand bewerten

  1. Sicherheitswissen des Teams erfassen:

    • Einfaches Sicherheitsquiz verteilen
    • Aktuelles Training (falls vorhanden) prüfen
    • Größte Wissenslücken im Team identifizieren
  2. 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

  1. Kompetenzen abbilden:

    • Kompetenzrahmen für Ihr Team erstellen
    • Aktuelle Levels bewerten
    • Ziel-Levels festlegen
  2. Trainingsressourcen auswählen:

    • Kurse für jedes Thema auswählen
    • Zeit für Training einplanen
    • Praxisumgebungen einrichten
  3. Trainingskalender erstellen:

    • Monatliches Sicherheitsthema
    • Vierteljährliche Bewertung
    • Jährliches CTF

Teil 3: Praktiken implementieren

  1. Code-Review-Prozess aktualisieren:

    • Sicherheits-Checkliste hinzufügen
    • Sicherheitsreviewer bestimmen
    • CODEOWNERS für sensible Pfade einrichten
  2. Sicherheitstests einrichten:

    • SAST in CI/CD
    • Beispiele für Sicherheitstests
    • QA-Sicherheits-Checkliste
  3. Kulturinitiativen starten:

    • Sicherheits-Sprechstunden
    • Slack-Kanal für Sicherheitsfragen
    • Anerkennungsprogramm

Zu erstellende Artefakte

  1. Sicherheitskompetenz-Rahmen — Levels und Bereiche für Ihr Team
  2. Individuelle Kompetenzprofile — Bewertung für jeden Entwickler
  3. Schulungslehrplan — Themen, Ressourcen, Zeitplan
  4. Sicherheits-Checkliste für Code-Reviews — In PR-Prozess integriert
  5. Bewertungsmaterialien — Quiz, Code-Review-Übung
  6. Sicherheits-Sprechstunden-Zeitplan — Regelmäßige Kalendereinladung

Selbstkontrollfragen

  1. Was sind die sechs Phasen der Implementierung eines Sicherheitsprogramms für Entwickler?
  2. Warum ist der Rückhalt der Führungsebene vor dem Launch unverzichtbar?
  3. Wie reagieren Sie auf einen Entwickler, der sagt „Unsere Frameworks kümmern sich um die Sicherheit"?
  4. Was ist der Unterschied zwischen Sicherheitsschulung und dem Aufbau einer Sicherheitskultur?
  5. Wie oft sollten Entwickler neu bewertet werden?
  6. Welche Kennzahlen zeigen, dass das Programm funktioniert?
  7. Warum ist eine schuldfreie Kultur wichtig für die Sicherheit?
  8. Wie gehen Sie mit dauerhaftem Widerstand gegen das Training um?
  9. Was sollte das Sicherheits-Onboarding für neue Entwickler enthalten?
  10. 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.