08 - Server-seitige Angriffe Flashcards
(38 cards)
Fähigkeiten: Netzwerk-Angreifer (3)
1) Beobachtung des Netzwerkverkehrs
2) Erzeugung von Netzwerkverkehr
3) Unterbrechung von Netzwerkverkehr
Definition: Netzwerk-Angreifer
Dieser Angreifer sitzt an der Kommunikationsverbindung zwischen zwei Teilnehmern
Definition: Remote-Angreifer
Dieser Angreifer kann mit einem entfernten System über ein Netzwerk interagieren. Danach wird versucht das Remotesystem durch Benutzung/Missbrauch der verfügbaren Interfaces kompromittieren.
Ziele: Remote-Angreifer (3)
1) Ausführung von Code
2) Abschöpfen von Information
3) Denial of Service
Arten von Angreifer (4)
1) Remote-Angreifer
2) Lokaler Angreifer
3) Web-Angreifer
4) Netzwerk angreifer
Definition: Lokaler Angreifer
Dieser Angreifer führt beliebigen Code aus und versucht damit zusätzliche Rechte zu gewinnen.
Definition: Web-Angreifer
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.
Eigenschaften: HTTP (3)
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.
Bestandteile: HTTP Request
1) Anfragezeile
2) Eine Liste von HTTP-Headern, getrennt durch < CR > < LF >
3) Einer leeren Zeile
4) Optionalen message body
Zweck: HTTP GET
Eine Ressource abrufen
Zweck: HTTP POST
Daten zum Server senden
Eigenschaften: HTTP GET (2)
1) Enthält keinen Message-Body
2) Parameter in der URL übergeben
Eigenschaften: HTTP POST (2)
1) Zu sendenden Daten werden im Message-Body transportiert
2) Für Zustandsändernde Anfragen zu verwenden
Bestandteile: HTTP Response (4)
1) Response-Code
2) Liste von Response-Headern
3) Leerzeile
4) Response body
Nachteil: HTTP Response
HTTP Responses können Angreifern viele Informationen über das Opfersystem liefern. Insbesondere bei fehlgeschlagenen Requests steigt die Aussagekräftigkeit
Definition: HTTPS
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.
Definition: Web Proxies
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.
Angriffe auf Web-Applikationen: Client-Seitig (2)
1) Cross-Site Scripting
2) Cross-Site Request Forgery
Angriffe auf Web-Applikationen: Server-Seitig (3)
1) SQL Injection
2) Remote Code Injection
3) Path Traversal
Arten von Input Validation (6)
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
Arten von Untrusted Input (5)
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
Warum keine Client-Seitige Sicherheitsmaßnahmen?
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.
Definition: SQL-Injection
Besteht daraus, innerhalb einer existierenden Anwendung (z.B. Input Felder) SQL-Kommandos in die Datenbank-Engine zu injizieren
Vorgehensweise: SQL Injection (3)
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.