CluPilotCloud/resources/views/legal/dpa/measures.blade.php

149 lines
7.5 KiB
PHP

{{--
Anlage 1: Technische und organisatorische Maßnahmen (Art. 32 DSGVO).
Written from what this installation ACTUALLY does the backup job as
RegisterBackup creates it, the isolation Proxmox gives, the sign-in as
Fortify enforces it, the deletion deadlines the two prune commands run. Every
sentence here is meant to survive somebody checking it against the machine.
Where a measure is planned but not in place, it is not written down. A TOM
that claims more than the system does is worse than a short one: it is the
document an auditor reads before looking.
--}}
@php
$c = App\Support\CompanyProfile::all();
@endphp
<h1>Anlage 1 Technische und organisatorische Maßnahmen</h1>
<p><i>gemäß Art. 32 DSGVO, Anlage zum Auftragsverarbeitungsvertrag</i></p>
<p><b>Fassung {{ $version }}</b> · Stand {{ $issuedOn }} · {{ $c['name'] ?? 'CluPilot Cloud e.U.' }}</p>
<p>Diese Anlage beschreibt die Maßnahmen, die CluPilot beim Betrieb der
Kundeninstanzen tatsächlich umsetzt. Sie wird mit jeder Fassung des
Auftragsverarbeitungsvertrags überprüft und, wo nötig, fortgeschrieben.</p>
<h2>1. Zutrittskontrolle (physisch)</h2>
<p>Die Instanzen laufen ausschließlich in Rechenzentren der in Ziffer 6 des
Hauptvertrags genannten Unterauftragsverarbeiter innerhalb der Europäischen Union.
Physischer Zutritt, Videoüberwachung, Zutrittsprotokollierung, Brand- und
Einbruchschutz sowie unterbrechungsfreie Stromversorgung liegen in deren
Verantwortung und richten sich nach deren jeweils veröffentlichten Nachweisen
(u. a. ISO/IEC 27001). CluPilot selbst betreibt keine eigenen Serverräume.</p>
<h2>2. Zugangskontrolle (Systemzugang)</h2>
<ul>
<li>Jeder Zugang zum Kundenportal und zur Betreiberkonsole erfordert Benutzername
und Passwort. Passwörter werden ausschließlich als Hash gespeichert (bcrypt);
die Klartexte sind CluPilot zu keinem Zeitpunkt bekannt.</li>
<li>Zwei-Faktor-Authentisierung (TOTP) steht sowohl Kundinnen und Kunden als auch
Betreibern zur Verfügung; für Betreiberkonten wird sie eingesetzt.</li>
<li>Sicherheitsrelevante Änderungen (Zwei-Faktor abschalten, Schlüssel speichern)
verlangen zusätzlich eine erneute Passwortbestätigung innerhalb der laufenden
Sitzung.</li>
<li>Angemeldete Geräte werden je Konto geführt und können einzeln abgemeldet
werden; eine Anmeldung von einem neuen Gerät löst eine Benachrichtigung per
E-Mail aus.</li>
<li>Die Betreiberkonsole ist über eine eigene Adresse erreichbar und für das
öffentliche Internet gesperrt; der Zugang erfolgt über ein privates Netz
(WireGuard).</li>
<li>Der administrative Zugriff auf die Virtualisierungsplattform erfolgt über
API-Token je Host, nicht über gemeinsam genutzte Kennwörter.</li>
</ul>
<h2>3. Zugriffskontrolle (Berechtigungen)</h2>
<ul>
<li>Die Betreiberkonsole kennt abgestufte Rollen (Owner, Admin, Support, Billing,
Read-only) mit einzeln vergebenen Berechtigungen; jede Aktion prüft die
Berechtigung serverseitig, nicht durch Ausblenden von Bedienelementen.</li>
<li>Betreiber- und Kundenkonten sind getrennte Identitäten in getrennten Tabellen
mit getrennten Anmeldewegen. Ein Kundenkonto kann keine Betreiberrechte
erhalten.</li>
<li>CluPilot greift nicht auf Inhalte in Kundeninstanzen zu. Ein Zugriff erfolgt
nur, wenn der Kunde im Rahmen einer Supportanfrage darum ersucht, oder wenn
eine gesetzliche Verpflichtung besteht.</li>
<li>Zugangsdaten und Schlüssel (Zahlungsdienst, DNS, Hosts, Mailkonten) werden
verschlüsselt gespeichert; der dafür verwendete Schlüssel ist vom
Anwendungsschlüssel getrennt.</li>
</ul>
<h2>4. Trennungskontrolle (Mandantentrennung)</h2>
<ul>
<li>Jede Kundin und jeder Kunde erhält eine <b>eigene virtuelle Maschine</b> mit
eigenem Betriebssystem, eigener Datenbank und eigenem Dateisystem. Es gibt
keine geteilte Nextcloud-Installation und keine gemeinsame Datenbank für
Kundeninhalte.</li>
<li>Jede Instanz hat eine eigene Adresse und ein eigenes Zertifikat.</li>
<li>Die Verwaltungsdaten von CluPilot (Verträge, Rechnungen, Betriebsdaten) sind
von den Kundeninhalten getrennt und liegen nicht in den Kundeninstanzen.</li>
</ul>
<h2>5. Weitergabekontrolle (Transport und Ablage)</h2>
<ul>
<li>Sämtlicher Verkehr zu Kundeninstanzen, Portal und Konsole läuft über HTTPS mit
Zertifikaten von Let's Encrypt; unverschlüsselte Verbindungen werden nicht
angeboten.</li>
<li>E-Mail wird über TLS an den Mailserver übergeben.</li>
<li>Administrativer Zugriff auf Hosts erfolgt über SSH beziehungsweise über die
API der Virtualisierungsplattform, jeweils verschlüsselt.</li>
<li>Zahlungsdaten werden nicht von CluPilot verarbeitet: Karteneingabe und
Zahlungsabwicklung finden beim Zahlungsdienstleister statt. CluPilot erfährt
nur, dass und in welcher Höhe gezahlt wurde.</li>
</ul>
<h2>6. Eingabekontrolle (Nachvollziehbarkeit)</h2>
<ul>
<li>Jede automatisierte Einrichtung, Änderung und Beendigung einer Instanz wird
Schritt für Schritt protokolliert und bleibt in der Konsole einsehbar.</li>
<li>Ausgehende E-Mails an Kundinnen und Kunden werden mit Zeitpunkt, Empfänger und
Betreff in einem eigenen Register geführt.</li>
<li>Wesentliche Vertragsvorgänge (Bestellung, Kündigung samt Grund, Widerruf,
Abschluss dieses Vertrags) werden mit Zeitpunkt festgehalten; der Abschluss
dieser Vereinbarung zusätzlich mit Fassung und IP-Adresse.</li>
<li>Anwendungs- und Systemprotokolle werden auf den Servern geführt.</li>
</ul>
<h2>7. Verfügbarkeit und Belastbarkeit</h2>
<ul>
<li><b>Sicherung:</b> Für jede Instanz wird bei der Einrichtung ein täglicher
Sicherungslauf um 02:00 Uhr auf der Virtualisierungsplattform eingerichtet
(Snapshot der gesamten Maschine).</li>
<li><b>Überwachung:</b> Erreichbarkeit und Zustand der Instanzen und Hosts werden
laufend überwacht; Störungen erzeugen Meldungen an den Betrieb.</li>
<li><b>Kapazität:</b> Vor jeder Einrichtung wird geprüft, ob auf dem Zielhost
ausreichend Speicher und Rechenleistung frei sind; reicht sie nicht, wird die
Bestellung vorgemerkt statt einen Host zu überbuchen.</li>
<li><b>Aktualisierung:</b> Sicherheits- und Versionsaktualisierungen werden
eingespielt; geplante Wartungen werden angekündigt.</li>
</ul>
<h2>8. Löschung und Aufbewahrung</h2>
<ul>
<li>Nach Vertragsende werden die Daten zum Abruf bereitgestellt und nach Ablauf der
im Hauptvertrag genannten Frist samt Sicherungen gelöscht.</li>
<li>Registrierungen, deren E-Mail-Adresse nie bestätigt wurde, werden nach
{{ $unverifiedDays }} Tagen automatisch gelöscht.</li>
<li>Bestätigte Konten ohne jemals gebuchtes Paket werden nach einem Jahr gelöscht;
die Löschung wird {{ $warnDays }} Tage vorher per E-Mail angekündigt.</li>
<li>Rechnungen und Buchhaltungsunterlagen werden sieben Jahre aufbewahrt
(§ 132 BAO). Sie enthalten Vertrags-, nicht Inhaltsdaten.</li>
</ul>
<h2>9. Auftragskontrolle und Überprüfung</h2>
<ul>
<li>Unterauftragsverarbeiter werden vertraglich auf ein entsprechendes
Schutzniveau verpflichtet; die Liste ist Teil des Hauptvertrags.</li>
<li>Diese Maßnahmen werden bei jeder neuen Fassung des
Auftragsverarbeitungsvertrags überprüft, mindestens jedoch jährlich.</li>
<li>Ansprechstelle für Datenschutzfragen: {{ $c['email'] ?? '' }}</li>
</ul>