Populäre Filesysteme und ihre Sicherheitsprobleme

Transcription

Populäre Filesysteme und ihre Sicherheitsprobleme
Populäre Filesysteme und ihre
Sicherheitsprobleme
Dr. Johann Murauer
[email protected]
Inhalt
• Teil 1
– Aufbau Unix FS
– Aufbau NTFS
– Spezielle Features
• Teil 2
– Prinzipien der Sicherheit
• Teil 3
– Diskussion der Sicherheitsprobleme
– Schlussfolgerungen und Lösungsvorschläge
Sicherheitsprobleme bei Filesystemen
2
Unix
Sicherheitsprobleme bei Filesystemen
3
Unix FS - Aufbau
• Keine Norm, gleiches Prinzip
• Data Blocks: Vielfache eines Sektors,
– 512 Bytes 4 KB … 8 KB
– Größe der Inode - Liste wird beim Formatieren
festgelegt
Sicherheitsprobleme bei Filesystemen
4
Unix FS - Superblock
• Superblock (beschreibt das gesamte
Filesystem):
–
–
–
–
–
–
Größe des Filesystems
Anzahl und Liste der freien Blöcke
Nächste freie Block
Größe der Inode - Liste, Liste der freien Inodes
Nächster freier Inode
Modification Flags
Sicherheitsprobleme bei Filesystemen
5
Unix FS - Inode
• Inode
– Inode beschreibt genau ein File
– Owner des Files
– Type des Files (File, Directory, Link, Char/BlockDevice, pipe, socket)
– Zugriffsrechte (owner – group – world)
– Zeitangaben (last modified, last access)
– Anzahl der Hard-Links
– Filegröße
– Datenblöcke
Sicherheitsprobleme bei Filesystemen
6
Sicherheitsprobleme bei Filesystemen
7
Unix FS - Inode
• Inode – Beispiel (Inode: 64 - 128 Bytes)
– Data logischer Block auf Disk à 4 KByte
– 128 GByte Platte 32*1024*1024 Blöcke 25 Bit zur Darstellung der Blocknummer
– 12 direkte Blöcke 48 KByte Filegöße
– Ind 1 4 KByte 1024 Einträge à 32 Bit
• 1024 * 4 KByte == 4 MByte Filegöße
– Ind 2 1024 * 1024 * 4 KByte == 4 GByte
Sicherheitsprobleme bei Filesystemen
8
Unix FS - Directory
• Directories sind ganz normale Files!
• Wo ist der Filename?
• Wie wird ein File gefunden?
Sicherheitsprobleme bei Filesystemen
9
Sicherheitsprobleme bei Filesystemen
10
Unix FS - Links
• Hardlink
– Nur innerhalb gleichem Filesystem
– ln file_name link_name
• Softlink / Symbolic Links
– Eigentliches File auf beliebigen Filesystem
– ln -s file_name link_name
Sicherheitsprobleme bei Filesystemen
11
Das Unix Filesystem
Sicherheitsprobleme bei Filesystemen
12
Das Unix Filesystem
Sicherheitsprobleme bei Filesystemen
13
Eigenheiten
• Anzahl der Inodes ist fix
• In Unix häufig viele kleine Dateien ~ 4 KB
• Inodes-Listen sind die klassische Variante.
Andere wie JFS (IBM – AIX), XFS (SGI)
verwenden B-Bäume zum Speichern von
Metadaten.
Sicherheitsprobleme bei Filesystemen
14
NTFS
Sicherheitsprobleme bei Filesystemen
15
NTFS von Win NT / 2000 / XP
• MBR (BIOS Parameter Block) $Mft
• $Mft an beliebige Position auf der Disk
• $Mft vergleichbar mit Inode-Liste in Unix
Sicherheitsprobleme bei Filesystemen
16
NTFS - $Mft
• „Normales“ Files, kann in der Größe verändert
werden
• Records von je 1 KByte
• Jedes File besitzt mindestens 1 Record in der $Mft
– Mehrere Records Defragmentiert, viele Attribute
– Auch $Mft hat einen Record in $Mft
– Achtung:
• Hardlink, zusätzlicher Name
• Softlink, zusätzliches File
Sicherheitsprobleme bei Filesystemen
17
NTFS - $Mft
• Falls ein File relativ klein ist, werden die
Nutzdaten in $Mft gespeichert
• Record 0 bis Record 15 reserviert für NTFS
• Ab Record 16: Beliebige Files und
Directories
• Analyse mit speziellen Tools
– Nfi.exe (Microsoft)
– NTFSInfo.exe (www.sysinternals.com)
Sicherheitsprobleme bei Filesystemen
18
NTFS - $Mft
Sicherheitsprobleme bei Filesystemen
19
NTFS - Prinzipien
•
•
•
•
Alles außer dem Bootsektor ist ein File
Ein File ist eine Menge von Attributen
Attribut ist ein Tupel (Typ:Name, Daten)
Es gibt eine Anzahl vordefinierter Attribute
– Data, File Name, Extended Attribute, ....
• Ein Directory ist eine File, das aus
speziellen Attributen besteht
Sicherheitsprobleme bei Filesystemen
20
NTFS - Prinzipien
• Attribute sind frei wählbar (Experiment)
C:\>echo Das-kommt-in-MeinStream > test.txt:MeinStream
C:\>dir test.txt
19.02.2002 11:23
0 test.txt
C:\>echo Das-kommt-in-DefaultStream >> test.txt
C:\>dir test.txt
19.02.2002 11:24
29 test.txt
C:\>more < test.txt
Das-kommt-in-DefaultStream
C:\>more < test.txt:MeinStream
Das-kommt-in-MeinStream
Sicherheitsprobleme bei Filesystemen
21
NTFS - Prinzipien
• Kommandos (type / more / dir ...) und greifen
vielfach nur auf fixe Attribute zu
• Betriebssystem-Aufrufe ermöglichen Zugriffe auf
„beliebige“ Attribute
– NFTS liest / schreibt nicht Files sondern AttributeWerte
• Einige Attribute immer im $Mft, andere können
ausgelagert werden.
• Daten/Dir-Blöcke immer als B-Baum organisiert
Sicherheitsprobleme bei Filesystemen
22
NTFS - wichtige Attribute
•
•
•
•
•
•
•
•
•
•
$VOLUME_INFORMATON
$STANDARD_INFORMATION
$FILE_NAME
$SECURITY_INFORMATION
$DATA
$ATTRIBUTE_LIST
$OBJECT_ID
$REPARSE_POINT
$EA, $EA_INFORMATION
$LOGGED_UTILITY_STREAM
Sicherheitsprobleme bei Filesystemen
23
NTFS - Directory
• Residente Attribute:
Sicherheitsprobleme bei Filesystemen
24
NTFS - Directory
• Nonresidente Attribute
Sicherheitsprobleme bei Filesystemen
25
NTFS - Link zu Datenblöcken
• VCN --- Blocknummer 0 bis n
• LCN --- Clusternummer auf der Disk
• Eine zusammenhängende Anzahl von
Clustern wird als „Run“ bezeichnet
– Viele (kurze) Runs oder viele Attribute mehr
als ein $Mft-Record pro File
Sicherheitsprobleme bei Filesystemen
26
NTFS - Link zu Datenblöcken
Sicherheitsprobleme bei Filesystemen
27
NTFS - Links
• Hardlink
– Ein Record in der $Mft mit mehreren $FILE_NAME
– Zähler: Attribut $STANDARD_INFORM.
– Win 32 API: CreateHardLink()
• Softlink
– Eigenes File mit Attribut $REPARSE_POINT
– Verweis auf ein anderes File (über $ObjectID)
– Tool: www.sysinternal.com (junction.exe)
Sicherheitsprobleme bei Filesystemen
28
Filesysteme und Betriebssystem
Sicherheitsprobleme bei Filesystemen
29
Sicherheitsprobleme bei Filesystemen
30
Sicherheitsprobleme bei Filesystemen
31
Spezielle Features einiger FS
•
•
•
•
•
Streams
Sparse Files
Journaling
Transaktionen
Verschlüsselung
Sicherheitsprobleme bei Filesystemen
32
Sicherheit
Sicherheitsprobleme bei Filesystemen
33
Grundprinzipien der Sicherheit
• Verfügbarkeit
– Zuverlässigkeit durch Redundanz
– Verhinderung von DoD
• Authentizität
– Kryptographische Verfahren (MAC, verschlüsselte
Hashwerte)
• Vertraulichkeit
– Zugriffsrechte bzw. kryptographische Verfahren
Sicherheitsprobleme bei Filesystemen
34
Grundprinzipien der Sicherheit
• Probleme bei der Vertraulichkeit mit
Rechten
– Umgehung des Schutzes möglich
• Anderes Betriebssystem, anderer Rechner
• Zusätzliches Betriebssystem
– Lösungen
• Zugangs zum Rechner verhindern
• Festplatte verschlüsseln
• Files verschlüsseln
Sicherheitsprobleme bei Filesystemen
35
Grundprinzipien der Sicherheit
• Zugang zum Rechner verhindern
– Organisatorisches Problem
• Festplatte verschlüsseln
– Keine Aufgabe des Filesystems sondern des
Disk-Treibers
– Alle Benutzer können (potenziell) alle Daten
lesen keine Benutzertrennung
Sicherheitsprobleme bei Filesystemen
36
Grundprinzipien der Sicherheit
• Fileverschlüsselung
– Benutzertrennung
– Aufgabe des Filesystems
Verwendung von symmetrischen Blockcipher
• DES, TripleDES, IDEA, AES, ...
• Verschiedene Modi mit unterschiedlichen Vor- und
Nachteilen
Sicherheitsprobleme bei Filesystemen
37
Grundprinzipien der Sicherheit
• Sicherheit auf einem hohen Niveau lässt
sich in Filesystemen nur mit
Verschlüsselung erreichen
Sicherheitsprobleme bei Filesystemen
38
Praktische Probleme
Sicherheitsprobleme bei Filesystemen
39
Sym. Kryptoverfahren (ECB)
Sicherheitsprobleme bei Filesystemen
40
Sym. Kryptoverfahren (CBC)
Sicherheitsprobleme bei Filesystemen
41
Sym. Kryptoverfahren (OFB)
Sicherheitsprobleme bei Filesystemen
42
Sym. Kryptoverfahren, Modi
• ECB
– Aus Sicherheitsgründen nur bei kleinen Files
brauchbar
• CBC
– Aus Performancegründen bei großen Files
unbrauchbar
• OFB
– Praktikabler Kompromiss
Sicherheitsprobleme bei Filesystemen
43
Verschlüsselung
• Wo wird der Schlüssel und andere
Verwaltungsinformation gespeichert
(Algorithmus, Schlüssel-ID, MAC, …)?
– Fileheader / Filetrailer
– Datenbank
– In den Metainformationen des Filesystems
(Inode, $Mft, ...)
Sicherheitsprobleme bei Filesystemen
44
Verschlüsselung - Stufenverfahren
• Daten mit Random-DEK, DEK mit KEK_1,
KEK_2, … verschlüsseln
• Vorteile:
• Mehrer Benutzer können zugreifen
• Schlüsselwechsel einfach möglich
• Probleme
– Wo speichert man DEK und KEKs ?
Sicherheitsprobleme bei Filesystemen
45
Filegröße bei Verschlüsselung
• Richtige Filegröße inkl. Header etc.
– Backup usw.
• Nutzdatengröße
– Für Applikationen
• Kommandos ls / dir
– Was zurückgeben ?
– Woher weiß man, ob ein File verschlüsselt ist
oder nicht ? (DB, Fileanalyse, Meta-Daten, …)
Sicherheitsprobleme bei Filesystemen
46
Files ohne passenden Schlüssel
• Access Denied
– Aber: Backup etc.
– Was tun mit Metadaten: Filegröße, Zeiten, Namen, …
• Verschlüsselte Daten
– Applikation können stürzen
– In Sonderfällen erwünscht: Verhalten
anwendungsbezogen steuern
• FTP, Mail, Backup, …
• Problem: verlässliche Identifikation der Anwendung
Sicherheitsprobleme bei Filesystemen
47
Wie wird ein File spezifiziert
• Zweck: Festlegen, ob ein File verschlüsselt
sein soll oder nicht
• Benutzersicht
– Namensraum des Anwenders muss sich
eindeutig auf den Namensraum des Filesystems
abbilden lassen
• Links
• Reparse Points
• Mount Points
Sicherheitsprobleme bei Filesystemen
48
Wie wird ein File identifiziert
• Filename
– Aber: unterschiedliche Namenräume
(Benutzersicht / Filesystemsicht)
• Bsp: U:\home-jmu\miracl\*.txt Key_1
• Laufwerksbuchstaben
• Netzwerkzugriffe
• ObjectID
• FileID
Sicherheitsprobleme bei Filesystemen
49
Einschub: Filenamen NTFS
1.
2.
3.
4.
\Device\LanmanRedirector\;U:000000000000afe7\fserv01\homejmu\miracl\first.txt
\Device\LanmanRedirector\;U:0\fserv01\home-jmu\miracl\first.txt
\Device\LanmanRedirector\;U:0\fserv01\home-jmu\miracl\first.txt::$DATA
\Device\LanmanRedirector\;Q:000000000000afe7\fserv01\homejmu\miracl\first.txt
5.
6.
\Device\LanmanRedirector\fserv01\home-jmu\miracl\first.txt
\Device\LanmanRedirector\;U:000000000000afe7\fserv01\homejmu\miracl\FIRST.TXT\:Docf_ PebiesnrMkudrfcoIaamtykdDa:$DATA
7.
8.
\Device\nwrdr\;U:000000000000afe7\fserv01\home-jmu\miracl\first.txt
\Device\NetwareRedirector\fserv01\home-jmu\miracl\first.txt
9.
{4c8cc155-6c1e-11d1-8e41-00c04fb9386d}:$DATA
Sicherheitsprobleme bei Filesystemen
50
Netzwerkzugriff versus lokaler
Zugriff
• Unterschiedliche Philosophien
– Bei jedem Zugriff wird ver- bzw. entschlüsselt
• Daten gehen in Plain übers LAN
– Nur bei lokalem Zugriff wird ver- bzw.
entschlüsselt
• Daten gehen verschlüsselt übers LAN
• Kann man einen lokalen Zugriff immer verlässlich
von einem Netzwerkzugriff unterscheiden ? (Jein)
• Cachesynchronisation
Sicherheitsprobleme bei Filesystemen
51
Sondernbehandlungen für …
• Komprimierte Files
– Erkennung
– Zuerst komprimieren und dann verschlüsseln
– Falls dies nicht möglich sein sollte
(Treiberstack):
• Komprimierung verbieten
• „Nutzlose“ Komprimierung durchführen lassen
(aber: Performance!)
Sicherheitsprobleme bei Filesystemen
52
Sondernbehandlungen für …
• Sparse File
– Sie sollen sparse beleiben
• Pageing / Swap Files
– Immer mit einem systemweiten Schlüssel verschlüsseln
(nicht benutzerspezifischen Schlüssel)
• Temp. Files von Applikation
– Können interessante Daten enthalten
• Streams
– Welche Streams außer den „Hauptstream“ gehören
noch verschlüsselt?
Sicherheitsprobleme bei Filesystemen
53
Sondernbehandlungen für …
• Journaling
– Probleme ähnlich wie beim Swap File (keine
benutzerspezifische Keys wegen Reperatur)
– Werden sicherheitsrelevante Informationen
gespeichert? (ja, zumindest bei einigen)
• Transaktionen
– Kann ein Rollback
• eine Verschlüsselung aufheben ?
• eine Umschlüsselung rückgängig machen ?
• eine Verschlüsselung zerstören ?
Sicherheitsprobleme bei Filesystemen
54
Typische troublemakers
•
•
•
•
Backup – Programme
Replikationsprogramme
Virenscanner
Storage Management Applikationen
Sicherheitsprobleme bei Filesystemen
55
Behauptung
• Vorhanden Filesysteme, die
Verschlüsselung unterstützen, basieren
meist auf Filtertechnologie (Treiber über
andere Treiber).
• Dieser Ansatz ist ausgesprochen
problematisch.
– Informationen fehlen
– Verhalten nicht eindeutig spezifiziert
Sicherheitsprobleme bei Filesystemen
56
Was ist notwendig ?
• Definition der Aufgaben des FS (z.Z. alles
ad hoc – Entscheidungen) – ein RFC !!!
•
•
•
•
Netzwerkverkehr ?
Daten in Cache ?
Aktion bei Zugriffsverweigerung ?
Einfache Identifikation der Objekte (Files,
Applikationen)
• Filegrößen
Sicherheitsprobleme bei Filesystemen
57
Was ist notwendig ?
• Integration ins Betriebssystem
– Metadaten (inode, $Mft, ….)
•
•
•
•
•
•
•
Verschlüsselungszustand
Nutzdatengröße / gesamte Filegröße
Schlüsselbezeichnung
Komprimierungszustand
Sparsefile
Streams
Identifikation der Applikationen, die Daten verschlüsselt
erhalten sollen
Sicherheitsprobleme bei Filesystemen
58
Was ist notwendig ?
• Integration ins Betriebssystem
– Systemcalls
•
•
•
•
•
•
OpenCreate
Read
Write
Seek
Delete
…
– Die Implementierung der Systemcalls hat die
Sicherheitslogik zu enthalten bzw. Callback dafür
bereitzustellen. Dabei wird Metainformation
mitgegeben / ausgewertet.
Sicherheitsprobleme bei Filesystemen
59
Resümee
• Kryptographie ist das weitaus stärkste Glied der
Kette
• Kryptographie ist der unproblematischste Teil
• Systemintegration ist der Schwachpunkt
– Betriebs- und Filesysteme sind ohne Bedacht auf
Sicherheit jenseits von Rechten entworfen
• Keymanagent (Erzeugung, Speicherung,
Verteilung, Vernichtung, …)
Sicherheitsprobleme bei Filesystemen
60
Danke für Ihre
Aufmerksamkeit!
Sicherheitsprobleme bei Filesystemen
61