Motivation

Werbung
Privacy Protection in Relational Databases
Prof. Dr. Stefan Böttcher
University of Paderborn
Based on slides
compiled by Martin Hett
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
1 / 31
Motivation
Health_Co
Bluttest
Alice
Med_Care
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
2 / 31
1
Ziel
DBS zeichnet auf wer wann was mit welchen Daten
gemacht hat
Lösungsvorschlag: alle Ergebnistupel aufzeichnen.
hoher Speicherbedarf
Informationsgewinn nicht aus Ergebnis ablesbar
Besser: Anfragen aufzeichnen
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
3 / 31
System-Architektur
Audit-Ausdruck
Anfragen
Schreiboperationen
insert, delete,
update
AnfrageProtokoll
Motivation
verdächtige
Anfragen
AuditAnfragenGenerator
Audit-Anfragen (SQL)
Insert-Trigger
DBTabellen
Ziel
DBS
Delete-Trigger HintergrundDB
Update-Trigger
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
4 / 31
2
Middlewareschnittstelle
Anfrage
Zweck Benutzer
Middleware
Anfrage Benutzer Zeit
Schreiboperation
<erfolgreich> Zeit
AnfrageProtokoll
DBTabellen
Privacy Protection in RDB
-
HintergrundDB
Prof. Dr. Stefan Böttcher
-
DBS
SS 2005
5 / 31
Anfrage-Protokoll
• als Tabelle organisiert
• speichert alle Anfragen
Benutzer Zeit
Motivation
Ziel
SQL-Statement
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
6 / 31
3
Hintergrund-DB
Ziel:
DB-Zustand zu einem best. Zeitpunkt wiederherstellen
Problem: Zuwenig Speicher um jedesmal ganze DB zu kopieren
Lösung:
Nur Änderungen festhalten.
Implementierung: Intervallgrenzen für Gültigkeit angeben
A1
An
...
Motivation
Ziel
Logging
Privacy Protection in RDB
-
TS
TE
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
7 / 31
Insert-Trigger
• Fügt für jedes ‘insert‘ in Original-DB ein
neues Tupel in Hintergrund-DB ein.
A1
...
An
TS
TE
<new_a1>
...
<new_an>
<akt_Zeit>
'null'
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
8 / 31
4
Delete-Trigger
• Sucht das zu löschende Tupel und markiert es
als gelöscht.
A1
...
<old_a1>
...
Motivation
Ziel
An
TE
<old_an> <startZeit>
Logging
Privacy Protection in RDB
TS
-
<akt_Zeit>
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
9 / 31
Update-Trigger
• Markiert das bis jetzt gültige Tupel als gelöscht.
• fügt das neue Tupel in Hintergrund-DB ein.
A1
...
<old_a1>
...
<old_an> <startZeit>
<akt_Zeit>
<new_a1>
...
<new_a1> <akt_Zeit>
'null'
Motivation
Ziel
An
Logging
Privacy Protection in RDB
-
TS
TE
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
10 / 31
5
Audit-Ausdruck
Audit-Ausdruck
Anfragen
Schreiboperationen
insert, delete,
update
AnfrageProtokoll
Motivation
DBTabellen
Ziel
Trigger
Logging
Privacy Protection in RDB
-
verdächtige
Anfragen
AuditAnfragenGenerator
Audit-Anfragen (SQL)
HintergrundDB
DBS
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
11 / 31
Audit-Anfrage : Beispiel
Alice möchte wissen, ob ihr Name und ihre Adresse
zusammen mit ihrem Diabetes-Risiko weitergegeben wurden.
DURING
t1
AUDIT
name, adresse, diagnose
FROM
Bluttest
WHERE
name = ‘Alice‘
Motivation
Ziel
TO
Logging
Privacy Protection in RDB
-
t2
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
12 / 31
6
von Audit-Anfrage gehütetes
Geheimnis : Beispiel
Der Audit-Ausdruck selektiert folgende DB-Feld-Kombination
name
adresse
Alice
Paderborn
...
diagnose
...
Diabetis
Das dadurch beschriebene Geheimnis ist die Kombination aus
Name='Alice', Adresse='Paderborn' und Diagnose='Diabetis'
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
13 / 31
Unentbehrliches Tupel - Idee
• Ein (virtuelles) Tupel ist unentbehrlich für eine Anfrage Q,
wenn das Weglassen des Tupels das Ergebnis von Q
verändern würde
• Ein (virtuelles) Tupel ist unentbehrlich für eine Audit
Query A
(also wesentlich für das durch A beschriebene
Geheimnis)
wenn das Weglassen des Tupels das Ergebnis von A
verändern würde
• Ein für
Motivation
dasZiel
durch ALogging
beschriebene
Geheimnis Audit-Anfrage
Audit-Ausdruck
wesentliches
Tupel t, beeinflusst
das Ergebnis
von Q,14 / 31
Privacy Protection in RDB
Prof. Dr. Stefan Böttcher
SS 2005
wenn t für A und für Q unentbehrlich ist
7
Unentbehrliches Tupel
π…= Duplikate entfernt
π…= Duplikate behalten
• Ein (virtuelles) Tupel ν ∈ T ist unentbehrlich für
σPQ( T )) ,
eine Anfrage Q = πCQ(σ
wenn das Weglassen von ν das Ergebnis von Q
verändern würde:
ind(ν
ν,Q)
Motivation
Ziel
π CQ(σ
σPQ( T ))
ν } ))
≠ πCQ(σ
σPQ( T- {ν
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
15 / 31
Unentbehrlichkeit - DISTINCT
π…= Duplikate entfernt
π…= Duplikate behalten
• Ein (virtuelles) Tupel ν ∈ T ist unentbehrlich
für eine Anfrage Q = πCQ(σPQ( T )) ,
wenn es unentbehrlich für Q‘ = πCQ(σPQ( T )) ist.
Privacy Protection in RDB
-
Prof. Dr. Stefan Böttcher
-
SS 2005
16 / 31
8
Unentbehrlichkeit - Beispiel
Student:
hört:
Name MNr
Alice 123456
Kurs:
MNr
KNr
123456 0001
123456 0002
KNr
0001
0002
Titel
Mod
SWE
Q = πS.Name(σK.Semester=1( S |X| h |X| K ))
t1 = (0002, SWE, 1)
Semester
1
1
π…= Duplikate entfernt
unentbehrlich für Q ?
Ja, denn t1 ist unentbehrlich für Q‘
Q‘ = πS.Name(σK.Semester=1( S |X| h |X| K ))
Privacy Protection in RDB
-
Prof. Dr. Stefan Böttcher
π…= Duplikate behalten
-
SS 2005
17 / 31
Unentbehrlichkeit – Aggregation
• Ein (virtuelles) Tupel ν ∈ T ist unentbehrlich
für eine Anfrage Q mit Aggregation, wenn es
unentbehrlich für die aggregationslose Version Q‘ ist.
Q=
Q‘ =
SELECT name, avg(duration)
FROM Doctor d, Treatment t
WHERE d.did=t.did AND
disease=‘diabetes‘
GROUP BY name
Privacy Protection in RDB
-
SELECT name, duration
FROM Doctor d, Treatment t
WHERE d.did=t.did AND
disease=‘diabetes‘
Prof. Dr. Stefan Böttcher
-
SS 2005
18 / 31
9
Audit-Anfrage : Beispiel
Alice möchte wissen, ob ihr Name und ihre Adresse
zusammen mit ihrem Diabetes-Risiko weitergegeben wurden.
DURING
t1
AUDIT
name, adresse, diagnose
FROM
Bluttest
WHERE
name = ‘Alice‘
Motivation
Ziel
TO
Logging
Privacy Protection in RDB
-
t2
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
19 / 31
von Audit-Anfrage gehütetes
Geheimnis : Beispiel
Der Audit-Ausdruck selektiert folgende DB-Feld-Kombination
name
adresse
Alice
Paderborn
...
diagnose
...
Diabetis
Das dadurch beschriebene Geheimnis ist die Kombination aus
Name='Alice', Adresse='Paderborn' und Diagnose='Diabetis'
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
20 / 31
10
Benutzer-Query : Beispiel
SELECT
name, adresse
FROM
Bluttest
WHERE
diagnose=‘Diabetes‘ AND plz=‘33100‘
name
adresse
plz
Bob
Dörenhagen
33100
Diabetes
Alice
Paderborn
33100
Diabetes
Motivation
Ziel
Logging
Privacy Protection in RDB
-
diagnose
...
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
21 / 31
Benutzer-Query ist Candidate Query - Bsp.
Benutzer-Query umfasst alle Spalten der Audit-Query
name
adresse
...
...
diagnose
name
adresse
plz
...
diagnose
Bob
Dörenhagen
33100
Diabetes
Alice
Paderborn
33100
Diabetes
Alice
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
22 / 31
11
Candidate-Query
• Eine Anfrage Q ist eine candidate query
zu einem gegebenen Audit-Ausdruck A ,
wenn Q auf alle Spalten CQ zugreift,
die als Spalten CA in A vorkommen:
Q ist candidate Query für A
C A ⊆ CQ
Candidate Queries
können leicht durch statische Tests ermittelt
werden
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
23 / 31
Benutzer-Query ist verdächtig - Beispiel
1. Benutzer-Query umfasst alle Spalten der Audit-Query
2. Es gibt ein für beide Queries unentbehrliches Tupel
...
...
name
adresse
diagnose
Alice
name
adresse
plz
Bob
Dörenhagen
33100
Diabetes
Alice
Paderborn
33100
Diabetes
Motivation
Ziel
Logging
Privacy Protection in RDB
-
diagnose
...
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
24 / 31
12
Benutzer-Query ist verdächtig - Beispiel
name
adresse
plz
Bob
Alice
Paderborn
diagnose
...
33100
Diabetes
33100
Diabetes
Es gibt gemeinsames unentbehrliches Tupel:
candidate query ist verdächtig (=suspicious)
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
25 / 31
Verdächtige Anfrage
Eine candidate query Q ist verdächtig
bei einem gegebenen Audit-Ausdruck A,
wenn beide ein unentbehrliches (maximal
virtuelles)
Q ist candidate query
Tupel ν teilen:
suspicious(Q,A)
Motivation
Ziel
Logging
Privacy Protection in RDB
ind(ν,A) )
-
CA ⊆ CQ ^
Audit-Ausdruck
Audit-Anfrage
∃ ν : ( ind(ν,Q) ^
Prof. Dr. Stefan Böttcher
-
SS 2005
26 / 31
13
Anfrage-Erzeugung
Existiert gemeinsames unentbehrliches Tupel?
Selektionsbedingungen beider Anfragen verschachteln
Sicherstellen, dass gleiche DB-Sicht zugrunde liegt
Effizienz (kleinere Datenmenge für 2.Selektion)
Anfrage verdächtig, wenn Ergebnismenge nicht leer:
σA( σQ(Tτ)) ≠ Ø
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
27 / 31
Audit-Anfragen-Generator
• 3 Schritte:
1. Statische Analyse
ermittelt candidate queries
2. Zeitintervall-Prüfung
3. Verdächtigkeits-(Suspicious-)Test
Kombiniert candidate query und audit query
zu einzelner SQL-Anfrage
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
28 / 31
14
Statische Analyse
1. Vergleich der Attribut-Namen:
CA ⊆ CQ
2. DURING-Bedingung
τ ∈ [ t1 ; t2 ]
3. Widersprüche
es gibt kein gemeinsames
unentbehrliches Tupel
übrig bleiben: verdächtige Queries
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
29 / 31
Zusammenfassung
1. Anfragen aufzeichen
2. DB-Zustände wiederherstellen
3. Zu prüfende Daten spezifizieren
Audit-Ausdruck
4. Audit-Anfrage generieren
Verdächtige Anfragen erkennen
Candidate queries ermitteln
Gemeinsames unentbehrliches Tupel finden
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
30 / 31
15
Offene Fragen / Ausblick
• Externe Verknüpfung von Anfrage-Ergebnissen
• Verknüpfungen mit externen Daten
• Manipulation von Anfrage-Protokoll und
Hintergrund-DB
Motivation
Ziel
Logging
Privacy Protection in RDB
-
Audit-Ausdruck
Prof. Dr. Stefan Böttcher
-
Audit-Anfrage
SS 2005
31 / 31
16
Herunterladen