Datensicherheit
SecureCodingHub ist mit Sicherheit in jeder Schicht entwickelt. Diese Seite behandelt, wie wir die Daten Ihrer Organisation schützen.
Verschlüsselung
Alle Daten werden mit branchenüblicher Verschlüsselung geschützt:
Während der Übertragung
Alle Daten werden mit TLS 1.2+ zwischen Ihrem Browser und unseren Servern verschlüsselt. Keine Klartextübertragung.
Im Ruhezustand
Alle Daten im Ruhezustand werden mit AES-256-Verschlüsselung verschlüsselt. Datenbank-Backups sind verschlüsselt.
Infrastruktur
- Gehostet auf AWS (US-Region)
- Anwendung und Datenbank in isolierten Netzwerken
- Regelmäßige Sicherheits-Patches und Updates
- DDoS-Schutz über AWS Shield
- Automatisierte Überwachung und Alarmierung
Datenhandhabung
Hier ist, was wir an Daten speichern und warum:
| Datentyp | Gespeichert | Zweck |
|---|---|---|
| Benutzer-E-Mail & Name | Ja | Kontoidentifikation |
| Challenge-Fortschritt & Punkte | Ja | Schulungsverfolgung |
| Stack-Einstellungen | Ja | Personalisierung |
| Authentifizierungs-Tokens | Temporär | Sitzungsverwaltung |
| Passwörter | Nein | Wir verwenden passwortlose Authentifizierung |
| Quellcode | Nein | Challenges sind nur clientseitig |
Compliance
- GDPR-konform — Datenverarbeitung auf Grundlage von berechtigtem Interesse / Vertrag
- Benutzer können Datenexport oder -löschung anfordern
- Datenaufbewahrung: aktive Konten unbegrenzt aufbewahrt, gelöschte Konten nach 90 Tagen gelöscht
- Subprozessoren in unserer Datenschutzerklärung aufgeführt
Zugriffskontrolle
- Rollenbasierte Zugriffskontrolle innerhalb jeder Organisation (
org_adminundlearner) - Datenisolation auf Organisationsebene (mehrmandantenfähig) — jeder Datensatz trägt einen
organizationId-Scope, der in der Datenzugriffsschicht durchgesetzt wird - SCIM-Token-Authentifizierung für Bereitstellungs-APIs (geschützt durch zuvor konfiguriertes SSO)
- Pro-API-Schlüssel-Rate-Limiting auf der öffentlichen REST- und Webhook-Oberfläche (60 Anfragen/Minute und 1.000 Anfragen/Stunde pro Schlüssel); ein separater IP-Limiter auf dem anonymen Web-Kontaktformular (5 / 15 Minuten)
- JWT-Bearer-Tokens für browser-orientierte Administrator- und Lernender-Endpoints; langlebige gehashte API-Schlüssel für die öffentliche Oberfläche — vollständige Details in Authentifizierung
Webhook-Signierung
Ausgehende Webhooks von SecureCodingHub zu Ihren Endpoints werden mit HMAC-SHA256 mit einem Pro-Endpoint-Secret signiert, das dem Administrator einmal bei der Endpoint-Erstellung angezeigt und nie wieder zurückgegeben wird. Der Signaturheader hat die Form t=<unix_seconds>,v1=<hex>; die signierte Nutzlast ist <t>.<raw_body>. Empfänger sollten jede Zustellung ablehnen, deren Zeitstempel mehr als 5 Minuten von der Uhr des Empfängers entfernt ist, um sich gegen Replay zu schützen, und Signaturen in konstanter Zeit vergleichen.
Die Zustellung ist mindestens-einmal. Fehlgeschlagene Zustellungen (jegliche Nicht-2xx-Antwort oder Netzwerkfehler) werden mit exponentiellem Backoff in einem 1m / 5m / 30m / 2h / letzter Versuch-Plan wiederholt. Nach fünf fehlgeschlagenen Versuchen wird der Endpoint automatisch deaktiviert und der Organisationsadministrator über das Audit-Protokoll benachrichtigt. Einrichtung und Verifizierungscode-Beispiele befinden sich unter API → Webhooks.
Geheimnis-Handhabung auf Anwendungsebene
Drei Geheimnistypen werden auf der Anwendungsschicht verwaltet; ihre On-Disk-Handhabung wird hier vollständigkeitshalber neben der Speicher-Schicht-Verschlüsselung oben beschrieben.
| Geheimnis | Speicher | Lebensdauer |
|---|---|---|
| Öffentliche API-Schlüssel | Nur der SHA-256-Hash, das 9-stellige Präfix (scs_live_) und die letzten vier Zeichen werden persistiert. Das vollständige Token wird einmal bei der Erstellung angezeigt und kann danach nicht erneut vom Server abgerufen werden. | Standardmäßig unbegrenzt. Optionales Ablaufdatum kann bei der Erstellung festgelegt werden. Widerruf wird sofort wirksam. |
| Webhook-Signierungs-Secrets | Im Klartext neben dem Webhook-Endpoint-Datensatz gespeichert, weil der Server den Rohwert benötigt, um jede ausgehende Zustellung zu signieren. Wird einmal bei der Erstellung angezeigt und nie wieder über die API zurückgegeben. Rotation erfordert das Löschen und Neuerstellen des Endpoints. | Lebt so lange wie der Webhook-Endpoint. |
| Magic Codes (E-Mail OTP) | Der 6-stellige Code wird als Klartext in der Magic-Code-Zeile persistiert. Codes sind einmal verwendbar und an die E-Mail des Benutzers gebunden; die Zeile wird nach der ersten Verifizierung als konsumiert markiert. | Jeder Code läuft 10 Minuten nach Ausstellung ab. Unkonsumierte abgelaufene Codes bleiben als Audit-Trail in der Tabelle, bis die Hausverwaltung sie löscht. |
| SSO-Client-Secrets / SAML-Zertifikate | Im Klartext im SchSsoConfig-Datensatz gespeichert, weil der Server die Rohwerte benötigt, um mit dem IdP zu verhandeln. Nicht über einen Lese-Endpoint exponiert, nachdem die Konfiguration gespeichert wurde. | Lebt so lange wie die SSO-Konfiguration. |
Schwachstellen melden
Wenn Sie eine Sicherheitslücke entdecken, kontaktieren Sie security@securecodinghub.com. Wir nehmen alle Meldungen ernst und streben eine Antwort innerhalb von 48 Stunden an.
Datenklassifizierung bei SecureCodingHub
Wir behandeln die Daten in unserer Umgebung als in drei praktische Eimer fallend. Kundendaten sind Informationen, die Ihrer Organisation gehören und die Ihre Benutzer über die Plattform eingegeben oder generiert haben: Kontoidentifikatoren, Lernenden-E-Mail-Adressen, Rollenzuweisungen, Schulungsfortschritt, Punkte gegen einzelne Challenges und Stack-Einstellungen. Dieser Eimer ist der, der Ihrem DPO am Herzen liegt, und der, den wir intern als die höchste Sensitivitätsstufe behandeln.
Betriebliche Telemetrie ist der zweite Eimer. Sie umfasst Anfrage-Logs, anonymisierte Leistungsmetriken, Fehlerverläufe mit entfernten persönlichen Identifikatoren und Zähler, die verwendet werden, um plattformweite Zuverlässigkeits-Dashboards anzuzeigen. Diese Daten sind notwendig, um den Dienst sicher zu betreiben, und werden in einem kürzeren rollierenden Fenster aufbewahrt als Kundendaten. Der dritte Eimer ist der Challenge-Inhalt selbst — die verwundbaren Codebeispiele, Hinweise und Referenzlösungen, die wir verfassen und an Ihre Benutzer ausliefern. Dieser Inhalt ist unser geistiges Eigentum, nicht Ihres, und er wird nicht mit den Datensätzen Ihrer Organisation vermischt.
Aufbewahrungsfenster unterscheiden sich entsprechend. Aktive Kundenkonten werden während der Vertragslaufzeit aufbewahrt. Bei der Kontolöschung löschen wir identifizierbare Kundendaten in einem 90-Tage-Zeitraum, wobei die Verzögerung besteht, damit eine versehentliche Löschung innerhalb des Fensters rückgängig gemacht werden kann. Betriebliche Telemetrie rollt in einem kürzeren Zyklus aus, gemessen in Wochen, nicht Monaten. Vollständiges Datenverzeichnis und Aufbewahrungsspezifika sind Kunden unter NDA über den unten aufgeführten Anforderungskanal verfügbar und werden für Endbenutzer in der Datenschutzerklärung zusammengefasst.
Wie Verschlüsselung geschichtet ist
Verschlüsselung auf SecureCodingHub ist keine einzelne Kontrolle — sie ist geschichtet, und jede Schicht geht davon aus, dass die anderen versagen können. Daten während der Übertragung zwischen Ihren Benutzern und der Plattform werden durch Transportschicht-Verschlüsselung mit moderner Cipher-Auswahl geschützt, die am Load Balancer durchgesetzt wird, wobei schwache Protokolle und downgrade-anfällige Cipher deaktiviert sind. Die gleiche Transport-Haltung gilt für den Verkehr zwischen Anwendungsdiensten und unseren verwalteten Datenspeichern; nichts innerhalb des Produktions-VPC bewegt sich im Klartext über eine Netzwerkgrenze.
Daten im Ruhezustand werden auf der Speicherschicht mit den Verschlüsselungsdiensten unseres Hosting-Anbieters verschlüsselt, wobei das Schlüsselmanagement vom verwalteten Schlüsseldienst desselben Anbieters übernommen wird, anstatt von anwendungsebenen Schlüsselmaterialien, die in unsere Codebasis eingecheckt sind. Backups erben dieselbe Verschlüsselungs-Haltung wie der primäre Speicher. Wir halten die Beschreibung hier bewusst auf Policy-Ebene, anstatt spezifische Algorithmen, Schlüssellängen oder Rotationskadenzen auf einer öffentlichen Seite zu veröffentlichen, weil das Veröffentlichen dieser Werte zu spröden Abhängigkeiten einlädt und Angreifern eine Zielliste bietet. Die Spezifika sind unter NDA für Beschaffungsprüfungen verfügbar.
Tenant-Isolation ist die dritte Schicht. Jeder Datensatz in der Kundendaten-Stufe ist auf eine Organisationskennung beschränkt, und diese Beschränkung wird in der Datenzugriffsschicht durchgesetzt, anstatt sich ausschließlich auf Anwendungsebene-Filter zu verlassen. Der praktische Effekt ist, dass ein Abfragefehler in einer Funktion nicht versehentlich die Daten einer anderen Organisation über die API exponieren kann, weil der fehlende Scope als keine Ergebnisse statt als falsche Ergebnisse auftauchen würde. Rollenbasierter Zugriff innerhalb einer Organisation wird von derselben Datenzugriffsschicht durchgesetzt, sodass der Organisationsumfang und die Rolle eines Benutzers zusammen bestimmen, welche Datensätze sichtbar sind, bevor ein Anwendungsebene-Filter ausgeführt wird.
Subprozessor- und Datenresidenz-Haltung
SecureCodingHub wird heute nur in US-Regionen gehostet. Das ist eine bewusste operationelle Entscheidung, während wir in unserem aktuellen Maßstab sind — der Betrieb einer einzelnen Primärregion vereinfacht unsere Incident Response, reduziert die Oberfläche, durch die Auditoren gehen müssen, und hält unsere Subprozessor-Liste kurz. Für Organisationen, die uns von außerhalb der USA bewerten, ist dies die wichtigste Tatsache, die ihrem Datenschutzbeauftragten von vornherein offen gelegt werden muss: Daten überqueren eine US-Grenze durch Design, und vertragliche Schutzmaßnahmen einschließlich Standardvertragsklauseln werden zur Unterstützung dieses Transfers zur Verfügung gestellt.
Wenn wir in Zukunft eine EU-residente Bereitstellung hinzufügen, werden die Änderungen substanziell statt kosmetisch sein. Eine separate Primärregion impliziert eine separate Reihe von Subprozessoren mit EU-residenten Operationen, eine separate Reihe von Backup-Zielen und eine aktualisierte Datenverarbeitungsergänzung, die den neuen Fluss widerspiegelt. Wir werden bestehende Organisationen nicht stillschweigend in eine neue Region zurückportieren; jeder Umzug wäre eine Opt-in-Migration mit Vorankündigung und einem definierten Übergangsfenster. Die aktuelle Subprozessor-Liste, die regionale Haltungserklärung und eine aktuelle Penetrationstest-Zusammenfassung sind auf Anfrage von security@securecodinghub.com erhältlich. Wir beantworten Anbieter-Sicherheitsfragebögen direkt statt nur über geteilte Trust-Portale, und wir verlangen nicht, dass die anfragende Partei ein zahlender Kunde ist, um eine aktuelle Subprozessor-Liste zu erhalten.