Table of Contents - Pages Crypto Strength Physical Layer Security Data Link Layer OWASP OWASP Compass OWASP Tutorial Data Leakage Prevention Symantec Report Anonymity / Tor VPN IKE DNSSEC NAC Buffer Overflows Smart Card Platform Trust Service WhiteHat Report Alte Prüfungsfragen Crypto Strength Random Numbers Tor DNSSEC VPN / IKE NAC/TNC Smart Card Buffer Overflows OWASP TPM Dirty Notiz-Export aus meinem OneNote (ohne Rechtschreibung/Layout). Keine Garantie für Korrektheit, vor allem im Bereich CAK/SAK ist eh alles Quatsch was hier steht ;-) [email protected] / fscala InfSi2_fscala Page 1 Crypto Strength Freitag, 22. Februar 2013 08:14 W01 Crypto Str... Audio recording started: 08:14 Freitag, 22. Februar 2013 Es ist wichtig das alle eingesetzten Crypto Algorithmen die gleiche Stärke besitzen. Das Ganze ist nur so sicher wie das schwächste Glied. Symmterisch 3DES-EDE 112 AES-128 128 CAMMELLIA-192 192 AES-256 Hash 256 MD5 64 128 Kollisionsattacke SHA-1 80 160 Kollisionsattacke in 2^60 möglich SHA-2_224 112 224 SHA-2_256 128 256 SHA-2_384 192 384 SHA-2_512 256 512 SHA-3? Key Exchange DH MODPDH ECP-192 96 DH ECP-224 112 DH ECP-256 128 DH ECP-384 192 DH ECP-521 560.5 Empfohlene Cryptostärke 2013 NSA Suite B CONFIDENTIAL 128 bit Vertrauliche Dokumente InfSi2_fscala Page 2 NSA Suite B CONFIDENTIAL Vertrauliche Dokumente NSA Suite B SECRET Geheime Dokumente 192 bit und 256 bit bei Encryption (AES, AES-GCM) Algorithm Key Size True Strength Bemerkung Symmetric Encryption AES (CBC oder Counter) 128 bit 128 bit • 192/256 für paranoide • Vermutung: Wahre Stärke von 256 bit eher gegen 192 bit • Keine Attacke für AES bekannt (schneller als BruceForce) Data Integrity (Hash) SHA-256 (SHA-2 oder SHA-3) 256 bit 128 bit • Key Size / 2 = 2 Stärke für Kollisionsattacke • SHA-3 aka Keccak • SHA-2 Schlüsselgrössen • 223, 256, 384, 512 • 512 benutzt 64-bit-Operationen (dh schneller als andere Sey Sizes auf 64-bit Systemen) Key Exchange Peers Diffie Hellman 3072 bit 128 bit Digital Signature RSA / DSA 3072 bit 128 bit 4096 bit für CA (root) Zertifikate Vorlesung: 2048 bit Public Key Encryption RSA / El Gamal 3072 bit 128 bit Vorlesung: 2048 bit User Password 13 char 78 bit Weiteres • • • • Twofish (war auch AES Kandidat) Blowfish (einiges schneller als AES) 3DES 112 bit stärke (Meet-in-the-middle Attacke) Camelia • MD5 nicht verwenden • SHA-1 2^80 bzw. 2^60 für kollision, nicht mehr verwenden Elliptische Kurven • Schwierig gute elliptische Kurven zu finden • NIST Kurven sind public domain (patentfrei) InfSi2_fscala Page 3 Theoretisch 22 Zeichen (base64) für 128 bit Sicherheit, jedoch schwer zu merken • NIST Kurven sind public domain (patentfrei) • Es hat sich lange niemand gewagt elliptische Kurven einzusetzen da ein Unternehmen mehrere Patente darauf angemeldet hat. Begriffe ECDSA Elliptic Curve Digital Signature Algorithm ECDH Elliptic Curve Diffie-Hellman ECIES Elliptic Curve Integrated Encryption Scheme (public key encryption) Motivation • RSA ist relativ langsam: Schlüssel Signaturen pro Sekunde Strength RSA 3072 32 128 ECDSA 256 546 128 RSA 8192 192 1 ECDSA 384 233 192 (Intel Core2Duo T9400, one core, 32-bit Linux OS) Authenticated Encryption with Associated Data (AEAD) Galois/Counter Mode (GCM) • • • • Operation Mode für AES Authentizität (Integrity) und Confidentiality sichergestellt Parallelisierbar Auch Authenticated Encryption genannt Wenn ohne Verschlüsselung : GMAC Übung • • • • • AES-128 etwa 12-13 Mal schneller als 3DES Performance von AES und Camellia proportional zur Anzahl Runden AES-NI Instruktionen neuerer CPUs Faktor 2-3 schneller SHA-2 384 Bit ist intern nichts weiter als 512 Bit Variante mit anderen IVs und truncated Output SHA-2 512 Bit Variante verwendete in der Übung intern 64 Bit Words und deshalb schneller auf x64 Platform als 256 Bit Variante die mit 32 Bit Words arbeitet • Keccak256 vs keccakc256 ○ Keccak256 schnelelr und konstante kryptographische Stärke • AES GCM overhead für Authentisierung (integrity) 8-10% ○ HMAC-SHA-256 overhead 70-90%, GCM aus Performancegründen! • Exponent beim Entschlüsseln mit RSA ist häufig grösser und deshalb langsamer als Verschlüsseln InfSi2_fscala Page 4 Physical Layer Security Freitag, 1. März 2013 08:02 Voice Scrambling Voice Pakete unterteilen (split) und deren Reihenfolge ändern.. Frequency Hopping Änhlich wie bei vielen Wireless-Systemen (z.B. Bluetooth). Auf verschiedenen Frequenzen Senden. • Früher oft in Militärsystemen (70er und 80er Jahre) • Die meisten Schemas auf Layer 1 basieren auf "security by obscurity" • Bietet heute kaum Sicherheit Qutantenkryptographie • Entangled Photons (verschränkte Photonen) sind sowohl vertikal wie horizontal polarisiert. • Sowohl Alice wie Bob erhalten ein solches Photon. Diese sind "gekoppelt". • Man wählt zufällig einen Filter aus Filter Sets und misst mit diesem zufällig entweder horizontal oder vertikal. • Das gekoppelte Photon von Bob liefert bei Messung mit demselben Filter das gleiche Ergebnis. • Man verwirft alle gemessenen Photonen bzw. deren Messung wo nicht derselbe Filter wie von der Gegenpartei verwendet wurde. Al so ca 50% der Messungen/Photonen. • Mit den Photonen wird lediglich der Schlüssel ermittelt. Die restliche Verschlüsselung läuft herkömmlich ab. • Distanz dieses Verfahrens ist sehr limitiert (20-50km) nicht sehr Praxistauglich. BB84 - Quantum Key Distribution Protocol • Höhere Reichweite, durch Glasfaser limitiert. (über 140km mit decoys) • Alice sendet immer wieder Photonen aus (entweder horizontal oder vertikal moduliert). • Bob misst diese per Zufallsprinzip entweder horizontal oder vertikal • • • • Alice übermittelt Bob die Modulationsart der verschickten Photonen Bob übermitteln Alice die Messungsart der Empfangenen Photonen Beide verwerfen diejenigen Messungen die nicht auf derselben art erstellt/gemessen wurden Ca. 50% der Messungen bleiben übrig • Photonen klonen (splitten) ist zwar nach der Messung (sniffen) möglich, doch Eve weiss nicht wie Bob messen wird/würde und so mit würden ca. 50% der Photonen die bei Bob ankommen falsch sein. • Falls zu viele solche "falschen" Photonen empfangen werden wird die Kommunikation über einen anderen Kanal neu initiiert da d ie Sicherheit nicht gewährleistet werden kann. Photon Splitting Attacks • Bei BB84 wird mit 1 Photon pro Bit gerechnet • Viele solche Laser verschicken aber häufig sehr kleine Mengen an Photonen ○ z.B. 0.2 pro Puls, oder 1 (gewünscht) oder manchmal auch 2 oder mehr • Eve kann diejenigen mit 2 (oder mehr) splitten ○ Eines für sich behalt ○ Das andere an Bob weiterleiten • Dann warten bis Alice die Modulationsart preisgibt und das behaltene Photon messen Gegenmassnahme InfSi2_fscala Page 5 Gegenmassnahme • • • • Alice verschickt absichtlich sogenannte decoy states mit mit einem anderen power level Eve weiss nicht welche Pulse decoys sind Alice verrät am Schluss welche Pulse decoys waren Die decoys geben dann Aufschluss darüber ob Photonen gesplittet wurden Schlüsselmaterial / Random Numbers TLS und MAC / HMAC • Sicherstellung Authentizität (Integrity) • Signatur MAC Message Authentication Code HMAC Keyed-Hash Message Authentication Code • Sicherheit basierend auf verwendetem secret • Secret sollte mindestens so lange wie hash value (z.B. 128 bit bei MD5, 160 bei SHA-1) • Keinen Rückschluss auf Message möglich sofern keine Schwachstellen im Hash Algorithmus Jede TLS Verbindung braucht zufälliges Schlüsselmaterial um eine möglichst hohe Entropie zu erreichen. Pseudo Random Function anhand einer HMAC PRF_MD5(secret, seed) Secret Seed Startwert, meist öffentlich Sollte man mehr Schlüsselmaterial brauchen nimmt man den Output und verwendet es wieder als Seed Schlussendlich wird nochmals gehasht um die internen Zustände nicht mehr nachvollziehen zu können und potentiell dasselbe Schlüsselmaterial erneut generieren könnte. "Verdünnen von Schlüsselmaterial", analog Kaffeemaschine/Kaffeepulver? Wissen was eine PRF ist, die genauen Algorithmen nicht TLS InfSi2_fscala Page 6 immer 48 byte lang Pre-Master Secret wird von Client generiert und via Server public-key (RSA) an den Server übermittelt • Server entschlüsselt Pre-Master Secret mit seinem private Key ○ Mit DH: DH um Pre-Master Secret zu ermitteln • Beide Parteien generieren mit PRF den Master Secret Schlüsselmaterial • Master Secret dient als Entropiequelle (sollten 48 bytes echte Entropie sein) • Server und Client Random dienen als unverschlüsseltes Salt Session Resumption • Gleiches Master Secret verwenden • Neue Client Random und Server Random (Server Hello, Client Hello) Werte verwendet um neues Schlüsselmaterial zu generieren. Wahre Zufallszahlen Key Stroke Timing • 1-2 Bit pro Tastaturschlag • Die vom User eingetippten Tasten sind zwar nicht besonders zufällig und haben eine niedrige Entropie, doch der Abstand zwischen den Tastenschlägen (in millisekunden oder genauer) ist relativ zufällig. Mouse Movements • Entropie des Materials schwer abzuschätzen da potenziell immer die gleichen Bewegungen ausgeführt werden Sampled Sound Card Input • Gefahr von Totalausfällen • Mehrere LSB pro Abtastwert sind verrauscht und können verwendet werden Air Turbulence in Disk Drives • Bis zu 100 Bit/min • Sehr gute Quelle RAID Disk Array Controllers • Timing Informationen Network Packet Arrival Times • 1-2 bit pro Packet • Eher schlecht das diese von aussen durch Einspeisen von Paketen manipuliert werden könne • Oftmals einzige Entropiequelle bei Disk- und Keyboardlosen Systemen (Firewalls, etc.) Computer Clocks • Weniger Entropie als man denkt, da Clockregister nicht bei jedem Tick aktualisiert werden Serial Numbers • Sollten nicht verwendet werden (Erraten, Brute-Force) Linux nimmt verschiedene Quellen und mischt sie in den Entropie Pool /dev/random Achtung: Man muss erkennen ob z.B. eine Soundkarte aktiviert ist, sonst liefer es immer 0 oder 1, dann hat man eine Nullentropie Möglichst viele Quellen nehmen und diese hashen. Mach den Bias weg Egal mit welcher Quelle, muss laufend eine Abschätzung des vorhandenen Entropiehaltes getätigt werden um Totalausfälle zu ver meiden! Hashing erhöht verbessert statistische Eigenschaften, jedoch nicht die Entropie! Hardware Based Quanten oder Radioaktive Quellen • Meist gross und teuer Thermal Noise Quellen (Sound) InfSi2_fscala Page 7 Metastable Oscilliators Lava Lampen • Neue Ivy Bridge Intel CPUs haben einen on-chip • Gute Entropie • evtl. Absprachen mit NSA? • 500+ MB/s • RDRAND Instruktion: (16, 32 oder 64 bit random value) • Periodisch Bilder der Lava Lampe erstellen Übung • RSA/ECDSA Schlüssel sind langlebig, volle Entropie ist zu empfehlen • Für Key Exchange reicht ein guter PRNG • Für Encryption mit AES-CBC 128 reicht ein PRNG, wobei vor allem der IV unvorhersehbar sein muss um Attacken zu verhindern Tests zur Prüfung von Zufallsmaterial FIPS Tests: Monobit Tests • Anzahl 0 und 1 zählen, sollten ca. 50:50 sein Poker Test • Zufallsmaterial in 4er Blöcke teilen, es müssten möglichst alle 4er (16 Bit Werte) in gleicher Anzahl vorkommen Runs Tests • Lauter aufeinanderfolgende 0en oder 1en auf dessen Plausibilität prüfen (Wahrscheinlichkeit das dies eintrifft bei gegebener Länger, wobei jedes weitere Bit die Wahrscheinlichkeit halbier) Long Runs Tests • Es dürften nicht mehr als x (bestimmte) Anzahl aufeinanderfolgende 0en oder 1en vorkommen Sagen nur etwas über die statistische Verteilung jedoch nichts über deren tatsächlichen Zufälligkeit aus NIST 800-22 Test Suite Testsuite die mehrere Tests enthält Ueli Maurer Universal Statistical Test Quellen auf Linux: /dev/random • Wahre Entropie aus verschiedenen Quellen • Werden vor dem Einarbeiten in die Quelle XORed • Bei der Herausgabe gehasht /dev/urandom • Dasselbe wie random jedoch nicht blockieren (u=unblocked) • Gibt auch Zufallsmaterial wenn die geschätzte Entropie auf Null fällt Vorhandene Entropie kann via /proc/sys/kernel/random/entropy_avail abgefragt werden, ist jedoch nur eine Schätzung. Falls die se Schätzung auf Null fällt blockiert /dev/random Audioinput • Audiobits direkt abgreifen mit Bias behaftet (z.B. mehr Nullen als Einsen) • Bias kann mit John von Neumanns Methode beseitigt werden ○ 00 verwerfen ○ 11 verwerfen ○ 10 wird zu 1 ○ 01 wird zu 0 • Alternativ Bias durch Hashing wegmachen InfSi2_fscala Page 8 Data Link Layer Freitag, 8. März 2013 07:29 Secure Device Identity (DevID) Secure Device Identifier Initial Device Identifier Logically Significant Devide Identifier Bereits mit der Hardware mitgeliefert (ROM) kann nicht überschrieben werden. DevID Modul • • • • • Hardware Modul welches die DevID Secrets, Credentials und Zertifikate bis zur Root speichert. Enthält einen starken Random Generator (RNG) Implementiert asymmetrische Verschlüsselung (2049 bit RSA und/oder 256 bit ECDSA) Implementiert SHA-256 Hash Funktion z.B. Anwendung bei EAP-TLS Authentisierung (nicht User sondern Device) Slide 8 Media Access (MAC) Layer Security • Verschlüsselung muss effizient sein aufgrund häufigem rekeying • Benutzer werden in Gruppen (Connectivity Association) zusammengefasst CAK Connectivity Assoiciation Key, statischer Key CA Connectivity Association InfSi2_fscala Page 9 CA Connectivity Association SC Secure Channel SAK Secure Association Key SAKs wechseln häufig, pro Secure Channel. • Channel sind gerichtet und jeder besitzt seinen eigenen Schlüssel • Alle Pakete enthalten den Channel und den entsprechenden Schlüssel der zur Entschlüsselung verwendet werden soll • Wechsel zwischen Schlüssel ist overlapping, dh es sind kurzzeitig beide aktiv ○ Association Number (2 bit) gibt an ob der neue oder alte Schlüssel verwendet wurde Connectivity Association bedeutet das jeder alle Pakete lesen kann? Q: Warum besitzen CAK/SAK 128 bit? A: AES Counter Mode Sonderfall: Peer to Peer MKA MACsec key agreement Defined in IEEE 802.1X-2010, MKA is a key agreement protocol for discovering MACsec peers and negotiating the keys used by MACsec. SAP Security Association This pre-standard key agreement protocol is similar to MKA. Protocol MSK Master session key Generated during the EAP exchange, the MSK is used to generate the CAK. CAK Connectivity association key Derived from the MSK, the CAK is a long-lived master key that is used to generate all other keys needed for MACsec. InfSi2_fscala Page 10 SAK association key generate all other keys needed for MACsec. Secure association key Derived from the CAK, the SAK is the encryption key used to encrypt traffic for a given session. From <http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6586/ps6638/deploy_guide_c17-663760.html> InfSi2_fscala Page 11 OWASP Sonntag, 4. August 2013 12:36 OWASP Open Web Application Security Project • Non-Profit Organisation • Teilnahme Kostenlos und offen für alle WebScarab • Proxy für Pentesting Zwecke • Erlaubt Abfangen/Umschreiben von HTTP und HTTPS Trafic • Man In The Middle (MITM) WebGoat • Absichtlich unsicher-programmierte Webappikation zu Übungszwecken • J2EE ESAPI Was Wo Beschreibung Clickjacking Browser • Links, Buttons etc werden überdeckt • Veranlasst Benutzer Mausklicks und/oder Tastatureingaben durchzuführen • Beispiel Flash Player Konfiguration überdecken und Benutzer veranlassen Webcam und Mikrophon freizugeben XSS Browser CSRF Browser Forged Token Auth Service Direct Object Reference Access Control Directory Traversal Webserver SQL Injection Database XML Injection Webservice Packet Sniffing Kommunikation Parameter Tampering Kommunikation Insufficent Transport Layer Protection • Benutzer klickt immer "yes, continue.." • Downgrade Attacks • MITM, Parameter so verändern das schlechtere Cipher Suites vereinbart werden • Danach brute-force Entschlüsseln • Rogue Administratoren • Verbindung zwischen eigenen Servern/Physical tiers sichern Häufigkeit XSS 55% InfSi2_fscala Page 12 • SSL/TSL/IPSEC verwenden • Secure flag auf Session Cookies setzen • Mixed SSL vermeiden (static Data ohne SSL) • Zertifikate sind: • Nicht abgelaufen • Korrekter CN • Nicht revoked • Trusted (CA) • Evtl. EV für green bar in Browser • Min. 2048 bit für key exchange • Min. 256 bit für Verschlüsselung XSS 55% Information Leakage 53% Content Spoofing 36% Insufficent Authorization 21% CSRF 19% Brute Force 16% Predictable Resource Location 12% SQL Injection 11% Session Fixation 10% Insufficent Session Expiration 10% Window of Exposure 2010 • Finanzsektor und Banksektor selten • IT, Bildungssektor und Social Networks sehr häufig Repetition CIA Beschreibung In Webapplikationen Cofidentiality • Vertraulichkeit • Session Fixation: Login • SQL Injection: Read/Dump • SQL Injection: Bypass Auth • XSS: Session Hijacking Integrity • Echtheit • SQL Injection: Modify • XSS: Modify Availability • Verfügbarkeit • (D)DoS • SQL Injection: Delete • XSS: Redirect Risk Rating InfSi2_fscala Page 13 OWASP Risk Rating Methode soll helfen den Schweregrad (severity) der Risiken abzuschätzen. Es ist dabei sehr wichtig das Business gut zu kennen. Viele Risiken mögen aus technischer Sicht extrem hoch und gefährlich erscheinen, haben jedoch minimalen impact auf das Business und dessen Finanzen. Threat Agent Individuum oder Gruppe welche eine Gefahr darstellen/ausnutzen könnten Non-Target Specific Viren, Würmer, Trojaner, etc. Employees Mitarbeiter, Reinigungs-/Sicherheits-/Wartungspersonal Organized Crime Kriminelle die Geld machen wollen (Bankkonten, etc). Oft über Insider Corporation Partner, Konkurrenz Human Unintentional Unfälle, Unsorgfältigkeit Threat Agent Factor Human Intentional Insider, Outsider Natural Flut, Brände, Stürme, Blitze, Meteoriten, Erdbeben, etc. • Skill Level: Wie hoch sind die Skills der Threat Agents? 1 Keine technischen Skills 3 Einige technische Skills 4 Poweruser 6 Programmier- und Netzwerkskills 9 Pentesting Skills • Motiv: Wie motiviert sind die Threat Agents? 1 Kaum oder keine Belohnung 4 Mögliche Belohnung 9 Hohe Belohnung • Opportunity: Welche Möglichkeiten/Gelegenheiten sind nötig? 0 Voller Zugriff oder teure Ressourcen nötig 4 Spezieller Zugriff oder Ressourcen nötig 7 Einige Zugriffe und Ressourcen nötig 9 Kein Zugriff oder Ressourcen nötig • Size: Welche Grösse hat der Threat Agent? Vulerability Factors 2 Entwickler 2 System Administrator 4 Intranet Benutzer 5 Firmenpartner 6 Authentifizierte Benutzer 9 Anonyme Internet Benutzer • Ease of discovery: Wie einfach ist es die Lücke zu entdecken? 1 Praktisch unmöglich InfSi2_fscala Page 14 1 Praktisch unmöglich 3 Schwierig 7 Einfach 9 Automatisierte Tools stehen zur Verfügung • Ease of exploit: Wie einfach ist es die Lücke auszunutzen? 1 Nur theoretische Attacke 3 Schwierig 5 Einfach 9 Automatisierte Tools stehen zur Verfügung • Awareness: Wie Bekannt ist die Lücke? 1 Unbekannt 4 Versteckt 6 Offensichtloch 9 Öffentlich bekannt • Intrusion detection: Wie wahrscheinlich ist eine Attacke auf das System zu bemerken? Impact Factors (Technical Impact) 1 Feststellung in Applikation 3 Logging und reviews dessen 8 Logging ohne reviews 9 Kein Logging • Loss of confidentiality: Wieviel Daten werden preisgegeben und wie sensibel sind diese? 2 Wenig nicht-sensible Daten 6 Wenig sensible/kritische Daten 7 Viel sensible/kritische Daten 9 Alle Daten • Loss of integrity: Wieviel Daten werden beschädigt und/oder modifiziert? 1 Wenig leicht korrupte Daten 2 Wenig schwer korrupte Daten 5 Viel leicht modifizikorrupte erte Daten 7 Viel schwer korrupte Daten 9 Alle Daten komplett korrupt • Loss of availability: Welche Dienste werden wie beeinträchtigt? 1 Wenig sekundäre Dienste 5 Wenig primäre Dienste 5 Viele sekundäre Dienste 7 Viele primäre Dienste 9 Alle Dienste • Loss of accountability: Inwiefern sind die Handlungen und Threat Agents nachvollziehbar/zurückverfolgbar? Impact Factors (Business Impact) 1 Komplett zurückverfolgbar 7 Unter Umständen zurückverfolgbar 9 Komplett Anonym • Financial damage: Wie hoch sind die Finanziellen Auswirkungen? 1 Kaum Auswirkung auf den Gewinn 2 Wenig Auswirkungen auf den Gewinn 7 Grosse Auswirkungen auf den Gewinn 9 Bankrott • Reputation damage: Welche Auswirkungen gibt es auf das Image/Ruf? 1 Wenig Auswirklungen 4 Verlust vieler Kunden 5 Verlust des Firmenwerts (Goodwill?) 9 Schaden der "Brand" (Marke) • Non-compliance: How much exposure does non-compliance introduce? 2 Minor violation 5 Clear violation 7 High profile violation • Privacy violation: Wieviel persönlich identifizierbare/zuordenbare Daten werden preisgegeben? 3 Eine InfSi2_fscala Page 15 5 Hunderte 7 Tausende 9 Milionen Enterprise Security API (ESAPI) OWASP Enterprise Security API ist eine open-source Library für Webapplikationen welche die Entwicklung sicherer Applikationen erleichtern soll. SDLC • Software Development Lifecycle • Security Development Lifecycle OWASP Testing Framework Phase 0 Vor der Entwicklung • Sicherstellen das ein SDLC vorhanden ist das Wert auf Sicherheit legt • Sicherstellen das Regeln/Grundsätze und Standards im Entwicklungsteam vorhanden sind • Metriken und Kriterien festlegen (traceability sicherstellen) Phase 1 & 2 Definition und Design • Sicherheitsanforderungen festlegen • User management, Passwörter, Auth., Accountability, Session Management, TLS, etc. • Design und Review der Architektur • Design und Review von realistischen Angriffsszenarien Phase 3 Während der Entwicklung • Code Reviews • CIA • OWASP Top 10 • BSI, etc. Phase 4 Während der Entwicklung • Pentesting • OWASP Testing Framework Phase 5 Wartung • Review des Applikationsbetriebs • Periodische "health checks" der Applikation • Change verification sicherstellen (Änderungen an Applikationen ist genehmigt) InfSi2_fscala Page 16 OWASP Compass Sonntag, 4. August 2013 14:23 InfSi2_fscala Page 17 OWASP Tutorial Donnerstag, 22. August 2013 18:35 Security Principles Input is Evil • Benutzereingaben gelten generell als böse und sollte immer vor Weiterverarbeitung validiert werden TOCTOU • Time of Check vs. Time of Use • Immer daran denken, dass obwohl die Benutzereingaben validiert wurden, diese evtl. erst zu einem viel späteren Zeitpunkt verwendet werden. Falls der Benutzer in diesem Zeitintervall Zugriff oder Kontroller über das Programm hat ist die Eingabe wieder potentiell gefährlich. Dynamic • Die Welt ist dynamisch und nicht statisch. Sie ändern tagtäglich und es kann zu jederzeit eine Threat neue Sicherheitslücke oder potentielle Gefahr enstehen. Environmen • Nur weil ein System in der Vergangenheit einmal sicher war, heisst nicht dass dies jetzt noch der Fall ist. t A1 Injection • Invalide Operationen werden nicht von validen unterschieden Risiken • • • • • • Denial of Service Lack of Accountability Disclosing Sensitive Information Data Loss / Corruption Complete Takeover Nur durch Möglichkeiten des Parsers limitiert Auftreten • • • • • SQL, JavaScript/HTML. LDAP, XPath, XSLT Single Quote ' bei SQL \0 byte bei C-Style String < und > bei HTML, XML, SGML Semikolon ; in ALGOL und andere Programmiersprachen Schutzmassnahmen Block list • SQL Kommentare --, HTML Tags, etc. verbieten Allow list • Nur GET wobei Parameter id eine Ganzzahl sein muss • Optional negativ, nur 12 Zeichen, … • Durch Regex einschränken Escaping • Alle gefährlichen Zeichen escapen (z.B. &lt; und &gt; für HTML < >) A2 Cross-Site Scripting (XSS) Typen Reflected • Injizierter Code ist in der URL in einem Parameter • Server gibt diesen Parameter ohne validierung/escape auf der Seite wieder aus • Präparierte URL weitergeben • Oft bei Search Engines der Suchstring "Es gabt x Resultate für y:" wobei y reflektiert wurde Persistent • Code wird in einer Datenbank perisitiert (z.B. ein Gästebucheintrag) und beim Aufruf wieder InfSi2_fscala Page 18 Persistent • Code wird in einer Datenbank perisitiert (z.B. ein Gästebucheintrag) und beim Aufruf wieder ausgegeben DOM-based • Code geht nicht über den Server sondern wird durch eine Lücke im Client-Code injiziert • Ajax, JSONP/Webservices • Referrer wird auf der Seite ausgegeben • Browser-Lücken selbst Schutzmassnahmen Block list Allow list Escaping • Alle gefährlichen Zeichen escapen (z.B. &lt; und &gt; für HTML < >) A3 Broken Authentication and Session Management • Session IDs stellen halbwegs öffentliche Informationen dar und sollten bei Diebstahl kein grössere Problem darstellen Requirements Credentials sind immer gschützt • Hash mit Salt • Niemals Klartext speichern • Evtl. sogar noch verschlüsseln Starke Passwörter voraussetzen • Bestimmte Passwort-Komplexität voraussetzen • z.B. mindestens 3 von 4 Merkmalen (Kleinbuchstaben, Grossbuchstaben, Sonderzeichen, Ziffern) • Mindestlänge Session IDs nicht in der URL • Niemals Redirects mit Session ID in der URL • Können via Referrer gelesen werden Session IDs werden bei Authentisierung neu erstellt • Für jeden Login eine neue Session ID • Verhindert Session Fixation Attacken wobei der Benutzer mit einer präparierten URL aufgefordert wird eine Session ID zu Authentisieren die der Angreifer zuvor erstellt hat und ihm somit bekannt ist. Session ID kryptographisch • Kein erraten der Session IDs zufällig Session IDs nur von Cookies • Keine URL Session IDs akzeptieren Automatisches Logout nach • Nach längered Inaktivität die Session invalidieren inaktivität CAPTCHA verwenden • Gegen Brutce-Force/Bot Attacken auf Logins • Person von Maschine unterscheiden • z.B. nach 3 fehlgeschlagenen Logins zusätzlich ein Captcha anfragen Schlechte Session IDs In URL gespeichert Persistente Cookie • Auch nach neustart des Browsers vorhanden • Nichtpersistente werden vom Browser wieder gelöscht Form Variablen • Können via JavaScript ausgelesen werden Nicht HttpOnly Cookies • Können via JavaScript ausgelesen werden Ausnahme Optimierung: • Bei Hochskalierbaren Architekturen kann die zufällige Session ID durch ein verschlüsseltes Token InfSi2_fscala Page 19 • Bei Hochskalierbaren Architekturen kann die zufällige Session ID durch ein verschlüsseltes Token errechnet aus diversen Faktoren (User ID, Timestamp, etc.) verwendet werden welches andere Server ebenfalls entschlüsselt können. A4 Insecure Direct Object References • Server validiert nicht ob der Client Zugriff auf das Objekt (Link/URL) besitzt ○ Beispielsweise das Profil eines Benutzers lediglich durch Ersetzen eines ID Parameters in der URL ○ Files, Filenamen ○ Table Rows ○ … A5 Cross-Site Request Forgery • Benutzeraktion kann durch einen andere im Namen des ursprünglichen ausgeführt werden ohne das die Webapplikation davor schützt • Beispielsweise wird eine HTML E-Mail mit einem IMG Tag verschickt welches auf eine präparierte URL zeigt die etwas im Namen (mit der Session) des Benutzers ausführen soll. ○ z.B. <img src="foo.bar.ch?action=delete&id=33" …> Risiken • • • • • Elevation of privilege Denial of Service Spoofing Tampering Repudiation (dict: Zurückweisung, Nichtanerkennung, Verstossung, Ableugnung, Ablehnung) Schutzmassnahmen Nonce • Nonce (Kryptographisch zufälliges Token) wird dem Client zurückgegeben • Client muss sich beim nächsten Request wieder mit dieser ausweisen • Bei jedem Request eine neue Nonce • Nachteil: Alle Noncen müssen auf dem Client zwischengespeichert werden HMAC • Verschlüsselter bzw. "keyed" Hash von einer Seite kombiniert mit der User ID/Session ID • Sollte noch einen Timestamp enthalten damit bei Besuch derselben Seite nicht derselbe HMAC entsteht und wiederverwendet werden kann • Wie ein Salt muss auch der Timestamp auf dem Server Zwischengespeichert werden um einen Vergleich zu ermöglichen • Keine GET Parameter für Aktionen, Formulare etc. verwenden (erschwert CSRF erherblich) • HMAC/Nonce ebenfalls nicht in der URL exposen A6 Security Misconfiguration • • • • • Fehlende Patches, Fixes, … Fehlkonfigurierte oder deaktivierte Sicheheitsfeatures (z.B. TLS) Default Account/Credentials Ungebrauchte Services/Features sind aktiv Administrative Backdoors Schutzmassnahmen • Alle verwendeten Komponenten untersuchen ○ Herstelleseite ○ Security-Seiten Security Mailing Lists InfSi2_fscala Page 20 ○ Security Mailing Lists ○ … • Reviews der Konfiguration • Reviews der laufenden Services und Features • Prozess periodisch wiederholen oder wenn sich etwas am Deployment oder der Konfiguration ändert A7 Insecure Cryptographic Storage • • • • • • Sensible Daten werden nicht verschlüsselt Unsalted Hashes Unsichere Schlüsselgenerierung Unsichere Schlüsselhaltung Schlüssel werden nicht rotiert Schlechte Kryptographie (schlechte oder eigene Algorithmen) Schutzmassnahmen • • • • Komplexe Schlüssel Generierung mittels RNG mit hoher Entropie Speicherung in Datenbank, nicht im Code Mehrere Schlüssel verwenden, evt. aufteilen (Wieviel Daten kann ein einziger Schlüssel entschlüsseln?) A8 Failure to Restrict URL Access • • • • Keine Zugriffskontrolle auf bestimmter URL Zugriffskontrolle via verstecken bzw. nicht preisgeben von URL Brute-Force Sniffing… Risiken • Funktionen und Services werden aufgerufen wofür sie nicht autorisiert sind • Daten anderer Benutzer werden geleakt • Sonstige privilegierte Aktionen werden ausgeführt Schutzmassnahmen • Für jede URL ○ Zugriff auf authentisierten und autorisierten Benutzer einschränken ○ User oder Rollenbasierte Permissions ○ Zugriff auf unautorisierte Seiten komplett/immer verbieten (Konfigurationen, Logfiles, Code, …) • Architektur verifizieren ○ Auf jedem Layer einen Schutzmechanismus ○ Policy-basiert, keine Hardcodierten Dinge • Implementation verifizieren ○ Testen durch Aufruf der URLs, Konfigurationen, etc. A9 Insufficent Transport Layer Protection • SSL/TLS wird nicht oder falsch/ungenügend sicher verwendet • Sniffen von übertragenen Daten, Credentials, Session Ids Schutzmassnahmen • IPSec oder SSL/TLS verwenden ○ Und zwar überall wo nötig (Auth, oder so Session IDs/Cookies mitgegeben werden) • Secure Flag bei Session ID Cookies setzen • Mixed SSL vermeiden (Content sowohl von TLS wie auch Plaintext Sourcen) InfSi2_fscala Page 21 • Mixed SSL vermeiden (Content sowohl von TLS wie auch Plaintext Sourcen) • TLS oder IPSec auch zur Kommunikation mit der Datenbank/Backend • TLS Zertifikate sind gültig ○ Nicht abgelaufen ○ Korrekter CN ○ Nicht revoked ○ Trusted durch CA • Optional Extended Validation Zertifikat (Bestätigt zudem die Person hinter der Seite statt nur die URL) • Nur starke Algorithmen verwenden ○ 2048 Bit Key Exchange ○ 256 Bit Symmetrische Verschlüsselung A10 Unvalidated Redirects and Forwards • Unvalidierte Forwards erlauben das fälschen einer Seite. • Redirect an externe/böse Seite nach einem erfolgreichen Login auf der korrekten Seite • Phishing Seite leiten an echte Seite weiter für Login um dann wieder zur Phishing Seite zu Redirecten via URL Parameter Risiken • Komplettes fälschen eine Seite für Phishing Attacken • Bypassed authrozation checks durch redirection URL (falls diese nicht geprüft wird sondern einfach der Content dahinter exposed wird) Schutzmassnahmen • • • • Niemals "intern" redirects zulassen auf nicht autorisierte Inhalte Redirects zu statischen Locations (HTTP Redirect) Bei Redirects auf eine Seite die als Parameter mitgegeben wurde, diese immer erst validieren Lookup-Table mit Redirect ID/Action <-> URL führen InfSi2_fscala Page 22 Data Leakage Prevention Sonntag, 4. August 2013 14:23 Motivation • • • • No trust = no business Geschäftsgeheimnisse welche nicht durch Patente geschützt sind Bankgeheimnis Data Privacy Egress und Usage Control Egress Control Data Loss Prevention (DLP) • Ausgangskontrolle • Kontrollieren was hinausgeht, die Grenzen überschreitet/verlässt • Bsp.: Zoll, Quarantäne, Safe Usage Control Information Rights Management (IRM) • Kontrollieren wie informationen verwendet werden • Bsp.: DRM, Patente, Copyright Egress Control Beschreibung Beispielimplementation Channel Protection • Alle für den Benutzer nicht relevanten Kommunikationskanäle blockieren • Kanäle überwachen • Logging • Alarm bei Verdachtsfällen • Verschlüsselung der Kanäle • HTTPS/SSH verwenden • Mail Traffic Monitoring • Read-Only Internet • Secure Mail (z.B. Verschlüsselung) Endpoint Protection • Endpunkte verriegeln • Verschlüsselung • Ports deaktivieren • Softwareinstallationen verhindert • Schutz gegen externen Attacken • Spam • Viren • Phishing • Disk Verschlüsselung • Anti-Virus • USB Ports deaktivieren Document Protection • Unbefugter Zugriff verhindern • Keine Produktionsdaten in Testumgebungen • Inhalte Verschlüsseln • Inhalte Wasserzeichnen • IRM • Synthetische Daten in Testumgebung • Zugriffsreche überprüfen/reviewen Testdaten Anonymisierungstypen Typ Beschreibung Beispiel Productive Echte Produktionsdaten Fabio Scala 100'000 CHF 132-533-75 Pseudonym Anonymisiert mit Mappingtabelle Peter Heinzmann 100'000 CHF 132-533-75 Peter Heinzmann = Fabio Scala Anonymized Anoymisiert, keine Mappings vorhanden Synthetic Peter Heinzmann 100'000 CHF 132-533-75 Erfundene Daten, komplett unkorreliert zu Produktionsdaten Chris Lee 123'456 CHF 123-456-789 Information Rights Management (IRM) • Usage Control + Encryption • Wer macht was mit welchen Informationen InfSi2_fscala Page 23 • Wer macht was mit welchen Informationen Active Directory Rights Management Services (AD RMS) • • • • Microsoft IRM Lösung Word, Excel, PowerPoint, Outlook E-Mail dient als Identifikation Verschlüsselung und Zugriffkontrolle ○ 128 bit AES ○ 1024/2048 bit RSA • Policy Enforcement ○ Keine Screenshots ○ Kein Copy & Paste ○ Kein Mail Forwarding ○ Kein Export • Templates für Rechteverwaltung • Super User kann alles entschlüsseln Schwierigkeiten Userakzeptanz • Unterstützung anderer Dateiformate • Performance • Anpassungen der bisherigen Geschäftsprozesse Infrastruktur • Integration mit anderen Produkten • Cloud • Mobile • Schützen der Keys um Verfügbarkeit der Dokumente auch nach Jahren zu Gewährleisten InfSi2_fscala Page 24 Symantec Report Sonntag, 4. August 2013 17:04 Gründe für Data Leakage Well-meaning insiders • Mitarbeiter welche unabsichtlich gegen Sicherheitsmassnahmen verstossen • Macht den grössten Teil der Data Breaches aus • Gestohlene/verlorene Laptops • E-Mail/Webmail, Externe Speicher • Partner (Third-Party) leaken informationen über einen • Veraltete automatisierte Prozesse Targetet attacks • Systemschwachstellen • Schwache Credentials (Passwörter, veraltete ACL, Factory Defaults) • SQL Injection • Targeted malware • Remote access tools (RAT) aka Trojaner • Instant Messaging • Benutzer mit Tricks zu Malware (z.B. Spyware) Download verlocken The malicious insider • White collar crime • Mitarbeiter stehlen absichtlich Daten (Eigennützig, verkaufen, etc.) • Entlassene Mitarbeiter • Rechts/Zugänge werden erst nach der Mitteilung entzogen • In dieser "Window of Opportunity" ist Data Leakage möglich • Verärgerte Mitarbeiter • Daten für Privatzwecke • Geschäftliche Daten (z.B. Codesnippets) werden zuhause für private Zwecke (Wiederverwendung) aufbewahrt • Sein Home System könnte gehackt werden • Industriespionage • Mitarbeiter unzufrieden • Will zu Konkurrent wechseln oder sich selbstständig machen • Kundendaten, etc. werden mitgenommen/gestohlen Ablauf von Targeted Attacks Phase 1 Incursion • Hacker verschafft sich Zugriff mittels Schwachstelle • Default Passwörter • SQL Injection • Malware •… Phase 2 Discovery • Hacker sucht sich interessante Daten • Automatischer Scan nach sensiblen Daten InfSi2_fscala Page 25 • Automatischer Scan nach sensiblen Daten Phase 3 Capture • Daten durch well-meaning Insider werden sofort nach Aussen geleakt • Sonst: • root kits werden heimlich installiert • Daten zusammensuchen/ablegen Phase 4 Exfiltration • Sensible Daten werden nach aussen an den Hacker gesendet • Entweder plain-text (Mail, etc.) • Oder verschlüsselt bzw. in Archiven (ZIP, …) mit Passwörtern Verhindern von Data Breaches • Data Breaches können verhindert werden ○ In jeder der vier oben genannten Phasen ○ Lieber mehrere dieser Phasen absichern (sonst wäre es wie eine alles-oder-nichts Wette die früher oder später versagt) • Risiken reduzieren • Herausfinden wer wo welche Daten wie verwendet (Wo sind Daten? Wo gehen sie hin) • Mehrere Lösungsansätze kombinieren 1. Incursion durch targeted attacks verhindern ○ Systemsicherheit (Policies, Patches, Verschlüsselung, …) ○ Passwörter ○ SQL Injections ○ Malware ○ Intrusion Detection/Prevention Systeme 2. Real-time alerts durch globale Sicherheitssysteme/Firmen 3. Proaktiv Informatinen schützen ○ Define once, enforce everywhere Policies ○ Kommunikation überwachen (IM, Email, TCP, …) ○ Egress Kontrolle/Blockade (Speichermedien, Fax, Drucker, …) 4. Sicherheit "automatisieren" durch Standards a. ISO-xy, HIPAA, COBIT, NIST, … 5. Daten Exfiltration verhindern ○ Kommunikation/Netzwerk überwachen (Monitoring) ○ Erkennung von dubiosen/unsicheren Verbindungen (Alerting) 6. Integrate prevention and response strategie into security operation (day-to-day operations of security team) InfSi2_fscala Page 26 Anonymity / Tor Sonntag, 4. August 2013 18:14 • Surfen hinterlässt Spuren ○ Logs auf Webservern ○ Logs bei Mailservern ○ Logs beim ISP (alline schon gesetzlich) ○ Logs und Traffic Monitoring bei routern/gateway • Wieso Anonymität? ○ Privatsphäre ○ Meinungsfreiheit ○ Verrat (Bsp. WikiLeaks) ○ Suche nach neuem Job, Partner, etc. Pseudoanonyme Dienste • • • • Zwischendienst (meist Remailer) Entfernt persönliche Informationen und leitet die Nachricht weiter Antworten werden zurück an den Absender geleitet Wahre Identität ist nur dem (hoffentlich vertrauenswürdigen) Anoymisierungsdienst bekannt Cascade of Mixes Grundkonzept • • • • Netzwerk mit unabhängigen "Mixes" Kommunikation zwischen source und destination verschlüsselt Kommunikation zwischen Mixes verschlüsselt Einzelne Mixes sollten sich in verschiedenen juristischen Zonen (Ländern) befinden ○ Erschwert Rückverfolgung durch Gesetzgebung Untraceability • Jeder Mix kennt nur seinen direkten Vorgänger und Nachfolger in der Cascade ○ Untraceability ist gegeben solange nur ein einziger Unabhängig bleibt, auch wenn alle andere "zusammenarbeiten" Layered Encryption • Die public keys aller Mixes sind in einem trusted directory veröffentlich • Alle Pakete werden immer auf dieselbe Länge gepadded um rückschlüsse zu verhindern • Entry Point packt Paket rückwärts ein (Verschlüsselt) und hängt die Addresse des nächsten Mixes an • Nach jeder Ankunft bei einem Mix, wird das Paket entschlüsselt und die Addresse des nächsten Mixes entfernt. Diese wird ersetzt durch ein wieteres Padding damit das Paket immer dieselbe Grösse hat und keine Rückschlüsse auf die Position in der Cascade möglich sind • Der Exit Point entschlüsselt das Paket komplett und entfernt jegliche InfSi2_fscala Page 27 • Der Exit Point entschlüsselt das Paket komplett und entfernt jegliche Paddings bevor das Paket schlussendlich ans ursprüngliche Ziel weitergeleitet wird Weitere Konzepte Drop message duplicates • Angreifer könnte durch Replay-Attacke und gleiches ausgehendes Bitmuster den nächsten Mix eines bestimmten Pakets herausfinden • Jeder Mix muss eine Liste mit Hashes aller eingehenden Pakete führen um Duplikate zu verwerfen Decryption • Durch die Entschlüsselung des eingehenden Pakets wird dessen Bitmuster verändert es sind somit keine Rückschlüsse/Korrelationen zu einem ausgehenden Paket möglich Message re-sorting buffer • Um eine timing Analyse (erstes eingehendes wird erstes ausgehende Paket sein) zu verhindern wird eine bestimmte Anzahl Pakete gepufftert, umsortiert und dann weitergeleitet • Während Zeiten mit geringem Traffic kann es zu Verzögerungen kommen, da erst der Puffer gefüllt werden muss Aus diesen Gründen ist ein hoher traffic von vielen unterschiedlichen Benutzern eine Grundvoraussetzung für starke anonymität. Teilweise können auch dummy-Pakete eingeschleust werden, was jedoch das Netzwerk nur unnötig belastet. High-Latency Anonymizers • Grosser re-ordering Puffer resultiert in hoher Latenz • + Hoher Anonymitätsgrad durch viele Mixes und einem grossen Puffer • - Keine Echtzeitkommunikation möglich da zu hohe Latenz (dh kein Surfen) • - Mixes könnten offline sein bis das Paket endlich bei ihnen ankommt Low-Latency Anonymizers • Kleiner oder kein re-ordering Puffer resultiert in tiefer Latenz • + Geeignet für Echtzeitkommunikation wie Surfen, IM, etc. • - Geringerer Anonymitätsgrad in low-traffic Zeiten • Tor (The Second-Generation Onion Router) • JAP (Java Anon Proxy) Software JAP Java Anon Proxy • Tiefer Latenz • Fixe cascade von mixes • - Nur Entry/Exit müssen überwacht werden Tor • Bidirektionale TCP-Streams The Second-Generation Onion Router • PFS durch DH key exchange • ca. 500-700 gleichzeitig aktive Mixes (Onion Routers) • Keine CA, Keys werden durch identity key signiert Tor Paper • Tor schützt nicht gegen Feinde mit "globaler" Sicht über das gesamte Netzwerk sondern gegen Feinde die nur einen Ausschnitt des Netzwerks betrachtet können (traffic confirmation) ○ Passive Attacken durch Betrachtung beider Enden ist denkbar (timing und volume patterns) ○ Aktive Attacken via gezieltem einschleusen von Paketen um distinkte Muster zu erzwingen sind denkbar • Tor soll gegen traffic analysis Attacken schützen wobei traffic patterns genutzt werden InfSi2_fscala Page 28 Tor Design Onion • Host im Tor Netzwerk Router (OR) • Entweder Relay (leitet weiter) • Oder Exit Node (leitet zum Ziel weiter) Onion Proxy (OP) • Onion Proxy, Client Software die als SOCKS Proxy dient • Problem bei SOCKS ist die Namensauflösung (viele tunneln bereits den DNS Request, andere machen dies selbst und geben nur die IP an) • DNS Server weiss Bescheid über unsere Anfrage an xy Hostname • Lösung für HTTP: Privoxy HTTP Proxy Directory Server • Kleine Gruppe well-known OR • Agiert als HTTP Server • OR uploaden ihre eigene Sicht auf diese Directory Server • OR wird nur in Directory Server aufgenommen wenn desse Identity Key anerkannt wird (Verhindert das jemand tausende eigene OR aufsetzt und somit Teile des Tor Netzwerks übernehmen kann) • Tor Software ist mit Liste von Directory Servern preloaded für initialer Bootstrap • Fallback auf manuelle (Menschenhand..) Lösung bei Problemen Identity Key • Long term • Zur Signierung von TLS Zertifikaten • Zur Signierung von OR router descriptor (keys, addresses, bandwith, exit policy, …) Onion Key • Short term • Zum Entschlüsseln von Requests der Benutzer (OP) • Ciruits aufsetzen • Ephemeral Keys austauschen • Periodisch rotiert um Schaden eines kompromittierten Keys einzudämmen Cells • Traffic wird in sog. Cells weitergeleitet (das Tor "Paket") • Immer 512 Bytes • Header und Payload • Header beinhaltet Circuit ID welches den Circuit eindeutig identifiziert • 128 Bit AES in Counter Mode verschlüsselt Circuit • Im Prinzip der "Pfad" (Kaskade) zwischen OP bis hin zum Exit Node OP • Mehrere TCP Streams pro Circuit möglich (multiplexing) • Periodisch neue Circuits aufbauen • Werden inkrementell aufgebaut • OP verhandelt symmetrischen Schlüssel mit jedem OR, einen nach dem Anderen • DH Handshake wird mit Onion Key von OR verschlüsselt (kein MITM möglich) • OR antwortet mit Hash über dem entschlüsselten DH Key (Beweist man ist mit dem richtigen OR verbunden) • Einzelne Teile (eg nicht bis zum Schluss) eines Circuits können abgebaut und wieder extended werden. Exit Policy • Policy für Traffic definierbar um Missbrauch eigener Exit Nodes zu verhindert (z.B. SMTP Port, …) open exit Akzeptieren alles middleman Niemals Exit Node, nur Relay OR private exit Nur exit zu lokalem Host/Netzwerk, art VPN restricted exit Spezielle Policy wie Ports, Hosts, oder benötigt Auth. Rate Limiting • Bandwidth Limit auf Incoming Traffic setzbar • Nur als durchschnitt, erlaubt dennoch kurzfristig höhere Bursts • Interactive vs. Bulk Stream • Heuristische Verfahren zur Unterscheidung (Pakete kommen öfters) • Interactive werden dann mit höherer Priorität behandelt • Solches Bevorzugen von Paketen elraubt evt. end-to-end Attacken Congestion Control • Circuit-level throttling • packaging window (wieviele kann der OR noch an den OP zurückleiten) • delivery window (wieviele kann der OR noch weiterleiten) InfSi2_fscala Page 29 • delivery window (wieviele kann der OR noch weiterleiten) • Stream-level throttling DoS • eg zwingen CPU-intensive Operationen durchzuführen (kryptographische operationen => TLS Handshakes, …) • Attacken auf das Tor Netzwerk selbst (Hosts) • Ist ein OR down gehen alle Circuits über diesen OR kaputt Rendezvous Point / Hidden Services Ermöglicht das Bereitstellen von Hidden Services wie z.B. einen Webserver ohne die eigentliche IP bekannt geben zu müssen. Sowohl Client wie auch Server benötigen dafür jedoch Tor. Ziele: Access Control Bob will seinen Dienst schützen sodass nicht jeder darauf zugreifen oder diesen mit Anfragen flooden kann Robustness Bob sollte langfristig anonym bleiben können Smear-resistance Es sollte nicht möglich sein bestimmte OR zum bereitstellen fragwürdiger Inhalte zu zwingen Applicationtransparency Es wird spezielle Software benötigt, jedoch keine Modifikation der bestehenden Client und Server Software (Webserver, Browser) 1. Bob generiert langfristigen Public Key für seinen Dienst 2. Bob wählt einige ORs als Introduction Points aus a. Bob veröffentlicht diese zusammen mit seinem Public Key in einem Lookup-Service b. Bob baut ein Circuit zu allen Introduction Points auf 3. Alice hört von Bob's Dienst (oder es wird ihr mitgeteilt) a. Alice verschafft sich mittels Tor via Looup-Service Informationen darüber b. Alice wähle ein OR als Rendezvous Point aus und stellt ein Circuit dazu her c. Alice übergibt dem Rendezvous Point ein "Rendervous Cookie" um Bob zu identifizieren d. Alice eröffnet eine Verbindung zu eines von Bob's Introduction Points und übergibt diesem eine mit Bob's Public Key verschlüsselte Nachricht mit Informationen über sich und dem Rendezvous Cookie sowie dem DH Handshake-Start e. Der Introduction Point sendet diese Informationen weiter an Bob 4. Wenn Bob mit Alice kommunizieren möchte baut er ein Circuit zum RP auf und sendet diesem das Rendezvous Cookie sowie den zweiten Teil des DH Handshakes und einen Hash des Session Keys welchen sie nun gemeinsam besitzen 5. Der RP verbindet Alice's und Bob's Circuits (der RP weiss jedoch nicht über Alice, Bob oder den übermittelten Daten) 6. Alice senden relay begin und stellt somit einen anonymen Stream zu Bob's Webserver her • Falls man den Zugriff auf den Webserver einschränken will, kann optional ein Authorization Token bereits beim Verbinden von Alice mit dem Introduction Point mitgegeben werden InfSi2_fscala Page 30 Token bereits beim Verbinden von Alice mit dem Introduction Point mitgegeben werden • Die Introduction Points sind typische DoS Ziele, aus diesem Grund muss Bob möglichst viele Introduction Points besitzen und evtl. nicht alle publishen (oder einen Teil der öffentlichkeit, den anderen an eine vertrauenswürdige Gruppe) • Der Dienst erhält eine virtuelle URL mit der TLD .onion (authCookie.publicKeyHash.onion) welche vom Tor Onion Proxy automatisch erkannt und aufgelöst wird. Attacken InfSi2_fscala Page 31 VPN Samstag, 10. August 2013 17:29 Layer 4 TLS (SSL) Transport Layer Layer 3 Network Layer IPsec Layer 2 PPTP, L2TP L2TP ist neuer Data Link Layer IEEE 802.1X Auth: MSChapV2 (übel) IEEE 802.1AE MPPE (absoluter Schrott) IEEE 802.11i (WPA2) Vorteile Nachteile Layer 2 (L2TP) • Gleiches Auth. Verfahren wie PPP • Keine Security ohne IPSec • Replay Attacken (MITM) bei nicht Authentisierten Paketen • Keine Verschlüsselung Layer 3 (IPSec) • Starke Verschlüsselung/Authentisierung • Kein Tunneling von nicht-IP Protokollen • Kann komplexe Policies Aushandeln und sicherstellen • Komplexer Verbindungsaufbau (enforce) • PKI Management Overhead • XAUTH/IKEv2-EAP bietet ähnliche Features wie PPP Layer 4 (TLS) • Simpel, bruacht keinen speziellen Client (Browser) • Starke Verschlüsselung/Authentisierung • Braucht teilweise spezielle Plugins PPP • Auth via: ○ PAP (Passwort) ○ CHAP (Challenge/Reponse) ○ EAP (Extensible Authentication Protocol mit Support für Token Cards etc.) • Optionale Ecryption (ECP) mit preshared secrets • Einzelne PPP Pakete nicht Authentisiert ○ Schwäche: MITM möglich (damals/früher nicht relevant da jeder seine eigene Leitung hatte) PPP Encryption Control Protocol (ECP) • Genau ein ECP Paket im PPP Information Field (= 0x8053) • Ein Verschlüsseltes Paket ist im PPP Information Field enthalten (= 0x0053) • Sollte Triple-DES verwenden (3DESE) DES-EDE3-CBC mit 168bit key. PPP Extensible Authentication Protocol (EAP) Layer 2 Tunneling Protocol (L2TP) • UDP da 2xTCP (darunter, getunnelt) sicht "stören" könnten • Keine Verschlüsselung und/oder Checksummen • "Bic Mac" Situation, typisch bei Tunnelverfahren InfSi2_fscala Page 32 • IPv4 keine Sicherheitsfeatures (Source & Destination lesbar, etc.) Compulsory Mode • LAC - LNS = Virtueller Kupferdraht Voluntary Mode Mit IPSec • Cheeseburger Situation? (Kleinerer Overhead) TLS/SSL Tunnel InfSi2_fscala Page 33 TLS/SSL Tunnel MPLS • Label Based Switching IPSec • Datagrams (Pakete) sind: ○ Verschlüsselt (Privacy) ○ Authentisiert (Authenticity: kein Spoofing/Modifikation) @ Authentication Header AH Authentication Header (AH) Ohne AH (vorher) Mit AH (nachher) • IP Protokoll Nummer 51 ○ Nicht UDP/TCP sondern eigenständiges Protokoll • Schutz vor Modifikationen mit MAC (Message Authentication Code) • Nicht möglich mit NAT Router da Modifikation zu falscher MAC führen würde • Jedes Protokoll kann via AH geschützt werden ○ Procotol field 51 und dann im "Next Header Field" die Angabe des originalen Protokolls Encapsulating Security Payload (eSP) • Hauptsächlich bei L2TP • Paket ohne Header (dh geht über NAT Router) • Checksumme Optional ○ Heute immer/meistens mit um Replay Attacken zu verhindern • Jedes Protokoll kann via ESP geschützt werden ○ Procotol field 50 und dann im "Next Header Field" die Angabe des originalen Protokolls Ohne ESP (vorher) Mit ESP (nachher) InfSi2_fscala Page 34 Ohne ESP (vorher) Mit ESP (nachher) IPSec Tunnel Mode • • • • VPN/Kommunikation zwischen zwei Subnets (z.B. Enterprise Bereich) mit verschlüsseltem IPSec Tunnel Das was heute effektiv genutzt wird via L2TP (neuer) oder veraltetes PPTP Originaler IP Header verschlüsselt InfSi2_fscala Page 35 IKE Donnerstag, 15. August 2013 19:12 Internet Key Exchange V1 (IKEv1) Security Association (SA) • ISAKMP SA (IKEv1) oder IKE SA (IKEv2) schützt die IKE Verhandlung/Austausch • Separate IPsec SA notwendig für jedes Subnetz oder Host • Separate IPsec SA notwendig für ein- und ausgehende Verbindung • SAs haben einen Security Parameter Index (SPI) und werden in einer Datenbank gehalten Negotiated Parameters • Auth. Verfahren (Nur IKEv1 bei, pre-shared oder public key) • Verschlüsselungsalgorithmus • Hash Algorithmus • PRF (Pseudo Random Function) • Key Exchange mittels DH • Schlüssel Lebensdauer (nur bei IKEv1) IKEv1 Main Mode • Bei IKEv1 müssen die Parameter auf beiden Enden übereinstimmen sonst kommt im Quick Mode keine Verbindung zustande (Policy), dh kein Narrowing wie bei IKEv2 möglich • Man legt fest was effektiv getunnelt werden soll Mit Pre-Shared Keys • 6 Pakete in Main Mode (Auth, Key Exchange, Optionen) wovon die ersten 4 Klartext sind • Pre-Shared key als Teil eines Hashes ○ Teil des IKE Session Key • Brute-force/Dictionary Attacken nicht möglich da Password ebenfalls in den Hash miteinfliesst. Ohne Passwort kann der Hash nicht gelesen werden. ○ Problem: Im Named Modus müsste der Gateway alle Passwörter ausprobieren um den passenden Benutzer zu finden. Aggressive Mode mit Pre-Shared Keys InfSi2_fscala Page 36 Aggressive Mode mit Pre-Shared Keys • Hier wird anders die Identität offen (plaintext) übertragen • Hash kann gesnifft werden und dann offline via brute-force/dictionary attackiert werden ○ Bei schwachen Passwörtern ein grosses Problem • Im Aggressive Mode ist ein One-Time-Password Schema (z.B. SecureID) zu empfehlen • Lösung Cisco? Exteded Authentication Quick Mode • 3 verschlüsselte Pakete für Quick Mode (erstellung der IPSec SA, effektiver Tunnel) • UDP Port 500 • Im Quick Mode wird eine IPsec SA unter der Verwendung der vorherigen Verbindung (in Phase 1, Main Mode) IKMPK SA erstellt • Kann verwendet werden um eine IPSec SA zu erneuern die bald abläuft • ESP/AH Keys für IPSec werden vom Phase 1 Diffie Hellman Secret abgeleitet • Optional: Perfect Forwared Secrecy durch erneutem DH Key Exchange in jedem Quick Mode Internet Key Exchange V2 (IKEv2) • • • • Verbindungsaufbau mit nur 2 request/response Paaren Zusätzliche SAs benötigen nur noch ein weiteres request/response Paar EAP (One Time Password etc) wird unterstützt Ist nicht rückwärtskompatibel mit IKEv1 Motivation • • • • • IKEv1 über viele Standards/Dokumente verteilt Zu viele Nachrichten bei IKEv1 (6 im Main und 3 im Quick Mode) Zu viele Varianten (AH/ESP, transport/tunnel, Auth. Modus) Zu Komplex (und somit potenziell unsicher) Neue Features (NAT-T, Dead Peer Detection, …) • IKEv1 eher instabil wenn nicht alle Pakete ankommen ○ Verwendet kein Request/Reponse Verfahren wie IKEv2 Authentication - First SA InfSi2_fscala Page 37 Zusätzliche Child SAs • CREATE_CHILD_SA • Rekeying IKE_SA: ○ Suite Proposals ○ Initiator None ○ Initial public factor für DH für optionale PFS • Rekeying CHILD_SA: Gleich vie IKE_SA + ○ Initiator Traffic Selectors (Subnetze hinter dem Inititator) ○ Responder Traffic Selectors • Reauthentication ○ IKE_SA von vorne beginnen Schutz vor DoS • Mittels Cookie # strongswan.conf charon { dos_protection = yes cookie_threshold = 10 block_threshold = 5 } strongSwan # ipsec.cong # host carol # ipsec.conf # gateway moon conn home keyexchange=ikev2 left=%any leftsourceip=%config leftcert=carolCert.pem [email protected] leftfirewall=yes right=192.168.0.1 # gateway (moon) [email protected] rightsubnet=10.1.0.0/16 # subnetz "nach" auto=start conn rw keyexchange=ikev2 left=%any leftsubnet=10.1.0.0/24 leftcert=moonCert.pem [email protected] leftfirewall=yes right=%any rightsourceip=10.3.0.0/24 auto=add # subnetz "nach" Virtual Private Networks • Tunnel Windows 7 Agile VPN Client • Gateway Zertifikat muss host name oder IP und serverAuth extendedKeyUsage flag besitzen strongSwan Applet for Linux • Wenn CA gegeben muss Hostname/IP des Gateways im subjectAltName des vom Gateways erhaltenen Zertifikats enthalten sein InfSi2_fscala Page 38 sein VPN Features Extended Authentication • IKEv1 ○ XAUTH (eXtended AUTHentication) ○ Poprietär (Cisco, etc.) • IKEv2 ○ EAP (Extensible Authentication Protocol) ○ EAP-AKA, EAP-SIM, EAP-MSCHAPv2, EAP-MD5- EAP-GTC, EAP-TLS, … ○ Client initiiert EAP indem der AUTH Payload weggelassen wird ○ Server/Gateways muss als erstes public key AUTH Payload IPSec Passthrough • Transparent IPSec Connection • Leitet ESP und IKE Pakete an vorkonfigurierte Hosts hinter NAT Routern weiter • Nachteil: Jeder Router (Modell/Typ) wird anders konfiguriert, dh hoher Aufwand für einzelne Benutzer NAT Traversal • ESP in UDP Pakete • Typischer Szenario: Benutzer will von zuhause aus Arbeiten oder über gesicherte Verbindung (WLAN Hotspot, Hotel, etc.) zu Router verbinden. Dead Peer Connection • Polling • Paket (IKEv2 INFORMATIONAL) Request verschicken wenn nach längerer Zeit kein ESP/IKE Paket empfangen wird (dpddelay konfigurierbar, typie Werte zwischen 30-60s, bei MOBIKE 5min) • Wenn keine IKEv2 INFORMATIONAL Response erhalten wird wird der Request wiederholt. Nach etwa 5 versuchen über 2-3 Minuten wird die Verbindung als Tot deklariert, terminiert und alle SA/CHILD SA gelöscht. Übung IKE_SA_INIT • Request/Response im Klartext (2 Pakete) IKE_AUTH • Request/Response verschlüsselt (erstellt ersten CHILD_SA Tunnel zu Gateway) CREATE_CHILD_SA • Request/Response verschlüsselt für weitere CHILD_SA (Tunnel zu Netzwerk) Narrowing Gateway kann Client Zugriff einschränken auf bestimmtes Subnetz oder sogar Host OSCP • Online Certificate Status Protocol kann den Status von Zertifikaten in Echtzeit (bei jeder Connection) prüfen • Status 90 Minuten lang gültig (in Übung) und gecached ocspuri=http://intsec.hsr.ch:8880 • CRL (Certificate Revocation Lists) werden hingegen nur in bestimmten Abständen aktualisiert Virtuelle IP Adresse • Im Tunnel wird eine virtuelle IP vergeben • Damit das fremde Netz am anderen Ende wieder zum eigenen Host geroutet werden kann InfSi2_fscala Page 39 DNSSEC Freitag, 16. August 2013 11:03 DNS Resolution • IP Adressen der Root Server sind statisch/fix im Nameserver des ISP hinterlegt • Non-Authorative Answer Wurde von cache geholt, nicht direkt von einem autorisierten Nameserver Authorative Answer Antwort kommt direkt vom zuständigen Nameserver • Ablauf: 1. Anfrage für foobar.ch an ISP stellen 2. Anfrage weiterleiten an einen Root Server 3. Root Server gibt nächsten Nameserver zurück (z.B. SWITCH) 4. Anfrage an diesen Nameserver 5. Dieser gibt den endgültigen Nameserver für foobar.ch zurück 6. Endgültiger Nameserver wird angefragt 7. Dieser gibt die IP (Authorative Answer) zurück 8. Wir leiten diese an den ursprünglichen Requester weiter (als non-authorative Answer) Request Response DNS Cache Poisoning • Da das ganze nun über UDP läuft kann ein Angreifer den Requester einfach mit Response -Paketen flooden und eine falsche IP zurückgeben InfSi2_fscala Page 40 zurückgeben ○ Die QID sollte eigentlich die Anfrage identifizieren, diese wurde frühe einfach nur inkrementiert ○ Heute versucht ein solches Flooding einfachPakete mit allen möglichen QID zu senden, eine wird schon stimmen ○ Zudem muss der UDP Source Port stimmen Kaminsky Attack auf DNS Erlaubt es eine Domäne (z.B. auch .com) vollständig zu übernehmen. • • • • Im Prinzip dasaselbe wie oben, jedoch für den Nameserver selbst Erlaubt es somit eine komplette Domäne (eg .com) vollständig zu übernehmen Oben haben Pakete zwischen ISP Nameserver und dem authorisierten Nameserver gespooft Bei dieser Attacke hingegen übernehmen wir den Nameserver von foobar.ch (oder bankofsteve.com) indem bereits die Antwort für den entsprechenden Nameserver gepoisoned wird. • Lösung von Microsoft nach Publikation: Von Anfang an bereits 2500 UDP Ports öffnen ○ Dh 65k mögliche QIDs (16 bit) und 2500 Ports = 2500 * 2^16 = 163'840'000 nötige Pakete für einen 100% erfolgreichen Angriff DNSSEC • Chain of Trust ähnlich wie bei TLS ○ Nur eine root zone (zum glück), nicht so wie bei TLS x CAs existieren ○ Root Zone wird von ICANN signiert (mehrere Vertreter aus mehreren Ländern da sonst streit Internet Übernahme etc) • Root Key muss beim aufsetzen eines manuell importiert werden (der wichtigste überhazupt) KSK 257 • Key Signing Key • Mit diesem wird periodisch ein Arbeitsschlüssel signiert • Wird nur irgendwie alle 3 Monate aus dem Tresor genommen um den ZSK zu signieren (reduziert Risiko) • 2048 Bit, da eine Lebensdauer von einigen Jahren besitzen sollte ZSK 256 • Zone Signing Key • Arbeitsschlüssel der Root Zone • Mit diesem werden Zone Files signiert • Meistens 1024 Bit relativ schwach jedoch wird dieser alle 3 Monate neu signiert Aufteilkung in KSK/ZSK ein Taktisches Mittel damit der "oberste Key" (KSK) nicht "online" bzw. immer verfügbar sein muss sond ern die meiste Zeit eigesperrt bleiben kann. • Root Zone signiert ca. 300 Top Level Zonen • eg .ch wird von Root Zone signiert • Es wird ein Delegation Signing Record signiert (vertrauen zwischen .ch und root Zone herstellen) ○ SHA-1 oder SHA-256 Hash auf dem KSK der .ch Zone wird signiert ○ Wird von ZSK von Root-Zone signiert ○ .ch Zone generiert dann aus diesem KSK einen ZSK (Arbeitsschlüssel) womit dann wieder weitere Subzonen signiert werden (z.b. foobar.ch) • Es gibt immer nur 1 Signatur pro Set (z.B. Google hat mehrere Nameserver, werden alle zusammen signiert, nicht jeder einzeln) ○ Es gibt nur 1 einzige Signatur Signatur ist relativ gross InfSi2_fscala Page 41 ○ Signatur ist relativ gross • Nachteil: Es gibt keine Revocation List. Ist ein Problem bei kompromittierung. Abhilfe: Oft erneuern. Eher bei Caches ein Pri oblem. • Switch signiert natürlich mehrmals am Tag seine Zone neu da neue Einträge hinzukommen. DNSKEY • 256 = 256 ZSK RRSIG • Resource Record Signature • 172800 = Time To Live (TTL) - Wie lange cachen • Bis-gültig, ab-gültig (Expiration, Inception) • Signatur nur in diesem Zeitraum gültig • Signatur relativ "gross" • Signatur macht Kaminsky Attacke unmöglich da bei falscher Signatur die IP nicht akzeptiert wird • Key Tag gibt an wer Signiert hat DS • Delegation Signer • Signatur für den KSK der Subzone (KSK) NSEC • Next Owner Name • Als Antwort wenn die angefragte Domain nicht existiert • Stellt sicher, dass es keinen Domain zwischen merapi.switch.ch und mercury.switch.ch gibt • Für jeden Eintrag gibt es einen NSEC Eintrag • Erlaubt enumeration der gesamten Zone • Anfrage zwischen mercury. und etwas dazwischen was es nicht gibt = gibt nächsten NSEC Eintrag InfSi2_fscala Page 42 NSEC3 • Next Owner Name in Hashed Order • Dasselbe jedoch mit Hashes statt dem Domain Namen • Keine Enumeration der Daten Möglich • Dictionary Attacken möglich jedoch eher teuer • Alle Hashes Enumerieren • Brute-Force, alle "eher kürzeren" namen werden schnell herausgefunden • Heuristiken, Wörterbücher • Empfehlung: Mehrmals (z.B. 1000) mal Hashen, ist jedoch Zeitaufwändiger DANE • • • • DNS-based Authentication of Named Entities Relativ Neu Definiert neuen Resource Record (TLSA) Stellt sicher, dass man mit der entsprechenden Entity verbunden ist • Man kann gesamte Zertifikate oder den Public Key im TLSA Eintrag hinterlegen • Oder Hash über das Zertifikat oder Public Key hinterlegen • Abhilfe um die "CA-Zwischenfälle" zu verhindern ○ Wenn diese gehackt wird kann ein Zerifikat für z.B. hsr.ch generiert werden und die echte Seite gespooft werden (auf falsche Seite umleiten, die Vertrauenswürdig erscheint) • Erlaubt auch vertauenswürdige Self-Signed-CA ○ Self-Signed-CA Hash im Nameserver/Zone hinterlegen ○ Zertifikat via TLSA Record herunterladen ○ Check = Vertrauenswürdig über Chain of Trust von DNSSEC, statt TLS Chain of Trust ○ Nachteil: Belastet das DNS System (ganze Zerifikate herunterladen…) Root Zone Signing Process InfSi2_fscala Page 43 InfSi2_fscala Page 44 NAC Freitag, 16. August 2013 12:55 Traditionelle Strategie • Firewall verwenden um leigitmen Traffic von nicht legitimen Traffic zu trennen ○ Grund: Software ist scheisse entwickelt, sonst bräuchte es keine Firewall ○ Firewall ist eher eine Notlösung weil Software so schlecht ist • Grundprinzip/State of the Art • Beispiel: UDP blockieren ausser DNS • Last Resort um Firewall zu umgehen: Port 80/443 Outer Perimeter • DMZ (Demilitarisierte Zone) • Firerwall davor, jedoch von aussen erreichbar • Webserver, Mail, VPN, etc. Inner Perimeter • Intranet • Secure/Trusted Zone • Proxy Server oder Application Level Firewall dazwischen Internet • Insecure Zone Stateful Inspection Firewall • Statische Rules (z.B. UDP oder Port 23 ist verboten) sind stateless • Stateful hingegen besitzen einen State ○ z.B. SYN Pakete nur von innen nach aussen ○ Viele statische Rules erübrigen sich dadurch ○ Schliesslich kann man nicht "plötzlich" von aussen Pakete empfangen ohne erst einen Request nach aussen gemacht zu haben ○ Niemand darf von aussen eine Connection initiieren (TCP) ○ Bei UDP nur wenn davor auch ein Paket nach aussen verschickt wurde Paket Filter vs. Proxy Paket Filter InfSi2_fscala Page 45 Paket Filter Proxy • Proxy verhindert Exploits/Vulnerability Scanner und Brute-Force • Firewall ist somit nicht in DMZ, nicht "exposed* Network Access Control • Heutige Strategie • Problem ○ Man weiss nicht was auf den Clients installiert ist ○ BYOD: Bring Your Own Device Zusätzlich zur Authentication wird der "Gesundheitszustand" des Clients geprüft • Läuft der Antivirus • Sind die Antivirus Updates installiert/aufdatiert • Alle Patches installiert • Sind irgendwelche Security Policies enforced • etc… Diese Prüfungen müssen periodisch und nicht nur am anfang (beim Login) gemacht werden sonst könnte man: • Firewall einschalten • Torrents ausschalten • Login • Firewall wieder ausschalten • Torrents wieder einschalten • … Microsoft (Microsoft Network Access Protection - NAP) macht den Check ca. alle 20 Sekunden Trusted Network Connect (TNC) InfSi2_fscala Page 46 Drei Varianten: • Allow • Isolate • Block Metadata Access Point • Informationen Sammeln • Entscheidungen anhand dieser Informationen Beispiel: Herr Müller loggt sich in zwei (physischen) Räumen gleichzeitig ein, also stimmt etwas nicht (Passwort geklaut oder weitergegeben etc.) einer dieser Login versuche (oder gleich beide oder den Account) blockieren. Übung TNC Trusted Network Connect PEN Private Enterprise Number IMV Integrity Measurement Verifier IMC Integrity Measurement Collector MAP Metadata Access Point InfSi2_fscala Page 47 PDP • Policy Decision Point • Gibt Empfehlung • "evaluation" (compliant, non-compliant minor/major und recommendation = isolate) PEP • Policy Enforcement Point = VPN Gateway • Setzt Empfelung um (isolate, allow, block) • "capability" wird auf Gruppenzugehörigkeit (isolate, allow, block) gesetzt • Init - Server Working - Client Working - Server Working - Decided - End (I SCS DE) • Kriterien ○ Adressen/Gruppen ○ Offene Ports ○ OS Einstellungen InfSi2_fscala Page 48 Buffer Overflows Freitag, 16. August 2013 15:01 Begriffe Stack • Wird verwendet um Funktionsparameter zu übergeben • Beginng bei Liniux bei 0xC0000000 und "wächst" zu tieferen Adressen • Push aller Parameter vor dem Funktionsaufruf • In der Funktion werden alle wieder vom Stack gepoppt Heap • Dynamisch allozierte Strukturen (Objekte, malloc/free etc) • Wächst von tiefen zu höheren Adressen BSS • Enthält uninitialisierte globale oder statische Variablen z.B. static int array[512]; Data • Enthält initialisierte globale oder statische Variablen z.B. static int i = 0; Text • Enthält den Ausführbaren Code des Programms. • Üblicherweise als Read-Only markiert, jegliche Schreibzugriffe führen zu segfaults • Beginnt bei Linux bei 0x8048000 Pointer Instruction Pointer (IP, %eip) • Pointer auf nächste Instruktion • Wenn es gelingt diesen zu überschreiben ist es möglich eigenen (im Memory vorhandenen) Code auszuführen. Stack Pointer (SP, %esp) • Pointer auf Stack Base or Frame Pointer (BP, %ebp) Buffer Overflows InfSi2_fscala Page 49 • Userinput mit strcpy() in ein char array von 4 Zeichen kopieren wird bei mehr als 4 Inputzeichen zu einem Buffer Overflow führen. ○ IP wird überschrieben und zeigt auf eine potenziell ungültige Adresse was zu einem Segmentation Fault führt. ○ strncopy vwerwenden Rücksprungadresse ändern • ret = buffer + 60 ○ 48 Bytes für unseren Buffer ○ 8 Bytes werden von gcc freigehalten ○ 4 Bytes für den Base Pointer ○ 48 + 8 + 4 Execve • execve(char file[], char args[], char env[]) • Führt das angegebene File anstelle des eigenen Prozesses aus (der eigene Prozess wird mit dem neuen Programm vollständig ersetzt) • Der neue Prozess erbt alles (PID, Rechte, etc) vom ursprünglichen Prozess Adresse eines Strings im Memory herausfinden • Jump ans Ende des Strings • Adresse "notieren" • Vom Ende wieder an den Anfang Springen InfSi2_fscala Page 50 Null-Terminierter Shellcode • Sobald wir unseren Shellcode beisammen haben bleibt das Problem das diese womöglich 0x00en enthaltet was bei einem strcpy nicht den gesamten Shellcode nehmen würde. • Lösung: 0x00en Substituieren ○ NOPs Werden vor dem Shellcode angefügt um den Speichert vor dem Instruction Pointer zu überbrücken (z.B. den überschriebenen Buffer) 0x90 in Assembler, No Operation InfSi2_fscala Page 51 0x90 in Assembler, No Operation Buffer Overflow Schutzmassnahmen Es gibt einige Möglichkeiten um Buffer Overflows zu erschweren, keiner dieser Massnahmen bietet jedoch einen absoluten Schutz. Address Space Layout Randomization • Randomisierung der Basisadresse sowie Adresse von Libraries, (ASLR) Heap und Stack (-Anfangsadresse) im Adressraum • Es gibt Methoden um diese Schutzmassnahme zu umgehen Canaries Executable Space Protection (NX bit) • Vor den Pointern (BP, IP, etc) einen fixen Wert hinschreiben und vor dem Rücksprung prüfen ob dieser noch gleich ist Terminator Canaries • Bestehend aus NULL oder CR/LF • Bietet keinen Schutz gegen doubleoverflows (Canary einfach wiederherstellen) Random Canaries • Werden bei Programmstart generiert und in einer globalen Variable abgelegt • Kann vom Exploit gelesen und extrahiert werden falls dessen Adresse bekannt ist Random XOR Canaries • Random Canaries welche mit Kontrolldaten XOR'ed werden • Memory Regionen als nicht Ausführbar (non-executable) markieren. Versuch diese auszuführen führt zu segfault • Trennung von Daten/ausführbarem Code (weg von der von Neumann Architektur) • Sehr sicher, jedoch kein absoluter Schutz InfSi2_fscala Page 52 Smart Card Freitag, 16. August 2013 15:01 Typen • Sim Card • USB Token • Crypto Card • Memory Card • Java Card •… • Die meisten heute mit Prozessor • Viele mit on-chip RSA Encryption Contactless • RFID (Spannung von ausser, deshalb nahe genug) • Viele sowohl Contactless und Chip Proximity Card < 10cm Vicinity Card (selten) 10cm-1m Display Card • Mit Display • Für One-Time-Passwords (z.B. UBS Online Banking) • Lange Batterielaufzeit (> 3 Jahre) NFC • Near Field Communication • Mobile Devices • Für Zahlung, E-Tickets, Zugriffskontrolle, … Form-Faktor InfSi2_fscala Page 53 • Format (Kreditkartenformat) ist normiert (ISO) RSA • Können on-chip generiert und gespeichert werden • Oder auf den Chip heruntergeladen werden • Jedoch nicht mehr gelesen werden Chip nicht grösser als 2mm Kantenlänge weil es sonst im Portemonnaie bricht (Silizium ist spröde) Aus diesem Grund ist man relativ limitiert in der Funktionalität, Speicher, … ROM zwischen 8-200kb Betriebssystem dieser grösse eine grosse Herausforderung Muss auch high-seucrity sein, darf keine Lücken enthalten InfSi2_fscala Page 54 Platform Trust Service Freitag, 16. August 2013 15:01 Trusted Platform Module (TPM) Architektur RSA Key Pair Generator • 2048 (default) RSA Public und Private Key generierung • Verwendet den eigenen on-chip Random Generator für die Primzahlen Symmtetric Encryption Engine • Optional • Viele Hersteller implementieren AES Platform Configuration Registers • 160 bit geschützter Speicher zur Speicherung von Integritätswerten Endorsement Key (EK) • 2048 bit unlöschbares RSA Schlüsselpaar der den TPM Chip identifiziert • Der Hersteller sollte ein X.509 Zertifikat (Endorsement Credential - EC) mit dem Public Key enthalten und sicherstellen das der EK korrekt generiert wurde. Verwendung (Take TPM Ownership) • Im BIOS sollte ein Supervisor Passwort gesetzt werden • Security Chip auf Enabled setzen Man muss physisch Anwesend sein InfSi2_fscala Page 55 ○ Man muss physisch Anwesend sein • Verwendung des TPM im Betriebssystem aktivieren (z.B. TPM Management bei Windows) Storage Root Key (SRK) • Der SRK wird generiert sobald der TPM den Owner wechselt (take TPM Ownership) ○ Der Wechsel führt zur Löschung des SRK! • Tiefer der Hierarchie/Keys ist nur vom Speicher limitiert Hybride Dateiverschlüsselung mit Storage Keys Verschlüsselung • Dateien oder ganze Dateisysteme werden mittels einem symmetrischen Schlüssel welcher vom Random Number Generator RNG generiert wird und AES verschlüsselt. (SymK) • Der für die Verschlüsselung verwendete symmetrische Schlüssel wird mittels einem mit dem RSA Generator generiertem Schlüsselpaar bzw. dessen Public Key verschlüsselt (StorK_Pub) • Der Private Key wird mittels Public Key vom SRK verschlüsselt. (SRK_Pub) Entschlüsselung • Das Ganze in umgekehrter Reihenfolge ○ SRK_Priv verwenden um an StorK_Priv zu gelangen um an SymK zu gelangen um das File zu entschlüsseln • Die Entschlüsselung ist somit an den physischen TPM Chip (bzw. dessen SRK, welcher darin gespeichert ist) gebunden Attestation Identity Keys (AIK) • Alias für Plattform Identität (Endorsement Key) • Sollte verhindert das TPMs getrackt werden können (da AIKs generiert werden können, der EK jedoch nicht -> Tracking möglich) • Sind nicht migrierbar • TPM kann mehrere AIKs besitzen • Werden vom Owner generiert InfSi2_fscala Page 56 • Werden vom Owner generiert • Benötigen Zertifizierung einer Third-Party (CA) welche sicherstellt das der AIK von einem TPM generiert wurde Binding vs. Sealing Binding Sealing • Asymmetrische Verschlüsselung • Kann verwendet werden um Daten an TPM/Plattform zu binden • Wenn explizit nicht migrierbare Schlüssel verwendet werden • Üblicherweise kein binden an das TPM/Plattform • Keine Interaktion mit dem TPM nötig • Daten werden immer an TPM/Plattform gebunden • Funktioniert nur mit nicht-migrierbaren Schlüsseln • Konfiguration kann verifiziert werden • Ciphertext beinhaltet Zustand der Plattform zum Verschlüsselungszeitpunkt • Entschlüsselung kann auf bestimmte Konfiguration eingeschränkt werden • Zustand der Plattform muss stimmen (trusted) sonst wird nicht entschlüsselt Intel Trusted Execution Technology (TXT) TPM Verwendungstzwecke Authentisierung Email • Verschlüsselung mit TPM • Via PKCS#11 Smart Card Interface Multi-Factor Auth. • Ein TPM ist ebenfalls etwas was man "besitzt" VPN • Benötigt keine Smart Card ohne Hardware Tokens WLAN • Automatische Identifikation des Benutzers anhand des TPM (802.1x) Datenschutz Performance • Schnellere Verschlüsselung da direkt im Disk Controller integriert mit maximalen Speed. • CPU wird dafür nicht beansprucht (keine degradation der Performance) Starke Verschlüsselung • Keys verlassen die Hardware niemals • User-Auth. wird durchgeführt bevor der TPM zugänglich wird (OS abhängig) Tiefere Besitzerkosten • No modifications to the OS, applications or tools • Crypto erase provides instant repurposing / decomissioning TPM zur Verschlüsselung • BitLocker verwendet den TPM um die Schlüssel zu speichern Übung • TPM muss für neuen Owner deaktiviert/aktiviert (Take ownership) werden, Daten werden gelöscht, sonst kommt folgende Meldung beim init im OS • EK zehn Jahre lang gültig, Vertrauen durch VeriSign • File Sealing (an PCR Werte gebunden), File enthält ENC_DAT Mit AES-256-CBC verschlüsseltes File ENC_KEY Der dazu verwendete AES-256 Schlüssel, mit dem Public Key (2048 Bit) eines Storage Keys verschlüsselt TSS_KEY Der Private Key des Storage Keys, mit dem 2048 Bit Storage Root Key (SRK) verschlüsselt, kann nur vom TPM selbst entschlüsselt werden wenn die PCR Werte stimmen • TNC + TPM verringert Gefahr von "Lying Endpoints" ○ Identifikation ahand SHA-1 Fingerprint des AIK Public Keys ○ TNC basierend auf PCR Referenzwerten die anfänglich auf dem Server hinterlegt werden ○ Bei jedem Connect müssten diese nun wieder übereinstimmen ○ Client = Attetastion Integrity Measurement Collector Server = Attestation Integrity Measurement Verifier InfSi2_fscala Page 57 ○ Server = Attestation Integrity Measurement Verifier InfSi2_fscala Page 58 WhiteHat Report Freitag, 23. August 2013 18:18 • Verglichen zu Vorjahren stets sicherer ○ Weniger Lücken ○ Schneller gefixt (time to fix) ○ Mehr überhaupt gefixte (remediation rate) • Banking scheint am sichersten • Zahlen sind mit Vorsicht zu geniessen ○ Könnten auch schlichtweg weniger genau von den Organisationen ausgewertet/gemeldet worden sein ○ Report zeigt lediglich das die Webseitens MINDESTENS soviele Lücken besitzen • SQL Injection ist die beliebteste Vulnerability • Injection-Typen scheinen oft reopened zu werden (SQL Injection und XSS wurden 1/4 reopened) • Retail-Webseiten haben sich extrem verbessern Am langsamsten • Non-Profit • Financial Services, • Telecommunication Am meisten gefixt • Banking • Telecommunication • Manufacturing Am schnellsten • Banking • Am längsten mindestens eine ernste Lücke • Non-Profit • Eduction • Social Networking • OS Command Injectiona praktisch keine • SQL Injection Typen Unauthenticat • Braucht kein Login • Automatisiert ed Worms • Braucht kein Login • Automatisiert • Zielt nicht auf Extraktion ab sondern Infizieren von weiteren Benutzern welche die Webseite besuchen Sentinent • Extrahieren Daten Targeted • Meist mit Account • Ausfüllen von Formularen etc. • Web Application Firewall (WAF) kann grossen Unterschied bei XSS, SQL Injection, … machen ○ Patches/Daten von WhiteHat Sentinel ziehen = immer up to date • Target of opportunity • Wahl aufgrund von weniger Sichetheitsmassnahmen • Einfacher zu exploiten • etc … Target of choice • Gezielt • Besitzen meist wertvolle Informationen • Sollten ASAP gefixt werden InfSi2_fscala Page 59 • Information Leakage und XSS scheinen weit oben bei allen Industries • XSS neu Nummer 1 • Remediation rate ○ Niemand fühlt sich verantwortlich für den Code ○ Niemand kennt den Code ○ Features haben höhere Prio ○ Kein Budget ○ 3rd Party Software ○ Risiko wird akzeptiert ○ … • Time to fix • Window of exposure ○ Kombination aus (total vuln., time to fix, remediation rate) über Zeit ○ Jemand mit 100 Lücken über 10 Tage hat bessere Sicherheit als jemand mit 10 Lücken über 365 Tage ○ Hat sich in einem Jahr (2010 vs 2011) nur geringfügig verbessert (um 2 Tage, 233 vs 231) • Reopen Rates • Prioritäten auf schwächstes Glied setzen ○ Jemand der kaum neue Exploits einführt sollte sich auf den remediation Prozess konzentrieren uÄ ○ Jemand der täglich neue Exploits einführt sollte erst die offenen Probleme beheben (stop bleeding), Q&A, Entwickler Schulen, etc. • Einige Exploits sind schwieriger zu fixen als andere • Generell Exploits die mittels eines Frameworks (Core Komponente, Zentralisiert) veraltet werden können (SQL Queries, Input Validation etc) scheinen tiefere reopen Rate zu besitzen InfSi2_fscala Page 60 Alte Prüfungsfragen InfSi2_fscala Page 61 Crypto Strength Q Wie verhindert der Message Authentication Code (MAC), dass eine Drittperson ein durch einen MAC gesichertes Dokument oder Nachricht verändern kann? A • Der Absender bringt ein "Geheimnis" (Pre-Shared-Key) welches nur ihm und dem Empfänger bekannt ist in den Message Digest (Hash) mit ein. • Bei HMAC wird der Pre-Shared-Key als erster Block durch die Hashfunktion verarbeitet, sodass ein geheimer IV gebildet wird. Q Aus welchen zwei Gründen wird bei einem HMAC der MAC Wert oft durch Abschneiden (Truncation) aus dem endgültigen Hashwert gebildet? A • Durch Truncation wird der Overhead minimiert (16 statt 32 Bytes bei einem SHA-256_128_HMAC) • Durch Truncation wird nicht der gesamte letzte (interne) Zustand der Hashfunktion übertragen (und exposed) was Attacken auf den PSK erschweren kann. • Bei einem Hashwert der Länge m ist die Kollisionsresistent im Maximum m/2. Durch Truncation auf m/2 wird die Resistent einer Preimage-Attacke von m auch auf m/2 halbiert, sodass eine durchgehende Stärke von m/2 resultiert. Q Geben Sie je eine Kombination eines Verschlüsselungs- Hash und Schlüsselaustausch-Algorithmus an, die eine durchgehend homogene Stärke von a) 112, b) 128, c) 192 und d) 256 hat A a) 112 3DES-EDE + SHA-2_224 + DH ECP-224 b) 128 AES-128 + SHA-2_256 + DH ECP-256 c) 192 CAMELLIA-192 + SHA-2_512 + DH ECP-384 d) 256 AES-256 + SHA-2_512 + DH ECP-521 InfSi2_fscala Page 62 Q Welches der beiden Passwörter besitzt die höhere kryptographische Stärke? Die Blanks sind nicht Teil der Passwörter. • A572D 80CE3 6F4D9 BF138 FF27A 945DE • r91Lo FnpyT K/I8S vWIRk A • 30 Hex Nibbles * 4 Bit Entropie/Nibble = 120 Bit • 20 Base64 Symbole * 6 Bit Entropie/Buchstabe = 120 • Die Passwörter sind gleich Stark Q Erfüllen folgende zwei Passwörter mindestens 192 Bit Stärke? Begründen Sie Ihre Antwort • sNI0 3mss d+w7 ckzq +K3Z cEYs guo5 aNSJ • 09 c5 85 4b bc 02 48 de dc 24 10 23 ed 22 15 3f A • 32 Base64 Symbole * 6 Bit Entropie/Symbol = 192 Bit • 16 Bytes (Hex) * 8 Bit Entropie / Bate = 128 Bit Das zweite Passwort ist somit schwächer als die geforderten 192 Bit der Suite B. Q Welche IKEv2 Crypto Algorithmen wurden in folgendem Beispiel für Verschlüsselung, Datenintegrität, Key Exchange und Authentisierung verwendet? InfSi2_fscala Page 63 A Verschlüsselung AES-CBC mit 256 Bit Key Datenintegrität SHA-384 HMAC Key Exchange Elliptic Curve Diffie-Hellman (ECDH) mit 384 Bit Modulus Authentisierung Elliptic Curve Digital Signature Algorithm (ECDSA) mit 384 Bit Modulus Q Welche kryptographische Stärke wird mit der oben genannten Wahl angestrebt? A 192 Bit Q Mit welchen Crypto-Algorithmen werden die IP Pakete verschlüsselt und gegen Veränderung geschützt? Was ist zudem der grosse Vorteil an dieser Wahl? A • AES-GCM (Authenticated Encryption Algorithmus - AEAD) mit eingesetzt welches gleichzeitig verschlüsselt und eine kryptographische Checksumme generiert. • Durch AEAD wird eine Parallelisierung mit hohem Datendurchsatz möglich Q Alice und Bob möchten mittels Elliptic Curve Cryptography (ECC) ein gemeinsamen Diffie-Hellman Geheimnis erarbeiten. Die Parameter der Kurve sowie ein Kurvenpunkt P sind öffentlich bekannt. • Alice wähl eine zufällige geheime Zahl a = 300 und führt 299 Mal auf der Kurve eine Punktaddition von P mit sich selbst aus, sodass sich ein Bildpunkt Q_A ergibt welches über einen unsicheren Kanal an Bob übermittelt wird. • Bob wählt eine zufällige geheime Zahl b = 520 und führt 519 Mal auf der Kurve eine Punktaddition von P mit sich selbst aus, sodass sich ein Bildpunkt Q_B ergibt welches über einen unsicheren Kanal an Alice übermittelt wird. 1. Worauf beruht die kryptographische Stärke des Elliptic Curve Diffie-Hellman Schlüsselaustausches? 2. Wie bestimmten Alice und Bob das gemeinsamen Diffie-Hellman Geheimnis S, welches auch einen Bildpunkt der elliptischen Kurve darstellt? 3. Welche geometrische Beziehung besteht zwischen dem Diffie-Hellman Geheimnis S und dem öffentlichen Kurvenpunkt P? InfSi2_fscala Page 64 1 • Aus den Bildpunkten Q_A und Q_B kann nur mit riesigem Aufwand bestimmt werden, wieviele Punktadditionen (a-1) bzw. (b-1) auf P angewendet wurden um auf Q_A bzw. Q_B zu kommen. 2 • Alice führt auf der Kurve (a-1) Mal eine Punktaddition von Q_B mit sich selbst aus um den Bildpunkt S zu erhalten. S = aQ_B • Bob führt auf der Kurve (b-1) Mal eine Punktadditional von Q_A mit sich selbst aus um den Bildpunkt S zu erhalten. S = bQ_A 3 • Der Bildpinkt S kann durch (ab-1) = 155'999 Punktadditionen von P mit sich selbst erhalten werden. S = abP = 156'000P Q Generieren Sie ein Passwort mit den Ziffern 0..9 mit einer kryptographischen Stärke von ca. 100 Bit A • 100 Bit / 3.3 Bit Entropie/Symbol = 30 Ziffern • 683951949354872165421365459753 Q Eine auf einem HMAC-SHA256 basierte Pseudo Random Function (PRF) wird mit einem geheimen 256 Bit Schlüssel geladen der völlig zufällig von einer Quanten-Quelle generiert wurde. Initialisiert mit einem Seed von 512 Bit liefer t die PRF nun 1536 Bit Schlüsselmaterial, welche für zwei 256 Bit AES Sessionschlüssel und zwei 512 Bit HMACSHA512 Sessionschlüssel verwendet werden. Wie können alle vier Sessionschlüssel am effizientesten durch eine Brute-Force Attacke geknackt werden und wieviele Versuche braucht es im Worst-Case dazu? Begründen Sie Ihre Antwort. A • Die Brute-Force Attacke zielt auf die PRF mit 256 Bit Schlüssel da alle anderen Schlüssel davon abgeleitet sind und deshalb die 1536 Bit nicht mehr als 256 Bit Entropie besitzen. • Am besten wird bei jedem Versuch jeweils nur der erste 256 Bit AES Sessionschlüssel durch die PRF abgeleitet und durch die Entschlüsselung und Histogrammbildung getestet ob Plaintext resultiert. • Dazu sind im Worst-Case 2^256 = 1E77 nötig. InfSi2_fscala Page 65 Random Numbers Q Was können Sie über die Qualität folgender Zufallsquelle aussagen? A • Diese liefert scheinbar ständig und zuverlässig Zufallsinformationen • Der Wert logisch 1 tritt jedoch viel häufiger auf als 0, die Quelle ist somit mit einem Bias behaftet Q Was können Sie über die Qualität folgender Zufallsquelle aussagen? A • Diese liefert Zufallsinformationen mit einer guten statistischen Verteilung (0 und 1 gleichverteilt) • Jedoch treten immer wieder Aussetzer im Datenstrom aus, die Quelle ist somit sehr unzuverlässig Q Wie können nicht-ideale Zufallsquellen zum Bau eines guten True Random Generators verwendet werden? A • Die eingehenden Werte der Zufallsquellen mittels einer Hashfunktion in einen einzigen Entropie-Pool einarbeiten • Diese Pool kann dann als zufälligen Seed für einen guten Pseudo Random Number Generator verwendet werden Q Was halten Sie vom Ansatz die OpenSSL PRF welche z.B. für die Generierung von RSA Schlüsselpaaren verwendet wird mit der zufälligen 16 Bit langen Linux Prozess ID zu initialisieren? Hätte man nicht besser noch die Seriennummer der Intel oder AMD Prozessors dazugenommen? A • 16 Bit Entropie sind viel zu wenig um 1024-2048 Bit RSA Schlüssel (mit einer Entropie von 72-88 Bit) zu generieren. • Auch Seriennummern jeglicher Art erhöhen die Entropie nicht signifikant. Q Welche der folgenden zwei Zufallsquellen würden Sie zur Speisung des Entropie-Pools /dev/random auf einem Server verwenden? 1. Der interne, relativ ungenaue und schwankende Clock-Generator der CPU 2. Die Zugriffszeiten auf den RAID Festplatten Array A • Durch die chaotischen Luftwirbel verursachten Schwankungen in den RAID Zugriffszeiten ergibt sich ausgezeichnete Entropie • Obwohl die Frequenz von Clock-Generatoren einen hohen Zufallsgehalt hat ist häufig die Zeitauflösug grob, sodass zu Teil mehrmals der gleiche Tickwert zurückgegeben wird. Zudem ist der Clock kurzfristig sehr stabil, sodass wenig Entropie gewonnen werden kann. Q Welche der folgenden zwei Zufallsquellen würden Sie zur Speisung des Entropie-Pools /dev/random auf einem Server verwenden? Begründen Sie die Entscheidung. 1. Das Timing von akommenden Netzwerkpaketen 2. Die gesampelten LSBs auf der auf dem Motherboard vorhandenen 16 Bit InfSi2_fscala Page 66 2. Die gesampelten LSBs auf der auf dem Motherboard vorhandenen 16 Bit Soundkarte? A • Die verrauschten LSBs einer 16 Bit Soundkarte sind eine gute Entropiequelle und deshalb dem Paket-Timing vorzuziehen. • Die Ankunft von Netzwerkpaketen könnte gezielt von aussen (durch Einspeisen von Paketen) manipuliert werden. Q Worauf muss bei der Verwendung externer Entropiequellen wie CPU Clock-Generatoren, RAID-Controllern etc. besonders geachtet werden? A • Es muss eine fortlaufende Abschätzung des Entropiegehaltes vorgenommen werden um Totalausfälle (fehlende Zeitmessung der RAID Controller) oder wenig Entropie (zu grobe Auflösung des CPU Clock-Counters) erkennen und einen Alarm auslösen zu können. Q Bewerten Sie qualitativ die Ergiebigkeit (echte Zufallsbits pro Zeit) und die Qualität (Zufälligkeit der statistischen Verteilung) der folgenden Entropiequellen. 1. Timing von nacheinanderfolgenden Tastaturschlägen 2. Abtasten von Sounkarteneingängen 3. Zugriffszeiten bei Festplatten (Luftturbulenzen) 4. Abkunftszeiten von Netzwerkpaketen 5. Schwankungen des Rechnertakts A 1 • 1-2 Bit Entropie pro Tastenschlag • Gute Qualität 2 • Mehrere LSB pro Abtastwert sind verrauscht und können verwendet werden • Gefahr von Totalausfällen 3 • Sehr gute Quelle mit bis zu 100 Bit Entropie pro Minute 4 • Bei paranoiden Puristen eher verpönt da diese von aussen Manipuliert werden können 5 • Weniger als man denkt, da die Clockregister häufig nicht bei jedem Tick aufdatiert werden Q Ein militärischer VPN Gateway mit tausenden von gleichzeitigen Verbindungen benötigt sehr viel Entropie für die Generierung von Erneuerung aller Sessionschlüssel. Welche Hardwarelösung zur Generierung von Zufallsmaterial würden sie vorschlagen? A • Ein Quantum Random Number Generator welcher auf die Zufälligkeit von quantenmechanisch erzeugten Photonen beruht • Alternativ kann Radioaktiver Zerfall mit einem Geigenzähler gemessen werden Q Nach dem Start Ihres PCs wollen Sie gleich zwei mit je einem 128 Bit Session Key geschützte symmetrisch verschlüsselte Verbindungen zu den Servern jupiter und merkur aufbauen. Weiter werden je 160 Bit Schlüsselmaterial für die kryptographischen Checksummen (MACs) benötigt. Im Entropie-Pool Ihres PCs sind jedoch nur 300 Bit echte Zufallsinformationen vorhanden. Wie lösen Sie dieses Problem mit einer möglichst kleinen Sicherheitseinbusse sofort? A • 300 Bit echte Entropie werden als Seed für eine Pseudo-Random Function (PRF) verwendet. Mit dieser können dann 2 * 128 + 2 * 160 = 576 Bit Schlüsselmaterial erzeugt werden. Q Ein E-Banking Server baut pro Minute einige Tausend TLS Sessions auf und benötigt für den Diffie-Hellman Schlüsselaustausch entsprechend viel Zufallsmaterial. Welche Entropiequelle würden Sie empfehlen? A • Eine quantenmechanische Entropiequelle • z.B. Quantique kann 4-16 Mbit/s Zufallsmaterial liefern InfSi2_fscala Page 67 • z.B. Quantique kann 4-16 Mbit/s Zufallsmaterial liefern Q Auf einem PC leifert der Mikrofonausgang der Soundkarte folgenden Output: Wie kann die Statistik dieser Quelle verbessert werden, sodass diese aussieht alsob ein Affe eine Münze geworfen hätte? A • Hashen mittels einer Hash Funktion • Evt. mit John von Neumanns Anti-Bias Algorithmus Q Weshalb werden im folgenden Diagramm die HMAC Werte A(1), A(2), A(3), … nochmals gehasht bevor diese als pseudo-zufälliger Schlüsselstrom verwendet werden? A • Durch Kenntnis dieser internen Zustände sind sowohl der Input (Seed) wie auch der resultierende Output jeder HMAC Stufe bekannt. Obwohl zum heutigen Zeitpunkt keine Attacken bekannt sich, könnten dennoch Rückschlüsse auf den geheimen Schlüssel S erleichtert werden. Q Zählen Sie sechs Entropiequellen auf, welche auf einem vernetzten Desktop-PC meist vorhanden sind und bewerten Sie deren Ergiebigkeit und Qualität A Timing von Tastenschlägen • 1-2 Bit Entropie pro Tastenschlag • Gute Qualität Mausbewegung • Schnell viel Entropie • Gefahr von wiederholten (regelmässigen) Kreisbewegungen Abtasten von verrauschten Soundkarteneingängen • Mehrere LSB pro Abtastwert sind verrausch und können genutzt werden • Gefahr von Totalausfällen Zugriffszeiten bei Festplatten (Luftturbulenzen) • Sehr gute Quelle mit Entropierate von bis zu 100 Bit/Minute Ankunftszeiten von Netzwerkpaketen • Bei paranoiden Puristen eher verpönt, da die Ankunftszeiten von aussen manipuliert werden könnten Schwankungen des Rechnertakts • Weniger Entropie als man denkt, da die Clockregister häufig nicht bei jedem Tick aufdatiert werden InfSi2_fscala Page 68 häufig nicht bei jedem Tick aufdatiert werden Q Auf einem Linux System speisen eine defekte Soundkarte und ein Trusted Platform Module (TPM) Bitsequenzen in den Entropiepool von /dev/random. Die Bitstörme sehen über eine Dauer von 32 Bit wie folgt aus: Wieviele Bit Entropie enthält der Pool nach dem Einarbeiten diese Sequenzen, wenn er vor Beginn leer was? Begründen Sie Ihre Antwort. A • Die defekte Soundkarte liefert eine kontante Bitfolge von 0 1 mit Null Entropie während das TPM 32 echte Zufallsbits liefert • Aus diesem Grund enthält der Entropie Pool nach diesen zwei Sequenzen lediglich 32 Bit Entropie. InfSi2_fscala Page 69 Tor Q Weshalb werden nicht die Introduction Points für das Rendervouz verwendet, zu denen der anonyme Server ohnehin schon einen Circuit besitzt, sondern ein zufälliger gewählter Onion Router? A • Ein Introduction Point könnte rechtliche/ethische Probleme damit haben, als Rendezvous Point für zweifelhafte Dateien/Inhalte zu dienen • Ein jeweils zufällig ausgewählter Rendezvous Point hat keine Ahnung welche Transaktionen über ihn laufen und ist somit völlig unbelastet Q Welche drei Hauptdaten sendet ein Anonymer Client verschlüsselt mit dem Public Key des angebotenen Dienstes Introduction Point an den anonymen Server? A • Den Onion Router der als Rendezvous Point dienen wird • Ein Cookie welches auch am Rendezvous Point hinterlegt ist und dank dem der Tor Circuit des Servers mit dem bereits aufgebautem Tor Circuit des Clients im Rendezvous Point verbunden werden kann • Der öffentliche Diffie-Hellman Faktor der Clients für die verschlüsselte Client-Server Verbindung • Informationen über den Client Q Welche drei Hauptdaten sendet der anonyme Server an den Rendezvous Point, falls der Server entscheidet die Anfrage des anonymen Clients zu beantworten? A • Das vom Client erhaltene Rendezvous Cookie • Der öffentliche Diffie-Hellman Faktor des Server fürs die verschlüsselte Client-Server Verbindung • Ein Has über den aus dem Diffie-Hellman Austausch abgeleiteten Session Keys Q Wie wird gewährleistet, dass der Rendezvous Point passiv keinen Einblick in die zwischen Client und Server ausgetauschten Informationen erhält und nicht als Man-in-the-Midle auftreten kann? A • Durch den Diffie-Hellman Austausch ist die Client-Server Verbindung End-to-End Verschlüsselt • Der Hash über den Session Key ist der Beweis für den Client, dass er mit dem korrekten Server verbunden ist da der Client seinen Diffie-Hellman Faktor mit dem Public Key des Dienstes InfSi2_fscala Page 70 verbunden ist da der Client seinen Diffie-Hellman Faktor mit dem Public Key des Dienstes verschlüsselt hat und nur der Server diesen via Private Key entschlüsseln kann Q A Der NSA gelingt es in folgendem Netzwerk von anonymizing Mixes eine Benutzer/Server Beziehung aufzudecken. 1. Um welchen Benutzer und um welchen Server handelt es sich und wie konnte dies aufgedeckt werden? 2. Welche zwei Defizite weisen welche Nodes auf und welche Massnahmen müsste man dagegen unternehmen? 1 • Beziehung zwischen U2 und S3 via M2-M6-M5 • Die NSA speist aktiv das Paket VNF von U2 an M2 nochmals ein (replay) • Das Paket VNF wird immer zu RDX umentschlüsselt und kann somit von M2 zu M6 weiterverfolgt werden • Dasselbe wiederholt sich am Node M5 mit RDX auf FCI • Node M5 verwirft zwar dieses Duplikat, leitet jedoch das Paket HHM innerhalb einer Stunde als einziges an S3 weiter 2 • M2 und M6 akzeptieren Duplikate, entschlüsseln diese auf gleiche Art und weise und leiten diese weiter. Es kann durch diese Input/Output Korrelation auf den nächsten Mix geschlossen werden • Durch führen einer Hashtabelle alles eingehenden Pakete in einer Datenbank könnten Duplikate verworfen werden. • M3 und M5 leiten Pakete auch bei wenig Verkehr weiter sodass eine einzelne Nachricht weiterverfolgt werden kann. • Man müsste mehrere Pakete vor dem weiterleiten (in zufälliger Reihenfolge) zwischenspeichern. Dies führt jedoch unter Umständen zu hohen Latenzzeiten. Q Weshalb sind Pseudo-Anonyme Remailer fast von der Bildfläsche verschwunden? A • Als Single Point of Vulnerability erlauben diese das passives Sniffen von aussen das Korrelieren der ein- und ausgehenden Pakete • Zudem sind die Betreiber meist juristischem Druck ausgesetzt und es besteht die Gefahr von InfSi2_fscala Page 71 • Zudem sind die Betreiber meist juristischem Druck ausgesetzt und es besteht die Gefahr von Korruption/Bestechung Q Weshalb wird bei Chaum's klassischer "Cascade of Mixes" in jedem Mix eine Zwiebelschale entfernt und der damit freiwerdende Platz mit zufälligem Padding aufgefüllt? A • Garantiert die durchgehend gleich grösse aller Pakete um eine Korrelation zwischen ein- und ausgehenden Paketen aufgrund ihrer Grösse oder Bitmusters zu verhindern Q Weshalb verschlüsselt der Onion Proxy beim Aufbau einer Tor Verbindung der für einen bestimmten Onion Router bestimmten öffentlichen Diffie-Hellman Faktor mit dem Public Key des entsprechenden Hops, obwohl dieses kein Geheimnis darstellt? A • Dadurch werden MITM Attacken ausgeschlossen, da der entsprechende Hop sicher den passenden Private Key besitzen muss • Der korrekte Empfang und Entschlüsselung wird durch die Antwort mit einem Hash über das gebildete Diffie-Hellman Geheimnis quittiert. Q Wozu dient das Digest Feld im Tor Stream-Payload, welches einen vom Onion Proxy gebildeten Hashwert über das Klartext-Paket enthält? A • Ein Onion Router merkt nach dem entschlüsseln (entfernen einer Zwiebelschale) aufgrund der korrekten Checksumme/Hash das er auf den Klartext gestossen ist und somit als Exit-Point agieren muss. • Dadurch kann der Exit-Point dynamisch gewählt werden, ohne dass dieser wissen muss, dass er ein Exit-Point sein wird. Q Ein Netzwerksniffer überwacht einen Mixknoten und registriert folgende ein- und ausgehenden Datenpakete: Welche drei Defizite zeigt dieser Knoten einer High-Latency Anonymizer Kette? Begründen Sie Ihre Antwort. Defizit 1 Das Paket xczR0… wurde nicht umgeschlüsselt Defizit 2 Das Paket zx3RS… ist doppelt vorhanden und wird auch zwei Mal umgeschlüsselt als SpJsrh… weitergeleitet. Defizit 3 Alle Pakete scheinen ohne randomisierte Reihenfolge und nur mit minimaler Verzögerung den Mitknoten zu verlassen. Dies ist z.B. anhand von xczR0… und zx3RS… zu sehen. Q Die folgende Grafik zeigt den typischen Aufbau eines Mixnodes in einer Anonymisierungskette. Erläutern Sie den Nutzen der einzelnen Komponenten. InfSi2_fscala Page 72 Erläutern Sie den Nutzen der einzelnen Komponenten. A Database/Drop Duplicates • Um eine Korrelation zwischen Verschlüsselten Paketen und den ausgehenden umgeschlüsselten Paketen und deren Zieladresse zu verhindern wird eine Datenbank mit Hashes aller weitergeleiteten Pakete geführt und allfällige Duplikate verhindert. Es wird so verhindert das durch Einspeisen von Duplikaten via Replay (z.B. durch die NSA) auf den nächsten Hop geschlossen werden kann. Private Key/Decrypt • Dank der Zwiebelschalenprinzips und die umschlüsselung von Paketen an jedem Hop ist keine korrelation zwischen Ein- und Ausgehenden Paketen anhand der Bitmusters möglich. Zudem sollten alle Pakete, sei es durch zufällige Paddings, die gleiche grösse besitzen. Message Buffer/Resort • Ohne Randomisierung der Reihenfolge durch das Zwischenspeichern von Paketen wäre der nächste Hop aufgrund der Reihenfolge (FIFO) bekannt. Voraussetzung für einen guten Puffer ist ein grosses Verkehrsvolumen um die Latenz der Pakete möglichst gering zu halten. Q Weshalb bietet Tor den Exit Nodes die Möglichkeit eine Exit Policy zu definieren? A • Damit sich die Exit Nodes selbst vor Missbrauch wie versenden von Spam via SMTP Port 25 etc. schützen können. • Das Tor Netzwerk benötigt freiwillige Exit Nodes. Um solche zu gewinnen muss Ihnen diese Möglichkeit offen stehen. Q Wie können Exit Nodes ihre Position in einem Tor Netzwerk zu kriminellen Zwecken missbrauchen? A • Der Exit Node ist derjenige der potentiellen Klartext zum Endpunkt lesen und mithören kann. • Aus diesem Grund sollten möglichst nur verschlüsselte Protokolle wie HTTPS über Tor verwendet werden. Q Nennen Sie zwei Gründen weshalb der Anbieter von Hidden Services eine Reihe von Introduction Points wählt und nicht eifach direkt über einen Rendezvous Point (RP) veröffentlich. A • Der Rendezvous Point ist unter Umständen nicht mit dem Service bzw. dessen Content einverstanden • Der Rendezvous Point könnte durch Feinde des Hidden Service Betreiber durch DoS Attacken in die Knie gezwungen werden Q Der Anbieter eines Hidden Service generiert ein RSA Schlüsselpaar und hinterlegt den Public Key bei einer gewissen Anzahl von Introduction Points. Wozu dient dieser Public Key? A • Mit diesem Public Key kann jeder Client über den Introduction Point Kontakt mit dem Hidden InfSi2_fscala Page 73 A • Mit diesem Public Key kann jeder Client über den Introduction Point Kontakt mit dem Hidden Service aufnehmen und ihm Verschlüsselt Verbindungsdaten übermitteln. Q Der Client wählt zufällig einen Onion Router (OR) als Rendezvous Point (RP), baut ein Circuit zu dessen auf und übergibt ihm ein sogenanntes Rendezvous Cookie. Wozu dient dieses Cookie? A • Der Client übermittelt dieses Cookie zusammen mit dem Namen des RP via Introduction Point an den Hidden Service, welcher dann ein Circuit zum RP aufbaut. • Der Hidden Service identifiziert sich beim RP mittels Cookie und wird dadurch mit dem Circuit des Clients verbunden. Q Wozu dient der öffentliche Diffie-Hellman Faktor, den der Client bei der Verbindungsaufnahme mit einem Hidden Service via Introduction Point an den Hidden Service übermittelt? A • Der öffentliche DH Faktor des Clients wird für die End-to-End Verschlüsselung der Kommunikation zwischen Client und dem Hidden Service via dem Rendezvous-Point benötigt. • Der öffentliche DH Faktor des Hidden Service wird bei der Verbindungsaufnahme via RP an den Client übermittelt. InfSi2_fscala Page 74 DNSSEC Q Begründen Sie weshalb der Benutzer aufgrund folgendes Screenshots sicher sein kann, dass nicht einfach der Webserver down ist sondern dass die Domäne nicht existiert? A • Grünes Schlüsselsymbol des DNSSEC Validator Firefox Plugins visualisiert die signierte NSEC oder NSEC3 Antwort des .ch DNS Servers, dass kein Eintrag für die intsi1.ch Zone existiert. Q In folgendem Screenshot scheint die Chain of Trust nicht bis zur Root Zone zu reichen. Welcher Eintrag der Root Zone fehlt und mit welchem Schlüssel müsste er signiert werden? A • In der Root Zone fehlt der Delegation Signer (DS) Resource Record der .pl Zone • Diese müsste mit dem Zone Signing Key (ZSK) der Root Zone signiert werden Q Was was auf folgendem Screenshot los? InfSi2_fscala Page 75 A • Falsche RSA Signatur (RSIG) über den A Resource Record des baddata-A.test.dnssectools.org Zoneneintrag Q Was bedeutet das grüne Schlüsselsymbol welches durch das DNSSEC Validator Plugins angezeigt wird? A • Erfolgreiche Auslösung von www.cacert.org via DNSSEC Q Woraus besteht der DS Resource Record der folgenden DNSSEC Abfrage und wie genau wird das Vertrauen in die Signatur (RSIG Resource Record) über den DS Resource Record etabliert? A • Der Delegation Signer (DS) Resource Record besteht aus dem SHA-256 Hash des Key Signing Keys (KSK) der ch. Zone • Der DS Record der ch. Zone istz durch den ZSK der Root Zone signiert • Das Vertrauen in den ZSK der Root Zone wird durch den KSK der Root Zone hergestellt • Der KSK steht zuoberst (Wurzel) in der Hierarchie und muss explizit (manuell) in den DNS Server importiert werden Q Mit welchem Schlüssel wird der NS Resource Record der folgenden DNSSEC Antwort signiert? InfSi2_fscala Page 76 A • Der NS Record der switch.ch. Zone ist durch den Zone Signing Key (ZSK) der switch.ch. Zone signiert Q Wie wird das Vertrauen in den Zone Signing Key (ZSK) der ch. Zone etabliert? A • Der DNSKEY Resource Record, welcher den Public Key des ZSK und des KSK der ch. Zone umfasst wird vom KSK der .ch Zone signiert. Q Gegeben ist folgender Ausschnitt aus der ietf.org Zone welche DNSSEC unterstützt. 1. Geben Sie für jeden DNSKEY an, ob es sich um einen Key Signing Key (KSK) oder um einen Zone Signing Key (ZSK) handelt sowie mit welchen Keys die RRSets signiert wurden. 2. Worum handelt es sich bei den DS Resource Records E) und F) und durch welchen DNSKEY wurde das DS RRSet signiert? 1 2 Key Domain Typ Key Tag Signers A org. ZSK 53990 A&B B org. KSK 21366 A&B H ietf.org. ZSK 40452 H&I I ietf.org. KSK 45586 H&I • Delegation Signer Resource Records bestehen aus • SHA-256 bzw SHA-1 Hash InfSi2_fscala Page 77 • SHA-256 bzw SHA-1 Hash • Von ietf.org. KSK I) mit Key Tag 45586 • DS RRSet wurde durch .org ZSK A) mit Key Tag 53990 signiert InfSi2_fscala Page 78 VPN / IKE Q Gegeben seien folgende Konfigurationen für die IPSec Gateways moon, mars und sun. Zeichnen Sie die Netzwerktopologie mit den drei Gateways und allen Subnetzen auf. A Q Geben Sie an wer mit wem über oben aufgesetzten IPSec Tunnel kommunizieren kann. A InfSi2_fscala Page 79 A Q A Das LAN-Subnetz 10.1.0.0/60 soll über eine Kaskade von zwei VPN Tunnelverbindungen mit dem LAN-Subnetz 10.2.0.0/16 gekoppelt werden. Der VPN Gateway cat übernimmt hierbei die Rolle als vertrauenwürdiger Zwischenknoten. 1. Wie müssen die drei Linux strongSwan Gateways konfiguriert werden wenn left jeweils die lokale Seite und right die remote Seite darstellt? 2. Können mit diesem Setup die beiden Hosts 10.1.0.10 und 10.3.0.20 über den Tunnel zwischen dog und cat kommunizieren? Begründen Sie Ihre Antwort. 1 InfSi2_fscala Page 80 2 Q A • Nein, da die IPSec SA nur für IP Pakete im Transit zwischen den Subnetzen von dog (10.1.0.0/16) und mouse (10.2.0.0/16) gilt und deshalb die Pakete mit der Destination/Source 10.3.0.20 nicht getunnelt werden. Der Roadwarrior red baut mittels IKEv2 zwei IPSec Tunnel zum Gateway baran auf. In beiden VPN Endpunkten wird strongSwan mit folgender Konfiguration eingesetzt. 1. Die Hosts red, green und baran versenden nun ICMP Requests an verschiedene Destinationen gegeben durch die IP. Kreuzen Sie an, mit welcher IPSec SA die pink Pakete verschlüsselt oder im Klartext übertragen werden. 2. Welche IKE Messages werden beim Aufbau der beiden IPSec Tunnel mittels IKEv2 ausgetauscht. Wieviele IKEv2 Pakete sind es insgesamt? 1 InfSi2_fscala Page 81 A 1 2 • IKE_SA_INIT Request/Reply • IKE_AUTH Request/Reply • CREATE_CHILD_SA Request/Reply • 6 Pakete Q Zwischen zwei Subnetzen werde ein IPSec Tunnel aufgebaut welcher mit AES verschlüsselt wird. Mittels ping kann der Tunnel erfolgreich getestet werden. Als ein längerer FTP Download gestartet wird, kommen jedoch plötzlich keine TCP Pakete mehr durch den Tunnel und der Download stockt. Welches Problem könnte hier vorliegen und wie wird es behoben? A • Ping Pakete sind klein, der FTP Download benötigt jedoch Pakete die mit maximaler MTU abgefüllt sind. Werden diese getunnelt kommt der IPSec Header noch hinzu werden die Pakete aufgrund Überschreitung der MTU fragmentiert und somit häufig verworfen. • Die MTU muss manuell heruntergesetzt werden Q Welches sind die Vorteile eines durch einen Telecom Carrier betriebenen MPLS Netzwerks? 1. Der IP Verkehr wird nicht geroutet, sondern über eine optimale Route geschaltet 2. Das MPLS Label trägt Class of Service Informationen. Damit kann wichtiger oder zeitkritischer Verkehr bevorzugt behandelt werden. 3. Der Telecom Carrier garantiert die Sicherheit der Daten durch automatische und starke End-to-End Verschlüsselung und Authentisierung. A • 1 und 2 Q Zwischen den VPN Gateways fidel und castro werden mit Linux und strongSwan zwei IPSec Tunnel aufgesetzt. Die entsprechende ipsec.conf Datei für fidel sieht folgendermassen aus. InfSi2_fscala Page 82 1. Welche der folgenden ICMP Request/Reply Pakete werden mittels ESP getunnelt? 2. Wieviele IKE Nachrichten werden mit IKEv1 bzw. IKEv2 benötigt um die beiden Tunnel aufzusetzen? 3. Mit welcher ID identifiziert sich fidel gegenüber castro? A 1 2 3 Q A • Mit IKEv1: 6 + 3 + 3 = 12 • Mit IKEv2: 4 + 2 = 6 • Dem Distinguished Named (DN) aus der subject Zeilt des Zertifikats fidelCert.pem Erklären Sie weshalb die folgenden vier Punkte für das effiziente Betreiben grosser VPN Netzwerke wichtig sind und mit welchen Mechanismen diese realisiert werden können. 1. Automatische Zuweisung von virtuellen IP Adressen 2. Authentisierung basierend auf X.509 Zertifikaten 3. Sichere Aufbewahrung von RSA Authentisierungsschlüsseln 4. Implementierung von individuellen Zugriffsprofilen (User Access Control) 1 • Virtuelle IP Adresse erleichtern das Routen von IP Paketen durch den VPN Tunnel auf dem Rückweg zu den Remote Access Clients • Die automatische Vergabe der virtuellen IP Adresse entlastet den nicht-versierten Endbenutzer und verhindert Fehlkonfigurationen • Mechanismen zur Vergabe virtuelle IP Adresse sind L2TP, DHCP-over-IPSec oder IKE Mode Config 2 • Es müsste die potentiell unsichere IKE Aggressive Mode in Kombination mit XAUTH verwendet werden welches anfällig auf MITM und damit offline Dictionary und Brute-Force Attacken ist • Mittels PKI kann eine grosse Teilnehmerzahl mit X.509 Zertifikaten ausgerüstet werden, welche im Notfall mittels CRL gesperrt werden können. Damit ist IKE Main Mode bei dynamischen IP Adresse problemlos möglich. 3 • Bei Diebstahl oder Verlust des Notebooks können die auf der Disk gespeicherten RSA Schlüssel kompromittiert werden. Dasselbe gilt bei Netzwerkattacken auf stationäre Rechner. • Nur PIN geschützt Chipkarten oder USB Crypto Tokens gewährleisten, dass Authentisierungsschlüssel nicht kopiert werden können und sollten deshalb besonders bei Remote Access Clients eingesetzt werden. 4 • Bei eine grossen Anzahl Benutzer können Zugriffsprofile nur durch Benutzergruppen effizient realisiert InfSi2_fscala Page 83 4 • Bei eine grossen Anzahl Benutzer können Zugriffsprofile nur durch Benutzergruppen effizient realisiert werden. Dabei empfiehlt sich die Kopplung von VPN Authentisierung mit dynamischen Firewall-Regeln. • Dies kann beispielsweise über Wildcards in X.509 Zertifikaten, über mehrstufige Zertifikatshierarchien auf der Basis von X.509 Attributszertifikaten oder mittels Privilege Access Certificates (Kerberos Ticket Erweiterung von Microsoft) geschehen. Q Warum bringt bei vielen modernen Challenge/Response Anwendungen (IKE, SSL/TLS Handshake, …) der Initiator eine eigene Zufallszahl (Nonce) in das Protokoll ein, wo doch die zufällige Challenge des Responders zur Sicherstellung der Einmaligkeit ausreichen würde? A • Server könnte mit gezielt gewählten Challengewerten etwas "Böses" im Schilde führen • Durch Hinzufügen eines eigenen Zufallwerts in die Response kann dies der Client verhindern Q Welche Attacke wird möglich wenn der Server dieselbe Challenge mehrmals verwendet? A • Replay-Attacke wenn die frühener Logins durch den Angreifer gesnifft wurden • Session Hijacking da die zugehörige Response bekannt ist Q Warum wird eine Passwort-basierte Remote Access Client Authentisierung vorteilhaft mit einer IVEv2 EAP Methode durchgeführt statt mit der wesentlich effizienteren IKEv2 PSK Authentisierung? A • Bei IKEv2 PSK muss der VPN Client als erster seine potentiell schwachen Credentials schicken. Das PSK Verfahren ist also anfällig auf Man-in-the-Middle (MITM) Attacken • Bei IKEv2 EAP muss sich der VPN Gateways als erster mit seiner Zertifikat-basierten Signatur ausweisen. MITM Attacken werden so verhindert. Q Weshalb wird dem Remote Access Client durch den VPN Gateways eine virtuelle IP Adresse zur Verwendung im Inneren des IPSec Tunnels vergeben? A • Ohne diese würde im Tunnel die dynamische, durch den ISP vergebene Adresse verwendet werden. Liegen im Heimatnetzwerk der VPN und Default Gateway nicht im selben Netzwerkpfad wird die Antwort unverschlüsselt via Default Gateways an die äusserem IP des Remote Access Clients gesendet. • Ohne virtuelle IP Adresse würde im Inneren des IPSec Tunnels die private, durch den DHCP Servers des NAT Routers vergebene IP Adresse verwendet werden- Das viele das gleiche Routermodell besitzen kann es zu Konflikten beim Routen der Antwort kommen. InfSi2_fscala Page 84 NAC/TNC Q Welche zwei Hauptaufgaben hat das PB-TNC / IF-TNCCS 2.0 Protokoll, welches zwischen TNC Client und TNC Server läuft? A • Die PA-TNC Meldungen von und zu den einzelnen IMCs und IMVs werden durch den TNC Client/Server in PB-TNC Batches multiplexiert. • Informationsmeldungen (z.B. Language Preference), Fehlermeldungen sowie Resultate (Recommendation / Evaluation) werden über PB-TNC Batches zwischen TNC Server und TNC Client ausgetauscht. Q Welche Konsequenzen hat folgende Aktion des Policy Enforcement Points moon für den IPSec Remote Access Client dave? A • Der Remote Access Client dave wird über eine spezielle "isolate" IPSec Policy in ein Quarantäne-, Isolations- oder Remediation-Netzwerk verbannt, in dem er seinen Host aus "Vordermann" bringen kann. Q Welcher Unterschied betreffend benutzter Namespaces besteht zwischen dem ersten und dem zweiten PA-TNC Attribut? A • Das erste PA-TNC Attribut "Port Filter" gehört zum Standard IETF Namespace und ist im PA-TNC RFC spezifiziert. InfSi2_fscala Page 85 PA-TNC RFC spezifiziert. • Das zweite PA-TNC Attribute "Command" gehört zum proprietären ITA-HSR Namespace welche durch die Private Enterprise Number (PEN) 0x00902a aufgespannt wird. Q Was bedeuten diese IF-MAP Metadaten welche von einem VPN Gateways geliefert wurden? A • Ein Remote Access Client mit IPv4 Adresse 10.10.0.20 wollte eine Verbindung zum VPN Gateway "strongswan-home" aufbauen, wurde jedoch durch den Policy Enforcement Point (PEP) geblockt. InfSi2_fscala Page 86 Smart Card Q Ein Mitarbeiter gibt an einem Arbeitsplatz beim Login drein mal hintereinander eine falsche PIN ein und seine Firmenkarte wird dadurch blockiert. Welche zwei Möglichkeiten hat um die Karte wieder zu entsperren? A • Mittels PUK der Karte • Security Officer kann meist mit seiner PIN die PIN des Benutzers zurücksetzen Q Wie garantiert ein Chipkartenbetriebssystem, dass auf einer Telefonkarte ein Zähle für Gebühreneinheiten nicht durch missbäuchliche Manipulation wieder aufgeladen werden kann? A • Es wird nur eine decrease Funktionalität, jedoch keine increase Funktionalität implementiert. Der Zähler kann somit nur heruntergezählt werden. Q Weshalb sind Bank- und Kreditkarten, die auf dem EMV Standard basieren, wesentlich sicherer als herkömmliche Karten? A • Herkömmliche Karten speichern die Daten auf einem Magnetstreifen welche einfach zu kopieren sind. • EMV Karten hingegen speichern ihre Daten kopiergeschützt auf einem Chip. Q Welches Authentisierungsverfahren verwenden EMV Karten? A • EMV Karten verwenden eine RSA Public Key Authentisierung mit Schlüsseln zwischen 1024 und 1984 Bit Modulus • In Zukunft sind Elliptic Curve Keys vorgesehen. • Die RSA Keys authentisieren die Karten, nicht den Benutzer Q Wie weit sind EMV Karten bereits global eingeführt worden? A • Mit Stand 2010 wurden bereits 1000 Millionen Karten ausgegeben und es existieren 16 Millionen EMV-Fähige Terminals. Die globale Einführung ist somit bereits sehr fortgeschritten. Q Weshalb funktionieren kontaktlose Chipkarten wie LEGIC oder MIFARE nur auf einer Entfernung von maximal ca. 10m? A • Der Chip in der Karte wird über die in der Karte eingebaute Antenne durch das Lesegerät von aussen mit Spannung versorgt. • Da dies wie in einem Transformator über magnetische Kopplung (Induktion? Spulen?) geschieht darf die Distanz bei passiven Chipkarten nicht allzu gross sein Q Weshalb werden im Zahlungswesen (EMV - Europay, Mastercard, Visa) nur Karten der Klasse A (5V) eingesetzt, während es im Mobilfunkbereich (SIM) nur Karten der Klasse B (3V) oder C (1.8V) sind? A • Terminals für den Zahlungsverkehr sind meist an das Stromnetz angeschlossen, sodass eine höhere Leistungsaufnahme kein Problem darstellt dafür jedoch eine höhere Zuverlässigkeit erzielt werden kann. • SIM Karten werden vom Handy-Akku gespiesen was direkten Einfluss auf die Betriebszeit der Mobiltelefons (Akku) hat. InfSi2_fscala Page 87 Q Weshalb achten Chipkartenhersteller sehr darauf, dass der Stromverbrauch ihrer Karten im Betrieb über die Zeit möglichst konstant bleibt? A • Einzelne Mikroprozessoperationen können sonst über "Power and Timing" Analyse identifiziert werden und damit unter Umständen auf der in der Karte gespeicherte Wert/Schlüssel geschlossen werden Q Wie wird garantiert, dass ein Smartcard-Dieb sich nicht als der Besitzer ausweisen kann? A Um die Smartcard zu aktivieren wird ein geheimer PIN-Code benötigt. Q 1. Erklären Sie wie die Anwendung die vorhandene Zertifikatsdatei in der folgenden PKCS# 15 Topologie finden und mit welchem absoluten Pfad sie auf das Zertifikat zugreifen kann. 2. Geben Sie den absoluten Pfad auf diejenige PIN Datei an, mit dem die Zertifikatsdatei schreibgeschützt ist A Q A 1 • Die reservierte Datei /3F00/2F00 enthält einen Link auf das PKCS#15 Directory /3F00/5015 • Das PKCS#15 Directory 5015 besitzt ein Object Directory File (ODF) mit dem reservierten Dateinamen 5031 • Das Object Directory File (ODF) 5031 enthält einen Link auf das Certificate Directory File (CDF) /3F00/5015/4404 • Mit dem Pfad /3F00/5015/5501 kann die Anwendung direkt auf die Zertifikatsdatei zugreifen 2 • 3F00/0000 Alle Chipkarten mit einem Crypto Coprozessor bieten die Möglichkeit ein RSA Schlüsselpaar auf der Karte zu generieren. Nennen Sie je einen Vor- und Nachteil dieses Features bei der Erzeugung von Signaturschlüsseln. Vorteil • Der Private Key verlässt die Karte nie. Dies garantiert, dass nur eine Kopie existiert, was bei einer Digitalen Signatur von grösster Bedeutung ist. Nachteil • Der Anwender muss dem Chipkartenhersteller vertrauen, dass der Schlüssel auch wirklich zufällig ist und mit maximaler Entropie generiert wurde. InfSi2_fscala Page 88 wurde. Q In welchem Verzeichnis der abgebildeten PKCS#15 Topologie befindet sich die PIN welche den RSA Private Key schützt und welche Rechte hat der Benutzer nachdem er sich mit dieser PIN eingeloggt hat? A • Die PIN ist in der Datei 0000 im Unterverzeichnis 4B01 gespeichert • Nach einem Verify mit der PIN kann eine RSA Signatur oder eine RSA Entschlüsselung auf der Chipkarte getätigt werden. • Die PIN berechtigt jedoch nicht zum Extrahieren/Lesen des Private Keys, dieser kann nur gelöscht oder überschrieben werden. Q Nennen Sie zwei Vorteile, wenn wie bei Windows 8 vorgesehen, eine virtuelle Smart Card auf der Basis des TPM Storage Root Keys (SRK) zur Verfügung stehen wird, verglichen mit einer herkömmlichen Smart Card mit USB-Schnittstelle die an den PC angesteckt wird? A • Das nur der SRK auf dem TPM gesichert wird und die einzelnen dadurch gesicherten Private Keys (Storage Keys) auf der Festplatten sind, können beliebig viele Schlüssel und Zertifikate in der virtuellen Smart Card gespeichert werden. • Eine Smart Card wird vergessen oder verloren. Mit der durch den SRK PIN geschützten virtuelle Smart Card hat man sie immer mit dem PC dabei. InfSi2_fscala Page 89 Buffer Overflows Q Die Variable buffer wird mit 0xFF initialisiert. Ist bei folgendem, zur Laufzeit gemachtes Snapshot Sprung in den Stackbereich der Anwendung durch überschreiben von EIP möglich? A • Ja, da die randomisierung des Stackbereichs sowie andere Schutzmassnahmen ausgeschaltet sind Q Die Variable buffer wird mit 0xFF initialisiert. Ist bei folgendem, zur Laufzeit gemachtes Snapshot Sprung in den Stackbereich der Anwendung durch überschreiben von EIP möglich? A • Nein, es ist ein Canary gleich neben der buffer Variable vorhanden welches das Überschreiben verhindert • Das Canary besteht aus einem 0x00 vermutlich gefolgt von einer Checksumme kombiniert mit einem Zufallswert Q Die Variable buffer wird mit 0xFF initialisiert. Ist bei folgendem, zur Laufzeit gemachtes Snapshot Sprung in den Stackbereich der Anwendung durch überschreiben von EIP möglich? InfSi2_fscala Page 90 A • Nein, die Randomisierung des Stackbereichs ist eingeschaltet und unser Payload nicht direkt herausfinden kann wo dieser sich auf dem Stack befindet • Die Variation der Stackstartadresse von 8MB ist auch viel zu gross, als dass man diese durch NOPs auffüllen könnte Q Wie kann, falls es möglich ist den Stackbereich der Anwendung anzuspringen, dennoch verhindert werden, dass Schadcode ausgeführt wird? A • Durch setzen de NX (No eXecute) Bits in den Page Tables womit der Stackbereich als nichtausführbar deklariert wird • Wird durch 64 Bit Prozessoren und 32 Bit Prozessoren mit PAE (Physical Address Extension) unterstützt • Reine 32 Bit Betriebssysteme können das NX Bit Softwarebasierend emulieren Q Durch ein Refactoring in strongSwan wurde durch inkorrekte verwendung snprintf() eine potentielle Vulnerability eingeführt. Bei der Funktion dntoa() wird ein ASN.1 Codierter DN in einen lesbaren String um (z.B. C=CH, O=HSR, CN=Andreas Steffen). Die einzelnen Teile des DNs werden durch eine Enumerationsfunktion einzeln in String konvertiert und mittels snprintf() zusammengebaut. 1. Welche Vulnerability kann hier zu einem Buffer Overflow führen? 2. Durch welchen zusätzlichen Code könnte diese Lücke geschlossen werden? 3. Bei Fehlern gibt snprintf() einen negativen Wert zurück. Wie muss die Aufgabe 2 erweitert werden um dies zu berücksichten? 4. Die Enumerationsfunktion ersetzt bei der Konversion alle nicht ASCII Zeichen durch ein ?, was bedeutet dies für den potentiell gefährlichen Shell Code des Angreifers? InfSi2_fscala Page 91 1 • snprintf() gibt bei einem zu langen String die Anzahl zeichen zurück die geschrieben worden wären, falls buf gross genug gewesen wäre. • Die Variable written ist somit so lang wie der zu lange String, durch die Subtraktion wird len jedoch negativ • Da len als unsigned deklariert ist, resultiert ein extrem grosser, positiver Wert. • Alle darauf folgenden Teilstrings würden über den Buffer hinaus schreiben, da diese durch len limitert werden. 2 … int written = snprintf(pos, len, "%s", rdn); if(written >= len) { // check if too long pos[len - 1] = '\0'; // null-terminate break; // get out of the loop } pos += written; len -= written; … 3 • Rückgabewert von snprintf() muss auf negative Werte geprüft werden if(written < 0 && written >= len) { … } 4 • Shell Code besteht üblicherweise aus nicht druckbaren Zeichen, binären Maschineninstruktionen • Der Shell Code müsste deshalb in ein ASCII-Format konvertiert werden und einen in ASCII geschriebenen Konverter beinhalten um den Lauffähigen Shell Code wiederherzustellen. hex to dec und hex sub. Q Gegeben ist folgendes C Programm welches anfällig auf einen Buffer Overflow ist sowie GDB Output mit Informationen über Adressen und Pointer. 1. Wieviele Bytes (ohne terminierendes Null) muss der String mindestens besitzen um die Rücksprungadresse vollständig zu überschreiben. Machen Sie eine Skizze. 2. Aus Effizienzgründen wird auf den Frame-Pointer verzichtet, wie lang muss der String InfSi2_fscala Page 92 2. Aus Effizienzgründen wird auf den Frame-Pointer verzichtet, wie lang muss der String diesmal sein? 3. Weshalb unterscheiden sich die Startadressen der Stacks in Aufgabe 1 und 2 um über 240MB? A 1 • buffer[16] + BP[8] + IP[8] = 32 Bytes 2 • Wieder 32 Bytes, der Platz wird freigehalten wenn auch der Base Pointer nicht gespeichert wird 3 • Die Randomisierung des Stack-Adressraums durch den Linux Kernel bei jedem Programmaufruf soll Buffer-Overflows erschweren. • Da die Adresse der Buffers in einem so grossen Bereich schwankt ist diese nicht durch NOPs im Shellcode auszugleichen. Q Welche drei potentiellen Vulnerabilities weist folgende Funktion auf A • 4: strlen(default_entry) - Es ist nicht sichergestellt, dass default_entry NullTerminiert ist • 6: Es ist nicht sichergestellt, dass die grösse von table max_lines entspricht • 8: strncpy() - Es ist nicht sichergestellt, dass jede Zeile von table auch mindestens len Bytes alloziert hat InfSi2_fscala Page 93 Q A Q Beschreiben Sie die drei effektivsten Ansätze welche einen Buffler Overflow verhindern oder zumindest erschweren sollte. Address Space Layout Randomization (ASLR) • Die Startadresse von Libraries, Heap und Stack werden zufällig gewählt. Damit wird die Bestimmung von absoluten Speicheradressen erschwert. Canaries • Bestimmte Werte (Konstant, Zufällig, oder Berechnet) werden zwischen Puffer und der Rücksprungadresse eingefügt um Buffer Overflows detektieren zu können. Executable Space Protection (NX Bit) • Speicherbereiche wie Heap oder Stack werden als nichtausführbar markiert. Die Ausführung von Maschinen Code in diesem Bereich führt zu einem segmentation fault. Es wird ein Shellcode entwickelt, welcher einen Buffer Overflow einer instalierten Zielsoftware ausnutzen soll um die Kontrolle über den Host zum übernehmen. Nachdem auf dem Host jedoch Google Earth installiert wurde und somit die Pfadvariable erweitert wurde, scheint es nicht mehr zu funktionieren. 1. Aus welchem Grund funktioniert der Shellcode nicht mehr? 2. Durch welchen Trick kann dieses Problem gelöst werden? A 1 • Alle Umgebungsvariablen einer Shell sind schon vor dem Aufruf der Zielsoftware im Memory initialisiert. Aus diesem Grund verschiebt sich Beginn des freien Stacks nach unten. Da die überschriebene Rücksprungadresse auf den Anfang des in den Puffer kopierten Shellcodes zeigen muss, ist diese durch die Verschiebung nicht mehr korrekt. 2 Durch Anhängen von möglichst vielen NOP Instruktionen vor dem Shellcode (im Puffer) können Adressschwankungen in gewissen Massen in Grenzen gehalten werden. Q Das Einfügen eines Canary zwischen der gespeicherten Rücksprungadresse und den lokalen Variablen auf dem Stack erschwert das Überschreiben der Rücksprungadresse durch einen Buffer Overflow. Beschreiben Sie, welche Attacke möglich wäre, wenn in einem Funktionsaufruf durch das Hauptprogramm als Parameter ein Funktionspointer übergeben wird. A • Die Funktionsparameter sind unmittelbar unterhalb des Canary auf dem Stack und können deshalb durch einen Buffer Overflow überschrieben werden. • Durch den Buffer Overflow wird der Funktionspointer durch die Startadresse des Puffers ersetzt wo sich der bösartige Shellcode befindet. • Wird der Funktionspointer innerhalb der aufgerufenen Funktion ausgewertet (dh aufgerufen) wird statt der übergebenen Funktion der Shellcode ausgeführt. InfSi2_fscala Page 94 OWASP Q Geben Sie drei der OWASP Top 10 Web Application Security Risks an A • Cross-Site Scripting (XSS) • SQL Injection • Cross-Site Request Forgery (CSRF) https://www.owasp.org/index.php/Top_10_2013-Top_10 Q Beim Aufruf der Webseite www.einkauf.ch wird die Session ID in der URL übermitteln. Auf der Webseite ist ein Link auf www.sbb.ch hinerlegt. Beschreiben Sie wie der Administrator von www.sbb.ch die Session ID des Kunden einsehen kann, wenn dieser auf den Link klickt. A Über das Referrer Header Feld wird die vorherige URL mitgegeben. Da die Session ID in dieser enthalten war erscheint diese in den Web-Server Logfiles von www.sbb.ch Q Die Webseite www.einkauf.ch hat von Session ID in der URL auf Session Cookies umgestellt. Auf dieser Webseite gibt es ein verwundbares Gästebuch www.einkauf.ch/gast33.html. Beschreiben Sie im folgenden Sequenzdiagramm wie ein Angreifer das Cookie von www.einkauf.ch Kunden stehlen könnte. A Verhindern durch setzen von HttpOnly Cookie Flag. InfSi2_fscala Page 95 Q Ordnen Sie mit 1, 2, 3 diejenigen drei Software Security Best Pracises, welche typischerweise die höchste Effektivität betreffend Verbesserung der Sicherheit aufweisen • Abuse cases • Architectural risk analysis • Code Review • Penetration testing • Risk-based Security tests • Security operation • Security requirements A 1. Code review 2. Architectural risk analysis 3. Penetration testing Q Geben Sie an, welchen OWASP Top 10 Vulnerabilities folgende Beispiele entsprechen 1. Jemand der Zugriff auf die Datenbank des Online-Shop hat kann die Passwörter der Kunden im Klartext lesen 2. In einem Kunden-Forum innerhalb des Online-Shops kann beliebiger Textinhalt (HTML, JavaScript) eingetragen werden 3. Wenn man die URL zur Administrations-Oberflächer kennt, kann man administrative Aktionen ausführen ohne sich vorher einloggen zu müssen. A Q A Q 1 • Insecure Cryptofraphic Storage 2 • Cross-Site Scripting (XSS) 3 • Failure to Restrict URL Access Ein Online-Shop leider unter den folgenden OWASP Vulerabilities. Nennen Sie je ein Beispiel beim Vorgang "Waren bestellen" 1. Broken Authentication and Session Management 2. Insecure Direct Object Reference 3. Insecure Communications 1 • Es können Waren als anderer Benutzer bestellt werden 2 • Wenn man die ArtikelID kennt können Artikel bestellt werden die nicht im Sortiment aufgelistet sind • Zugriff auf Warenkorb anderer Benutzer via ID 3 Mit einem Sniffer könnten Daten der Bestellung (Artikel, Kreditkarte, Credentials, …) abgehört werden. Die Login-Seite einer Webapplikation prüft die Credentials mit folgendem SQL Query: 1. Was für ein Benuzternamen müsste man eingeben um sich ohne Passwort erfolgreich einzuloggen und wieso funktioniert dies? 2. Was für ein Benutzernamen müsste man eingeben um alle Rows der Tabelle anzuzeigen? A Q 1 • asteffen' -- %20 • Alles nach dem -- gilt als Kommentar und wir nicht geprüft 2 • ' OR 1=1 -- %20 • ' UNION SELECT * FROM users -- %10 Leider wird bei einer SQL Injection einer Detailansicht nur genau die erste Row des SQL Queries angezeigt, wie kann man dennoch an alle anderen Rows gelangen? InfSi2_fscala Page 96 A • Mit LIMIT eines nach dem anderen (LIMIT 0,1 dann LIMIT 1,1, …) • UNION und alles in eine Row konkatenieren Q Geben Sie drei grundsätzlich verschiedene Vorgehen an, falls die Anwendung keine Resultate beim versucht einer SQL Injection ausgibt. A • Fehlermeldung verursachen • Boolean based attacks (z.B. 1=1 AND 0=1 ist immer false) • Time based attacks, Redirecting output. Rechenaufwändige Aufgaben ausführen (z.B. eine Million MD5 Hashes) Q Auf einer Internet-Auktionsplatform gibt es für jeden Artikel eine Webseite. Diese besteht aus einer Beschreibung sowie einem Formular über welches nach Authentisierung an der Auktion teilgenommen werden kann. Die Artikelbeschreibung kann beliebigen HTML- und Scriptcode enthalten. 1. Sie möchten einen möglichst hohen Preis erzielen. Geben Sie die nötigen Schritte an um mittels XSS den Betrag um den Faktor 100 zu erhöhen (50 => 5000) 2. Eine andere Auktion wurde so manipuliert, dass die Formulardaten an einen Drittserver weitergeleitet werden (URL des Formulars) was muss getan werden damit diese den Betrug nicht entdecken. 3. Welche Massnahmen muss der Betreiber der Auktionsplatform treffen um XSS zu unterbinden? A 1 • In der Seite wird JavaScript eingeschleust welches den Wert des Betrages kurz vor dem Submit des Formulares mit dem Hundertfachen überschreibt. 2 • Das Skript auf dem externen Server muss wieder auf die ursprünglich aufzurufende Seite weiterleiten. 3 • Artikelbeschreibung muss geprüft und HTML Tags escaped werden. • Falls man dennoch formatierten Code wünscht müsste man eine Art WikiMarkup Sytnax implementieren. Q Beschreiben Sie was das "OWASP-Projekt" mit mindestens drei Schlagwörtern. A • Open Web Application Security Project • Soll helfen die Anwendungssicherheit zu verbessern • Bietet Tools wie Webscarab • Zudem eine absichtlich mit Lücken behaftete Trainingsanwendung (Webgoat) Q Ein Online Multiplayer Spiel besteht aus einem Server sowie einem Applet welches im Browser der Teilnehmer läuft und via UDP mit dem Server kommuniziert. Geben Sie für jedes der unten stehenden Probleme an, um welche OWASP Top 10 Schwachstelle es sich handelt. 1. Hacker fängt mittels Sniffer das Login Paket ab und kann sich selbst durch erneutes Senden dieses Pakets einloggen. 2. Irrelevant 3. Irrelevant 4. Irrelevant A 1 Broken Authentication and Session Management 2 Irrelevant 3 Irrelevant 4 Irrelevant InfSi2_fscala Page 97 InfSi2_fscala Page 98 TPM Q A Die Festplattenpartition auf dem sich das PC Betriebssystem und dessen Benutzerdaten befindet ist mit einem 128 Bit AES Schlüssel verschlüsselt. Dieser ist wiederum mit einem 2048 Bit RSA Storage Key gesichert und ebenfalls auf der Festplatte gespeichert. Der Storage Key sei über Sealing an einen gewissen Stand der TPM Platform Configuration Register 0..5, in die alle BIOS Messungen während des Bootvorgangs hineingehasht werden, gebunden. Der PC Benutzer fängt sich beim Surfen einen Trojaner ein, welcher sich als Root-Kit in das BIOS einnistet. 1. Beschreiben Sie in etwa drei Sätzen was genau passiert wenn der Benutzer das nächste Mal seinen PC bootet. 2. Wie kann dieses Problem behoben werden? 1 • Durch das Rootkit ändern sich einige der BIOS Messwerte welche ins PCR gehasht werden sodass diese von den vorherigen abweichen. • Aufgrund der geänderten PCR Werte und des Sealings kann der AES Schlüssel nicht entschlüsselt werden und der Zugriff auf die Festplattendaten nicht möglich. • Das Betriebssystem kann somit nicht durch den Bootloader geladen werden und der Bootvorgang bricht ab. 2 • Das BIOS Flash muss auf die Originalversion zurückgesetzt werden • Dies muss mit einer CD oder DVD geschehen da die Festplatte nicht zur verfügung steht. Q Microsoft führt mit Windows 8 einen "Secure Boot" Prozess ein, welcher die UEFI Version 2.3.1 bedingt. Wie verhindert das UEFI, dass im Gegensatz zum alten BIOS ein durch Malware verseuchter OS Loader ausgeführt werden kann? A • Der OS Loader muss durch den Hersteller (Microsoft, RedHat, …) signiert werden. • Der Public Key oder Zertifikat des OS Loader-Hersteller kann nur im UEFI gespeichert werden, wenn dieser mit dem Platform Key des OEM Hardware Herstellers signiert worden ist • Nur wenn diese Bedingunen erfüllt sind kann die Signatur-Verifikation erfolgreich durchgeführt und damit der OS Loader ausgeführt werden. Q Ist ein TPM Chip auf dem PC Motherboard vorhanden nimmt Windows 8 während des gesamten Boot-Prozesses Messungen an den Treibern, asugeführten Programmen, Liraries und geladenen Dateien vor und hash diese Messwerte in die PCR der TPM. Wozu werden diese durch das TPM abgesicherten Messwerte genau verwendet und worauf deuten falsche Messwerte hin? A • Die Messwerte werde für eine Prüfung gebraucht, bei der ein externer Policy Server den Gesundheitszustand des PC Client bestimmt • Alle erfassten Messwerte und die durch das TPM signierten und damit beglaubigten PCR Werte werden über ein Netzwerkprotokoll (TNC, NAP) angefordert. • Wenn die Messwerte nicht stimmen hat der Benutzer oder ein Rootkit entweder Secure Boot ausgetrickst oder es wurden zwar signierte aber veraltete Softwarekomponenten InfSi2_fscala Page 99 Boot ausgetrickst oder es wurden zwar signierte aber veraltete Softwarekomponenten geladen. Q Kann der 2048 Bit RSA Endorsement Key (EK) eines TPMs durch den Benutzer oder Systemadministrator gelöscht oder neu generiert werden? Begründen Sie Ihre Antwort. A Nein der EK dient zur eindeutigen Identifikation des TPM und wird deshalb durch den TPM Hersteller bei der Produktion generiert und unlöschbar im TPM gespeichert. Q Wozu dient ein von einem TPM generierter Attestation Idenntity Key (AIK) und das entsprechende durch eine Privacy CA ausgestellte AIK Zertifikat? A • Mit dem AIK Private Key kann eine TPM digital signieren. • Die Überprüfung der TPM AIK Signatur kann über das AIK Zertifikat vorgenommen werden, welches den AIK Public Key enthält und von einer vertrauenswürdigen Privacy CA signiert wurde. Q Wozu braucht es eine Privacy CA? A • Das AIK Zertifikat wird von der Privacy CA nur ausgestellt, wenn der AIK Certificate Request mit dem Endorsement Key der TPM signiert worden ist und die Request Signatur mit dem EK Zertifikat des TPM verifiziert werden konnte. • Dadurch kann via EK eine eindeutige Zuordnung zwischen AIK und TPM vorgenommen werden, welches jedoch nur der Privacy CA als "Trusted 3rd-Party" bekannt ist. InfSi2_fscala Page 100