Reboot Konzept A

kompletter Verzicht auf jede Speicherung

Dieses Konzept beschreibt, wie man durch das vollständige Vermeiden des Speicherns aller Daten als privacy by design die Einschränkungen der DSGVO vermeidet. Und sie doch gleichzeitig berücksichtigt.

Reboot Konzept A: kompletter Verzicht auf jede Speicherung

Wenn Logfiles nicht strukturiert ausgewertet werden, kann man definitiv auch darauf verzichten.

HINWEIS: Die folgenden Codebeispiele sind nicht für den Produktiveinsatz gedacht und sollen nur das Konzept erläutern

Apache

In der Apache Konfiguration gibt es gewöhnlich eine Zeile, die das LogFormat definiert und eine, die das Log aktiviert. Zum Abschalten des Loggings muss die zweite Zeile mit »#« auskommentiert oder gelöscht werden.

LogFormat "%h %l %u %t \"%r\" %>s %b" common
# CustomLog logs/access_log common

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
# CustomLog log/access_log combined

Dasselbe gilt für das ErrorLog und alle weiteren Logs, in denen die IP Adresse erscheint.

# ErrorLog /var/log/httpd/error_log

Nginx

Auch bei Nginx gibt es in der Konfiguration solche Zeilen, die durch ein »#« auskommentiert werden können.

Das nginx Error Log enthält imho keine PBD und kann deshalb so verwendet werden.

 error_log logs/error.log warn;

log_format compression '$remote_addr – $remote_user [$time_local] '
                       '"$request" $status $body_bytes_sent '
                       '"$http_referer" "$http_user_agent" "$gzip_ratio"';

# access_log /spool/logs/nginx-access.log compression;

PHP

Praktischerweise erlaubt PHP das Überschreiben der $_SERVER Variable.

$_SERVER['REMOTE_ADDR']     = 0.0.0.0;
$_SERVER['HTTP_USER_AGENT'] = '';
$_SERVER['HTTP_REFERER']    = '';
$_SERVER['QUERY_STRING']    = '';
$_SERVER['REQUEST_URI']     = strtok($_SERVER["REQUEST_URI"],'?');

foreach($_GET as $key=>$val){
    unset($_REQUEST[$key]);
}
$_GET = [];

// 404 has to be solved in Controller

Dadurch verhindert man die weitere Verarbeitung von potentiell PBD.

Achtung: Wenn man Apache und PHP verwendet, gibt die Funktion apache_request_headers() bzw. getallheaders() die Daten auch preis. Um das zu verhindern müsste man diese Funktionen in der php.ini sperren.

Kontrolle

Die Konfiguration verrät das Verzeichnis, in dem die Logfiles gespeichert werden. Also ist der nächste Schritt, nach einem Neustart zu kontrollieren, dass der Server keine Logfiles mehr schreibt.

Beim Umgang mit alten Logfiles gelten andere Regeln, da dort die PBD ja schon gespeichert sind. Aus dem Prinzip der Minimierung und der Tatsache, dass man ja jetzt keine IP darüber informieren kann, dass man die PBD löscht, wäre löschen aus meiner Sicht akzeptabel.

Artikel 11 sagt dazu

Verarbeitung, für die eine Identifizierung der betroffenen Person nicht erforderlich ist

(1) Ist für die Zwecke, für die ein Verantwortlicher personenbezogene Daten verarbeitet, die Identifizierung der betroffenen Person durch den Verantwortlichen nicht oder nicht mehr erforderlich, so ist dieser nicht verpflichtet, zur bloßen Einhaltung dieser Verordnung zusätzliche Informationen aufzubewahren, einzuholen oder zu verarbeiten, um die betroffene Person zu identifizieren.

https://dejure.org/gesetze/DSGVO/11.html

Die Entscheidung, keine Logfiles mehr besitzen zu wollen, erlaubt dann aus meiner Sicht auch die Lösung der alten.

Dokumentation

Dieses Verfahren (Löschen oder Auskommentieren plus regelmässige Kontrolle) muss in den Technischen und Organisatorischen Maßnahmen (TOM) aufgeführt und natürlich auch ausgeführt werden.

Weiter

zu Reboot Konzept B