DSGVO (GDPR) und Oracle Application Express (APEX)

Mal Hand aufs Herz. Haben Sie sich bei der Nutzung von APEX schon einmal mit dem Datenschutz und seit dem 25. Mai 2018 im Speziellen mit der DSGVO ( GDPR ) auseinander gesetzt?

Vielleicht fragen Sie sich wo Sie mit der DSGVO als APEX Entwickler in Berührung kommen?  Durch die Verwendung von APEX-Anwendungen fallen durch die Auditierung personenbezogene Daten an. Dazu kommen noch die personenbezogenen Daten Ihres Programms. Betreiben Sie APEX-Anwendungen auf die Ihre Kunden z.B. über das Internet zugreifen können, schlägt die DSGVO mit voller Härte zu. Aber auch für interne Anwendungen können Sie den Datenschutz nicht außer Acht lassen. Für solche Anwendungen benötigen Sie eine DSGVO (GDPR) konforme Datenschutzerklärung, die von jeder Seite der Anwendung aus zugänglich sein sollte. Mit dem Provider bzw. Cloud Anbieter, der die APEX- bzw. Datenbankinstanz für Sie betreibt, sollten Sie einen entsprechenden Auftragsdatenverarbeitungsvertrag abschließen. Noch komplexer wird das Ganze, wenn das Unternehmen, welches für Sie die Server betreibt, seinen Sitz außerhalb der EU hat. Denken Sie aber auch an Ihre Beispielanwendungen, die Sie über apex.oracle.com öffentlich betreiben. Oft haben diese Beispielapplikationen einen komerziellen Charakter. Auch hier fallen personenbezogene Daten wie z.B. die dynamische IP-Adresse des Clients an.

Die Betrachtungen in diesem Beitrag sind sicher nicht vollständig , stellen auch keine Rechtsberatung dar und sollen als Anregung zur näheren Betrachtung verstanden werden.

Grundsätze

Nach Art 4 DSGVO sind

„personenbezogene Daten“ alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person (im Folgenden „betroffene Person“) beziehen; als identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt, insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung oder zu einem oder mehreren besonderen Merkmalen identifiziert werden kann, […]

Dazu gehören offensichtlich der Name, Anschrift, Login-Daten, EMail-Adresse, Personaldaten aber auch beispielsweise die IP-Adresse und noch vieles mehr.

Verarbeitung und Speicherung personenbezogener Daten

Um der DSGVO gerecht werden zu können, sollten Sie sich im Ersten Schritt darüber bewusst werden, welche personenbezogenen Daten in APEX vorhanden sind. Nach Art. 30 DSGVO sind Sie sowieso verpflichtet ein Verzeichnis von Verarbeitungstätigkeiten aller personenbezogener Daten zu führen. Dieses muss unter anderem den Zweck, Löschfristen und den Rechtsgrund der Verarbeitung beinhalten.

Darüber hinaus sollten Sie sich dem Grundsatz der Datenvermeidung (Art. 5 c DSGVO) nach Gedanken darüber machen, welche personenbezogene Daten Sie wirklich benötigen und APEX datenschutzfreundlich konfigurieren.

Des Weiteren gilt nach Art. 5 a) und b) DSGVO

Personenbezogene Daten müssen

1 auf rechtmäßige Weise, nach Treu und Glauben und in einer für die betroffene Person nachvollziehbaren Weise verarbeitet werden („Rechtmäßigkeit, Verarbeitung nach Treu und Glauben, Transparenz“);

2 für festgelegte, eindeutige und legitime Zwecke erhoben werden und dürfen nicht in einer mit diesen Zwecken nicht zu vereinbarenden Weise weiterverarbeitet werden; eine Weiterverarbeitung für im öffentlichen Interesse liegende Archivzwecke, für wissenschaftliche oder historische Forschungszwecke oder für statistische Zwecke gilt gemäß Artikel 89 Absatz 1 nicht als unvereinbar mit den ursprünglichen Zwecken („Zweckbindung“);

Das bedeutet für Sie, dass Sie die Rechtmäßigkeit der Verarbeitung sicherstellen müssen. Nach Erwägungsgrund 40 bedeutet das, dass Sie den Anwender vor der Verarbeitung um Erlaubnis bitten müssen oder es einen anderen Rechtsgrund gibt auf dessen Basis die Verarbeitung legitim ist. So können Sie beispielweise Ihrer Anwendung eine entsprechende Abfrage voranstellen und den User um seine Erlaubnis bitten. Dabei sollten Sie aber auch nachträglich in der Lage sein die Abgabe dieser Willenserklärung nachweisen zu können. Dazu protokollieren Sie diese einfach in einer Datenbanktabelle.

Die Verarbeitung muss transparent geschehen. Also sollten Sie auch eine entsprechende Datenschutzerklärung in zugänglicher Form Ihrer Anwendung hinzufügen.

Im Folgenden habe ich Ihnen einige Stellen aufgelistet an denen personenbezogene Daten in APEX anfallen. Die Beurteilung der Handhabung, Notwendigkeit und Zweckbindung  der Speicherung dieser Daten überlasse ich Ihnen.

User Access Log

Hier werden die gültigen und ungültigen Abmeldungen an Ihren Anwendungen protokolliert. Neben den Zeitstempeln und Benutzernamen finden Sie auch hier die Client IP-Adresse.


select * from apex_180100.wwv_flow_user_access_log

APEX-Activity Log

Haben Sie das Logging Ihrer Abwendungen aktiviert, werden alle Seitenzugriffe inkl. User ID und Client-IP-Adresse im Activity Log protokolliert. Das Logging können Sie als APEX-Developer in den Anwendungseigenschaften Ein- bzw. Ausschalten.

Abbildung 1: Logging ausschalten

Das setzt allerdings voraus, dass der Instanzadministrator das “Application Activity Logging” im internal Workspace auf “User Application Setting” gesetzt hat . Ansonsten obliegt es Ihm, das Logging zu aktivieren bzw. zu deaktivieren.

Das Activity Log wird wechselseitig in zwei Tabellen gespeichert


select * from apex_180100.wwv_flow_activity_log1$

select * from apex_180100.wwv_flow_activity_log2$

Developer Aktivitäten

Neben den Anwendern Ihrer Anwendungen hinterlassen auch Sie als Entwickler Ihre Daten in APEX. An verschiedenen Stellen in der Benutzeroberfläche sehen Sie wer wann, welches Objekt geändert hat. Diese Daten werden hier gespeichert.


select * from apex_180100.wwv_flow_builder_audit_trail

Logs löschen

Sie sollten diese Audit-Daten auch in Ihrem Löschkonzept berücksichtigen. Manuell können Sie die Daten als Instanzadministrator  löschen.

Abbildung 2: Audit Logs verwalten

Änderungshistorie

Eine oft in Anwendungen eingesetzte Funktion ist das Protokollieren von Änderungen. Dabei werden neben den eigentlichen Daten in der Regel der Account des Bearbeiters und der Zeitstempel der Änderungen protokolliert. Das sind personenbezogene Daten.

Einen anderen Aspekt betrifft die Daten selbst. Enthalten diese auch personenbezogene Inhalte, so müssen Sie die Änderungshistorie in Ihre Überlegungen zu diesem Thema ebenfalls mit einbeziehen. Neben der Zweckbindung ist besonders ein entsprechendes Löschkonzept von Nöten, welches auch diese Datenhistorie beachtet.

Werkzeuge wie das APEX Tool QuickSql bieten die Möglichkeit bei der Erstellung eines Datenmodells die Auditierung der Änderungen direkt zu berücksichtigen. Quick SQL erzeugt dazu eine Log-Tabelle, in der per Trigger der Quelldaten protokolliert werden. Allerdings fällt der Datenschutz dabei hinten rüber und muss manuell nachgerüstet werden.

Eine andere Möglichkeit Änderungen in APEX-Anwendungen zu protokollieren bietet das PlugIn Audit. Auch hier müssen Sie die Datenschutzaspekte manuell nachrüsten.

Abhängige Datenbankobjekte

Neben den Audit-Daten bleibt Ihnen zu prüfen, welche personenbezogen Daten von Ihrer Anwendung verarbeitet werden und wie diese zu behandeln sind. In APEX können Sie über das Utility Database Object Dependencies ermitteln, welche Tabellen Ihrer Anwendung zugrunde liegen.

Abbildung 3: Abhängige Datenbankobjekte

Neben der manuellen Prüfung der Tabellen bietet Oracle das Oracle Database Security Assessment Tool. Mit diesem Werkzeug können Sie neben der Prüfung der Sicherheit einer Datenbank auch gezielt nach personenbezogenen Daten suchen. Einen ersten Einstieg finden Sie in diesem Blog-Beitrag.

Cookies

Ein weiterer Punkt, der für APEX -Anwendungen zu beachten ist, finden Sie im Erwägungsgrund 30 der DSGVO. Hier wird darauf hingewiesen, dass auch Cookies personenbezogene Daten beinhalten können.

Da APEX für das clientseitige Session-Management Cookies verwendet, müssen Sie auch hier für Transparenz sorgen.

Betroffenenrechte

Die DSGVO räumt den Betroffenen umfangreiche Rechte ein. An dieser Stelle möchte ich nur ein paar Überlegungen dazu anstellen.

Recht auf Datenlöschung (Art. 17 DSGVO)

Betroffene haben das Recht Ihre personenbezogenen Daten Löschen zu lassen, wenn keine anderen rechtlichen Pflichten (z.B. Aufbewahrungspflicht) dagegen stehen. Alleine dieses Thema ist mindestens eine Beitragsreihe wert. An dieser Stelle möchte ich nicht auf die Erstellung eines Löschkonzeptes eingehen.

Als APEX-Entwickler geht es vielmehr darum, so ein Löschkonzept umzusetzen. Technisch lässt sich die Löschung über entsprechende delete-Statements lösen. Diese können natürlich auch zeitgesteuert ausgeführt werden oder Sie stellen den Anwendern eine entsprechende Funktion in der Anwendung zur Verfügung. Dies hätte den Vorteil, dass Sie dort vorab noch eine Prüfung durchführen lassen können.

Recht auf Berichtigung (Art. 16 DSGVO)

Dieser Punkt kann meiner Meinung nach in der Regel manuell über die gewohnten Seiten einer APEX Anwendung erfolgen.

Auskunftsrecht (Art. 15 DSGVO)

Diese Aufgabe ist schon aufwändiger. Gerade wenn die personenbezogenen Daten über verschiedene Bereiche der Datenbank erstrecken und auch die Audit-Logs berücksichtigt werden müssen. Für solche Fälle bietet sich meiner Meinung nach ein Selfservice-Ansatz an. Tragen Sie die Daten in Form einer oder mehrer Abfragen zusammen und bieten Sie den Anwendern diese über eine personalisierte Seite ( … where userid = :APP_USER) an.

Anders verhält es sich, wenn Sie in der Anwendung Daten Dritter verwalten, die selber keinen Zugang zu dem Programm haben. Hier kommen Sie nicht darum herum, eine Exportfunktion – z.B. über die Boardmittel eines Interaktiven Reports – vorzusehen. Mit so einem Ansatz erledigen Sie auch gleich das Recht auf Datenübertragbarkeit (Art. 20 DSGVO).

Sicherheit nach Stand der Technik

Die DSGVO weist darauf hin, dass Systeme nach aktuellem Stand der Technik sicher auszulegen sind. Auch dieses Thema ist uumfänglich zu erörtern, würde aber eher ein Buch als eine  Blog-Beitrag füllen. Aber ich möchte noch kurz auf einige wenige Punkte eingehen.

Sie sollten bei Thema Sicherheit einen ganzheitlichen Ansatz verfolgen. Sorgen Sie dafür, dass der komplette APEX-Stack sicher ausgelegt wird. Das fängt bei der Hardware inkl. Betriebssystem an, geht über die Datenbank und dem Web-Server hin zu APEX. Einige wenige Anregungen zum Thema Sicherheit und der Oracle-Datenbank finden Sie hier in dem Beitrag Oracle Datenbank härten..

APEX selbst bringt bereits vieles mit, um sichere Anwendungen zu erstellen. Die Verzögerungen bei fehlerhaften Anmeldungen gegen BruteForce-Attacken, Hashing der URL gegen URL-Tampering, das Escapen von Inhalten gegen Cross-Site-Scripting, Verwendung von Parametern gegen SQL-Injection und vieles mehr.

Allerdings sollten Sie auch die Kommunikation zwischen Client und Server via SSL Verschlüsseln. Dies wird gerade für offen zugängliche Web-Anwendungen explizit von der DSGVO gefordert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.