Table of Contents - Pages - Studentenportal

Die Seite wird erstellt Marvin Krieger
 
WEITER LESEN
Table of Contents - Pages - Studentenportal
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 ;-)

fabio.scala@gmail.com / fscala

                                       InfSi2_fscala Page 1
Table of Contents - Pages - Studentenportal
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                256

Hash                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 MODP-
                    DH 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
Table of Contents - Pages - Studentenportal
NSA Suite B CONFIDENTIAL
Vertrauliche Dokumente

NSA Suite B SECRET           192 bit und 256 bit bei Encryption (AES, AES-GCM)
Geheime Dokumente

                         Algorithm               Key Size        True Strength Bemerkung
Symmetric Encryption     AES                     128 bit         128 bit         • 192/256 für paranoide
                         (CBC oder Counter)                                      • Vermutung: Wahre Stärke von 256 bit eher gegen
                                                                                   192 bit
                                                                                 • Keine Attacke für AES bekannt (schneller als Bruce-
                                                                                   Force)
Data Integrity (Hash)    SHA-256                 256 bit         128 bit         • Key Size / 2 = 2 Stärke für Kollisionsattacke
                         (SHA-2 oder SHA-3)                                      • 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          Theoretisch 22 Zeichen (base64) für 128 bit
                                                                                 Sicherheit, jedoch schwer zu merken

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
Table of Contents - Pages - Studentenportal
• 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       1                            192
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
Table of Contents - Pages - Studentenportal
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
Table of Contents - Pages - Studentenportal
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
Table of Contents - Pages - Studentenportal
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          • Gefahr von Totalausfällen
Card Input             • Mehrere LSB pro Abtastwert sind verrauscht und können verwendet werden
Air Turbulence in      • Bis zu 100 Bit/min
Disk Drives            • Sehr gute Quelle
RAID Disk Array        • Timing Informationen
Controllers
Network Packet         • 1-2 bit pro Packet
Arrival Times          • 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
Table of Contents - Pages - Studentenportal
Metastable Oscilliators                  • 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)
Lava Lampen                           • 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
Table of Contents - Pages - Studentenportal
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
Table of Contents - Pages - Studentenportal
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           Defined in IEEE 802.1X-2010, MKA is a key agreement protocol for discovering
           agreement            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         Derived from the MSK, the CAK is a long-lived master key that is used to
           association key      generate all other keys needed for MACsec.

                                             InfSi2_fscala Page 10
association key      generate all other keys needed for MACsec.
SAK       Secure association   Derived from the CAK, the SAK is the encryption key used to encrypt traffic for
          key                  a given session.

From 

                                            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.."        • SSL/TSL/IPSEC verwenden
                                            • Downgrade Attacks                              • Secure flag auf Session Cookies setzen
                                                 • MITM, Parameter so verändern das          • Mixed SSL vermeiden (static Data ohne SSL)
                                                   schlechtere Cipher Suites vereinbart      • Zertifikate sind:
                                                   werden                                           • Nicht abgelaufen
                                                 • Danach brute-force Entschlüsseln                 • Korrekter CN
                                                                                                    • Nicht revoked
                                            • Rogue Administratoren                                 • Trusted (CA)
                                                 • Verbindung zwischen eigenen               • Evtl. EV für green bar in Browser
                                                   Servern/Physical tiers sichern            • Min. 2048 bit für key exchange
                                                                                             • Min. 256 bit für Verschlüsselung

Häufigkeit

XSS                                55%

                                         InfSi2_fscala Page 12
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
                              Human Intentional        Insider, Outsider
                              Natural                  Flut, Brände, Stürme, Blitze, Meteoriten, Erdbeben, etc.

Threat Agent Factor          • 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?
                                2         Entwickler
                                2         System Administrator
                                4         Intranet Benutzer
                                5         Firmenpartner
                                6         Authentifizierte Benutzer
                                9         Anonyme Internet Benutzer

Vulerability Factors         • 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?
                       1         Feststellung in Applikation
                       3         Logging und reviews dessen
                       8         Logging ohne reviews
                       9         Kein Logging

Impact Factors       • Loss of confidentiality: Wieviel Daten werden preisgegeben und wie sensibel sind diese?
(Technical Impact)     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?
                       1         Komplett zurückverfolgbar
                       7         Unter Umständen zurückverfolgbar
                       9         Komplett Anonym

Impact Factors         • Financial damage: Wie hoch sind die Finanziellen Auswirkungen?
(Business Impact)          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                                             • Sicherstellen das ein SDLC vorhanden ist das Wert auf Sicherheit legt
Vor der Entwicklung                                 • Sicherstellen das Regeln/Grundsätze und Standards im Entwicklungsteam vorhanden sind
                                                    • Metriken und Kriterien festlegen (traceability sicherstellen)
Phase 1 & 2                                         • Sicherheitsanforderungen festlegen
Definition und Design                                     • User management, Passwörter, Auth., Accountability, Session Management, TLS, etc.
                                                    • Design und Review der Architektur
                                                    • Design und Review von realistischen Angriffsszenarien
Phase 3                                             • Code Reviews
Während der Entwicklung                                  • CIA
                                                         • OWASP Top 10
                                                         • BSI, etc.
Phase 4                                             • Pentesting
Während der Entwicklung                                   • OWASP Testing Framework
Phase 5                                             • Review des Applikationsbetriebs
Wartung                                             • 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
t            der Fall ist.

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. < und > 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. < und > 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       • Hash mit Salt
gschützt                     • Niemals Klartext speichern
                             • Evtl. sogar noch verschlüsseln
Starke Passwörter            • Bestimmte Passwort-Komplexität voraussetzen
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       • Für jeden Login eine neue Session ID
Authentisierung neu          • Verhindert Session Fixation Attacken wobei der Benutzer mit einer
erstellt                       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. 

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                                             • Ausgangskontrolle
Data Loss Prevention (DLP)                                 • Kontrollieren was hinausgeht, die Grenzen überschreitet/verlässt
                                                           • Bsp.: Zoll, Quarantäne, Safe
Usage Control                                              • Kontrollieren wie informationen verwendet werden
Information Rights Management (IRM)                        • Bsp.: DRM, Patente, Copyright

Egress Control
                          Beschreibung                                                                Beispielimplementation
Channel Protection        • Alle für den Benutzer nicht relevanten Kommunikationskanäle blockieren   • HTTPS/SSH verwenden
                          • Kanäle überwachen                                                        • Mail Traffic Monitoring
                                 • Logging                                                           • Read-Only Internet
                                 • Alarm bei Verdachtsfällen                                         • Secure Mail (z.B. Verschlüsselung)
                          • Verschlüsselung der Kanäle
Endpoint Protection       • Endpunkte verriegeln                                                     • Disk Verschlüsselung
                                • Verschlüsselung                                                    • Anti-Virus
                                • Ports deaktivieren                                                 • USB Ports deaktivieren
                          • Softwareinstallationen verhindert
                          • Schutz gegen externen Attacken
                                • Spam
                                • Viren
                                • Phishing
Document Protection • Unbefugter Zugriff verhindern                                                  • IRM
                    • Keine Produktionsdaten in Testumgebungen                                       • Synthetische Daten in Testumgebung
                    • Inhalte Verschlüsseln                                                          • Zugriffsreche überprüfen/reviewen
                    • Inhalte Wasserzeichnen

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                                Peter Heinzmann
                                                                                100'000 CHF
                                                                                132-533-75
Synthetic     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                • Grosser re-ordering Puffer resultiert in hoher Latenz
Anonymizers                 • + 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                 • Kleiner oder kein re-ordering Puffer resultiert in tiefer Latenz
Anonymizers                 • + 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                                      • Tiefer Latenz
Java Anon Proxy                          • 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           • Onion Proxy, Client Software die als SOCKS Proxy dient
Proxy (OP)      • 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       • Kleine Gruppe well-known OR
Server          • 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         • Circuit-level throttling
Control                  • 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
Application-       Es wird spezielle Software benötigt, jedoch keine Modifikation der
transparency       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           IPsec
Network Layer
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         • Gleiches Auth. Verfahren wie PPP                     • Keine Security ohne IPSec
(L2TP)                                                                       • Replay Attacken (MITM) bei nicht Authentisierten
                                                                               Paketen
                                                                             • Keine Verschlüsselung
Layer 3         • Starke Verschlüsselung/Authentisierung              • Kein Tunneling von nicht-IP Protokollen
(IPSec)         • 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)     • Braucht teilweise spezielle Plugins
              • Starke Verschlüsselung/Authentisierung

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
Sie können auch lesen