Sicherheit von Software Flashcards
Was sind häufige Sicherheitslücken von Software?
- Injection
- Broken Authentification
- Sensitive Data Exposure
- XML External Entities
- Cross-Site Scripting (XSS)
- Cross Site Request Forgery (CSRF)
- Falsche Konfiguration
Was ist uberhaupt eine SQL-Injection? Ohne prepared statement: ¨
Ausbrechen m¨oglich.
Q = “ select * from User where name = ‘$t’”
Prepared statement: Ausbrechen unm¨oglich
Q = “ select * from User where name = {}”
Was sind häufige Fehlern bei Software?
• Programme haben zu hohe Rechte, Bsp. SQL-Injection: Programm, dass select statement ausfuhrt, darf nicht auch Recht ¨
haben tables zu l¨oschen, Directory mit zu hohen Rechten, Wenn
ich ein neues File erstelle, erhielt das File die Rechte der Benutzergruppe user fruher und alle die zu der Gruppe user geh ¨ ¨ortenm
konnten es ausfuhren. Heute ist jeder User eine eigene Gruppe! ¨
→ Falsche Konfiguration
• Programme prufen Berechtigungen nur unzureichend. Bsp. ¨
Tailgating (Einfach hinterherlaufen wenn Ture offen) Gegen- ¨
massnahme Vereinzelung (Drehture, wo nur eine Person durch- ¨
passt). Bsp. Webshop: Passwort wird in Klartext uber https ¨
verschlusselt geschickt. Anf ¨ ¨allig fur Man-in-the-Middle Attack. ¨
Token fur Session ist ebenfalls anf ¨ ¨allig.
• Programme schutzen ihre Funktion unzureichend.
Gibt es eine sichere Sprache?
- Es gibt Sprachen, bei denen sind bestimmte Fehler wahrscheinlicher: Buffer Overflow viel wahrscheinlicher bei C als bei Java.
- Keine Sprache ist sicher
- Jede Sprache kann sicher oder unsicher programmiert werden
Wie funktioniert Bufferoverflow?
• L¨ange des Passworts limitieren bzw. mitspeichern und uber- ¨
prufen. ¨
• Reihenfolge des if-Statement ¨andern wurde hier den Bufferover- ¨
flow ebenfalls verhindern.
• ASLR, Stackverwurfelung, damit nicht das passCorrect Feld ¨
uberschrieben wird. ¨
10.4.1 War das eine clevere Attacke?
Nein ein simples cat oder less h¨atte auch genugt. Bufferoverflow ist ¨
mit Kanonen auf Spatzen geschossen.
Was ist ein Watchdog und welche arten gibt es?
Zum Gew¨ahrleisten der Verfugbarkeit bei Software und Systemen wer- ¨
den gerne Watchdogs eingestellt. Ein Watchdog uberwacht eine Kom- ¨
ponente und ergreift bei deren Fehlfunktion korrigierende Aktionen.
Watchdogs sind auch nur Programme und deshalb fehleranf¨allig. Deshalb sollten Watchdogs immer sehr simple gehalten werden. Typische
Watchdog-Typen sind:
• Time-Out-Watchdog: meldet sich regelm¨assig. Bsp. BIOSWatchdog, wenn Windows h¨angt.
• Window-Watchdog: Programm macht intern die ganze Zeit
Selbsttests und schickt die Resultate an Watchdog. Fragwurdig, ¨
ob Programm selbst bestimmen kann, ob es korrekt l¨auft. (Analogie: Ich gehe zum Arzt und stelle eine Selbstdiagnose, hilfreicher: Fremddiagnose des Arztes). Je wichtiger die Sicherheit,
desto mehr Meinungen (Zweitmeinung, Drittmeinung) werden
eingeholt. → desto mehr Watchdogs.
• Smart-Watchdog: Liefert Input fur Programm und untersucht ¨
das Resultat. Webserver Bsp. Ich liefere Website als Input und
prufe, ob Passwort n ¨ ¨otig, 200 Status ok, im Timelimit etc.
• Todmannsschalter: Lokfuhrer muss in regelm ¨ ¨assigen Abst¨anden
den Knopf drucken, um zu signalisieren, dass er nicht schl ¨ ¨aft.
• Operateur muss Maschine mit beiden H¨anden bedienen, sonst
keinen Strom.
• Prozessorientierte Watchdogs: Zeitgesteuerte Lohnabrechnung
Was kann man generell über das Netz angreifen?
Zwei Angriffe:
• Angriff durch Server auf Client
• Angriff durch Client auf Server
Welche Angriffe gibt es durch Clients?
Server sind in einem Netzwerk besonders exponiert. Ihre Funktionen
mussen sie einer grossen Gruppe von Clients zur Verf ¨ ugung stellen. ¨
Typische Attacken auf Server sind beispielsweise:
• Brute Force Attacken auf Credentials
• Brute Force Attacken auf URLs (bei schlecht gesicherten Webseiten)
• Logische Bomben (als DoS Attacke): Zip-File entpackt sich
auf mehrere Terabytes, XML mit verschachtelten Tags (LOL1 =
“lol”, LOL2 = 10 * LOL1, LOL3 = 10 * LOL2…) explodiert ebenfalls
• Uberlastung (Typischerweise ¨ uber eine DDoS-Attacke) ¨
• Datenleckattacke: Feld will Identifikation via /etc/passwd und
greift damit die Passworte ab.
Welche Angriffe gibt es durch Server?
Typische Attacken auf Clients sind:
• Buffer Overflow Exploitation eines Clients: durch Webbroswer
oder ein Plugin
• Malicious payload
• Reflektor Missbrauch: Angreifer tarnt sich hinter einer weiteren
Maschine. Via Broadcast oder DNS-Protokoll.”
Nenne beispiele für logische Bomben
• Billion laughs
• ZIP bomb
• REGEX: (a+)+
• Zip in Zip File: Zip-File entpackt ergibt sich selbst plus ein neues -¿ Virenscanner stoppen ab einer Rekursion von 100 mit entpacken. Wieso nicht bereits Zip in Zip Struktur als verd¨achtig
behandeln? Weil .jar, .ipa ebenfalls ein zip ist.
• Exel-Makro das Makros schreibt
• Fork bomb in bash (Funktion, die sich selbst immer wieder aufruft): :(){:|:&};:
Was ist eine Reflektor attacke?
Ein Angreifer sendet Daten an einen oder mehrere Empf¨anger und
diese wiederum generieren Verkehr, der an das anzugreifende Ziel gesendet wird. Hat zwei Eigenschaften:
• Eigene Bandbreite erh¨ohen
• Identit¨at verbergen
• PING
• DNS
• Wordpress (Out of office agent, automatische Mail bei Abwesenheit)
• Support Tools → deshalb hat es uberall Captchas ¨
• Registrierung bei E-shop
• Fraggle (UDP)
• Smurf (ICMP)
Jedes Protokoll, das asynchron automatisch eine Antwort sendet, kann
fur Reflektorattacken genutzt werden. UDP, Mailserver sehr gut ge- ¨
eignet. Http nicht, da symmetrischer Aufbau.