Sicherheits-Best-Practices

Sicherheit ist super wichtig, wenn du mit sensiblen Dokumenten und Blockchain-Transaktionen arbeitest. Dieser Leitfaden zeigt dir wichtige Sicherheitsmaßnahmen für die Bereitstellung und Wartung von Chaindoc in Produktionsumgebungen.

Authentifizierung und Autorisierung

Multi-Faktor-Authentifizierung (MFA)

Aktiviere immer die MFA für alle Benutzerkonten, vor allem für Admins und Leute mit besonderen Rechten. Chaindoc unterstützt:

  • Zeitbasierte Einmalpasswörter (TOTP) über Authentifizierungs-Apps
  • SMS-basierte Verifizierung (weniger sicher, nur bei Bedarf verwenden)
  • Hardware-Sicherheitsschlüssel (FIDO2/WebAuthn)
  • Biometrische Authentifizierung auf Geräten, die das unterstützen

Richtlinien für sichere Passwörter

Stell sicher, dass strenge Passwortanforderungen gelten:

  • Mindestens 12 Zeichen mit Komplexitätsanforderungen
  • Passwörter für sensible Konten müssen alle 90 Tage erneuert werden.
  • Vermeidung der Wiederverwendung von Passwörtern (die letzten 10 Passwörter)
  • Sperre nach 5 fehlgeschlagenen Anmeldeversuchen
  • Passwortstärkeanzeige während der Erstellung

Rollenbasierte Zugriffskontrolle (RBAC)

Mach's so, dass die Leute nur die Rechte kriegen, die sie wirklich brauchen:

  • Mach die Rollen klar: Betrachter, Redakteur, Administrator, Prüfer
  • Nutze detaillierte Berechtigungen für den Zugriff auf Dokumente.
  • Überprüfe regelmäßig die Benutzerrollen und lösche unnötige Zugriffsrechte.
  • Richte einen zeitbasierten Zugang für befristete Mitarbeiter ein.
  • Trenne Aufgaben für wichtige Vorgänge (z. B. Genehmigungsworkflows).

Datenverschlüsselung

Verschlüsselung im Ruhezustand

Alle sensiblen Daten müssen bei der Speicherung verschlüsselt werden:

  • Verwende AES-256-Verschlüsselung für die Speicherung von Dokumenten.
  • Verschlüssele Datenbank-Backups mit separaten Schlüsseln.
  • Speichere Verschlüsselungsschlüssel in einem speziellen Schlüsselverwaltungsdienst (KMS).
  • Wechsle die Verschlüsselungsschlüssel alle drei Monate.
  • Aktiviere die vollständige Festplattenverschlüsselung auf allen Servern und Workstations.

Verschlüsselung während der Übertragung

Schütze die Daten während der Übertragung:

  • TLS 1.3 für alle Verbindungen durchsetzen
  • Verwende starke Verschlüsselungssuiten (deaktiviere schwache Verschlüsselungen).
  • Implementiere Certificate Pinning für mobile Apps.
  • Aktiviere HSTS (HTTP Strict Transport Security).
  • Nutze verschlüsselte Kanäle für Blockchain-Transaktionen.

Blockchain-Sicherheit

Verwaltung privater Schlüssel

Private Blockchain-Schlüssel sind das wichtigste Sicherheitselement:

  • Speichere private Schlüssel niemals im Klartext oder in Code-Repositorys.
  • Benutze Hardware-Sicherheitsmodule (HSMs) für Produktionsschlüssel.
  • Nutze Multi-Signatur-Wallets für Transaktionen mit hohem Wert.
  • Mach dir wichtige Backup-Verfahren mit sicherer Offline-Speicherung.
  • Verwende separate Schlüssel für verschiedene Umgebungen (Entwicklung, Staging, Produktion).

Sicherheit von Smart Contracts

Wenn du benutzerdefinierte Smart Contracts verwendest:

  • Mach vor dem Einsatz gründliche Sicherheitsprüfungen.
  • Benutz bewährte Muster und vermeid experimentellen Code.
  • Setz Not-Aus-Schalter ein.
  • Teste alles gründlich in Testnetzen, bevor du es im Mainnet einsetzt.
  • Achte auf ungewöhnliche Transaktionsmuster.

Blockchain-Prüfpfade

Nutze die Blockchain für unveränderliche Audit-Protokolle:

  • Speichere alle Änderungen am Dokument in der Blockchain.
  • Hash-sensitive Vorgänge zur Überprüfung
  • Füge Zeitstempel-Nachweise für die Einhaltung der Vorschriften hinzu.
  • Überprüfe regelmäßig die Datenintegrität in der Blockchain.
  • Blockchain-Transaktionsbelege archivieren

API-Sicherheit

API-Authentifizierung

Sichere alle API-Endpunkte:

  • Benutze OAuth 2.0 oder JWT-Token für die Authentifizierung.
  • Mach das Ablaufdatum für Tokens klar (15-60 Minuten für Zugriffstokens).
  • Wechsel die API-Schlüssel regelmäßig (mindestens alle 90 Tage).
  • Benutze für verschiedene Dienste unterschiedliche API-Schlüssel.
  • Zeig API-Schlüssel niemals im clientseitigen Code.

Ratenbegrenzung und DDoS-Schutz

Verhindere Missbrauch und Störungen des Dienstes:

  • Mach eine Ratenbegrenzung pro API-Schlüssel und IP-Adresse.
  • Verwende exponentielles Backoff für fehlgeschlagene Anfragen.
  • Setze eine Web Application Firewall (WAF) ein.
  • Aktiviere den DDoS-Schutz auf CDN-/Cloud-Anbieterebene.
  • Achte auf ungewöhnliche Verkehrsmuster.

Eingabevalidierung und -bereinigung

Schütze dich vor Injektionsangriffen:

  • Überprüfe alle Eingabedaten anhand strenger Schemata.
  • Überprüfe von Nutzern bereitgestellte Inhalte vor dem Speichern/Anzeigen.
  • Benutze parametrisierte Abfragen, um SQL-Injection zu verhindern.
  • Implementiere Content Security Policy (CSP)-Header.
  • Escape-Ausgabe in allen Kontexten (HTML, JavaScript, URLs)

Infrastruktursicherheit

Netzwerksegmentierung

Isoliere wichtige Teile:

  • Trenne Produktions-, Staging- und Entwicklungsumgebungen.
  • Benutze VPCs und private Subnetze für sensible Dienste.
  • Beschränke den Datenbankzugriff nur auf Anwendungsserver.
  • Setze Firewall-Regeln mit Standard-Ablehnungsrichtlinien auf.
  • Nutze Jump-Hosts/Bastion-Server für den administrativen Zugriff.

Patch-Management

Halte die Systeme auf dem neuesten Stand:

  • Bring Sicherheitspatches innerhalb von 48 Stunden nach der Veröffentlichung an.
  • Automatisieren Sie Abhängigkeitsaktualisierungen für nicht relevante Änderungen.
  • Container-Images und Basis-Betriebssystem regelmäßig aktualisieren.
  • Abonniere Sicherheitshinweise für alle verwendeten Technologien.
  • Teste Patches vor der Produktionsbereitstellung in der Staging-Umgebung.

Sicherheit von Containern und Orchestrierung

Bei Verwendung von containerisierten Bereitstellungen:

  • Verwende möglichst wenige Basisbilder (Alpine, Distroless).
  • Überprüfe Bilder vor der Bereitstellung auf Schwachstellen.
  • Lass Container als Nicht-Root-Benutzer laufen.
  • Setz Pod-Sicherheitsrichtlinien/-standards um.
  • Verwende Geheimnisverwaltung (keine Umgebungsvariablen).
  • Aktiviere Netzwerkrichtlinien, um den Datenverkehr zwischen Pods zu beschränken.

Compliance und Prüfung

Einhaltung gesetzlicher Vorschriften

Achte darauf, dass du die relevanten Vorschriften einhältst:

  • DSGVO: Recht auf Löschung und Datenübertragbarkeit umsetzen.
  • HIPAA: Aktivier die Protokollierung von Audits und Zugriffskontrollen für Gesundheitsdaten.
  • SOC 2: Dokumentiere Sicherheitskontrollen und mach jährliche Audits.
  • ISO 27001: Implementiere ein Managementsystem für Informationssicherheit.
  • Branchenspezifische Vorschriften (z. B. Finanzdienstleistungen, Recht)

Audit-Protokollierung

Führ umfassende Protokolle für Sicherheit und Compliance:

  • Protokolliere alle Authentifizierungsversuche (erfolgreiche und fehlgeschlagene).
  • Dokumentiere den Zugriff auf Dokumente, Änderungen und Löschungen.
  • Verfolge administrative Maßnahmen und Konfigurationsänderungen.
  • Speichere Protokolle in einem manipulationssicheren, zentralen System.
  • Bewahr die Protokolle mindestens 1 Jahr lang (oder wie vorgeschrieben) auf.
  • Sorg für eine Protokollüberwachung und Warnmeldungen bei verdächtigen Aktivitäten.

Regelmäßige Sicherheitsüberprüfungen

Mach regelmäßig Sicherheitsüberprüfungen:

  • Mach vierteljährliche Schwachstellenscans.
  • Lass jedes Jahr Penetrationstests von Dritten durchführen.
  • Überprüfe die Zugriffskontrollen und Benutzerberechtigungen jeden Monat.
  • Überprüfe Blockchain-Transaktionen auf Anomalien.
  • Teste die Verfahren für Backups und Notfallwiederherstellung vierteljährlich.

Überwachung und Reaktion auf Vorfälle

Sicherheitsüberwachung

Sorg für Echtzeit-Sicherheitsüberwachung:

  • SIEM-System (Security Information and Event Management) einrichten.
  • Richte Benachrichtigungen für fehlgeschlagene Anmeldeversuche und Privilegienerweiterungen ein.
  • Achte auf ungewöhnliche Datenzugriffsmuster.
  • Verfolge Anomalien bei der API-Nutzung.
  • Benutz Intrusion Detection/Prevention-Systeme (IDS/IPS).

Plan für die Reaktion auf Vorfälle

Mach dich bereit für Sicherheitsvorfälle:

  • Dokumentiere die Verfahren zur Reaktion auf Vorfälle.
  • Leg Eskalationswege und Kontaktinfos fest.
  • Erstell Runbooks für gängige Sicherheitsszenarien.
  • Mach vierteljährlich Tabletop-Übungen.
  • Kommunikationsprotokolle für Verstöße festlegen
  • Forensische Analysefunktionen beibehalten

Sicherung und Notfallwiederherstellung

Sorg dafür, dass alles weiterläuft wie bisher:

  • Mach automatische tägliche Backups.
  • Speichere Backups an verschiedenen Orten.
  • Verschlüssele alle Backup-Daten.
  • Überprüfe die Wiederherstellungsprozesse jeden Monat.
  • Mach Offline-Backups, um dich vor Ransomware zu schützen.
  • Ziel für die Wiederherstellungszeit (RTO) und Ziel für den Wiederherstellungspunkt (RPO)

Entwicklungssicherheit

Sicherer Entwicklungslebenszyklus

Mach Sicherheit zu einem Teil der Entwicklung:

  • Mach Code-Reviews mit Fokus auf Sicherheit.
  • Nutze Tools für statische Anwendungssicherheitstests (SAST).
  • Implementiere Abhängigkeits-Scans in der CI/CD-Pipeline.
  • Verlang von allen Entwicklern eine Sicherheitsschulung.
  • Speichere niemals Geheimnisse in der Versionskontrolle.
  • Nutze Pre-Commit-Hooks, um zu verhindern, dass sensible Daten durchs Netz gehen.

Abhängigkeiten von Drittanbietern

Risiken durch externe Bibliotheken verwalten:

  • Aktualisiere Abhängigkeiten regelmäßig auf die neuesten sicheren Versionen.
  • Nutze Tools wie Dependabot, Snyk oder npm audit.
  • Schau dir die Sicherheitshinweise für die verwendeten Pakete an.
  • Mach die Anzahl der Abhängigkeiten so gering wie möglich.
  • Überprüfe die Integrität des Pakets und die Reputation des Betreuers.
  • Überleg dir, wichtige Abhängigkeiten zu vendoren.

Benutzerschulung und -sensibilisierung

Sicherheit geht uns alle an:

  • Mach für alle Nutzer ein Training zum Thema Sicherheitsbewusstsein.
  • Mach Schulungen zu Phishing und Social Engineering.
  • Mach klare Sicherheitsrichtlinien und -vorgaben.
  • Richte Mechanismen ein, um Sicherheitsprobleme zu melden.
  • Belohne die verantwortungsvolle Offenlegung von Sicherheitslücken.
  • Halte die Sicherheitsdokumente immer auf dem neuesten Stand.

Sicherheits-Checkliste

Check diese Liste ab, bevor du was in die Produktion stellst:

  1. ✓ MFA für alle Benutzerkonten aktiviert
  2. ✓ Strenge Passwortrichtlinien durchsetzen
  3. ✓ RBAC mit geringstmöglichen Berechtigungen
  4. ✓ Alle Daten werden im Ruhezustand und während der Übertragung verschlüsselt.
  5. ✓ TLS 1.3 muss auf allen Endpunkten durchgesetzt werden.
  6. ✓ Private Schlüssel werden in HSM oder einem sicheren Tresor gespeichert.
  7. ✓ API-Ratenbegrenzung konfiguriert
  8. ✓ WAF- und DDoS-Schutz aktiviert
  9. ✓ Eingabevalidierung und -bereinigung implementiert
  10. ✓ Netzwerk-Segmentierung richtig eingerichtet
  11. ✓ Alle Systeme sind gepatcht und auf dem neuesten Stand.
  12. ✓ Umfassende Audit-Protokollierung aktiviert
  13. ✓ Sicherheitsüberwachung und Warnmeldungen aktiv
  14. ✓ Plan für die Reaktion auf Vorfälle dokumentiert und getestet
  15. ✓ Automatische Backups eingerichtet und getestet
  16. ✓ Sicherheitsscan in der CI/CD-Pipeline
  17. ✓ Compliance-Anforderungen dokumentiert und erfüllt

Weitere Ressourcen

Mehr Infos zur Sicherheit von Chaindoc:

  • OWASP Top 10 der Sicherheitsrisiken für Webanwendungen
  • NIST-Cybersicherheits-Framework
  • CIS-Sicherheitsbenchmarks
  • Best Practices für Blockchain-Sicherheit (Consensys)
  • Richtlinien der Cloud Security Alliance

Wenn du Fragen zur Sicherheit hast, schreib unserem Sicherheitsteam unter security@chaindoc.com oder melde Schwachstellen über unser Responsible Disclosure-Programm.