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