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.