#+title: it-sec
#+STARTUP: overview
* Stoff
:PROPERTIES:
:ANKI_DECK: uni::it-sec::theorie
:END:

** Vorlesungen
*** 1 Vorlesung (Einführung)
**** relevante Daten in der IT-Sicherheit
***** valuable data
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1604056796201
:ANKI_FAILURE_REASON:
:END:
****** Vorderseite
Was ist /valuable data/?
****** Rückseite
Daten die mit monetärem Wert vebunden sind. Das sind Kreditkartendaten, Kryptowährungen, Amazon / Ebay Accounts, aber auch der Netflix-Account. Angreifer können damit Geld verdienen.

***** private data
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786178820
:END:
****** Vorderseite
Was ist 'private data'?
****** Rückseite
Gesundheit, Familie, Lebensplanung. Daten, die man nicht ins Internet stellen würde. Bergen die Gefahr der Erpressung. Diese Daten gehören zum persönlichen Schutzraum.

***** dangerous data
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786178982
:END:
****** Vorderseite
Was ist 'dangerous data'?
****** Rückseite
Daten, die Einfluss auf physikalische Prozesse haben. Steuerung von Maschinen (Atomkraftwerken, Fahrzeugen). Ein Angriff auf diese Daten birgt Lebensgefahr.
**** Sichere Soft- und Hardware zu entwickeln ist schwierig
Weil:
***** Komplexität der Systeme
Je komplexer das System, desto schwieriger ist dessen Schutz.
***** Entstehung dieser Systeme
Werden meist von Unternehmen entwickelt, die einer Vielzahl von Constraints unterliegen und daher bei Sicherheit sparen.
***** Bekannte Schwachstellen aus der Vergangenheit
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179106
:END:
****** Vorderseite
Nennen sie 3 bekannte Schachstellen aus der Vergangenheit
****** Rückseite
******* Heartbleed
Schwachstelle in OpenSSL. Ermöglichte das Mitlesen von Daten auf dem Transportweg.
******* Shellshock
Schachstelle in Bash, die 30 Jahre lang bestand.
******* Spectre & Meltdown
Hardware-Schwachstellen in Prozessoren. Spekulative Ausführung kann genutzt werden, um Einfluss auf Berechtigungen und den CPU-Cache zu nehmen.
**** Cybercrime
Schaut auf Endnutzer, nicht mehr auf IT-Systeme / Server.
****** Skilled Attackers
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179250
:END:
******* Vorderseite
Was sind /skilled attackers/?
******* Rückseite
*Professionelle* und gut ausgestattete Angreifer (meistens /state sponsored/), die gezielte Angriffe gegen Wirtschaft und Staat führen mit dem Ziel der Erpressung, Spionage, Sabotage.

Beispiel: Stuxnet Worm. Angriff aus dem Jahre 2010 auf iranische Atomanlagen (vermutlich duch us-amerkanische und israelische Geheimdienste).
**** Sicherheitsziele und Bedrohungen
Bergriffsklärung
***** Sicherheitsziele der IT Sicherheit
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179363
:END:
****** Vorderseite
Nennen und erklären Sie 3 grundlegende und 3 weitere Ziele der IT Sicherheit
****** Rückseite
******* Grundlegende
C.I.A.
******** Vertraulichkeit (Confidentiality)
Absicherung von Ressourcen gegen Enthüllung / Offenlegung.
Abhören von Telefonie, Mitlesen der Emails.
Gängigstes Gegenmittel ist die Verschlüsselung. Verstecken ist auch möglich, aber nicht effektiv.
******** Integrität (Integrity)
Absicherung von Ressourcen gegen unbefugte Manipulation.
Z.B. Abänderung von Überweisungsdaten (Änderung des Empfängers),
Abänderung von Dateien in meinem Dateisystem.

Es muss nicht sein, dass Angriffe gegen die Integrität auch die Vertraulichkeit stören. Sie sind dann blinde Angriffe.

Gegenmittel: Authorisierung prüfen, Prüfsummen und digitale Fingerprints. Am besten auf einem anderen Kanal schicken.

#+begin_quote
Wer ist Mario und von welchem Zeug hat er 10kg besorgt? xD
#+end_quote

******** Verfügbarkeit (Availibility)
Absicherung gegen die Störung der Ressourcen.

Z.B.
- Versucht jemand den Webserver zu crashen, damit eine Website nicht mehr erreichbar ist?
- Versucht ein Angreifer meine Festplatte zu formatieren?

Beliebt in Verbindung mit Erpressung. Das Abhandensein des Online-Shops führt zu Geldeinbußen.
********* Absicherung
- Einschränkung der Verfügbarkeit (Authorisierung).
- Redundanz: Mehrere Server
- Diversität: Verschiedene Server

******* Weitere
******** Authenticity (Authentizität)
Der Urheber der Informationen ist, wer er vorgibt. Könnte als Teil der Integrität gezählt werden. Integrität des Absernders / Erstellers.
******** Accountability (Verantwortlichkeit)
Das Verknüpfen von Handlungen und Nutzern. Wichtig für Forensik. Wer hat was gemacht? Wer ist schuld? Ist teilweise personalrechtlich verboten.
******** Privacy (Privatsphäre)
Sicherheit und Kontrolle von persönlichen Daten. Hier gelten die gleichen Mechanismen wie oben (Vertraulichkeit, Integrität, Verfügbarkeit), aber die Daten sind personenbezogen. Eigener Zweig der IT-Sicherheit.
***** Abgeleitete Begriffe
****** Threat
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179491
:END:
******* Vorderseite
Definieren Sie /threat/.
******* Rückseite
Verletzung eines Sicherheitsziels.
****** Security
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179592
:END:
******* Vorderseite
Definieren Sie /Security/.
******* Rückseite
Absicherung gegen *absichtliche* Threats.
Z.B. Die Bremse meines Autos soll nicht gehackt werden.
****** Safety
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179731
:END:
******* Vorderseite
Definieren Sie /Safety/.
******* Rückseite
Absicherung gegen *versehentliche* Threats (Unfälle).
Z.B. Die Bremse meines Autos soll funktionieren und nicht ausversehen kaputt gehen, oder falsch benutzt werden können.
***** Angriffsklassen (threat classes)
***** Unsere Definition von Angriffsklassen
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179835
:END:

****** Vorderseite
Wie schauen wir auf Angriffsklassen?
****** Rückseite
Angriff: Alles, was *absichtlich* ein *Sicherheitsziel* zu verletzen versucht.
Anstatt alle möglichen Angriffe aufzuzählen, sollten wir eher auf die Sicherheitsziele schauen.

***** Threat Classes
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786179965
:END:
****** Vorderseite
Was sind /threat classes/?
Nennen und definieren Sie 4 /threat classes/. (Muss laut Prof nicht auswendig gelernt werden).
****** Rückseite
/Threat classes/ sind die Arten auf welche Sicherheitsziele verletzt werden können.
******* Disclosure
Dinge werden an dritte weitergegeben. Unauthorized Access.
******* Deception
Täuschung. Hat die Form falscher Daten. Absender des IP Pakets ist falsch.
******* Disruption
Störung des Betriebs z.B. eines Webserver.
******* Usurpation
Unauthorisierte Übernahme der Kontrolle. Beispiel: Selbstfahrendes Auto wird durch Hacker ferngesteuert.

**** Sicherheitsmechanismen und Policies
***** Definition Sicherheitsmechanismen und Policies
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786180152
:END:
****** Vorderseite
Erklären Sie den Unterschied zwischen Sicherheitsmechanismen und -policies
****** Rückseite
Wir unterscheiden zwischen Mechanismen und Policies (Strategien, Gesetze).
- Policy ist ein Gesetz, das definiert, was erlaubt ist und was nicht.
- Der Mechanismus ist ein Werkzeug, welches die Policy umsetzt.
Es kann sein, dass etwas nicht erlaubt ist (Policy), aber der Mechanismus das Verbot nicht perfekt umsetzt.

Z.B. will man keinen Spam, aber die Spamfilter können das nicht perfekt umsetzten (lassen Spam durch oder filtern Ham raus).
***** Arten von Mechanismen
****** Kreislauf der Sicherheitsmechanismen
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786180285
:END:
******* Vorderseite
Nennen und definieren Sie die 3 Phasen des niemals endenden Sicherheitskreislaufs.
******* Rückseite
******** Prevention (Prävention)
Oberstes Ziel. Es soll keine Sicherheitsvorfälle geben. Damit beschäftigt man sich *vor* einer Verletzung der Sicherheitsziele.
Z.B.:
- Man verwendet Verschlüsselung, damit niemand die Mails mitlesen kann.
- Man verwendet Authentifikation
- Man verwendet Ristriktion von Zugriffsrechten.
Bietet aber keinen 100%igen Schutz (falsche Benutzung, Sicherheitslücken). In anderen Fällen ist der Einsatz einiger Mechanismen nicht möglich,
- z.B. wenn man ein offenes System (z.B. Internetsuche) betreibt. Man soll es nutzen können, ohne sich vorher anzumelden.
- z.B. muss die Bremse im Fahrzeug ohne Passwort funktionieren.

Daher:
******** Detection (Erkennung)
Wenn die Prävention versagt, soll trotzdem der Angriff erkannt werden. Reagiert wird *während* der Verletzung des Schutzziels. Funktioniert nur, wenn man die Angirffsart kennt:
- Man scannt Mails nach Bedrohungen, aber sie kommen über eine Website.
Z.B.:
- Virenscanner: Reagiert, wenn die Schadsoftware bereits im System ist.
Daher:
******** Analysis (Analyse)
Ein Sicherheitsvorfall ist bereits aufgetreten. Wie ist das passiert?
Dient nur der zukünftigen Absicherung.
******** Beispiel
Wie beim Zahnarzt:
Prävention: Zähneputzen
Detection: Zahnarztbesuch zur Überprüfung
Analysis: Stelle wird gefunden und entfernt. "Bitte putzen Sie besser, benutzen Zahnseide und nehmen eine andere Körperöffnung zur Essensaufnahme".

*** 2 Vorlesung (Symmetrische Kryptographie)
**** Cryptography
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786180425
:END:
***** Vorderseite
Definieren Sie den Begriff /Cryptography/.
***** Rückseite
Die Wissenschaft die /Confidentiality/ und /Integrity/ von Information zu schützen. Die Information wird nicht versteckt, also ist von außen sichtbar, dass Informationen vorhanden sind. Es muss davon ausgegangen werden, dass das Verschlüsselungsverfahren bekannt ist.
**** Cryptanalysis
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786180584
:END:
***** Vorderseite
Definieren Sie den Begriff /Cryptanalysis/.
***** Rückseite
Die Wissenschaft der /Angriffe/ gegen die Kryptographie.
**** Steganography
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786180724
:END:
***** Vorderseite
Definieren Sie den Begriff /Steganography/. In welcher Situation ist /Steganography/ relevant?
***** Rückseite
Die Wissenschaft des /Versteckens/ von Information. Wichtig, wenn Kommunikaiton /nicht observierbar/ oder /abstreitbar/ sein muss.
**** Cryptosystems
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181042
:END:
***** Vorderseite
Skizzieren Sie den Weg von Nachrichten innerhalb eines /Cryptosystems/. Erläutern sie auch die jeweiligen Begriffe.
***** Rückseite
[[/home/dandy/org/wiki/media/it-sec/nachricht-weg-crypto.png]]

M := /Plaintext/ Nachricht
C := /Cyphertext/ Nachricht
\( K_{E} \) := /Encryption Key/
\( K_{D} \) := /Decryption Key/

**** More on Cryptosystems
***** Cipher
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181130
:END:
****** Vorderseite
Definieren Sie den Begriff /Cypher/.
****** Rückseite
Funktionen für das /Ver-/ und /Entschlüsseln/ von Nachrichten.
\( E(M, K_{E}) \) = /C/
\( D(C, K_{D}) \) = /M/
***** Keyspace
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181249
:END:
****** Vorderseite
Definieren Sie den Begriff /Keyspace/ eines kryptographischen Schlüssels. Worin unterscheidet sich hierbei /symmetrische/ und /public-key/ Kryptographie?
****** Rückseite
Die Menge aller möglichen Werte für \( K_{E} \) und \( K_{D} \)
/Symmetrisch/: \( K_{E} = K_{D} \)
/public-key/: \( K_{E} \neq K_{D} \)
***** Confusion Property
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181323
:END:
****** Vorderseite
Was ist die /Confusion Property/ einer kryptographischen /Cypher/?
****** Rückseite
Sind /Cyphertext/ und /Plaintext/ vorhanden, muss der /Key/ schwer ableitbar sein.
***** Diffusion Property
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181444
:END:
****** Vorderseite
Was ist die /Diffusion Property/ einer kryptographischen /Cypher/?
****** Rückseite
Es muss schwer sein den /Plaintext/ aus dem /Cyphertext/ abzuleiten.
***** Prinzip von Kerckhoffs
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181540
:END:
****** Vorderseite
Was ist das /Kerkhoffs'sche/ Prinzip in der Verschlüsselung?
****** Rückseite
- Es muss davon ausgegangen werden, dass die /Cypher/ dem Angreifer bekannt ist
- Die Sicherheit darf nur von der Verschlüsselung abhängen (no obscurity). *Allein die Größe* des Schlüssels ist das Maß für Sicherheit.
***** Warum ist Obscurity schlecht?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181650
:END:
****** Vorderseite
Ist an /Security through obscurity/ sinnvoll?
****** Rückseite
Nein, denn nach einer langen Nutzung des Verfahrens (evtl. durch mehrere Personen) kann man nicht mehr abschätzen, wie weit sich das Geheimnis der Obskurität verbreitet hat.
**** Some Attack Types
***** Brute-force attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181786
:END:
****** Vorderseite
Was ist eine /Brute-force/ Attacke auf ein Cryptosystem?
****** Rückseite
Alle möglichen Schlüssel des Keyspaces ausprobieren. Der Angriff wird durch die Größe des Keyspaces gebremst.
***** Purchase-key attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786181881
:END:
****** Vorderseite
Was ist eine /Purchase-key/ Attacke auf ein Cryptosystem?
****** Rückseite
Der Key wird durch Androhung von Gewalt, Diebstahl, Erpressung, Bestechung oder andere wenig subtile Methoden erlangt. Daher ist physikalische Sicherheit nicht zu vernachlässigen.
***** Cyphertext-only attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182052
:END:
****** Vorderseite
Was ist eine /Cyphertext-only/ Attacke auf ein Cryptosystem?
****** Rückseite
Anwendung eines Verfahrens zur Ableitung des Schlüssels ausschließlich aus dem /Cyphertext/.
***** Known-plaintext and chosen-plaintext attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182172
:END:
****** Vorderseite
Was ist eine /Known-plaintext/ bzw. /Chosen-plaintext/ Attacke auf ein Cryptosystem?
****** Rückseite
Man hat Paare von unverschlüsselten Nachrichten und ihren verschlüsselten Versionen. Im /known/ Fall hat man eine bekannte Anzahl dieser Paare, im /chosen/ Fall kann man für beliebige Nachrichten verschlüsselte Texte generieren.
Hier wird auch die Rekonstruktion des Schlüssels versucht.
**** Estimating Risk
***** Ressourcen bei Angriff auf Cryptosystem
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182298
:END:
****** Vorderseite
Nennen Sie die Ressourcen für einen Angriff auf ein Cryptosystem.
****** Rückseite
- Computation Power
- Speicherplatz
- Zeit
- (Skill)

***** Wann ist ein Verschlüsselungsverfahren /computationally secure/?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182419
:END:
****** Vorderseite
Wann ist ein Verschlüsselungsverfahren /computationally secure/ und was heißt das?
****** Rückseite
- Wenn der Trade-off zwischen den Kosten der Entschlüsselung und dem möglichen Profit negativ ist. Zu den Kosten der Entschlüsselung gehören z.B. die Kosten für die Rechenkapazität.
- Kryptographische Verfahren die mit den aktuell verfügbaren Ressourcen und den aktuell bekannten Angriffen nicht brechbar sind.
**** Ancient Ciphers
***** Simple substitution ciphers
****** Defintion
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182527
:END:
******* Vorderseite
Was ist eine simple /substitution cipher/ und was ist seine Schwäche?
******* Rückseite
- Ein Buchstabe einer Nachricht wird nach einer festen Verschiebung auf einen anderen Buchstaben gemappt.
- Der Keyspace ist sehr klein.
****** Caesar Cipher
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182672
:END:
******* Vorderseite
Was ist die /Caesar/ Cipher und wie groß ist ihr Keyspace?
******* Rückseite
- simple substitution cipher, Verschiebung des Alphabets um /k/ Stellen. Verschiebung um 0 und um |Alphabet| ist die Indentitätsverschiebung (keine Verschiebung).
- Der Key ist die Verschiebung k, daher ist der Keyspace |Alphabet| - 2.
****** ROT13
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182767
:END:
******* Vorderseite
Was ist die /ROT13/ Cipher und wie groß ist ihr Keyspace?
******* Rückseite
- simple substitution cipher, Spezialfall der Caesar Cipher, Verschiebung eines Buchstabens im Alphabet um 13 Stellen.
- Wird die Verschiebung als der Key angesehen, ist einer Verschiebung um 13 Stellen der Keys selbst, also ist der Keyspace = 1
***** Monoalphabetic substitution ciphers
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786182906
:END:
****** Vorderseite
Was ist eine /monoalphabetic substitution cipher/ mit Permutation und was ist seine Schwäche?
****** Rückseite
- Zu dem Alphabet der Nachricht wird ein gleichlanges anderes Alphabet gewählt, z.B. durch Permutation. Die Buchstaben werden 1:1 gemappt.
- Frequenzanalyse: Man zählt Buchstaben nach einer bekannten Frequenz und nimmt ein Wörterbuch der vermuteten Sprache und versucht sie zu mappen...
***** Vignère Cipher (Polyalphabetic substitution cipher)
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183001
:END:
****** Vorderseite
Was ist die /Vignère Cipher/ und was sind bekannte Angriffe auf ihn?
****** Rückseite
- Ein Buchstabe wird auf einen Buchstaben des gleichen Alphabets gemappt, jedoch ist der Offset nicht mehr fest, sondern wird von einem /Running Key/ festgelegt. Effektiv sind es mehrere einfache Substitutionschiffren in einender.
- Kasiski Test, Friedman Test: Die Verschiebnung hat eine Periode, die man herausfinden kann. Sie bestimmt die einzelnen monoalphabetischen Substitutionen, die dann zu ermitteln sind.
***** XOR Cipher
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183152
:END:
****** Vorderseite
Wie funktioniert die /XOR Cipher/?
****** Rückseite
1. Nachricht und Key auf Binärcode mappen.
2. Key auf die Länge der Nachricht periodisieren.
3. E(M, K) = xor(M, K) = C
   D(C, K) = xor(C, K) = M
***** One-Time Pad
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183242
:END:
****** Vorderseite
Was ist die /One-time pad/ Cipher und warum ist sie absolut sicher?
****** Rückseite
/XOR Cipher/ mit Constraints:
1. Die Länge des Keys und der Nachricht ist gleich.
2. Die Bits des Keys sind echt zufällig.
3. Der Key wird nur einmal benutzt und dann zerstört.

Funktioniert, weil:
- XOR mit einem wirklich zufälligen Schlüssel wieder völlig zufällig ist.
- Wenn C = xor(M, K), dann ist jedes M gleich wahrscheinlich.
**** Gängie Chiffren
***** Block Chiphers
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183374
:END:
****** Vorderseite
Was ist eine /Block Cipher/? Nennen Sie drei gängige. Zu welchem Zweck werden sie präferiert eingesetzt?
****** Rückseite
- /Block Ciphers/ ver- bzw. entschlüsseln Datenblöcken fester Größe.
- AES, Serpent, Twofish
- Verschlüsselnung statisher Daten wie Dateien.
Nachrichten, die nicht in einen Block passen, müssen in Blöcke gestückelt und evtl. auf Blockgröße aufgefüllt werden (Achtung: nicht mit 0en).

***** Strom Chiffren
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183496
:END:
****** Vorderseite
Was ist eine /Stream Cipher/? Nennen Sie zwei gängige. Zu welchem Zweck werden sie präferiert eingesetzt?
****** Rückseite
- /Stream Ciphers/ arbeiten auf Bit bzw. Byte Ebene.
- Rabbit, Salsa20
- Verschlüsselung dynamischer Daten.
Ein /Cipher Stream/ wird erzeugt indem mithilfe eines PRNG (/pseudo random number generator/) parallel zum /Message Stream/ ein /Key Stream/ erzeugt wird, die on-the-fly per XOR zusammengefügt werden.

**** Block Cipher Modes
***** Electronic Code Book (ECB)
****** Definition ECB
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183763
:END:
******* Vorderseite
Was ist die /Electronic Code Book/ Mode bei der Verschlüsselung mit Block Chiffren? Zeichnen Sie ein Diagramm.
******* Rückseite
- Naive Verschlüsselung der Blöcke: Man nimmt den Block und verschüsselt ihn ohne weiteres.
[[/home/dandy/org/wiki/media/it-sec/ecb-diag.png]]
****** Vor- und Nachteil bei ECB
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786183871
:END:
******* Vorderseite
Nennen sie den Vorteil der /ECB Mode/ bei der Verschlüsselung von Blöcken. Was ist der Nachteil?
******* Rückseite
- Es ist einfach und effizient: Die Verschlüsselung der eines Blöcks passiert unabhängig von der eines anderen und daher ist es einfach sie zu implementieren und verteilt (auf mehreren Cores) auszuführen.
- Anfällig für known-plaintext und replay Attacks: Ein Block wird immer auf den gleichen verschlüsselten Block abgebildet. Überträgt man zwei mal die gleichen Daten, weiß man es sind die gleichen. Ein Angreifer kann so auch einen bekannten Block in die Übertragung injecten und so die Kommunikation stören.
***** Cipher-Block Chaining
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786184152
:END:
******* Vorderseite
Was ist die /Cipher-Block Chaining/ Mode bei der Verschlüsselung mit Block Chiffren? Zeichnen Sie ein Diagramm.
******* Rückseite
- Vor der Verschlüsselung eines Blocks wird er mit bereits verschlüsselten Version des vorherigen Block geXORt. Der erste Block wird mit einem /Initialisierungsvektor IV/ geXORt. Der IV ist eine zufälliger String und wird für jede Nachricht neu generiert und offen mitgesendet.

[[/home/dandy/org/wiki/media/it-sec/cbc-mode.png]]
****** Vor- und Nachteile bei CBC
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786184276
:END:
******* Vorderseite
Nennen sie die Vorteile der /CBC Mode/ bei der Verschlüsselung von Blöcken. Wäre ein Nachteil?
******* Rückseite
- Resistent gegen known-plaintext und replay Angriffe.
- Verschlüsselung erfolgt sequenziell und kann nicht mehr parallelisiert werden.

***** Counter Mode (CTR)
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786184537
:END:
******* Vorderseite
Was ist die /Counter Mode/ bei der Verschlüsselung mit Block Chiffren? Zeichnen Sie ein Diagramm.
******* Rückseite
- Die Verschlüsselung von Blöcken wird wie eine Stream Cipher gehandhabt. Man kann das Verfahren in zwei Teile teilen. 1. Erzeugung des /key streams/: Der /key stream/ wird durch Verschlüsselung E einer offenen /nonce/ (number used only once) zusammen mit einem /Counter/ mithilfe des Schlüssel K erzeugt.
  2. Verschlüsselung der Blöcke: XOR Operation eines Key Blocks und des zu verschlüsselnden Blocks.

[[/home/dandy/org/wiki/ctr-mode.png]]

****** Vor und- Nachteile bei CTR
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786184656
:END:
******* Vorderseite
Nennen sie die Vorteile der /CBC Mode/ bei der Verschlüsselung von Blöcken.
******* Rückseite
- Die Keyblöcke können vorberechnet werden.
- Die Keyblöcke können /neu/ berechnet werden. Dazu braucht man nur die offene Nonce, den offenen Counter und den geheimen Schlüssel. Sollte ein Block verloren gehen, kann er ohne Probleme neu berechnet werden.
*** 3 Vorlesung (Public Key Cryptography)
**** Probleme der symmetrischen Verschlüsselung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786184784
:END:
***** Vorderseite
Nennen Sie zwei Probleme der symmetrischen Verschlüsselung.
***** Rückseite
- Symmetrische Kryptographie setzt ein /shared secret/ (den Schlüssel) voraus. Der Austausch verschlüsselter Nachrichten ist sicher, aber der Schlüsselaustausch ist es nicht.
- Gruppenkommunikation: Damit eine Gruppe unter einander sicher kommunizieren kann, braucht es ein /shared secret/ pro Paar. Für /n/ Gruppenmitglieder braucht man \( \frac{n^2 - n}{2} \) Schlüssel.
**** Idee der asymmetrischen Verschlüsselung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786184885
:END:
***** Vorderseite
Was ist bei der /public key/ Verschlüsselung /asymmetrisch/? Was erleichtert es? Hat es Nachteile?
***** Rückseite
- Trennung des Schlüssels in einen zur Verschlüsselung und einen zur Entschlüsselung. Der Verschlüsselungsschlüssel kann öffentlich gemacht werden.
- Weil der öffentliche Schlüssel öffentlich ist, ist das Problem des Schlüsselaustausches gelöst. Für Gruppenkommunikation braucht es nur ein Schlüsselpaar pro Person.
- ...
**** Rivest-Shamir-Adleman (RSA)
***** Erfinder
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786185008
:END:
****** Vorderseite
Nennen Sie die drei Erfinder von RSA
****** Rückseite
- Ron Rivest
- Adi Shamir
- Leonard Adleman
***** Euler'sche Phi-Funktion
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786185166
:END:
****** Vorderseite
Wie ist die euler'sche Phi-Funktion definiert?
****** Rückseite
- Für jede positive, natürliche Zahl /n/ gibt sie die Anzahl der zu /n/ teilerfremden natürlichen Zahlen kleiner /n/ an.
- \( \phi(n) = |\{ a \in \mathbb(N) | 1 \leq a \leq n \land ggT(a,n) = 1 \} | \)
- \( \phi(n \cdot m) = \phi(n) \cdot \phi(m) \)
- Für eine Primzahl /p/ gilt: \( \phi(p) = p - 1 \)

***** Schlüsselerzeugung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786185312
:END:
****** Vorderseite
Nennen Sie die nötigen Schritte zum Erzeugen eines RSA Schlüsselpaares. Gehen Sie darauf ein, warum der Schritt wichtig ist.
****** Rückseite
1. Wähle zufällige *Primzahlen* /p/ und /q/ und berechne \( n = p \cdot q \). Zur Sicherheit sollten /p/ und /q/ groß sein, weil die Sicherheit aus der Integer Faktorisierung kommt (schweres Problem).
2. Berechne Euler Funktion \( \phi(n) = \phi(p) \cdot \phi(q) = (p -1)(q - 1) \). Leicht, wenn /p/ und /q/ bekannt sind.
3. Wähle /öffentlichen/ Schlüssel /e/ mit \( ggT(e, \phi(n)) = 1 \). Nur so gibt es zu /e/ ein Inverses (mod \( \phi(n) \))
4. Berechne den /privaten/ Schlüssel \( d = e^{-1} \text{ mod } \phi(n) \).
***** RSA Verschlüsselung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786185572
:END:
****** Vorderseite
Sei ein RSA Schlüsselpaar /e, d/ und eine Nachricht /m/ gegeben. Wie erhält man den Ciphertext /c/? Wie entschlüsselt man /c/ zurück zu /m/?
****** Rückseite
- \( c = m^e \text{ mod } n \)
- \( m = c^d \text{ mod } n \)

[[/home/dandy/org/wiki/media/it-sec/rsa-decrypt.png]]

***** Angriff

**** Diffie-Hellman
***** Erfinder
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786185677
:END:
****** Vorderseite
Wer hat das Diffe-Hellman Verfahren entickelt?
****** Rückseite
- Die Idee kam von /Ralph Merkle/
- Entwickelt von /Whitfield Diffie/ und /Marin Hellman/.

***** Prinzip
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786185900
:END:
****** Vorderseite
Was ist der Zweck und das Prinzip von /Diffe-Hellman/?
****** Rückseite
- Schlüsselaustausch: Etablierung eines /shared secret/ über einen offenen Kanal. Kein Nachrichtenaustausch.
- Beide Partner haben je eine geheime Zahl /a/ bzw. /b/, die sie nicht direkt austauschen, sondern /vermischt/ mit einer öffentlichen Zahl (das Entmischen ist schwer). Die Mischung wird ausgetauscht und die jeweils eingene geheime Zahl zur Mischung hinzugefügt. Beide Mischungen sollten daraufhin gleich sein.

[[~/org/wiki/media/it-sec/prinzip-dh.png]]

***** Funktionsweise
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786186214
:END:
****** Vorderseite
Wie funktioniert der Diffe-Hellman Schlüsselaustausch?
****** Rückseite
1. Alice und Bob einigen sich öffentlich auf eine *Primzahl* /n/ (Modulus) und einen *Generator* (Erzeuger) /g/ aus dem Modulus /n/, so dass also \( \langle g \rangle = \mathbb{Z}_{n} \).
2. Alice und Bob wählen je eine geheime, zufällige Zahl /a/ bzw. /b/.
3. Sie vermischen jeweils ihre geheime Zahl mit  \( \mathbb{Z}_{n} \) und erzeugen /A/ bzw. /B/: \( A = g^a \text{ mod } n \) bzw. \( B = g^b \text{ mod } n \).
4. Sie tauschen /A/ und /B/ aus.
5. Beide mischen ihre geheimen Zahlen hinzu und erhalten den gleichen Schlüssel /k/: \( k = B^a \text{ mod } n \) und \( k = A^b \text{ mod } n\).

Beweis:
[[/home/dandy/org/wiki/media/it-sec/dh-proof.png]]

***** Angriff
****** Ableitung des Schlüssels
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786186349
:END:
******* Vorderseite
Wie kann ein Dritter bei /Diffe-Hellman/ der Schlüssel /k/ berechnen?
******* Rückseite
\( k = A \cdot B \text{ mod } n = g^x \cdot g^y \text{ mod } n = g^{x \cdot y} \text{ mod } n \). Jedoch muss dafür jedes mögliche /x/ *  /y/ aus \( \mathbb{Z}_n \) ausprobiert werden.
****** Entschlüsselung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786186457
:END:
******* Vorderseite
Wie kann ein Dritter bei /Diffe-Hellman/ die Verschlüsselung rückgängig machen?
******* Rückseite
\( a = log_{g}(A) \text{ mod } n \). Allerdings ist das sehr schwer.

*** 4 Vorlesung (Hybrid Cryptosystem)
**** Cryptographic Hash Functions
Alernative Namen: message digests, fingerprints.
Im Prinzip wie eine Hash-Datenstruktur, aber mit dem Zusatz, dass ie /cryptographisch/ ist.
***** Prinzip
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786186894
:END:
****** Vorderseite
Was ist das Prinzip einer /crypographischen Hashfunktion/? Was sind ihre Eigenschaften?
****** Rückseite
1. Sie bildet Nachrichten einer beliebigen Menge auf (binäre) Zahlen einer festen Länge ab. Diese Zahl wird der /Fingerabdruck/ genannt. Um effektiv zu sein, muss die Bildmenge sehr groß sein, sodass eine Kollision sehr unwahrscheinlich ist.
2. Sei M die Nachricht, H die Hashfunktion, D der Fingerabdruck. Eigenschaften:
   - One-way property: Ist M gegeben, kann D = H(M) leicht bestimmt werden. Ist D gegeben, ist eine Rekonstruktion von M sehr schwer.
   - Schnell berechenbar
   - Die Änderung eines Bits in der Nachricht ändert den Fingerabdruck signifikant (um mehr als 50%).
***** Kollisionsresistenz
****** Kollision
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187015
:END:
******* Vorderseite
Was ist bei kryptographischen Hashfunktionen eine /Kollision/?
******* Rückseite
Zwei verschiedene Nachrichten M haben den selben Fingerabdruck.
****** Birthday Attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187152
:END:
******* Vorderseite
Was ist eine /Birthday Attack/ auf eine kryptographische Hashfunktion?
******* Rückseite
Eine Sicherheitsüberprüfung der Integrität von Nachrichten mithilfe von Digests (und sogar MAC) kann umgangen werden, wenn man zu einem gegebenen Digest eine beliebige andere Nachricht finden kann.
****** Resistenz
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187306
:END:
******* Vorderseite
Was ist /schwache/ Kollisionsresistenz? Was ist /starke/?
******* Rückseite
- Für eine /gegebene Nachricht/ M ist es schwer eine Nachricht M' zu finden, die den gleichen Hash hat. Eine /Birthday/ Attacke ist möglich.
- Für /alle möglichen Paare/ von Nachrichten M und M' ist eine Kollision schwer zu finden. Eine /Birthday/ Attacke ist nicht möglich.

**** Digital Signatures
***** Problem der unauthentifizierten asymmetrischen Verschlüsselung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187419
:END:
****** Vorderseite
Welcher Gefahr setzt man sich aus, wenn man asymmetrisch verschlüsselt aber ohne Authentifizierung kommuniziert?
****** Rückseite
- Man-in-the-middle Attacks (MITM): Wenn Kommunikaitonspartner nicht gegenseitig ihre Identität verifizieren, kann es sein dass ich eine Drittperson in die Mitte schaltet und für beide Seiten den Schlüsselaustausch simuliert und auf die Art die Kommunikation mitlesen kann. Gleiches gilt für den Austausch von öffentlichen Schlüsseln.
***** Henne-Ei-Problem
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187532
:END:
****** Vorderseite
Was ist das /Henne-Ei-Problem/ beim Austausch von asymmetrischen Schlüsseln.
****** Rückseite
Für die Verifizierung der Identität des asymmetrischen Schlüssels braucht man einen Hash des Schlüssels, der auch erst unauthentifiziert übermittelt werden muss.
***** Prinzip
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187651
:END:
****** Vorderseite
Was ist das Prinzip bei /digitale Signaturen/?
****** Rückseite
Die Funktion der Schlüssel bei der asymmetrischen Verschlüsselung wird umgedreht: Ein Hash der Nachricht wird mit dem /privaten/ Schlüssel verschlüsselt und kann mit dem /öffentlichen/ Schlüssel entschlüsselt werden. So kann jeder, der den öffentlichen Schlüssel hat, sehen dass der Besitzer des privaten Schlüssels die Nachricht gesendet hat.

***** in RSA
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187765
:END:
****** Vorderseite
Wie wird eine digitale Signatur in RSA bewerkstelligt?
****** Rückseite
Sei /M/ eine Nachricht, /H/ die Hashfunktion, /d/ ein /privater/ Schlüssel, /e/ ein /öffentlicher/ Schlüssel und /s/ die Signatur.
- Unteschrift erstellen: Signieren mit /d/: \( s = H(M)^d \text{ mod } n \)
- Unterschrift mit /e/ verifizeiren: \( H(M) = s^e \text{ mod } n \)

***** Zertifizierungsstellen
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786187909
:END:
****** Vorderseite
Was ist die Funktion einer /Zertifizierungsstelle/ in asymmetrischer Verschlüsselung?
****** Rückseite
Sie dient als /trusted third party/, die reale Identitäten und öffentliche Schlüssel in Verbindung bringt, also die Identität des Inhabers verifiziert. Dann setzt sie ihre digitale Signatur auf den Schlüssel. Findet man also die digitale Signatur einer Zertifizierungsstelle, der man vertraut, auf einem öffentlichen Schlüssel, kann man sich sicher sein, dass der Schlüssel der Person ist.

***** Angriffe
****** Key-only Attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188047
:END:
******* Vorderseite
Was ist ein /key-only attack/ gegen Signaturen?
******* Rückseite
Man kennt nur den öffentlichen Schlüssel und versucht damit eine Signatur zu produzieren.
****** Known-message
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188155
:END:
******* Vorderseite
Was ist ein /known-message attack/ gegen Signaturen?
******* Rückseite
Man kennt zu dem öffentlichen Schlüssel zusätzlich eine signierte Nachricht. Damit kennt man den Hash und aus welcher Nachricht er berechnet wurde. Jetzt kann versucht werden, die Nachricht zu verändern, ohne dass der Hash sich ändert.
****** Chosen-message
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188268
:END:
******* Vorderseite
Was ist ein /chosen-message attack/ gegen Signaturen?
******* Rückseite
Man kann Nachrichten nicht selbst signieren, kann aber das Opfer dazu bringen, Nachrichten für einen selbst zu signieren.
***** Forgery
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188392
:END:
****** Vorderseite
Was sind die 3 Stufen der /signature forgery/?
****** Rückseite
1. Existential Forgery: Es existiert auf irgendeiner Nachricht eine gefälschte Signatur. Blöd, aber kein Problem.
2. Selective Forgery: Für gewissen Nachrichten können Signaturen gefälscht werden.
3. Universal Forgery: Es kann alles signiert werden.

**** Hybrid Cryptosystems
***** Warum?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188524
:END:
****** Vorderseite
Warum sind /hybride Kryptosysteme/ nötig?
****** Rückseite
- Mit bessere Methoden der Technik und Algorithmik ermöglichen immer schnellere Berechnungen kryptographischer Schlüssel.
- Um dem entgegenzuwirken, werden Schlüssel immer länger, aber damit auch langsamer.
- Symmetrische Kryptographie ist dagegen widerstandsfähiger. In hybriden Kryptosystemen nimmt man die besten Teile beider Welten.
***** Prinzip
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188629
:END:
****** Vorderseite
Was ist das Prinzip bei /hybriden Kryptosystemen/? Was ist eine Schwäche
****** Rückseite
- Asymmetrische Verschlüsselung für die Etablierung des symmetrischen Sitzungsschlüssels.
- Symmetrische Block- bzw. Stromcipher für den effizienten Austausch von Daten.
- Das ganze System ist nur so stark wie das schwächste Glied der Kette.

***** Forward Secrecy
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188750
:END:
****** Vorderseite
Was ist /Forward Secrecy/ in Kryptosystemen? Wie wird es implementiert?
****** Rückseite
- Erlangt ein Angreifer (in Zukunft) den Key, kann er damit den gesamten Nachrichtenverlauf entschlüsseln. ryptosysteme mit /Forward Secrecy/ kalkulieren das mit ein und sorgen dafür, dass der Schaden bei einem Sicherheitsvorfall begrenzt bleibt.
- Für symmetrische Verfahren ist es leicht: Jede Sitzung sollte einen neuen Schlüssel benutzen.
- Bei asymmetrischen Verfahren ist es schwieriger: Sie sind groß und an Identitäten gekoppelt. Sie oft zu ändern ist inpraktikabel. Werden sie aber nur zur Etablierung der Sitzung verwendet (RSA signiertes Diffe-Hellman), ist /Forward Secrecy/ garantiert.

***** Public Key Infrastructure (PKI)
****** Arten
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786188894
:END:
******* Vorderseite
Welche zwei Arten von /Public Key Infrastructure/ gibt es?
******* Rückseite
- Chain of trust: X.509 Standard, hierarchisch
- Web of trust: Pretty Good Privacy (PGP), dezentral

***** Chain of Trust PKI
****** Wie funktioniert es?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189003
:END:
******* Vorderseite
Wie funktioniert eine /hierarchische/ Public Key Infrastructure?
******* Rückseite
- Certificate Authorities (CA): Signieren mit einem wohlgehüteten privaten Schlüssel ein ausgestelltes Zertifikat (öffentlicher Schlüssel + Attribute).
- CAs sind /trusted third parties/.
- Mit dem ausgestellten Zertifikat können weitere öffentliche Schlüssel / Zertifikate signiert werden.
***** Web of Trust PKI
****** Wie funktioniert es?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189171
:END:
******* Vorderseite
Wie funktioniert eine /dezentrale/ Public Key Infrastructure?
******* Rückseite
- Es gibt keine zentrale Authorität.
- Jeder erstellt seinen Schüssel und lässt ihn von seinen Bekannten signieren und signiert wiederum ihre (über einen sicheren Kanal).
- Trifft man auf einen /unbekannten/ Public Key, kann geguckt werden, ob er bekannte Signaturen enthält, die das Vertrauen in den Key erhöhen können.

**** SSL
***** Was ist das?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189295
:END:
****** Vorderseite
Wofür steht SSL? Wofür steht TLS? Was ist der Zusammenhang?
****** Rückseite
- Secure Sockets Layer
- Transport Layer Security
- Werden oft als Synonym verwendet. SSL war die erste Fassung eines Transportwegverschlüsselungsstandards. Nachdem einige Schwachstellen gefunden wurden, enschied man sich für ein auf SSL aufbauenden Standard names TLS, der jedoch nicht mit SSL rückwärtskompatibel ist.
***** Zweck
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189378
:END:
****** Vorderseite
Was ist der Zweck von TLS?
****** Rückseite
- Implementiert eine Peer-to-Peer Verschlüsselung: Auf dem Weg einer Nachricht in einem Computer-Netzwerk sollen die Zwischensysteme die Nachricht nicht lesen können.
- Andere Prozesse, die auf dem Rechner laufen und keine Root-Rechte haben, sollen die Nachricht auch nicht lesen können.
***** Auf welcher ISO OSI Schicht liegt TLS?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189531
:END:
****** Vorderseite
Auf welcher ISO OSI Schicht liegt TLS?
****** Rückseite
- Zwischen Transportschicht (4) und Anwendungsschicht (5 bzw. 6).
- Bis einschließlich TCP (o.ä.) ist ist alles unverschlüsselt. Der Inhalt der TCP Segmente wird von der Anwendung für die Peer-Anwendung verschlüsselt.

***** Wie ist TLS implementiert?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189668
:END:
****** Vorderseite
 Wie ist TLS implementiert?
****** Rückseite
Hybrides Kryptosystem: Mindestens die Serverseite hat ein von einer CA signiertes X.509 Zertifikat, welches die Authentizität bestätigt. Mithilfe des Zertifikats wird asymmetrisch ein symmetrischer Schlüssel für die Sitzung erzeugt (TLS Handshake). Mithilfe des Schlüssels werden Anwendungsdaten verschlüsselt ausgetauscht.

***** Woher kommt das Vertrauen in TLS? Wie kann es angegriffen werden?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189790
:END:
****** Vorderseite
Woher kommt das Vertrauen in TLS? Wie kann es angegriffen werden?
****** Rückseite
- Chain of Trust, dessen Ursprung eine /Certificate Authority/ ist.
- Wird bei der CA eingebrochen und der private Schlüssel erlangt, können damit beliebig viele Serverzertifikate für beliebige Webseiten erstellt werden. So können dann MITM Attacken initiiert werden.
***** Verteidigung gegen Chain-of-trust Angriffe
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786189936
:END:
****** Vorderseite
Was wären /Gegenmaßnahmen/ für Angriffe gegen die Chain of Trust bei TLS? Haben sie Nachteile?
****** Rückseite
- /Certificate Pinning/: Ein Client bringt das Zertifikat (oder den Fingerprint) des Servers direkt mit (quasi einkompiliert). So kann ihm kein gefälschtes Zertifikat untergeschoben werden, aber das Zertifikat kann auch nicht ausgetauscht werden ohne dass der Client angepasst werden muss. Weiterhin ist es ein Rückschritt zur Chain of Trust.
- /Certificate Transparency/: Ein öffentliches /append-only Log/ in Form eines /Merkle-Hash-Trees/ wird für ausgestellte Zertifikate angelegt. Jeder Eintrag im Baum führt den Hash seines Parents für den Eintrag mit. Wird oben im Baum etwas geändert, passen alle nachfolgenden Hashes nicht mehr. Auch neu ausgestellte, gefälschte Zertifikate müssen in das /append-only/ Log eingefügt werden und sind so für immer drin. So können Manipulationen schnell erkannt werden. Die Überprüfung der Logs ist jedoch aufwändig.
**** PGP
***** Was ist?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190046
:END:
****** Vorderseite
Wofür steht PGP? Was ist das? Was ist GPG?
****** Rückseite
- Pretty Good Privacy
- Hybrides Cryptosystem mit Web-of-trust Modell
- GNU Privacy Guard: Eine freie PGP Implementierung.

*** 5 Vorlesung (Authentication)
**** Auth
***** Was ist Auth?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190185
:END:
****** Vorderseite
Was ist Authentifizierung?
****** Rückseite
Die Verbindung einer /Identität/ (Person oder anderer Computer) mit einem /Subjekt/ (Nutzeraccount).
***** Faktoren der Authentifizierung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190310
:END:
****** Vorderseite
Nennen Sie die drei /Faktoren/ der Authentifizerung und geben sie je ein Beispiel.
****** Rückseite
Die Bestätigung einer Identität erfolgt mithilfe von:
- Knowledge Factors: Wissen, dass nur der Computer und die Person hat und niemand sonst. Z.B.: Passwort oder Pin-Code auf einer Geldkarte.
- Ownership Factors: Unterscheidung von Personen anhand von Besitz: Z.B. Schlüssel, EC Karte, Hardware Token
- Human Factors: Auch biometrische Faktoren genannt. Alles was den menschlichen Körper einzigartig macht. Iris-Muster, Fingerabdrücke, Stimme.



Authentifizierung kann über eine beliebige Kombination dieser Faktoren erfolgen.
***** Location Faktor
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190427
:END:
****** Vorderseite
Warum ist der /Location Factor/ kein guter Faktor der Authentifizierung?
****** Rückseite
- Authentifizierung erfolgt überwiegend über das Internet von überall auf der Welt. Authentifizierung über der Ort macht das ganze sehr unpraktisch.
- Der Ort selbst muss mithilfe weiterer Faktoren geschützt werden, wie einem Passwort oder Schlüssel. Daher ist der eigentliche Schutz der weitere Faktor.
***** Auth Fakoren in der Betrachtung
****** Auth by Knowledge
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190518
:END:
******* Vorderseite
Was sind die /Vor- und Nachteile/ einer Authentifizerung über /Knowledge Factors/?
******* Rückseite
- Vorteile:
  - Simple Einrichtung ohne spezielle Hardware
  - Im Fall einer Offenlegung ist die Erstzung von Geheimnissen leicht.
- Nachteile:
  - Das menschliche Gedächtnis ist nicht immer verlässlich, dadurch tendieren Menschen dazu, einfache Passwörter zu wählen oder ein Passwort mehrfach zu verwenden.
  - Die Geheimhaltung ist nicht immer garantiert (Post-it am Bildschirm oder /purchase key attacks/).
****** Auth by Ownership
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190661
:END:
******* Vorderseite
Was sind die /Vor- und Nachteile/ einer Authentifizerung über /Ownership Factors/?
******* Rückseite
- Vorteile:
  - Handhabung ähnlich zu physikalischen Schlüsseln (Yubikey).
  - Replikation und Cloning sind i.d.R. schwer
- Nachteile:
  - Verlust oder Diebstahl des Hardware Tokens ist problematisch.
  - Brauch spezielle Hardware
****** Auth by Biometry
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190813
:END:
******* Vorderseite
Was sind die /Vor- und Nachteile/ einer Authentifizerung über /Human Factors/?
******* Rückseite
- Vorteile:
  - Ideale Verbindung zwischen Subjekten und Identitäten.
  - Biometrische Eingenschaften sind durch die Natur allen gegeben und gehen nur schwer verloren.
- Nachteile:
  - Die Ersetzung dieser Eigenschaften ist schwierig
  - Sobald sie genutzt werden, müssen sie geschützt werden. Stimmen kann man aufnehmen, Fingerabrücke von einer Oberfläche entnehmen, eine Iris von einem hochauflösenden Foto entnehmen.
  - Man kann sich nicht unter einem Pseudonym authentifizieren, weil die Kopplung nicht an /eine/ Identität sondern an den Körper gebunden ist.
****** Multi-Factor Auth
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786190941
:END:
******* Vorderseite
Was ist /Multi-Factor/ Authentifizierung? Nennen sie drei Beispiele.
******* Rückseite
- Die Authentifizierung über mehrere Authentifizierungsfaktoren. Es erhöht die Sicherheit.
- Bezahlung per EC-Karte: Ownership Factor (Die Karte) + Knowledge Factor (die PIN).
- Bezahlung per Kreditkarte: Ownership Factor (Scan der Karte) + Unterschrift (Human Factor).
- Klausurenanmeldung: Knowledge Factor (GITZ Passwort) + Ownership Factor (TAN)
***** Auth mit Passwörtern und deren Probleme
****** PW und Asym
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191062
:END:
******* Vorderseite
Wie werden Passwörter in der /asymmetrischen/ Kryptographie verwendet?
******* Rückseite
Der private Schlüssel wird mithilfe eines /symmetrischen Schlüssels/ verschlüsselt, dessen Grundlage ein Passwort sein kann.
****** PW und Sym
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191188
:END:
******* Vorderseite
Wie werden Passwörter in der /symmetrischen/ Kryptographie verwendet?
******* Rückseite
Aus einem Passwort wird per /Hash/ oder /Key Derivation Function/ ein 256 bit Schlüssel generiert. Das wird gemacht, damit jeder mögliche Schlüssel des Keyspaces gleich wahrscheinlich wird.
****** Probleme
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191324
:END:
******* Vorderseite
Nennen Sie drei Arten von Problemen von Passwörtern
******* Rückseite
- /Password snooping/:
  - Das Passwort kann mitgelesen werden (unverschlüsselte Netzwerkkommunikation).
  - Das Passwort kann per Malware vom Computer extrahiert werden (z.B. Keylogger).
- /Password guessing/:
  - /Dictionary Attacks/: Das Raten von Passwörter mithilfe von Wortlisten.
  - /Brute-force Attacks/: Alles durchprobieren.
- /Human deficiencies/: Menschen können das selbe schwache Passwort öfter verwenden.
****** PW Storage
******* Cleartext
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191470
:END:
******** Vorderseite
Wie sollen Passwörter auf keinen Fall gespeichert sein? Warum nicht?
******** Rückseite
- Im Klartext
- Gelingt es nicht das System zu sichern, sind alle Passwörter direkt offengelegt:
  - Ein Fehler in der Absicherung der User-Datenbank legt alle Passwörter offen
  - Gibt es ein hardcoded Passwort in einem Programm, kann es per Debugger herausgeholt werden.
******* Hashed
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191601
:END:
******** Vorderseite
Wie solle die Speicherung von Passwörtern realisiert werden. Was hat das für Vorteile?
******** Rückseite
Hashed and salted: Zum Hash das Passwort zu finden ist sehr schwer, das Passwort den Hash sehr leicht. /Salt/: Ein offener, zufälliger String der an das Passwort gehängt wird.
******* Salt
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191730
:END:
******** Vorderseite
Was ist das /Salt/ bei gehashten Passwörtern? Was sind die Vorteile?
******** Rückseite
- Ein zufälliger, offen gespeicherter String für jedes Passwort. Es wird beim Erstellen das Hashen an das Passwort gehängt
- Hat man eine Login-Datenbank, muss man ein Passwort nur einmal Hashen und kann /in jedem/ Account danach suchen. Hat aber jeder Account einen Salt, muss das Passort immer wieder neu gehasht werden. Man kann auch eine Liste von Hashes von beliebten Passwörtern vorbereiten (Pre-Computation of Hashes) und nach den Passwort-Hashes in den Account Daten suchen. Ein Salt verhindert das.
******* Key stretching
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786191849
:END:
******** Vorderseite
Was ist /key stretching/ bei der Absicherung von Passwörtern?
******** Rückseite
Ein Passwort wird nicht nur einmal, sondern mehrere (tausend) mal gehasht um die Berechnung etwas teurer zu machen. Führt dazu, dass ein Login länger braucht, aber das ist für Alice akzeptabel. Aber Mallory will ein Passwort raten und muss für jeden Versuch mehrere Male hashen.

**** Challenge Response
***** One Time Password
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192006
:END:
****** Vorderseite
Was sind die Vor- und Nachteile von One Time Passwords?
****** Rückseite
- Vorteile:
  - /Password cracking/ wird nutzlos
  - /Password snooping/ wird nutzlos
  - Dem Altern von Passwörtern wird entgegengewirkt
- Nachteile:
 - Es braucht ein System von Passwörtern
***** S/KEY Algorithmus
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192140
:END:
****** Vorderseite
Was ist das Prinzip hinter dem S/KEY /one-time password/ Algorithmus?
****** Rückseite
1. Der Nutzer wählt ein initialen Key \( K_1 \)
2. Es werden \( K_n \) Passwörtern per /rekursivem/ Hashing aus \( K_1 \) abgeleitet: \( H(K_{1}) = K_{2}, H(K_{2}) = K_{3}, ..., H(K_{n-1}) = K_{n} \)
3. Sie bilden die One-time Passwords: \( P_1 = K_n, P_2 = K_{n-1}, ..., P_n = K_1 \)

- Es ist schwer ein Passwort \( P_i \) aus \( P_{i-1} \) abzuleiten, weil Hashes rückwärts berechnet werden müssen.
- Oft bekommter der Nutzer nicht den \( K_1 \), sondern eine Liste von \( P_1 \) bis \( P_n \).
- Diese Liste muss periodisch regeneriert werden
- Sie muss sicher aufbewahrt werden.

***** Generisches Challange-Response System
****** Prinzip
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192412
:END:
******* Vorderseite
Wie funktionieren /Challange-Response/ Authentifizierungsalgorithmen prinzipiell? Zeichnen Sie ein Diagramm. (VL 5, S. 22).
******* Rückseite
- Das Geheimnis zwischen Nutzer und System ist eine geheime /Funktion F/.
- /Challange/ der Kenntnis von F: Das System sendet eine /Nonce/ an den Nutzer. Der Nutzer berechnet die /Response/ R=F(M) und überträgt das an das System.
- Das System überprüft seinerseits R = F(M)

[[/home/dandy/org/wiki/media/it-sec/generic-challange-response.png]]

****** Wahl der Challange
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192549
:END:
******* Vorderseite
Nennen Sie drei Dinge, die für die Wahl von M in /Challange-Response/ Authentifizierung geeignet sind. (VL 5, S. 23)
******* Rückseite
- Uhrzeit
- Zufällige Zahl
- Counter
****** Wahl der geheimen Funktion
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192712
:END:
******* Vorderseite
Nennen Sie zwei Beispiele für geheime Funktionen in /Challange-Response/ Authentifizierung. (VL 5, S. 23)
******* Rückseite
- F = (M + P) wobei H eine Hash-Funktion ist und P ein geheimes Passwort.
- F = \( E_P (M) \) wobei E eine offene Verschlüsselungsfunktion ist und P ein geheimes Passwort
Ist F kryptographisch start, kann das P nur sehr schwer abgeleitet werden.
****** Beispiele
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192806
:END:
******* Vorderseite
Nennen Sie zwei Beispiele für /Challange-Response Authentication/ Schemes. Was ist dabei die /Challange/ und was die /Response/? (VL 5, S. 23)
******* Rückseite
- One-time passwords: Die /Challange/ ist der Index eines Passworts auf einer Liste, die /Response/ ist das einmalige Passwort.
- RSA SecurID: /Challenge/: aktuelle Zeit, /Response/: Authentifizierungscode.
***** Access Control
Was darf welcher Nutzer nachdem die Authentifizierung geschehen ist?
****** Was ist Access Control
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786192943
:END:
******* Vorderseite
Was ist /Access Control/? (VL 5, S. 26)
******* Rückseite
Nachdem ein /Authentifizerungsschritt/ die Identität eines Subjekts festgestellt hat, bestimmt /Access Control/ in wie weit sie Systemdienste und -ressourcen in Anspruch nehmen dürfen.
/Access Control/ besteht aus:
- Einschränkung der Berechtigung eines Subjekts. Was darf das Subjekt machen?
- Verwaltung von Zugangsberechtigungen: Wie und wo wird das festgehalten?
- Enge Kopplung an Authentifizierung: Bevor eingeschränkt werden kann, muss die Identität festgestellt werden.
****** Schwierigkeit
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786193070
:END:
******* Vorderseite
Woher rührt die Schwierigkeit der bei der Verwaltung von /Access Control/? (VL 5, S. 26/27)
******* Rückseite
[Enthält eigene Mutmaßungen] Komplexe Systeme haben komplexe Access Control Modelle:
- Die /Identität/ eines /Subjekts/ ordnet ihm eine /Rolle/ zu. Anhand der Rolle wird Zugriff eingeschränkt. Sollte eine Identität mehrere Rollen inne haben, wird das Konzept aufgeweicht.
- Es ist nicht immer absehbar, zu was sich grundlegende Fähigkeiten kombinieren lassen. Manchmal erwachsen ungeahnt große Fähigkeiten aus der Kombination kleiner Fähigkeiten.
- Einige Objekte können auch als Akteure auftreten (z.B. im Fall von /Prozessen/), die wiederum eigene Fähigkeiten haben. Subjekte die solche Prozesse steuern können, bekommen implizit auch die Berechtigungen des Prozesses (bzw. den Teil, über den sie die Kontrolle haben).
****** Access Control Matrix
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786193347
:END:
******* Vorderseite
Was ist eine /Access Control Matrix/? Zeichnen Sie ein Beispiel. Was repräsentieren die Zeilen der Matrix und was die Spalten bezogen auf den Benutzer? (VL 5, S. 27)
******* Rückseite
- Ein Mapping einer Kombination von Subjekt (Benutzer bzw. Akteure) und Objekt (Systemressource oder -dienst) auf /Aktionen/.
- Spalten repräsentieren /Access Control Lists/: Für jedes Objekt wird eine Liste von erlaubten Aktionen jedes Benutzers festgehalten.
- Zeilen repräsentieren /Capabilites/: Für jedes Subjekt wird eine Liste von erlaubten Aktionen bezüglich jedes Objekts festgehalten.

[[/home/dandy/org/wiki/media/it-sec/acc-ctrl-matrix.png]]

****** Charakteristiken
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786193492
:END:
******* Vorderseite
Nennen Sie drei Charakteristiken von Access Control Modellen. (VL 5, S. 28)
******* Rückseite
- Definitionen von Objekten und Subjekten. Subjekte können Nutzer, Prozesse und Hosts sein.
- Repräsentation von Berechtigungen: /Access Control Lists/, /Capabilities/.
- Verwaltung von Berechtigungen: /discretionary/, /mandatory/, /role-based/.
****** ACLs
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786193640
:END:
******* Vorderseite
Nennen Sie die Vor- und Nachteile von /Access Control Lists/. Nennen Sie ein Beispiel für ein ACL basiertes System (VL 5, S. 29).
******* Rückseite
Rechte werden an Objekte gebunden.
- Vorteile:
  - Gut in dezentralen Systemen: Sind die Objekte des Systems verteilt, ist es ein Vorteil die Zugriffskontrolle ebenfalls zu verteilen, denn ansonsten wäre das ein zentraler Mechanismus in einem dezentralen System.
- Nachteile:
  - Schwer zu ermitteln, welche Rechte ein Nutzer konkret hat, denn es müssen alle Objekte angeschaut werden.
- OpenBSD packet filter: Eine Firewall Implementierung bei der ein Netzwerkhost ein Subjekt ist und die Netzwerkpakete das Objekt. Die Firewall ist eine Liste an Regeln, welche (ein- und ausgehenden) Pakete passieren dürfen und welche verworfen werden.
****** Capabilities
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786193771
:END:
******* Vorderseite
Nennen Sie die Vor- und Nachteile von /Capabilites/ basierter Zugangsbeschränkung. Nennen Sie ein Beispiel für ein solches System (VL 5, S. 30).
******* Rückseite
Rechte werden an Subjekte gebunden.
- Vorteile:
  - Das Auflisten der Berechtigungen eines Subjekts ist leicht, weil sie sich an einem Ort befinden.
- Nachteile:
  - Feingranuläre Zugangskontrolle ist für Dateien schwer, denn es braucht für jeden Nutzer eine Übersicht aller Dateien mit den Zugangsberechtigungen. Zugang zu Funktionen zu verwalten ist hingegen leichter, wenn es nicht so viele davon gibt.
  - In dezentralen Systemen schwer verwaltbar
- Linux Capabilities: Die Fähigkeiten eines Nutzers werden aufgewertet, indem ihm einige Möglichkeiten, die eingetlich nur dem Super User zur Verfügung stehen, gegeben werden. Konkret sind es z.B. die Fähigkeit das System neuzustarten oder die Fähigkeit ein Kernelmodul zu laden.

****** Management of permissions
******* Discretionary Access Control (DAC)
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786193892
:END:
******** Vorderseite
Was ist /Discretionary Access Control/? Wo wird das häufig eingesetzt? (VL 5, S.31)
******** Rückseite
- Der Besitzer eines Objekts kontrolliert die Zugansberechtigungen. Es ist praktisch, aber schwierig, wenn das Objekt den Besitzer wechseln soll, weil der neue Besitzer die Rechte erst prüfen muss.
- Unix Dateisysteme
******* Mandatory Access Control (MAC)
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786194048
:END:
******** Vorderseite
Was ist /Mandatory Access Control/? In welchem Kontext wird das oft verwendet?
******** Rückseite
- Zugangskontrolle wird von einer übergeordneten Instanz verwaltet. Das beschneidet die Möglichkeiten des Nutzers die Zugangsberechtigung zu seinen eigenen Objekten zu ändebrn.
- High security environments wie Geheimdiensten. Das System wird sehr sicher aber unflexibel.
******* Role-based Access Control (RBAC)
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786194162
:END:
******** Vorderseite
Was ist /Role-based Access Control/?
******** Rückseite
- Rechte werden mit Rollen verknüpft. Ein Nutzer hat stets die Rechte aller Gruppen, denen er zugehörig ist.

*** 6 Vorlesung (Netzwerkangriffe)
**** Layer Communication Model
***** Negiative Auswirkung der Vernetzung von Computern auf ihre Sicherheit
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786194290
:END:
****** Vorderseite
Wie hat die Vernetzung von IT-Systemen die IT Sicherheit negativ beeinflusst? (VL 6, S. 4)
****** Rückseite
- Physical access → Network Access: Location based auth factor fällt weg.
- Dozens of users → Thousands of hosts: Unterscheidung zwischen User und Host verschwimmt. Mehrere Geräte können einem Nutzer zugeordnet sein und sich parallel in mehrere verteile Dienste eingloggen.
- Central resources → Distributed Resources: Mails müssen z.B. nicht mehr auf dem selben Rechner liegen wo der Mailserver läuft. Jedes einzelne System und die Schnittstellen haben eigene Angriffsflächen
- Easy accountability → Hard Accountability: Erschwert die Suche nach Schuldigen

Die Systeme wurden in den 60er konzipiert, die Protokolle in den 70ern. Beides wurde nur nach und nach an die aktuellen Gegebenheiten angepasst.

***** ISO OSI Modell
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786194430
:END:
****** Vorderseite
Nennen sie die Layer des ISO OSI Modells (VL 6, S. 5)
****** Rückseite
7 - Application
6 - Presentation
5 - Session
4 - Transport
3 - Network
2 - Data Link
1 - Pysical

***** TCP/IP Modell
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786194523
:END:
****** Vorderseite
Nennen sie die Layer des TCP/IP Modells, gehen Sie kurz auf seine jeweilige Funktion ein und nennen sie je zwei Beispielprotokolle (VL 6, S. 6).
****** Rückseite
Application: Schnittstelle von vernetzten Anwendungen. HTTP, FTP
Transport: Kommunikation verschiedener Anwendungen hinter den IP Adressen: TCP, UDP
Internet: Adressierung und Transfer von Daten zwischen Hosts und Gateways: IP, ICMP
Link: Die physische Verbindung von Geräten und die Beschaffenheit der Kommunikation. PPP, ARP

***** TCP/IP Data Flow
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786194879
:END:
****** Vorderseite
Zeichnen Sie das TCP/IP Data Flow Diagramm (VL 6, S. 7)
****** Rückseite
[[/home/dandy/org/wiki/media/it-sec/06_tcp-ip-dataflow.png]]

**** Classic Network Attacks

***** Ursachen von Schwachstellen
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195004
:END:
****** Vorderseite
Sind die vier Angriffsfläche von Netzwerkangriffen? Nennen Sie Beispiele (VL 6, S.12)
****** Rückseite
- Schwächen im Netzwerkprotokolldesign
  - Beim Entwurf von TCP/IP hat niemand geahnt, dass es ein weltumspannendes Protokoll wird.
- Schwachstellen in den Protokollimplementierungen
  - Windows, Linux, *BSD usw. haben alle eine eigene Implementierung des TCP/IP Stacks, die sich unterscheiden und zu Problemen führen können.
  - Spezifikationen sind manchmal mehrdeutig
- Fehlerhafte Konfiguration der Netzwerkdienste
  - Webserver setzt den Root Folder auf seine Konfigurationsdatei
- Fehlerhafter Betrieb der Netzwerkdienste
  - Kommunikation startet mit HTTPs hat aber Links auf HTTP Basis, die Verschlüsselung nicht nutzt.
***** Drei Klassiker
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195133
:END:
****** Vorderseite
Nennen und erklären Sie drei verschiedene klassische Netzwerkangriffe (VL 6, S.13)
****** Rückseite
- Spoofing: Verfälschen von Daten wie die der Identität (Absender oder Empfänger).
- Hijacking: Eine Verbindung oder Sitzung wird übernommen. Als MITM übernimmt man einfach die Kommunikation komplett.
- Flooding: Fluten von Diensten mit einer enormen Menge von Paketen um seine Verfügbarkeit anzugreifen.
***** Sniffing
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195260
:END:
****** Vorderseite
Was ist Network Sniffing? (VL 6, S.14)
****** Rückseite
- Abhören von Netzwerkpaketen.
- Prinzipiell keine Attacke, denn Admins machen das auch.
- Benötigt wird der physische Zugang zum Übertragungsmedium.
- Angriff ist passiv, verletzt die Vertraulichkeit.

***** ARP Spoofing
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195354
:END:
****** Vorderseite
Was ist ARP Spoofing? Was ist ARP (in einem Satz)? (VL 6, S.16)
****** Rückseite
- Das /Address Resolution Protocol/ ist ein mappt logische Adressen (IP) auf Geräteadressen (MAC)
- Dem Switch (Link Layer) wird per ARP Reply mitgeteilt (manchmal kontinuierlich → ARP Flooding), dass sich eine bestimmte IP, dessen Pakete man abhören möchte, sich unter seiner eigenen MAC befindet. So leitet man IP Pakete zu sich um.
- Basis für MITM Attacks: Greift die Vertraulichkeit und Integrität an. Leitet man die Pakete nicht weiter, dann auch die Verfügbarkeit

***** Smurf Attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195503
:END:
****** Vorderseite
Was ist ein /Smurf Attack/? Was setzt ihn voraus? (VL 6, S.18)
****** Rückseite
- Im Prinzip ein /Amplified Flooding/ Angriff, bei dem man sich zu nutze macht, dass eine kleine Datenmenge, dessen Absenderadresse gespooft wurde und die man an einen geeigneten bzw. misskonfigurierten Netzwerkdienst rausschickt, der dem gespooften Absender daraufhin mit einer sehr großen Datenmenge antwortet.
- Ein Biespiel funktioniert per Ping an eine IP-Subnetz-Broadcastadresse mit gespoofter Quell-IP-Adresse.
- Reduziert die Verfügbarkeit der Netzwerkbandbreite.
**** Network Defenses
***** Präventive Sicherheit
Wie verhindere ich Angriffe?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:END:
****** Vorderseite
Was sind die drei Konzepte der /präventiven Sicherheit/ im Netzwerk? (VL 6, S.23)
****** Rückseite
- Kryptographie: Verschlüsselung und Verfikiation der Daten
- Authentifikation: (gegenseitige) Bestätigung der Indentität
- Zugriffskontrolle: Beschränkung und Kontrolle der möglichen Kommunikation im Netzwerk
***** Reaktive Sicherheit
Was mache ich, wenn Angriffe passiert sind?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:END:
****** Vorderseite
Was sind die drei Konzepte der /reaktiven Sicherheit/ im Netzwerk? (VL 6, S.23)
****** Rückseite
- Vulnerability assessment: Die Suche nach Schwachstellen
- Intrusion detection: Die Suche nach laufenden Angriffen
- Computerforensik: Analyse bereits geschehener Angriffe, die Suche nach Angreifern

***** IPSec
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195597
:END:
****** Vorderseite
Was ist /IPSec/? Nennen Sie drei Haupteigenschaften. (VL 6, S.25)
****** Rückseite
Erweiterung des IP Protokolls um Sicherheitsfeatures zum Schutz der Kommunikation im Internet Layer:
  - IKE: /Internet Key Exchange/ (Diffe-Hellman)
  - ESP: /Encapsulating Security Payload/: Verschlüssenlung des IP Payloads
  - AH: /Authentication Header/: Implementierung eines Challenge-Response Mechanismus.

***** Access Control in Networks
Welches Paket darf an welchen Host im Netzwerk gehen? → /Firewall/, genauer /packet filter/.

****** Umsetzung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195739
:END:
******* Vorderseite
Wie wird Access Control in Netwerken umgesetzt? (VL 6, S.26)
******* Rückseite
- Definition von Netzwerk-Objekten auf allen Ebenen der TCP/IP Modells: Subnetze, Hosts, Ports
- Filterung von Paketen auf allen Ebenen:
  - Link Layer: MAC Filter
  - Internet + Transport Layer: Packet Filter
  - Application Layer: Proxy and application-layer gateway

****** Firewalls
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786195848
:END:
******* Vorderseite
Wie ist eine /Firewall/ definiert? Was sind seine Aufgaben? (VL 6, S.27)
******* Rückseite
Ein Host, der Zugang zu einem Netzwerk vermittelt.
Zu seinem Aufgaben gehört:
- Inspektion von ein- und ausgehenden Paketen
- Zugangskontrolle auf verschienden Schichten des Netwerks
- Semantische Analyse von Protokollen: z.B. Unterscheidung verschiedener TCP Pakte, Zuständer einer TCP Verbindung
- Aufteilung des Netzwerks in Subnetze

****** DMZ
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196257
:END:
******* Vorderseite
Was ist ein Vorteil der Aufteilung eines Netzwerks in ein lokales Netz und eine /demilitarized zone/? (VL 6, S.27)
******* Rückseite
Alles, was von außen erreichbar sein muss, kommt in die DMZ, und der Rest in das lokale Netz. Es können verschiedene Regeln für die Netze gelten. Beispielweise kann die HTTP(s) Ports in der DMZ für die Außenwelt öffnen, aber für das lokale Netz verbieten. Ist ein Server im DMZ kompromittiert, so ist der Zugang ins lokale Netz nicht garantiert.

****** Desktop Firewalls
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196374
:END:
******* Vorderseite
Was ist eine Desktop-Firewall? Was ist ein Vor- und ein Nachteil davon? (VL 6, S.29)
******* Rückseite
- Ein im Desktop-Betriebssystem eingebauter Paketfilter. Seine Fähigkeit als Firewall ist beschränkt, weil die Regeln geändert werden können, sobald der Rechner infiziert ist. Andererseits kann er feingranular dazu genutzt werden, besondere Regeln für den Desktop-Rechner einzuführen. Z.B. kann verhindert werden, dass ein bestimmtes Programm mit dem Internet kommunizert.
*** 7 Vorlesung (Web Security)
**** Server-side attacks
***** code injection
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196509
:END:
****** Vorderseite
Was ist der Ursprung jeder /code injection/? Wie verteidigt man sich dagegen? (VL 7, S.18+)
****** Rückseite
- Code und Daten werden nicht richtig getrennt. Es werden Strings vom Benutzer entegengenommen und wie Code ausgeführt.
- Verteidigung:
  - /string sanitization/: Man überprüft den entgegengenommenen String auf reservierte Symbole in der jeweiligen Programmiersprachensyntax, besonders Symbole, die Strings schließen oder Befehle terminieren.
  - Aus dem String die Parameter für eine vorbereitete Funktion entnehmen und sie ausführen. Z.B. /prepared sql statements/.

**** Web sessions
***** Was sind Web Sessions?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196645
:END:
****** Vorderseite
Was ist eine /Web Session/ und wofür braucht man die? (VL 7, S.22)
****** Rückseite
- Das Web funktioniert über HTTP.
- Diese Protokoll ist im Prinzip zustandslos, d.h. jedes Neuladen der Website ist wie ein komplett neuer Aufruf.
- Viele Webanwendungen müssen aber einen Überblick darüber haben, was der Nutzer bisher getan hat, wie z.B. sich eingeloggt.
- Daher muss eine Web Applikation ihre eigene Sitzungsverwaltung über der HTTP Ebene implementieren.

***** Sessionmanagement
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196799
:END:
****** Vorderseite
Nennen Sie drei Möglichkeiten, /Web Sitzungen/ zu verwalten. Erklären Sie diese. Welche Probleme können auftreten? (VL 7, S.23)
****** Rückseite
- /URL Rewriting/: Session IDs werden an die in der URL gehängt. Kann die Session-ID versehentlich an eine andere Website verraten, wenn per Link auf sie gewechselt wird (HTTP Referrer Header).
- /Form-based Sessions IDs/: Die Session ID wird in den Body der HTTP Nachricht verlagert. Dort ist sie Teil eines versteckten Formularfelds. Die HTTP-Anfrage muss jetzt per POST Methode passieren (sonst gibt es keinen Body). Verlust der Session bei Betätigung des Rückbuttons des Browsers, weil nach der vorherigen URL ohne POST Request gefragt wird.
- /Cookies/: Eine Erweiterung von HTTP. Header zum Setzen von Strings, die sich der Webbrowser für den nächsten Anruf merkt und mitsendet. Kann zum Tracken von Nutzern verwendet werden.

***** Session IDs
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196909
:END:
****** Vorderseite
Nennen Sie drei Dinge, die für sichere Sitzungen und Sitzungs-IDs gelten müssen. (VL 7, S.26)
****** Rückseite
- Sie sollten schwer zu erraten sein (Lang und zufällig)
- Sie sollten nur verschlüsselt übertragen werden
- Sie sollten nach einer Zeit ablaufen

***** Schutz von Cookies
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786196978
:END:
****** Vorderseite
Wie werden Cookies vor /client-side Angriffen/ geschützt? (VL 7, S.)
****** Rückseite

***** Gleichheit nach Same-origin Policy
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197103
:END:
****** Vorderseite
Wann haben zwei Ressourcen nach der /same-origin policy/ den selben Ursprung? (VL 7, S.30)
****** Rückseite
- Das Protokoll ihrer URI ist gleich
- Der Host in der URI ist gleich
- Der Port in der URI ist gleich

Pfade, Query Strings, Fragmente, Login-Daten können abweichen.

***** Wofür ist die same-origin Policy?
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197202
:END:
****** Vorderseite
Wer schützt wen wovor mithilfe der /same-origin/ Policy? (VL 7, S.30)
****** Rückseite
- Browser und Anbieter eines Webdienstes schützen ihre Nutzer vor bösartigen Websites, die JavaScript beinhalten.
- Durch die Fähigkeiten von JavaScript wäre es ohne Same-origin Policy möglich, auf Authentifizierungscookies dritter Webdienste zuzugreifen und HTTP Requests jeder Art an sie zu senden.
- Durch die Same-origin Policy beschränken sich diese Fähigkeiten und der einhergehende Zugriff auf Ressourcen der eigenen Seite.

**** Client-side attacks

***** Cross-site Scripting Name
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197363
:END:
****** Vorderseite
Wie kommt es zu dem Namen /Cross-site Scripting/? (VL 7, S.31)
****** Rückseite
Es wird versucht, fremden JavaScript Code in die aufgerufene Website des Opfers einzuschleusen und damit im gleichen Origin zu landen.

***** Cross-site Scripting
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197489
:END:
****** Vorderseite
Was ermöglicht /Cross-site Scripting/? (VL 7, S.34)
****** Rückseite
Das Anzeigen von ungenügend validierten Daten. Das kann über folgende Dinge geschehen:
- Seiteninhalt wird dynamisch aus URI Parametern erstellt → Script in den Link
- Seiteninhalt wird unverschlüsselt per JavaScript extern nachgeladen → per MITM JavaScript in die Daten injizieren
- Mediendateien wie SVGs können JavaScript beinhalten.

***** /Reflected/ Cross-site Scripting
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197630
:END:
****** Vorderseite
Was ist /reflected/ Cross-site Scripting? (VL 7, S.37)
****** Rückseite
XSS wird per Link an das Opfer transportiert. Damit ist der Angriff kurzlebig. Der Link muss nicht immer offensichtlich sein, sondern sich unter dem HTML einer Email verbergen, oder per URL-Shortener verändert werden.

***** /Stored/ Cross-site Scripting
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197755
:END:
****** Vorderseite
Wie funktiniert /stored/ Cross-site Scripting? (VL 7, S.38)
****** Rückseite
- JavaScript wird über eine Datenbank in die Website eingeschleust.
- Werden bei der gewöhnlichen Erstellung einer Ressource die Eingabedaten nicht validiert, kann man dort JavaScript injizieren, welches dann in die Datenbank kommt.
- Ein Opfer braucht nur dem Link zu dieser Ressource zu folgen, damit bei der dynamischen Erstellung der Seite das JavaScript aus der Datenbank geladen wird.
- Dieser Angriff ist persistent, und daher heißt es /stored/.

***** Verteidigung gegen Cross-site Scripting
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786197916
:END:
****** Vorderseite
Wie kann man sich gegen /Cross-site Scripting/ verteidigen? (VL 7, S.41)
****** Rückseite
- Escaping und Bereinigung von GET und POST Parametern
- Validierung von extern (nicht im Websitecode) gespeicherten Daten (in der Datenbank)
- Prüfen anderer Quellen, wie Cookies oder Referrer

***** Schwierigeiten bei der Input-Validierung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786198032
:END:
****** Vorderseite
Warum ist die Validierung von Eingabedaten zum Schutz gegen /Cross-site Scripting/ schwer? (VL 7, S.41)
****** Rückseite
- Oft ist es schwierig zu beurteilen, ob Eingabedaten XSS zum Ziel haben (z.B. weil Nutzer sich in den Kommentaren über HTML unterhalten, oder gar am HTML auf ihrer Page basteln dürfen).
- In dem Fall ist es leichter, die Daten bei der Ausgabe zu escapen. (Whitelisting ist besser als Blacklisting).
*** 8 Vorlesung (Vulnerabilites and Exploits)
**** Basics of software security
***** Definition Vulnerability
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786198156
:END:
****** Vorderseite
Wie ist /Vulnerability/ definiert? (VL 8, S.3)
****** Rückseite
- Ausnutzbare Schwachstelle im System oder Software
- Muss eine Basis für eine Attacke gegen die Verfügbarkeit, Integrität oder Vertraulichkeit bilden
- Nicht jeder Bug führt auch zu einer Verwundbarkeit

***** Quellen von Vulerabilities
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786198331
:END:
****** Vorderseite
Nennen Sie die vier häufigesten /Quellen/ von Vulnerabilites. Nennen Sie je ein Beispiel (VL 8, S.3)
****** Rückseite
- Fehler im Design:
  - z.B. in Library Code: Inkonsistene Abstraktionen und Schnittstellen
- Fehler in der Implementierung:
  - Vermischen von Code und Daten
- Fehlkonfiguration:
  - Schwache Verschlüsselung wird gewählt
- Fehlerhafter Betrieb:
  - Bei dezentraler Architektur: unsichere Abspeicherung auf einem anderen System

***** Schwierigkeiten bei der Entwicklung sicherer Software
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786198467
:END:
****** Vorderseite
Warum ist die Entwicklung sicherer Software extra schwierig? (VL 8, S.4)
****** Rückseite
Sicherheit muss in das Design, die Entwicklung und den Betrieb integriert sein. Das erfordert mehr Expertise und Zeit seitens der Entwickler und erhöht so die Kosten während der Entwicklung.


***** Definition Exploit
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786198591
:END:
****** Vorderseite
Definieren Sie /Exploit/? (VL 8, S.5)
****** Rückseite
Ein /Exploit/ ist ein Programm, welches eine Schwachstelle in einem System oder Software ausnutzt, um Schutzziele der der IT-Sicherheit zu gefährden (oder zumindest um die Gefährdung zu demonstrieren).

***** Phasen eines Exploits
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786198735
:END:
****** Vorderseite
Nennen Sie drei typische /Phasen/ eines Exploits. (VL 8, S.5)
****** Rückseite
1. Injektion von Code als Daten
2. Manipulation von Kontrollfluss (Injizierter Code wird ausgeführt bzw. aus per ROP bösartige Funktionalität zusammenbasteln)
3. Erhöhung der Privilegien


***** Lebenszyklus einer Vulnerability

****** Diagramm
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199095
:END:
******* Vorderseite
Zeichnen Sie ein Diagramm zum /Lebenszyklus einer Vulerabilitiy/ (VL 8, S.6)
******* Rückseite
[[/home/dandy/org/wiki/media/it-sec/08_vuln-life.png]]

****** /zero day/
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199217
:END:
******* Vorderseite
Was ist ein /zero-day/ Exploit? (VL 8, S.6)
******* Rückseite
Ein Exploit für eine gefundene /Vulnerability/, die noch nicht veröffentlicht wurde.

****** /pivotal point/
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199353
:END:
******* Vorderseite
Was ist der /pivotal point/ im Lebenszyklus einer Vulnerability? (VL 8, S.6)
******* Rückseite
Die Bekanntmachung deiner Vulnerabilitiy. Dieser Zeitpunkt markiert eine risikoreichen Abschnitt im Lebenszyklus einer /Vulnerabilitiy/, da ein Patch noch nicht in allgemeinem Umlauf ist.

****** Vulerability Types
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199491
:END:
******* Vorderseite
Nennen Sie drei /Klassen/ von Vulnerabilities und geben Sie Beispiele (VL 8, S.7)
******* Rückseite
- Memory:
  - Stack / Heap / Integer Overflows
- Concurrency:
  - Race conditions
  - Deadlocks
  - Livelocks
- Validierung:
  - Cross-site Scripting
  - SQL Injection
  - Remove file inclusion

**** Stack and heap overflows
***** Buffer Overflow
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199612
:END:
****** Vorderseite
Was ist ein /Buffer Overflow/? Wie funktioniert ein /Buffer Overflow Exploit/? (VL 8, S.27)
****** Rückseite
- Ein Buffer Overflow passiert, wenn über die Grenzen eines vorher angelegten Datenpuffers hinausgeschrieben wird.
- Das kann für einen Exploit genutzt werden, wenn die Daten, die über die Grenze hinausgeschrieben werden, angrenzende Variablen überschreiben, die den Kontrollfluss ändern.

***** Gründe für Buffer Overflow
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199744
:END:
****** Vorderseite
Nennen Sie zwei /Ursachen/ für Buffer Overflows. Geben Sie Beispiele. (VL 8, S.28)
****** Rückseite
- Pufferspeicher ist zu klein:
  - Unbeschränkte Stringfunktionen (=gets=, =strcpy=, =sprintf=, ...) können Pufferspeicher überlaufen lassen
- Falsche Berechnung eines Speicherorts oder Speichergröße:
  - Arithemtische Überläufe (Addition zweier Ganzzahlen führt zu einer Zahl, die größer ist, als der Datentyp), Pointerarthmetik
  - Es wird nicht beachtet, dass Type-Casting Speichergrößen ändert
  - Gefährliche Funktionen wie =strncpy=, =strncat= werden verwendet (NULL Terminator nicht garantiert).

***** Exploitation of Stack Overflow
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199838
:END:
****** Vorderseite
Nennen Sie zwei Arten, mithilfe derer Buffer Overflows für /Exploits/ genutzt werden können.

****** Rückseite
- Manipulation lokaler Variablen und vorheriger Stackframes: Änderung der Kontrollflusses
- Manipulation der return Adresse: Injektion von ausführbarem Code

***** Shellcode
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786199940
:END:
****** Vorderseite
Definieren Sie den Begriff /Shellcode/. Gibt es davon Variationen? (VL 8, S.33)
****** Rückseite
Shellcode wird so genannt, weil es früher tatsächlich Code war, der auf dem System eine Shell startet. Heute wird damit injizierter (Maschinen-)Code bezeichnet, der ausführbar ist. Mit dessen Hilfe wird oft weiterer Code nachgeladen (/staged shellcode/). Passiert es über das Netzwerk, nennet man es eine /bindshell/ (Shellcode macht einen Port auf).

***** Heap Overflow
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200138
:END:
****** Vorderseite
Wie kann ein /Heap Overflow/ als Exploit genutzt werden? (VL 8, S.35)
****** Rückseite
- Abhängig von der Implementierung können per Heap-Overflow Metadaten des Heaps (z.B. Pointer auf den nächsten Block) samt Speicherbereich überschrieben werden. So kann Speicherinhlat manipuliert werden, oder eine /Unlink Attack/ implementiert werden.

***** Unlink Attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200281
:END:
****** Vorderseite
Wie funktioniert eine /Unlink Attack/? (VL 8, S.36)
****** Rückseite
- Je nach Implementierung des Heap-Allokators kann eine /Unlink Attack/ ermöglicht werden, wenn eine Heap-Buffer Overflow die Metadaten der Speicherblöcke samt ihrer Pointer überschreiben kann.
- Es wird möglich die Pointerzuweisung z.B. der =free()= Funktion zu missbrauchen, um beliebige Daten an eine beliebige Stelle im Speicher zu schreiben. Das wird /arbitrary memory write/ genannt und ist ein mächtiges Werkzeug


**** Memory defenses
***** Static Measures
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200395
:END:
****** Vorderseite
Nennen Sie zwei /statische/ Maßnahmen gegen Overflow Attacks. (VL 8, S.39)
****** Rückseite
- Ersetzen unsicherer Funktionen (=strcat=, =strcpy=) gegen sichere Varianten.
- Prüfung von Puffergrenzen zur Kompilierzeig (/Boundary Checking/).

***** Dynamic Measures
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200543
:END:
****** Vorderseite
Nennen Sie vier /dynamische/ Maßnahmen gegen Overflow Attacks. (VL 8, S.39)
****** Rückseite
- Prüfung von Puffergrenzen zur Laufzeit
- Zufällige Anordnung des Adressraums (/address space layout randomization/).
- Zugriffskontrolle auf Speichersegmente
- /Shadowing of metadata/

***** Kriterien für memory-safe functions
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200679
:END:
****** Vorderseite
Nennen Sie drei Kriterien für /memory-safe functions/. (VL 8, S.40)
****** Rückseite
- Explizite und implizite boundary checks: Kein Schreiben über Grenzen hinweg.
- Konsistente Interfaces von Funktionen, die in den Speicher schreiben: Reduziert die Wahrscheinlichkeit, dass ein Entwickler sich bei der Puffergröße verschätzt.
- Entfernen unsicherer Funktionen

***** Shadow Stack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200808
:END:
****** Vorderseite
Was ist ein /Shadow Stack/? Wogegen ist er eine Hilfe und wie? Gibt es Nachteile? (VL 8, S.41)
****** Rückseite
- Der Schutz von Metadaten eines Stack-Frames, im x86 Instruction Set realisiert.
- Es werden wichtige Elemente des Stack wie /Return Pointer/ und /Base Pointer/ in einen anderen Stack kopiert.
- Im Funktionsepilog werden sie verglichen. Wenn sie sich unterscheiden, wird das Programm beendet.

Nachteile:
- Der Speicherverbrauch steigt
- Laufzeit wird erhöht, weil ein Vergleich der Werte nötig ist (Intel realisiert das in Hardware, daher geht es schnell).

***** Canaries
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786200953
:END:
****** Vorderseite
Was ist eine /Stack Canary/? Wogegen ist es ein Schutz und wie? (VL 8, S.42)
****** Rückseite
- Eine /Stack Canary/ ist eine lokale Variable, die ein zufälliges Bitmuster beinhaltet und direkt vor den Stackframfe-Metadaten (Return- und Base-Pointer) steht.
- Versucht ein Buffer-Overflow letztere zu überschreiben, überschreibt er auch den Stack Canary.
- Am Ende der Funktion wird geprüft, ob der Canary noch seinen ursprünglichen Wert hat. Wenn nicht, gelten die Stackfame-Metadaten als überschrieben.
- Viele Compiler bauen das automatisch ein, wenn mit /Stack Protection/ kompiliert wird.

***** Non-Executable Memory
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201054
:END:
****** Vorderseite
Wie und wogegen hilft /non-executable memory/? (VL 8, S.43)
****** Rückseite
Es verhindert das Ausführen von injiziertem Code, der im Prozess durch einen Exploit   außerhalb des ausführbaren Text-Segmentes geschrieben wurde. Dazu werden alle Segmente außer des Text- (auch Code-) Segments als schreibbar, aber nicht ausführbar markiert.

***** ASLR
****** Bedeutung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201203
:END:
******* Vorderseite
Wofür steht /ASLR/? (VL 8, S. 44)
******* Rückseite
Address Space Layout Randomization.

****** Nutzen
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201311
:END:
******* Vorderseite
Wie funktioniert /ASLR/? Wofür wird es verwendet? Gibt es Nachteile? (VL 8, S.44)
******* Rückseite
- Die einzelnen Speichersegmente des Prozesses werden zufällig permutiert, sodass nicht mehr vorausgesagt werden kann, wo welcher Speicherbereich liegt.
- Das erschwert /memory corruption/ Angriffe
- Es kostet Laufzeit
- Verhindert keine zweistufigen Angriffe: Zuerst wird der Speicher ausgelesen und abgeschätzt wo welcher Speicherbereich sein könnte. Danach wird in den Speicherbereich gesprungen.
*** 9 Vorlesung (Malware)
**** Typen von Schadsoftware
***** Aspekte von Schadsoftware
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201450
:END:
****** Vorderseite
Nennen und erklären Sie drei Aspekte von Schadsoftware. (VL 9, S.5)
****** Rückseite
- Self-replication: Schadsoftware kopiert und verbreitet sich automatisch
- Parsitismus: Schadsoftware injiziert schädlichen Code in anderen Code oder Daten.
- Unerlaubte Kommunikation: Schadsoftware kommuniziert mit dem Angreifer

***** Backdoors
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201564
:END:
******* Vorderseite
Definieren Sie den Begriff /backdoor/. Wo kann eine /Backdoor/ platziert werden? (VL 9, S.6)
******* Rückseite
- Versteckter, bösartiger Code, der der Sicherheitsmechanismen zur Zugangsbeschränkung umgeht und unerlaubten Zugang zu Ressourcen verschafft.
- Kann platziert werden in:
  - Als Programm im System
  - als Code in einer Library oder einem Programm
  - im BIOS / der Firmware
  - in der Hardware

****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201670
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat eine /Backdoor/? (VL 9, S.6)
******* Rückseite
- Replikation: ja bzw. möglich
- Parasitismus: nein (obwohl ich der Meingung bis dass doch)
- Kommunikaiton: ja

***** Logic Bomb
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201813
:END:
******* Vorderseite
Definieren Sie den Begriff /Logic Bomb/. (VL 9, S.8)
******* Rückseite
Schadsoftware, die
- von einem voher bestimmten Ereignis ausgelöst wird (z.B. Zeitpunkt ist eingetreten),
- tief im System versteckt ist,
- der automatischen Sabotage des Ziels dient
****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786201907
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat eine /Logic Bomb/? (VL 9, S.8)
******* Rückseite
- Replikation: möglich
- Parasitismus: nein
- Kommunikation: nein

***** Trojaner
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202038
:END:
******* Vorderseite
Definieren Sie den Begriff /Trojaner/. (VL 9, S.9)
******* Rückseite
Schadsoftware, die /gutartiges/ und /attraktives/ Verhalten vorgibt, um unwissentlich auf einem System installiert zu werden. Wird oft mit anderen Malware-Typen kombiniert.
****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202148
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat ein /Trojaner/? (VL 9, S.9)
******* Rückseite
- Replikation: möglich
- Parasitismus: nein
- Kommunikation: je nach dem, welches Ziel der Trojaner hat (→ Kombination mit anderen Malware-Typen)

***** Virus
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202288
:END:
******* Vorderseite
Definieren Sie den Begriff /Comptervirus/. (VL 9, S.11)
******* Rückseite
- Code, der sich in Programme und Dokumente injiziert
- Werden diese Dokumente geöffnet, wird die Malware ausgeführt und kann sich durch das Suchen anderer Wirte vermehren.
- Klassisch sind es Programme gewesen, aber heute können es auch Dokumente oder Websites sein.
****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202405
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat ein /Computervirus/? (VL 9, S.11)
******* Rückseite
- Replikation: ja
- Parasitismus: ja
- Kommunikation: nein

***** Wurm
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202533
:END:
******* Vorderseite
Definieren Sie den Begriff /Computerwurm/. (VL 9, S.12)
******* Rückseite
- Schadsoftware, Verwandter des Computervirus
- Repliziert sich selbst, aber ist nicht parasitär.
- Verbreitet sich über Schwachstellen im Computernetworking
- Payload des Wurms kann beliebige Schadsoftware sein
****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202666
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat eine /Computerwurm/? (VL 9, S.12)
******* Rückseite
- Replikation: ja
- Parasitismus: nein, sonst Virus
- Kommunikation: ja, denn er ist nicht parasitär

***** Spyware
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202764
:END:
******* Vorderseite
Definieren Sie den Begriff /Spyware/. (VL 9, S.14)
******* Rückseite
- Schadcode, der sensible Daten auf dem Zielsystem sammelt (z.B. per Keylogging oder Form Grabbing)
- Kann Aspekte eines Trojaners haben (→ hat einen attraktiven Nutzen)
- Großer Bereich: Von Adware bis zu schweren Verbrechen
- Wird manchmal aus /Stealer/ genannt
****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786202909
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat /Spyware/? (VL 9, S.14)
******* Rückseite
- Replikation: nein
- Parasitismus: nein
- Kommunikation: ja, denn es dient der Spionage


***** Botnet
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203006
:END:
******* Vorderseite
Definieren Sie den Begriff /Botnet/. (VL 9, S.15)
******* Rückseite
- Schadsoftware, die ein Computersystem kontrolliert
- Das /Botnet/ ist nicht nur die Software, sondern das Netzwerk infizierter Rechner ("Zombies")
- Kontrolliert den Rechner von außen
- Das Netzwerk wird für verschiedene Aspekte, wie DDoS oder Passwort-Cracking verwendet

****** Aspekte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203150
:END:
******* Vorderseite
Welche /Malware-Aspekte/ hat ein /Botnet/? (VL 9, S.15)
******* Rückseite
- Replikation: möglich
- Parasitismus: nein
- Kommunikation: ja, denn es dient der Fernsteuerung des infizierten Systems

***** Ransomware
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203306
:END:
****** Vorderseite
Definieren Sie den Begriff /Ransomware/. (VL 9, S.16)
****** Rückseite
- Schadcode, der zur Erpressung dient, indem er Ressourcen ausschaltet oder Dateien auf dem Zielsystem verschlüsselt

***** Scareware
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203433
:END:
****** Vorderseite
Definieren Sie den Begriff /Scareware/. (VL 9, S.16)
****** Rückseite
- Schadcode, der dem Nutzer Angst einjagt, um ihn zu einer Tat zu bewegen. Z.B. dem Kauf eines Produkts, wie eines Viruscanners

***** Dropper
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203557
:END:
****** Vorderseite
Definieren Sie den Begriff /Dropper/ im Kontext von Schadsoftware. (VL 9, S.16)
****** Rückseite
- Eine Form von Trojaner, der dazu dient, weitere Schadsoftware auf dem infizierten System zu installieren

**** Bösartige Mechanismen
***** File infection
****** Orte
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203686
:END:
******* Vorderseite
Nennen Sie drei Möglichkeiten bzw. Stellen in einer ausführbaren Datei, an die sich ein Virus platzieren kann. Gibt es je Ort Schwierigkeiten? (VL 9, S.19)
******* Rückseite
- *Prepended*: Virus platziert sich vor den ausführbaren Code. Funktioniert für interpretierten Code, ist aber schwierig für kompilierten Code, denn der hat oft feste Adressen, die sich verschieben würden.
- *Appended*: Funktioniert auch gut für kompilierten Code, allerdings ist es auffällig, dass nach dem /Entry Point/ erst ein weiter Sprung stattfindet.
- *Fragmented*: Viruscode ist im infizierten Code verteilt. Besonders für kompilierten Code ist es sehr schwer festzustellen, dass die Datei infiziert ist. Ist aber auch technisch anspruchsvoller.

***** Verbreitung von Würmern über das Netzwerk
****** klassisch
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203808
:END:
******* Vorderseite
Wie verläuft die /klassische/ Ausbreitung eines /Computerwurms/? Wieso ist es heute schwierig? Worauf wird ausgewichen? (VL 9, S.21)
******* Rückseite
- Klassische Verbreitung:
  1. Ein infiziertes Quellsystem scannt alle Hosts in Netzwerk nach Netzwerkverwundbarkeiten (z.B. Netzwerkapplikationen mit Schwachstellen → Microsoft IIS)
  2. Das Quellsystem infiziert einen gefundenen Rechner automatisch durch die gefundene Schwachstelle
  3. Das infizierte System wiederholt den Vorgang
- Schwierig weil viele Schutzmechanismen dazugekommen sind:
  - Subnetze sind geschützt und abgeschirmt
  - Desktopfirewalls
- Alternativ wird auf Kommunikationsanwendungen wie Emails (per Anhang oder HTML) ausgewichen, denn sie erlauben das Überschreiten von Netzwerkgrenzen.
****** Drive-by Downloads
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786203993
:END:
******* Vorderseite
Wie funkioniert ein /Drive-by Download/ von Computerwürmern? (VL 9, S.23)
******* Rückseite
- Der Angriff sucht Schwachstellen im Browser per JavaScript (oder Flash, Silverlight, Java-Applet).
- Die Schwachstelle wird genutzt, um Schadsoftware auf den Rechner des Besuchers zu laden.
- Der Besucher muss auf die Seite gelockt oder eine bereits populäre Seite infiziert werden.

***** Obfuscation
(Verstecken von bösartigem Code), wird auch /Packing/ oder fälschlicherweise /Encryption/ genannt.

****** Polymorhpismus
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204139
:END:
******* Vorderseite
Was ist /Polymorphismus/ im Kontext von gepackter Malware? (VL 9, S.24)
******* Rückseite
- Damit nicht einfach nach Signaturen der gepackten Malware gesucht werden kann, wird der Einpackprozess für jede Datei leicht verändert (z.B. ein anderer Schlüssel).
- Der /Decoder/ (Entpacker) wird mit in die Datei injiziert und kann zur Laufzeit die Malware und die Daten, die die Malware braucht, auspacken.
- Nicht nur Malware nutzt das verpacken von Code, sondern wird auch im Kontexten der Softwareentwicklung z.B. für Kopierschutz genutzt.

****** Emulation
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204236
:END:
******* Vorderseite
Wozu dient /Emulation/ im Kontext von gepackter Software? Wie funktioniert sie? (VL 9, S.25)
******* Rückseite
- Emulation ist eine weitere Möglichkeit, Schadsoftware zu packen (sie zu verstecken).
- Anstatt dass der Schadcode versteckt wird, können die Instruktionen auch in als Bytecode kodiert werden. Ein mitgeschickter Emulator für dann diesen Bytecode aus.

****** Maßnahmen gegen gepackten Code
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204376
:END:
******* Vorderseite
Wie kann gepackter Schadcode in Dateien bzw. Code gefunden werden? (VL 9, S.24)
******* Rückseite
Die Datei kann in einer geschützten Umgebung ausgeführt oder geöffnet werden. Währenddessen kann das Verhalten der Datei bzw. des öffnenden Programms beobachtet werden.

***** Cloaking & Evasion
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204510
:END:
****** Vorderseite
Was ist /Cloaking & Evasion/ im Kontext von Schadsoftware? (VL 9, S.27)
****** Rückseite
Das Verstecken von Schadsoftware oder Daten für den Betrieb der Schadsoftware. Es soll die Analyse der Schadprogramms erschweren.
Versteckt wird beispielsweise:
- Daten der Schadsoftware im Dateisystem (verschlüsselt)
- Verschlüsselte Kommunikation, z.B. verschlüsselt in URLs

***** Command-and-control communication
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204641
:END:
****** Vorderseite
Was ist /command-and-control communication/ im Kontext von Botnets? (VL 9, S.29)
****** Rückseite
- Hierarchische Anordung der Kommunikation innerhalb eines Botnetzes:
  - Der /Botmaster/ steuert mithilfe seiner /master server/ eine Menge von /proxy bots/, die wiederum ihr eigenes Netzwerk an /worker bots/ haben, welche dann konkrete Angriffe ausführen
- Peer-to-peer Kommunikation auch möglich

**** Untergrundwirtschaft
Wie verdient man Geld mit IT Kriminalität?

***** Maschen
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204796
:END:
****** Vorderseite
Nennen Sie x Möglichkeiten, mit einem Botnetz Geld zu verdienen. (VL 9, Teil 3)
****** Rückseite
- Spam:
  - Wenn 1% der Spamnachrichten zu einer Transaktion führen und man täglich 300000 Spamnachrichten verschickt, führt das zu 3000 Transaktionen.
  - Die Transaktionen selbst können legitim sein.
  - Der Verkäufer versendet Spam nicht selbst, sondern engagiert den Besitzer eines Botnets
- Erpressung per DDoS:
  - Viele Dienste (z.B. Onlineshops) müssen erreichbar sein, um Geld zu generieren
  - Mit der Androhung von DDoS (→ Botnetz) kann Schutzgeld erpresst werden
- Lösegelderpressung:
  - Daten können auf dem infizierten Host verschlüsselt werden
  - Entschlüsselung nur gegen Bezahlung

***** Outsourcing von Malware-Infektion und -Verteilung
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786204916
:END:
****** Vorderseite
Beschreiben Sie das /Pay-per Install/ Geschäftsmodell im Kontext der Malware-Verbreitung (VL 9, S.36)
****** Rückseite
- Es ist eine Form der Spezialisierung in der IT-Kriminalität. Die Verteilung von Schadsoftware und die Erstellung von Schadsoftware sind zwei verschiedene, komplexe Tätigkeiten
- Malware-Autoren spezialisieren sich auf die Erstellung von Malware und engagnieren einen Verteilungsdienst, der die Malware vertreibt
- Die Vertreiber rechnen pro Malware-Installation ab

*** 10 Vorlesung (Intrusion detection systems)
Reaktive Sicherheit. Vorher ging es um die Verhinderung von Schaden, jetzt geht es um die Reaktion auf Angriffe.
**** Grundlegendes und Monitoring
***** Definitionen
******  Angriff
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786205019
:END:
******* Vorderseite
Wie ist der Begirff /Angriff/ in der IT-Sicherheit definiert? (VL. 10, S.3)
******* Rückseite
Der Versuch ein Schutzziel zu verletzen.
****** Intrusion
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786205202
:END:
******* Vorderseite
Wie ist der Begirff /Intrusion/ in der IT-Sicherheit definiert? (VL. 10, S.3)
******* Rückseite
Erfolgreicher Angriff, also eine erflogreiche Verletztung eines Schutzziels

***** A generic detector
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786205334
:END:
****** Vorderseite
Aus welchen vier Komponenten besteht ein /IDS/ (/Intrusion Detection System/)? (VL 10, S.5)
****** Rückseite
1. *Monitoring* of data: Das Verhalten von Programmen, das Beobachten des Network-Traffics
2. *Analysis* of data: Parsen von Netwerkdaten, /Feature Extraction/ aus Programmen
3. *Detection* of threats: Missbrauchsmuster- oder Anomalieerkennung
4. *Response* to threats: Alarmierung des Personals, Blockieren der Handlung
***** Monitoring
****** Network-based
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786205431
:END:
******* Vorderseite
Wie funktioniert grundlegende Netzwerküberwachung? Welche Vorteile und Schwierigkeiten gibt es? (VL 10, S.7)
******* Rückseite
- Netzwerkdaten werden an einem Knotenpunkt abgefangen und geparst
- Daraufhin werden sowohl die Header- als auch der Payload der Pakete inspiziert
- Vorteil: Ein ganzes Netzwerksegment wird geschützt
- Nachteil: Verschlüsselung und die Masse der Daten beschränken die Effektivität
****** Host-based
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786205561
:END:
******* Vorderseite
Wie funktioniert grundlegende Host-Überwachung? Welche Vorteile und Schwierigkeiten gibt es? (VL 10, S.8)
******* Rückseite
- Jede Datei wird auf Schadcode-Signaturen überprüft (Batch oder On-access)
- Programmverhalten wird beobachtet: Welche Systemcalls führt das Programm aus? Redet es mit dem Netzwerk? Öffnet es Dateien, die nichts mit dem Programm zu tun haben? Schaut es sich die Eingaben der Tastatur an?
- Vorteil: Sehr feingranular: Man kann jede Handlung des Programms beobachten
- Nachteil: Hat große Laufzeitkosten
****** Application-based Monitoring
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786205960
:END:
******* Vorderseite
Was ist Applikaitonsüberwachung? Welche Vorteile und Schwierigkeiten gibt es? (VL 10, S.8)
******* Rückseite
- Eine Mischung aus Host- und Networkmonitoring für eine besondere (verteilte) Anwendung.
- Beobachtung der Transaktionen und Logs der Anwendung
- Beobachtung bestimmter Applikationslogik und des Programmzustands: Wer hat Schreibrechte für bestimme Daten der Anwendung? Macht es Sinn, dass ein Datum geändert wurde, aber nicht ein anderes? (Applikationssemantik)
- Vorteil: Applikationsspezifische Angriffe werden erkannt
- Nachteile:
  - Applikation muss erweitert werden.
  - Wieder erhöhte Laufzeitkosten, allerdings nicht so hoch wie für die Beobachtung des ganzen Systems / Netzwerksegments.

**** Analysis and feature extraction
***** Netzwerkanalyse
****** Problem
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206082
:END:
******* Vorderseite
Beschreiben Sie drei Schwierigkeiten beim Analysieren von Netzwerkdaten im Kontext von /intrusion detection/. (VL 10, S.13)
******* Rückseite
- Netzwerkdaten sind oft fragmentiert und nicht in Reihenfolge. Das System muss damit umgehen können.
- Das System muss die Vielzahl an Protokollen des Internet-Layers und evtl. auch Application-Layers parsen und analysieren können. Und dabei dürfen nicht die selben Vulnerabilities der dahinterliegenden Hosts auftreten.
- Die Payload-Daten sollten auch analysiert werden, was die Grenze zur Host-basierten Analyse auffweicht.
****** Vor- und Nachteile
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206222
:END:
******* Vorderseite
Was sind die Vor- und Nachteile eines Netwerk-basierten /Intrusion Detection Systems/? (VL 10, S.13)
******* Rückseite
- Vorteil:
  - Analyse erfolgt, bevor der Zeilhost erreicht wird
- Nachteile:
  - Eine Große Anzahl an Protokollen, die korrekt und robust implementiert werden müssen.
  - Verschiedene Protokollimplementierungen können bei der Verarbeitung der Daten zu unterschiedlichen Ergebnissen kommen -> /semantic gap/
****** Semantic Gap
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206401
:END:
******* Vorderseite
Was ist die /semantische Lücke/ in Parsern und Protokollimplementierungen. Wie kann das als Schwachstelle genutzt werden? (VL 10, S. 13)
******* Rückseite
- Unterschiedliche Parser und Protokollimplementierungen können gleiche Daten anders interpretieren.
- Es kann passieren, dass das die Protokollimplementierung eines /IDS/ nach dem Parsing keinen Angriff feststellt, obwohl der Parser des Hosts, auf den der Angriff abzielt, angreifbar ist.

***** Host-basierte Analyse
****** Problem
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206539
:END:
******* Vorderseite
Beschreiben Sie die Vor- und Nachteile beim Analysieren bei der Host-basierten Analyse Kontext von /Intrusion Detection/. (VL 10, S.14)
******* Rückseiten
- Vorteil:
  - Die Verteidigung ist effektiv, weil sie direkt man Angriffziel erfolgt
- Nachteile bzw. Schwierigkeiten:
  - Der Schadcode kann obfuskiert (gepackt) sein. Das kann das Auffinden von Schadcode erschweren.
  - Laufzeitkosten können die Nutzerfreundlichkeit reduzieren
****** Aspekte der Host-basierte Analyse
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206663
:END:
******* Vorderseite
Nennen Sie die drei Aspekte der /Host-basierten/ Analyse im Kontext von /Intrusion Detection/. (VL 10, S.14)
******* Rückseite
- Der Angriff kann gepackt sein, daher muss es Maßnahmen zum Entpacken geben (/deobfuscation/)
- Statische Analyse aller Dateiformate und des Inhalts
- Dynamische Analyse von Code
****** Obfuscation
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206800
:END:
******* Vorderseite
Dient /Code Obfuscation/ nur Angriffen? (VL 10, S.14)
******* Rückseite
Nein, das Obfuskieren von Programmmechanismen im Code wird z.B. für Kopierschutz verwendet.

**** Detection concepts

***** Feature Extraction
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786206934
:END:
******* Vorderseite
Was ist /Feature Extraction/ im Kontext von /Intrusion Detection Systemen/? (VL 10, S.15)
******* Rückseite
Die Überführung von Daten in eine analysierbare Repräsentation. Das kann sein:
- Statistische Analyse: Zählen von Länge, Häufigkeit von Symbolen, Vorkommen der selben Daten, Entropie
- Tokenization bzw. String Representation: Die Zerstückelung der Daten an bedeutenden Punkten. Erhöht Vergleichbarkeit.
- Parsen der Daten → Parse-Tree erlaubt syntaktische und semantische Analyse

***** Misuse Detection vs Anomaly Detection
****** Misuse
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207064
:END:
******* Vorderseite
Was ist /Misuse Detection/ im Kontext von /Intrusion Detection Systemen/? (VL 10, S.20)
******* Rückseite
- Eine der zwei klassischen Schulen der IT-Sicherheit: Modelliert das Böse
- Definiert klare Missbrauchsmuster und ihre formale Repräsentation (genant Angriffssignatur, -heuristik, -muster)
- Ein Angriff ist, was vorher als Angriff definiert wurde.
****** Anomaly
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207173
:END:
******* Vorderseite
Was ist /Anomaly Detection/ im Kontext von /Intrusion Detection Systemen/? (VL 10, S.20, 25)
******* Rückseite
- Eine der zwei klassischen Schulen der IT-Sicherheit: Modelliert das Gute
- Modelliert formal, was eine normale Nutzung des Systems darstellt (statistische Modelle, Spezifikationen, Wahrscheinlichkeiten, Maschinelles Lernen).
- Ein Angriff ist, was von der Normalität abweicht.
- Inhärente semantische Lücke: Anomalität ist nicht gleich Missbrauch.
****** Misuse vs Anomaly
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207293
:END:
******* Vorderseite
Stellen Sie /Misuse Detection/ ("MD") der /Anomaly Detection/ ("AD") gegenüber. Was sind die Vor- und Nachteile? (VL 10, S.21+)
******* Rückseite
- MD kann effizient und effektiv bekannte Angriffe erkennen. Eine Repräsentation von unbekannten Angriffen mit den Mitteln der MD ist nur sehr schwer zu machen.
- An der Stelle ist die AD effektiver. Ein Angriff sollte stark von der Normalität abweichen und ist daher erkennbar.
- AD kann jedoch gutwilliges, aber anomales Verhalten als Angriff einordnen (hohe Falsch-Positiv-Rate)
****** Gefahren der Anomaly Detection
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207421
:END:
******* Vorderseite
Was sind die Gefahren / Schwierigkeiten der Anomaly Detection? (VL 10, S.10,20,26)
******* Rückseite
- Inhärente semantische Lücke: Anomalität ist nicht gleich Missbrauch.
- Bei Machine-Learning-Modellen: Trainigsdaten, die Normalität abbilden, können den Angriff bereits beinhalten (→ vergiftet sein, /data poisoning/).

***** Keyword-Tree
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786324825
:END:
****** Vorderseite
Keyword-Trees: Wie funktioniert der /Aho-Corasick/ Algorithmus? Was ist seine Laufzeit? Was ist der große Vorteil? (VL 10, S.23+)
****** Rückseite
- Siehe Vorlesung. (VL 10, S.23+)
- O(n)
- Es kann ein Baum für alle Keywords erstellt werden. Ein String, der gegen den Baum gematch wird, muss nur einmal durchlaufen werden, ohne je zu einer bereits besuchten stelle im Baum zurückzuspringen. Kann gut zur Misuse Detection eingesetzt werden.

**** Response
***** Strategien
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207654
:END:
****** Vorderseite
Nennen Sie drei übliche Strategien, wie ein /Intrusion Detection System/ auf einen entdeckten Angriff reagieren kann. (VL 10, S.30)
****** Rückseite
- Warnungen an Administratoren senden, Warnung loggen
- IP Adressen werden blockiert, Ausführung von Programmen gestoppt
- Infizierte Dateien werden in Quarantäne verschoben (manchmal ist sogar ein eine Reparatur der Datei möglich).

***** Schwierigkeiten bei aktiven Reaktionen von IDS
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207756
:END:
****** Vorderseite
Gibt es /Gefahren/, wenn ein /Intrusion Detection System/ zur Verteidigung aktiv in das System eingreift? Wenn ja, nennen Sie Beispiele. (VL 10, S.30)
****** Rückseite
- Ja, denn das präsentiert eine weitere Angriffsfläche. Alle falsch-positiven und falsch-negativen Einordungen führen zu ungewolltem Verhalten.
- Beispiele:
  - Der Angreifer kann eine Quell-IP Adresse spoofen und damit einen Angriff durchführen, dessen Erkennung den echten Besitzer der IP Adresse vom System ausschließt. (DoS)
***** Honeypot
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786207875
:END:
****** Vorderseite
Was ist ein /Honeypot/ im Kontext von /Intrusion Detection Systemen/? (VL 31, S.31)
****** Rückseite
Wird von einem netzwerkbasierten IDS ein Angriff entdeckt, können die Netzwerkpakete anstatt verworfen zu werden, stattdessen an ein einzelnes System weitergeleitet werden, welches nach einem wichtigen System (welches auch falsche vertrauliche Daten beinhalten kann) aussieht, aber eine geschützte Umgebung zur Beobachtung des Angriffs darstellt. Dieses System wird Honeypot genannt.

***** Detection Performance
****** Definition
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786208032
:END:
******* Vorderseite
Wie misst man /detection performance/? (VL 10, S.34)
******* Rückseite
Wie groß ist das Verhältnis von richtig-positiven Erkennungen zu im Vergleich zur Menge der falsch-positiven Erkennungen? → ROC Kurve. Für Details, siehe VL 10, S.34.

****** Für Intrusion Detection Systeme
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786208138
:END:
******* Vorderseite
Warum ist für /Intrusion Detection Systeme/ eine kleines Verhältnis von falsch-positiven zu richtig-positiven Erkennungen wichtiger, als eine möglichst hohe absolute Erkennung von Angriffen?
******* Rückseite
Weil jeder falsch-positive Fall eine Angriffsfläche darstellt. (z.B. DoS für gespoofte IP Adressen, die aus dem Netzwerk ausgeschlossen werden)

***** Angriffe gegen Intrusion Detection Systeme

****** Red herring
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786208270
:END:
******* Vorderseite
Was ist ein /Red Herring/ allgemein und im Kontext der IT-Sicherheit? (VL 10, S.36)
******* Rückseite
- Ein Ablenkungsmanöver mit dem Ziel, jemanden auf eine falsche Fährte zu locken
- Man erzeugt gefälschte Angriffe, die ein /Intrusion Detection System/ Alarm schlagen lassen, während ein tatsächlicher Angriff in der Masse von Warnungen untergeht.
****** Mimicry Attack
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786208372
:END:
******* Vorderseite
Was ist ein /Mimicry Attack/ auf ein /Intrusion Detection System/? (VL 10, S.36)
******* Rückseite
Eine /Mimicry/ (engl. Nachahmung) Attacke versucht den Angriff so normal wie möglich in den Augen des IDS aussehen zu lassen, um einer Entdeckung zu entgehen. → Ausnutzung einer semantischen Lücke.

****** Poisoning
:PROPERTIES:
:ANKI_NOTE_TYPE: Einfach
:ANKI_NOTE_ID: 1614786208486
:END:
******* Vorderseite
Was ist ein /Poisoning Attack/ auf eine /Intrusion Detection System/? (VL 10, S.36)
******* Rückseite
Wird ein IDS mithilfe vom Machine Learning auf die Erkennung von Angriffen trainiert, können Angriffsmuster in die Trainigsdaten für normales Verhalten untergemischt werden, damit das IDS diesen Angriff als normal ansieht.
