08 - Server-seitige Angriffe Flashcards

1
Q

Fähigkeiten: Netzwerk-Angreifer (3)

A

1) Beobachtung des Netzwerkverkehrs
2) Erzeugung von Netzwerkverkehr
3) Unterbrechung von Netzwerkverkehr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition: Netzwerk-Angreifer

A

Dieser Angreifer sitzt an der Kommunikationsverbindung zwischen zwei Teilnehmern

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Definition: Remote-Angreifer

A

Dieser Angreifer kann mit einem entfernten System über ein Netzwerk interagieren. Danach wird versucht das Remotesystem durch Benutzung/Missbrauch der verfügbaren Interfaces kompromittieren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ziele: Remote-Angreifer (3)

A

1) Ausführung von Code
2) Abschöpfen von Information
3) Denial of Service

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Arten von Angreifer (4)

A

1) Remote-Angreifer
2) Lokaler Angreifer
3) Web-Angreifer
4) Netzwerk angreifer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definition: Lokaler Angreifer

A

Dieser Angreifer führt beliebigen Code aus und versucht damit zusätzliche Rechte zu gewinnen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Definition: Web-Angreifer

A

Hier handelt es sich um Angriffe auf Web-Anwendungen. Indem HTTP-Anfragen aus dem Browser des Users erzeugt werden oder JS in clientseitigen Kontext der angegriffenen Anwendung ausführen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Eigenschaften: HTTP (3)

A

1) Stateless (Zustandslos) - gibt Anfragen und Antworten und sonst nichts.
2) Menschenlesbar
3) Nachdem die TCP-Verbindung geöffnet ist, wird die Anfrage-Syntax zum Server hin gestreamt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Bestandteile: HTTP Request

A

1) Anfragezeile
2) Eine Liste von HTTP-Headern, getrennt durch < CR > < LF >
3) Einer leeren Zeile
4) Optionalen message body

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Zweck: HTTP GET

A

Eine Ressource abrufen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Zweck: HTTP POST

A

Daten zum Server senden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Eigenschaften: HTTP GET (2)

A

1) Enthält keinen Message-Body

2) Parameter in der URL übergeben

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Eigenschaften: HTTP POST (2)

A

1) Zu sendenden Daten werden im Message-Body transportiert

2) Für Zustandsändernde Anfragen zu verwenden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Bestandteile: HTTP Response (4)

A

1) Response-Code
2) Liste von Response-Headern
3) Leerzeile
4) Response body

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Nachteil: HTTP Response

A

HTTP Responses können Angreifern viele Informationen über das Opfersystem liefern. Insbesondere bei fehlgeschlagenen Requests steigt die Aussagekräftigkeit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Definition: HTTPS

A

HTTPS ist eine kombination aus HTTP und SSL (oder TLS). Dieses Protokoll verschlüsselt Kommunikation und kann vor snooping und man-in-the-middle Angriffen schützen.

17
Q

Definition: Web Proxies

A

Sind Zwischenstationen, die HTTP-Verkehr abfangen, untersuchen und weiterleiten. Sie können Client-sietig, Server-seitig oder an Netzwerk-Grenzen platziert werden. Ihre Aufgabe ist Caching und feindliche Requests zu filtern. Diese Proxies müssen aber dem Browser bekannt sein.

18
Q

Angriffe auf Web-Applikationen: Client-Seitig (2)

A

1) Cross-Site Scripting

2) Cross-Site Request Forgery

19
Q

Angriffe auf Web-Applikationen: Server-Seitig (3)

A

1) SQL Injection
2) Remote Code Injection
3) Path Traversal

20
Q

Arten von Input Validation (6)

A

So kann gegen untrusted Input geschützt werden, wenn die folgenden Charakteristiken geprüft werden:

1) Datentyp
2) Zulässige Zeichenmenge
3) Minimale und Maximale Länge
4) ob null zulässig ist
5) Das numerische Intervall
6) Zählt der Input zu einem der enums

21
Q

Arten von Untrusted Input (5)

A

1) Ziel-URLs
2) GET-Parameter in der URL und POST-Parameter im Body
3) Cookie Header
4) Metadaten von übertragenen Objekten
5) Abgeleitete Code-Injection

22
Q

Warum keine Client-Seitige Sicherheitsmaßnahmen?

A

Dem Client kann nie vertraut werden, da er alle Aspekte des Web User-Interfaces lesen und ändern kann um somit die Web-Anwendung manipulieren kann.

23
Q

Definition: SQL-Injection

A

Besteht daraus, innerhalb einer existierenden Anwendung (z.B. Input Felder) SQL-Kommandos in die Datenbank-Engine zu injizieren

24
Q

Vorgehensweise: SQL Injection (3)

A

1) Angreifer sucht nach einem Parameter, den die Web-Anwendung dafür benutzt, eine DB-Abrage zusammen zu bauen
2) Schadhafte SQL-Befehle an geeignete Stelle des Parameters einfügen um die Web-Anwendung dazu zu bringen, die schadhafte Abfrage an die DB weiter zu geben.
3) Danach werden vom Angreifer Datenbankinhalte entweder abgerufen, manipuliert oder sogar vernichtet.

25
Q

Sicherheitsmaßnahmen: SQL-Injections (7)

A

1) Keine unnötigen Debuggung- und Fehlermeldungen an den Benutzer ausgeben und stattdessen dafür Logfiles benutzen.
2) “ und ‘ Zeichen für String-werte in der DB escapen mit ' (Wehrt natürlich nicht alle SQL-Injections ab)
3) Prepared Statements auf dem DB-Server die für die Anwendung benötigt wird
4) Applikation von SQL zu trennen (z.B. mit Persistenz-Frameworks)
5) Benutzereingaben die in SQL-Statements landen validieren
6) Nur Daten akzeptieren, die exakt deinen Erwartungen entsprechen - konservativer Ansatz.
7) Zugriffsrechte der Anwendung auf der DB beschränken

26
Q

Sicherheitsmaßnahmen: Remote Code-Injections (3)

A

1) Validiere und escape dynamische Kommandos
2) Nimm dem ausführenden System-User so viele Privilegien wie möglich weg.
3) Benutze gar keine Shell-basierte Kommunikation/Ausführung

27
Q

Injection mittels Path Traversal

A

Mit parameter injections nach einer spezifischen Datei oder einem Dateipfad suchen. Oft sind Konfigurationsdateien oder hardcoded Credentials das Ziel.

28
Q

Sicherheitsmaßnahmen: Path Traversal (3)

A

1) Alle Pfade vor der Benutzung normalisieren
2) Whitelists um Zugriff auf erlaubte Dateien und Verzeichnisse einzuschränken.
3) Sensitive Daten außerhalb solcher Pfade ablegen.

29
Q

Fragen für String-Verwendung (5)

A

1) Baue ich gerade Computer-Code zusammen?
2) Falls ja: Welcher Interpreter wird ihn ausführen
3) Welche Semantik steckt hinter den Daten / dem Code
4) Welcher dynamischer Teil meiner Daten könnte von einem Angreifer beeinflusst werden?
5) Wie bereinige ich die Daten in der jeweiligen Programmiersprache?

30
Q

Definition: Kontrollfluss bei Web-Applikationen

A

Der Kontrollfluss wird von einer Reihenfolge von HTTP-Requests und -Responses vom User im UI zu einem gewissen Maße gesteuert.

31
Q

Problem: Kontrollfluss bei Web-Applikationen

A

Der Angreifer kann ausgehende HTTP-Requests bis aufs letzte Bit kontrollieren und sich somit kann sich der Programmierer nicht auf die Einschränkungen durch das erwartete Format und den Ablauf der Requests verlassen. D.h. er kann nicht davon ausgehen, dass alle eingehenden Requests sich an das Schema vom vorprogrammierten UI halten.

32
Q

Verwundbarkeiten: Kontrollflusse (4)

A

1) Sicherheitseigenschaften direkt von HTTP-Parametern (oder anderen Teilen) des eingehenden Requests abgeleitet.
2) Annahme, dass der Angreifer nur auf diejenigen URLs zugreift, die im UI auftauchen.
3) Andere HTTP-Verben verwenden die vom Applikationsserver zugänglich sind.
4) Fehlende Kontrollfluss Integrität (Reihenfolge der HTTP-Requests ist vom Angreifer beeinflussbar)

33
Q

Probleme: Kontrollfluss-Integrität bei Multi-Party Web-Applikationen

A

1) Bei Multi-Party Web-Applikationen müssen sich mehrere Parteien abstimmen und so könnte es zu mehr Verwundbarkeiten kommen.
2) URL-Inhalte können vom Angreifer zwischen Diensten Modifiziert werden
3) Ein weiterer Bösartiger Dienst kann sich am Dienstnetzwerk anschließen und somit z.B. den Bezahlungsvorgang manipulieren

34
Q

Gegenmaßnahme: Kontrollfluss-Integrität für Multi-Party Web-Applikationen

A

Zwischen den Diensten sollte von den einzelnen Diensten eine Form von Signatur einführen, damit die letze Signatur von z.B. den Inhalten einer Bestellung verifiziert

35
Q

Definition: Race Conditions

A

Hier werden mehrere Threads generiert, die jeweils eine HTTP-Request ausführen. Diese Threads teilen sich Ressourcen wie das Filesystem, die DB und alle übrigen applikationsfremden Ressourcen.

36
Q

Angriffe auf Web-Applikationen (5)

A

1) Race-Conditions (Nebenläufigkeit von Threads)
2) Injections (SQL, Path-Traversal, JSON usw…)
3) Server-Side Scripting
4) Kontrollflussmanipulation
5) File-Uploads

37
Q

Probleme: File-Uploads

A

Dateien sind hier vom Angreifer Kontrolliert und er kann Bösartige Dateien so an den Server schicken wo sie auch verarbeitet werden.

38
Q

Gegenmaßnahmen: File-Uploads (5)

A

1) Nur Files akzeptieren die man Erwartet
2) Files als BLOB in der DB speichern
3) Nicht zulassen, dass der Benutzer den Filenamen wählt.
4) Größe der Dateien beschränken
5) Bilder Reformatten