Security-Audit Vorbereitung Security-Audit

Security-Audit steht an: Was Sie in 4 Wochen vorbereiten müssen

Carola Schulte
Carola Schulte 1. Juni 2025 16 min Lesezeit

In vier Wochen kommt der Auditor. Die E-Mail vom Kunden, vom Vorstand oder von der Compliance-Abteilung ist da. Jetzt beginnt entweder strukturierte Vorbereitung – oder Panik. Dieser Artikel gibt Ihnen einen konkreten 4-Wochen-Plan, zeigt die Findings, die garantiert kommen, und erklärt, was Prüfer wirklich sehen wollen.

Ein Audit prüft Systeme – nicht Menschen.

Kurz gesagt: Ein Security-Audit ist kein Überraschungstest. 80% der Findings sind vorhersehbar. Wer sich vorbereitet, verwandelt den Audit von einer Bedrohung in eine Chance, echte Schwachstellen zu finden und zu fixen.

Welcher Audit steht an?

Bevor Sie vorbereiten, klären Sie: Was genau wird geprüft?

Audit-Typ Fokus Typische Anforderung
Penetration Test Technische Schwachstellen Kunde, interne Security
ISO 27001 ISMS, Prozesse, Dokumentation Zertifizierung
SOC 2 Controls für SaaS-Anbieter Enterprise-Kunden (US)
DSGVO-Audit Datenschutz, Betroffenenrechte Aufsichtsbehörde, Kunden
Kunden-Audit Security-Fragebogen + Stichproben Enterprise-Vertrieb

Die Vorbereitung unterscheidet sich. Ein Pentest erfordert technische Härtung, ISO 27001 verlangt Dokumentation. Dieser Artikel fokussiert auf die Schnittmenge – das, was bei jedem Audit hilft.

Der 4-Wochen-Plan

Woche 1: Bestandsaufnahme

Ziel: Wissen, was Sie haben – und was fehlt.

  • Asset-Inventar aktualisieren: Welche Systeme, Anwendungen, Datenbanken gibt es?
  • Dokumentation sichten: Was existiert? Was ist veraltet?
  • Verantwortlichkeiten klären: Wer ist Ansprechpartner für welches System?
  • Scope mit Auditor abstimmen: Was genau wird geprüft?
  • Letzte Audit-Berichte reviewen: Welche Findings sind noch offen?
# Quick Asset Discovery
nmap -sn 10.0.0.0/24 > network-hosts.txt

# Welche Services laufen?
nmap -sV -top-ports 1000 10.0.0.0/24

# Cloud-Assets (AWS)
aws ec2 describe-instances --query 'Reservations[].Instances[].{ID:InstanceId,Type:InstanceType,State:State.Name}'
aws rds describe-db-instances --query 'DBInstances[].{ID:DBInstanceIdentifier,Engine:Engine}'

Woche 2: Low-Hanging Fruits fixen

Ziel: Die offensichtlichen Probleme beseitigen.

  • Security Headers setzen: HSTS, CSP, X-Frame-Options
  • Veraltete Software updaten: Besonders öffentlich bekannte CVEs
  • Default-Credentials ändern: Admin/Admin existiert häufiger als Sie denken
  • Unnötige Ports schließen: Nur das exponieren, was nötig ist
  • SSL/TLS-Konfiguration prüfen: TLS 1.2+, starke Cipher Suites
# Security Headers testen
curl -I https://ihre-app.de | grep -i "strict\|content-security\|x-frame\|x-content"

# SSL-Konfiguration prüfen
testssl.sh https://ihre-app.de

# Bekannte Vulnerabilities in Dependencies
npm audit
composer audit
pip-audit
Warnung: Änderungen ohne Change-Tracking kurz vor dem Audit sind ein eigenes Risiko. Dokumentieren Sie jeden Fix.

Woche 3: Dokumentation & Prozesse

Ziel: Nachweisen können, dass Sie Security ernst nehmen.

  • Netzwerk-Diagramm erstellen/aktualisieren: Segmentierung, Firewalls, Datenflüsse
  • Zugriffsrechte dokumentieren: Wer hat Zugang zu was? Warum?
  • Incident-Response-Plan vorlegen: Was passiert bei einem Breach?
  • Backup-Konzept dokumentieren: Was wird gesichert? Wie oft? Wo?
  • Änderungsmanagement: Wie kommen Änderungen in Produktion?

Woche 4: Dry Run & Feinschliff

Ziel: Bereit sein, keine Überraschungen.

  • Interner Pentest: Mit Tools wie OWASP ZAP selbst scannen
  • Dokumentation gegenlesen lassen: Frische Augen finden Lücken
  • Interview-Vorbereitung: Wer sagt was zu welchem Thema?
  • Zugänge für Auditor vorbereiten: Accounts, VPN, Dokumentenzugang
  • War Room einrichten: Raum/Channel für Audit-Kommunikation
# Selbst-Scan mit OWASP ZAP (Docker)
docker run -t owasp/zap2docker-stable zap-baseline.py -t https://ihre-app.de

# Oder mit Nikto
nikto -h https://ihre-app.de

# SSL Labs API (extern)
curl "https://api.ssllabs.com/api/v3/analyze?host=ihre-app.de"

Findings, die garantiert kommen

Nach hunderten Audits kann ich Ihnen sagen: Diese Findings tauchen in 90% aller Berichte auf. Fixen Sie sie vorher.

1. Fehlende oder schwache Security Headers

Header Empfohlener Wert Risiko ohne
Strict-Transport-Security max-age=31536000; includeSubDomains Downgrade-Angriffe
Content-Security-Policy App-spezifisch, mindestens default-src 'self' XSS
X-Frame-Options DENY oder SAMEORIGIN Clickjacking
X-Content-Type-Options nosniff MIME-Sniffing
Referrer-Policy strict-origin-when-cross-origin Informationsabfluss
# Nginx-Konfiguration
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline';" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

2. Veraltete Software mit bekannten CVEs

Nichts ist peinlicher als ein Finding für eine Vulnerability, die seit 2 Jahren gepatcht ist.

Checklist: Versions-Check

  • Webserver (Apache, Nginx) auf aktuellem Patch-Level
  • Programmiersprachen-Runtime (PHP, Node, Java) aktuell
  • Framework-Versionen (Laravel, Spring, Express) geprüft
  • Datenbank-Versionen (MySQL, PostgreSQL) aktuell
  • Container-Base-Images aktualisiert
  • npm/Composer/pip Dependencies gescannt

3. Informationspreisgabe in Error Messages

Stack Traces, Datenbankfehler, Pfade – alles Gold für Angreifer.

# Schlecht (Produktion)
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'prod_db.users' doesn't exist
at /var/www/app/vendor/laravel/framework/src/Database/Connection.php:742

# Gut (Produktion)
Ein Fehler ist aufgetreten. Bitte versuchen Sie es später erneut. (Ref: ERR-7f3a2b)
Reality-Check: Ich sehe in fast jedem Audit mindestens einen Endpunkt, der bei falschem Input einen Stack Trace zurückgibt. Oft ist es ein vergessener Debug-Modus oder ein Edge Case, den niemand getestet hat. Prüfen Sie alle Error-Pfade.

4. Schwaches Session-Management

  • Sessions, die nach Logout noch gültig sind
  • Session-IDs in URLs
  • Fehlende Session-Timeouts
  • Cookies ohne Secure und HttpOnly Flags
# Cookie-Flags prüfen
curl -I https://ihre-app.de/login -c - | grep -i "set-cookie"

# Erwartetes Ergebnis:
Set-Cookie: session=abc123; Path=/; Secure; HttpOnly; SameSite=Strict

5. Fehlende Rate Limiting

Login, API-Endpunkte, Passwort-Reset – ohne Rate Limiting sind Brute-Force-Angriffe trivial.

# Test: Wie viele Login-Versuche sind möglich?
for i in {1..100}; do
  curl -s -o /dev/null -w "%{http_code}\n" \
    -X POST https://ihre-app.de/login \
    -d "user=admin&pass=wrong$i"
done | sort | uniq -c

# Wenn alle 100 Requests HTTP 200/401 zurückgeben: Problem

6. CORS-Fehlkonfiguration

# Schlecht
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

# Gefährlich: Erlaubt jeder Domain, authentifizierte Requests zu machen

7. Fehlende Logging/Monitoring

Wenn Sie nicht erklären können, wer wann auf was zugegriffen hat, ist das ein Finding.

Minimum Logging

  • Login-Versuche (erfolgreich und fehlgeschlagen)
  • Passwort-Änderungen
  • Admin-Aktionen
  • Zugriffe auf sensible Daten
  • API-Calls mit User-ID und Timestamp
  • Fehler mit Kontext (aber ohne sensible Daten)

Was Prüfer wirklich sehen wollen

Nach vielen Jahren auf beiden Seiten des Tisches kann ich Ihnen sagen: Es geht nicht um Perfektion. Es geht um Nachvollziehbarkeit.

1. Bewusstsein für Risiken

Ein dokumentiertes Risiko mit bewusster Akzeptanz ist besser als ein unbekanntes Risiko. Prüfer respektieren: „Wir wissen, dass X ein Risiko ist. Wir haben entschieden, es zu akzeptieren, weil Y. Hier ist die dokumentierte Entscheidung."

2. Konsistenz zwischen Dokumentation und Realität

Nichts ist schlimmer als eine Security-Policy, die das Gegenteil der Realität beschreibt. Wenn Ihre Policy sagt „Alle Passwörter haben 12 Zeichen", dann darf die Datenbank keine 6-Zeichen-Hashes enthalten.

Die harte Wahrheit: Prüfer suchen nach der Lücke zwischen Anspruch und Wirklichkeit. Wenn Ihre Dokumentation zu ambitioniert ist, schaffen Sie selbst die Findings. Dokumentieren Sie, was Sie tun – nicht was Sie gerne tun würden.

3. Nachvollziehbare Prozesse

Wie kommt Code in Produktion? Wer genehmigt Zugriffsrechte? Was passiert bei einem Security-Incident? Prüfer wollen sehen, dass es einen Prozess gibt – und dass er befolgt wird.

4. Reaktionsfähigkeit

Können Sie innerhalb von 24 Stunden eine kritische Vulnerability patchen? Wie schnell können Sie einen kompromittierten Account sperren? Prüfer interessiert nicht nur der Ist-Zustand, sondern auch Ihre Fähigkeit zu reagieren.

5. Kontinuierliche Verbesserung

Der beste Eindruck: „Hier ist unser letzter Audit-Bericht. Hier sind die Findings. Hier ist der Status – 90% geschlossen, 10% in Arbeit mit Deadline." Das zeigt Reife.

Dokumente, die Sie brauchen

Dokumenten-Checkliste

  • Netzwerk-Diagramm: Segmentierung, Firewalls, externe Verbindungen
  • Asset-Inventar: Server, Anwendungen, Datenbanken, Cloud-Ressourcen
  • Datenfluss-Diagramm: Wo fließen sensible Daten?
  • Zugriffsrechte-Matrix: Wer hat Zugang zu welchen Systemen?
  • Security-Policies: Passwort-Policy, Acceptable Use, etc.
  • Incident-Response-Plan: Eskalationswege, Verantwortlichkeiten
  • Backup-Konzept: Was, wie oft, wo, Test-Restore-Nachweis
  • Change-Management-Prozess: Wie kommen Änderungen in Produktion?
  • Vulnerability-Management: Wie werden Schwachstellen gehandhabt?
  • Letzte Audit-Berichte: Plus Status der Findings
Praxis-Tipp: Legen Sie einen „Audit-Ordner" an (digital oder physisch), der alle Dokumente enthält. Wenn der Prüfer fragt, können Sie sofort liefern. Nichts macht einen besseren Eindruck als Vorbereitung.

Während des Audits

Kommunikation

  • Single Point of Contact: Eine Person koordiniert alle Anfragen
  • Antworten dokumentieren: Wer hat was gesagt? Schriftlich festhalten
  • Keine Vermutungen: „Ich prüfe das und melde mich" ist besser als raten

Bei Findings

  • Nicht defensiv werden: Findings sind keine persönliche Kritik
  • Kontext liefern: Warum ist etwas so, wie es ist?
  • Sofort-Maßnahmen anbieten: „Das können wir bis morgen fixen"
  • Priorisierung diskutieren: Nicht jedes Finding ist gleich kritisch

Don'ts

  • Nicht lügen: Prüfer merken das. Immer.
  • Nicht verstecken: Bekannte Probleme proaktiv ansprechen
  • Nicht improvisieren: Wenn Sie etwas nicht wissen, sagen Sie es

Nach dem Audit

Bericht erhalten

  • Zeitnah reviewen: Stimmen die Findings? Kontext korrekt?
  • Rückfragen stellen: Unklarheiten klären, bevor der Bericht final ist
  • Severity diskutieren: Wenn Sie ein Finding anders bewerten, argumentieren Sie

Findings bearbeiten

  • Tickets erstellen: Jedes Finding wird ein Backlog-Item
  • Owner zuweisen: Wer ist verantwortlich?
  • Deadlines setzen: Realistisch, aber verbindlich
  • Tracking aufsetzen: Regelmäßiger Status-Report
Best Practice: Vereinbaren Sie mit dem Auditor einen Retest-Termin für kritische Findings. Das schafft Verbindlichkeit und Sie haben ein externes Datum, das intern hilft, Ressourcen zu bekommen.

Fazit

Ein Security-Audit ist keine Prüfung, die man besteht oder nicht. Es ist ein Werkzeug, um Schwachstellen zu finden – idealerweise bevor es ein Angreifer tut.

Die wichtigsten Punkte:

  • Vorbereitung ist alles: 4 Wochen reichen für die Grundlagen
  • Low-Hanging Fruits zuerst: Security Headers, Updates, Defaults
  • Dokumentation = Nachweis: Was nicht dokumentiert ist, existiert nicht
  • Ehrlichkeit gewinnt: Bekannte Risiken sind besser als versteckte
  • Follow-through: Der Wert liegt im Fixen, nicht im Bericht

Ein Audit scheitert nicht an Technik, sondern an fehlender Vorbereitung und Ehrlichkeit.

Nächster Schritt: Laden Sie sich die Checkliste runter und gehen Sie sie durch. In meinen Audit-Vorbereitungsprojekten arbeite ich genau diese Liste ab – und identifiziere dabei oft Findings, bevor der externe Auditor sie findet. Das spart nicht nur Geld, sondern auch Reputation.

Komplette Checkliste

Audit-Vorbereitung Checkliste

  • Asset-Inventar vollständig und aktuell
  • Netzwerk-Diagramm erstellt
  • Alle Software auf aktuellem Patch-Level
  • Security Headers konfiguriert
  • SSL/TLS-Konfiguration gehärtet (TLS 1.2+)
  • Default-Credentials geändert
  • Unnötige Ports/Services geschlossen
  • Error Messages ohne sensible Informationen
  • Session-Management sicher (Flags, Timeout, Invalidierung)
  • Rate Limiting auf kritischen Endpunkten
  • CORS korrekt konfiguriert
  • Logging für Security-Events aktiv
  • Zugriffsrechte dokumentiert und nach Least Privilege
  • Incident-Response-Plan vorhanden
  • Backup-Konzept dokumentiert und getestet
  • Change-Management-Prozess definiert
  • Offene Findings aus letztem Audit geschlossen/dokumentiert
  • Ansprechpartner für Audit benannt
  • Zugänge für Auditor vorbereitet
  • Interner Scan durchgeführt

Häufige Fragen

4 Wochen reichen nicht – was tun?

Priorisieren. Fokus auf: Security Headers, kritische Updates, Dokumentation der wichtigsten Systeme. Kommunizieren Sie dem Auditor, dass Sie im Verbesserungsprozess sind. Das ist besser als gar nichts.

Wir haben keinen Incident-Response-Plan – wie schnell geht das?

Ein Basis-Plan in 2-3 Tagen: Wer wird informiert? Wer entscheidet? Welche Sofortmaßnahmen? Das muss kein 50-Seiten-Dokument sein. Eine Seite mit klaren Verantwortlichkeiten ist ein Anfang.

Der Auditor findet etwas Kritisches – verlieren wir den Kunden?

Selten. Kunden wollen sehen, dass Sie reagieren können. Ein kritisches Finding mit 24h-Fix und Retest-Nachweis ist besser als ein „sauberer" Audit, dem niemand traut.

Können wir den Scope einschränken?

Ja, aber vorsichtig. Ein zu enger Scope wirkt wie Verstecken. Besser: Klar definieren, was geprüft wird – und warum der Rest außerhalb liegt (z.B. „Third-Party-Hoster, eigener Audit-Bericht liegt vor").


Carola Schulte

Carola Schulte

Software-Architektin mit 25+ Jahren Erfahrung in Security-Audits, sowohl als Prüferin als auch bei der Vorbereitung.

Beratung anfragen

Audit steht an?

Ich begleite Sie durch die Vorbereitung – von der Bestandsaufnahme bis zum Dry Run. Damit der Audit zeigt, was Sie können, nicht was Sie übersehen haben.

Audit-Vorbereitung anfragen