====== Angriffsmethoden und Gegenmaßnahmen ====== Neben den allseits bekannten Methoden (Rootkits, Trojanern, Phishing) gibt eine Vielzahl von Möglichkeiten anderen System "eine Freude zu bereiten". Die Auflistung erhebt keinen Anspruch auf Vollständigkeit und beschäftigt sich hauptsächlich mit Angriffen in/über Netzwerke, lokale Angrife und Angriffe auf Passwörter. Gegenmaßnahmen werden zur Abwehr genannt. ===== Links ===== Siehe auch: * [[Verschlüsselung]] * [[Angriffe auf Webapplikationen]] * [[http://www.secologic.org/attacks|Angriffe und Lösungen]] * [[http://www.secologic.org/software|Sicherheit im Softwarelebenszyklus]] * [[http://www.microsoft.com/technet/archive/security/prodtech/network/authen.mspx|Authentication and Encryption]] * [[typische Angriffe]] ===== Ziele der Sicherheit in Netzen ===== Neben der zuverlässigen und unverfälschten Datenübertragung müssen Daten - **geheimgehalten werden** können (privacy): [[Verschlüsselung]] - die **Datenintegrität** muss gewährleistet sein, d.h. gegen absichtliche Veränderungen geschützt sein (data integrity): Prüfsummen, und gegen die (zufällige) Verfälschung von Daten auch [[wpde>Zyklische_Redundanzpr%C3%BCfung|CRC]]- oder [[wpde>Parität|Paritäts]]-Prüfverfahren. - und Teilnehmer müssen sich zweifelsfrei identifizieren können (**[[wpde>Authentifizierung|Authentifikation]]** oder authenticity). ===== Generelle Vorsichtsmaßnahmen ===== * Bedrohunganalyse ("threat modelling") * Das Prinzip der minimal nötigen Rechtevergabe ("least privilege") * Angriffspunkte oder Angriffsvektoren eleminieren * die Angriffsfläche minimieren ("Attack Surface Reduction") z.B. nicht benötigte Dienste abschalten ===== lokale Attacken ===== Lokale Benutzer können eine Menge Schaden am Server anrichten: * massig Prozesse starten ("Process creation attack"), lässt sich aber mit Benutzerlimits bekämpfen * Arbeitsspeicher füllen ("memory allocation attacks") * Festplatte volllaufen lassen ("disk overflow attacks") * Schwachstelle im Betriebssystemkern ausnutzen ("Kernel vulnerabilities") * [[wp>Privilege escalation]]: Ausweitung (lokaler) Rechte ===== Begriffe ===== * Exploits * Buffer Overflows * Format-String-Schwachstellen * [[http://www.fefe.de/intof.html|Integer Overflows]] * Port-Scans: Das gezielte Absuchen eines Rechner nach [[http://www.nwlab.net/tutorials/netstat/offene-ports-netstat.html|offenen Ports]]. FIXME ===== Informationsgewinnung (Reconnaissance) ===== FIXME * Javascript-malware: man bringt den Benutzer dazu eine mit böswilligem Javascript-Code ausgestattete Seite zu öffnen (dabei werden Browserlücken ausgenutzt) und schon kann man Informationen über Applikationen und das Intranet über den Intranet [[server:Webserver]] (auch mit Portscanns!) erhalten. Ein Beispiel ist [[http://www.bindshell.net/tools/beef/|BeEF (Browser Exploitation Framework)]] der Browser overflow exploits, port scanning, keylogging usw. durchführen kann. ===== Angriffsmethoden ===== ==== Abhören: Wiretapping / Sniffing / Eavesdropping ==== Alle drei Begriffe enthalten das Abhören des (Netz-, Telefon-, ...)verkehrs. Dabei werden meist [[wpde>Sniffer]] (Programme zu abhören) benutzt, die möglichst viele und an andere Benutzer adressierte Pakete aufzeichen. Diese werden zur Informationsgewinnung (Passwörter, Geheimnisse, ...) benutzt und können auch bei anfälligen Protokollen für [[angriffsmethoden und gegenmaßnahmen#Replay-Attacken (replay attacks)|Replay-Attacken]] eingesetzt werden. Das Abhören kann aktiv oder passiv erfolgen. Gegenmaßnahme: Verschlüsselung einsetzen (bei TCP/IP auf der Vermittlungsschicht oder einer drüberliegenden Schicht, z.B. in der Anwendungsschicht :!: oft wird auch [[wpde>MAC-Flooding]] eingesetzt um [[wpde>Switch|Switche]] dazu gebracht sie wir ein Hub zu verhalten. ==== Brute-Force-Methode ==== Unter der [[wpde>Brute-Force-Methode]] (rohe Gewalt) versteht man das einfache ausprobieren aller oder vieler Passwörtkombinationen. Gegenmaßnahme ist die Verwendung möglichst komplexer und langer Passwörter und natürlich einen starken (also ungebrochenen) Verschlüsselungsalgorithmus. === Links === [[wpde>Telephone tapping]] [[http://www.howstuffworks.com/wiretapping.htm|How Wiretapping Works]] ==== Cross-Origin Angriffe ==== Durch Sicherheitslücken in Browser (Javascript, [[http://www.heise.de/newsticker/meldung/Internet-Explorer-Datenklau-durch-zwei-Jahre-alte-Luecke-1073060.html|CSS]], ...) wird die Same Origin Policy ausgehebelt und Daten gestohlen. === Links === [[http://websec.sv.cmu.edu/css/css.pdf|Cross-Origin CSS-Angriffe]] ==== Denial-of-Service-Attacken ==== [[wp>Denial-of-service_attack|Denial-of-Service-Attacken (DoS)]] sind Angriffe auf die Verfügbarkeit / Erreichbarkeit von Diensten eines (Netzwerk-)Systems. Die Angriffe können * auf Applikationsebene (Ausnutzen von Schwachstellen) * Ressourcenangriffe (Aufbrauchen von Server-Kapazitäten * Bandbreitenangriffe (Sättigen/Ausschöpfung der Kapazität zur Datenübertragung). Je nach Angriffsart wird dabei zwischen * DoS (ein Angreifer lässt mehrere Angriffsrechner angreifen) * DDoS (ein Angreifer kontrolliert mehrere Masterechner, die dann jeweils Verbünde von Angriffsrechner zum Angreifen benutzen) * DRDoS (wie DDoS aber mit sog. Reflektoren) [[http://www.ks.uni-freiburg.de/download/papers/interdiszWS06/distribdos/DDoS-Vortrag_v12(E).pdf|Netzwerkangriffe durch DDoS-Attacken]] (sehr schöne Vortragsfolien) Gegenmaßnahmen: Filterung durch eine gute Firewall (Unterscheidung durch "Signaturen": Kunde oder Angreifer; hilft allerdings nichts wenn die Bandbreite gesättigt ist), möglichst früh auf Switches/Routern des Backbone den DoS-Verkehr blocken lassen, einen Reserve IP-Block für kritische Systeme mit eigener Route/anderem Provider, [[wp>SYN cookies]] gegen SYN-Attacken, intelligente vorgeschaltete Systeme zum Bandbreitenmanagement. Beispiele: * [[http://www.heise.de/newsticker/meldung/Wuchtige-DNS-DDoS-Attacke-auf-Spamhaus-1831677.html| Wuchtige DNS-DDoS-Attacke auf Spamhaus]] ==== Directory Harvesting Attacken (DHA) ==== Die [[wpde>Directory Harvest Attack|Directory Harvesting Attacke (DHA)]] ist eine Technik von Spammern die versucht gültige/existente eMail-Adressen zu finden. Dabei wird von Standardbenutzernamen ausgehend eine Variante nach der anderen durch brute-force, also stupidem ausprobieren, versucht. Das kann schnell zur Überlastung der mail-server führen und sollte durch eine Limitierung der Anmeldeversuche bzw. bewußtes Verzögern der Anmeldung bekämpft werden. ==== DNS-Poisoning ==== [[wp>DNS cache poisoning]] (siehe auch: [[angriffsmethoden und gegenmaßnahmen#DNS-Spoofing]])ist ein spezieller Angriff auf [[netzwerke:DNS]]-Server: Dabei wird ein [[netzwerke:DNS]]-Server dazu gebracht falsche Informationen in seinen Zwischenspeicher (Cache) zu übernehmen und diese falschen Informationen an andere Benutzer weiterzugeben. [[http://www.heise.de/security/artikel/58275|Vergiftetes DNS]] Gegenmaßnahmen: einen sicheren [[netzwerke:DNS]]-Server einsetzen, DNSSec einsetzen (wenn möglich), end-to-end-Authentifizierung einsetzen sowie algem. [[netzwerke:IPSec]]. ==== ICMP-Angriffe ==== FIXME ==== Abstreiten die sendende Person zu sein ==== FIXME ==== Man-in-the-middle (MITM)-Attacke ==== Bei Man-in-the-middle (MITM)-Attacken setzt sich der Angriffer zwischen die beiden Kommunikationspartner und belauscht oder verändert den Datenverkehr. Sie werden oft von [[wpde>ARP-Spoofing]] (Lösung: Statische ARP-Einträge) eingeleitet. siehe auch: [[netzwerke:ssl und tls#Man-in-the-middle Attacken gegen SSL]]. Lösung: Sowohl Server- als auch Clientauthentifizierung (letztere nicht durch Passwort) vornehmen. Das Problem ist auch eher die [[netzwerke:DNS]]-Anfrage die man im herkömmlichen [[netzwerke:DNS]] nicht verifizieren kann ([[wpde>DNS-Spoofing]]-Angriff). Lösung hierfür: [[wpde>DNSSEC]] oder [[netzwerke:IPSec]] einsetzen. ==== Rainbow-Table-Attacken ==== Angriffe durch [[wpde>Rainbow_Table|rainbow tables bzw. Regenbogentabellen]] auf [[:Hash-Funktion|Hash]]-Algorithmen sind diejenigen ausgesetzt, die bei der Erzeugung des [[:Hash-Funktion|Hash]]-Wertes keinen [[wpde>Salt (Kryptologie)|Salt]] einsetzen. Ohne Salt ist jeder verschlüsselten Eingabe genau eine verschlüsselte Ausgabe zuzuordnen. Das hat zur Folge das man nicht mehr alle Passwörter ausprobieren muss, sondern schnell die verschlüsselte Ausgabe in einer indizierten Regenbogentabelle nachschlägt und so sehr schnell Passwörter knacken kann. Die Zeit sinkt mit der steigenden Größe der [[wpde>Rainbow_Table|Regenbogentabellen]]. Gegenmaßnahme ist die Verwendung von [[wpde>Salted Hash|Salts]], da die Rainbow-tables nicht alle "gesalzenen" Abwandlungen berücksichtigen können. Die Verwendung von längeren Passwörtern erfordert allenfalls größere Rainbow-tables ist daher keine Option. ==== Replay-Attacken (replay attacks) ==== [[wpde>Replay_attack|Replay-Attacken]] beinhaltet das Aufzeichen des Datenverkehrs (Sniffing) eines Opfers und das spätere Senden der aufgezeichneten Daten an seinen Kommunikationspartner. Gegenmaßnahmen: [[wp>Timestamp|Timestamps]] und [[wpde>Session_token|Session token]] ==== Routing-Protokoll-Angriffe ==== Manipulationen am Routing: [[http://www.heise.de/security/artikel/44824|Angriffe über Routing-Protokolle]] ==== Session-Hijacking ==== Session-Hijacking: Die Übernahme von bestehenden Verbindungen. Hier werden gezielt TCP-Segmente mit anderen Daten und gefälschten IP-Adressen und den zugehörigen [[http://www.tcpipguide.com/free/t_TCPConnectionEstablishmentSequenceNumberSynchroniz.htm|Initial Sequence Numbers (ISNs)]] eingeschleust. Die Verbindung zwischen dem eigentlichen Client und dem Server wird dann aufgrund der falschen ISN unterbrochen. siehe [[http://www.networkcomputing.com/unixworld/security/001.txt.html|Sequence Number Attacks]]. Gegenmaßnahmen: [[netzwerke:IPSec]] FIXME ==== Spoofing ==== [[wpde>Spoofing]] (dt. Vortäuschen) nennt man in der Informationstechnik verschiedene Täuschungsversuche in Computernetzwerken zur Verschleierung der eigenen Identität. Außerdem gibt es [[wpde>DHCP-Spoofing]], [[wpde>IP-Spoofing]], [[wpde>Mac-Spoofing]], [[wpde>Mail-Spoofing]] und [[wpde>URL-Spoofing]]. === Links === * [[http://www.eff.org/wp/detecting-packet-injection|Detecting packet injection: a guide to observing packet spoofing by ISPs]] === Spoofing (ARP) === Im lokalen Ethernet (bzw. im gleichen Netz) wird gerne [[wpde>ARP-Spoofing]] Gegenmaßnahmen: * Statische ARP-Einträge arp -s (bei [[windows:Windows]] erst ab XP möglich) * permanente Kontrolle der ARP-Tabelle des Standard-Gateways, * Kontrolle am Spiegelport des Switches * [[ids:IDS]]-Lösungen * arpwatch: überwacht auf wechselnde ARP-Adressen Siehe auch * [[http://www.heise.de/security/artikel/print/55269|Technik und Abwehr von ARP-Spoofing-Angriffen]] * [[http://www.avertlabs.com/research/blog/index.php/2007/10/04/arp-spoofing-is-your-web-hosting-service-protected/|ARP Spoofing: Is Your Web Hosting Service Protected ?]] * [[http://www.microsoft.com/germany/technet/datenbank/articles/600593.mspx|ARP-Grundlagen und Spoofing]] === Spoofing (DNS) === [[wpde>DNS-Spoofing]] wird für [[angriffsmethoden und gegenmaßnahmen##Man-in-the-middle Attacke|Man-in-the-middle Attacken]] benutzt. Damit leitet man bestimmte Seiten (besonders [[netzwerke:SSL und TLS|SSL]]-geschützte Seiten) auf den eigenen Rechner ([[server:Webserver]]) um und versucht den Anwender zur Annahme eines [[apache:ssl#ein_selbst_signiertes_self-signed_zertifikat_erstellen|selbst-signierten Zertfikats]] zu bewegen. ==== SQL injection ==== Durch SQL Injection wird eine ungenügende Eingabevalidierung zum Einschleusen von SQL-Code benutzt. Das ist immer dann möglich wenn Eingaben des Benutzers ohne weitere Überprüfungen in eine SQL-Abfrage eingebaut werden die damit verändert wird. Z. B. führt die Eingabe von "OR 1=1--" dazu das ein Login auch ohne gültige Zugangsdaten erfolgreich ist weil die Abfrage durch die Bedingung 1=1 immer erfolgreich/wahr ist. * [[http://xkcd.com/327/|Cartoon: Exploits of a Mom]] * [[http://sourceforge.net/projects/sqltool/|SQL TOOL]] ==== TCP-Sequenznummern-Attacke ==== FIXME [[http://www.mnm-team.org/pub/Fopras/fack00/HTML-Version/node54.html#SECTION00072600000000000000|TCP-Sequenznummern-Attacke]] Gegenmaßnahmen: [[netzwerke:IPSec]] ==== Verkehrsanalyse (Traffic analysis) ==== Durch "[[wp>Traffic_analysis|Traffic analysis]]" erhält man Informationen durch Auswertung von (Daten-)Verkehrsinformation und bestimmten Bitmustern. Nicht nur bei verschlüsselter Information ist es neben dem Kommunikationsinhalt oft hochinteressant wer mit wem redet. Nicht umsonst interessieren sich Geheimdienste für die "Verkehrsdaten". FIXME Gegenmaßnahmen: covert networks, kein/wenig bzw. nicht abhörbaren Verkehr erzeugen, [[wpde>Steganografie]] benutzen, viel Rauschen erzeugen, [[wp>Spread_spectrum|spread-spectrum]] und [[wp>Frequency_Hopping_Spread_Spectrum|spectrum-hopping]]. ==== Wasserzeichenangriff ==== Der [[wpde>Wasserzeichenangriff]] dient insbesondere bei Festplattenverschlüsselung (siehe bei [[linux:Festplattenverschlüsselung|Linux]] und [[windows:Festplattenverschlüsselung|Windows]]) dazu, die Existenz eines bestimmten Musters nachzuweisen. Die komplette Entschlüsselung ist nicht das Ziel. Als Gegenmaßnahme sollte man eine Verschlüsselungssoftware benutzen, die dafür nicht anfällig ist, z.B. ein aktuelles [[linux:Festplattenverschlüsselung|dm-crypt]] mit [[wpde>ESSIV]]. ==== Wörterbuchangriff ==== Der [[wpde>W%C3%B6rterbuchangriff|Wörterbuchangriff]] nutzt die Nachlässigkeit vieler Benutzer aus leicht zu merkende Wörter zu verwenden. Statt sinnlose Zeichen zu benutzen finden sich diese schwachen Passwörter sehr häufig in Wörtbüchern (deshalb der Name) oder stehen in vielfach zu findenden Wortlisten. Ideal lässt sich dieser Attacke durchführen wenn man viele Passwörter in kurzer Zeit durchprobieren kann. Dies kann direkt am Login-System oder "offline" auf einen verschlüsselten Text. Gegenmaßnahme ist die Verwendung von komplexen und langen Passwörter die keinen Sinn ergeben. Als Administrator sollte man die Benutzerpasswörter von Zeit zu Zeit darauf überprüfen. ==== XSS (Cross-Site_Scripting) ==== [[wpde>Cross-Site_Scripting|XSS- oder Cross-Site_Scripting-Angriffe]] ... FIXME [[http://www.heise.de/security/artikel/94100| Passwortklau für Dummies ... oder warum Cross Site Scripting wirklich ein Problem ist]] Gegenmaßnahmen: Javascript deaktivieren und einschränken, bei [[software:Firefox]] mit AddOn [[https://addons.mozilla.org/de/firefox/addon/722|NoScript]]; Programmier: [[http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet|sicher programmieren]]. ==== XSRF / CSRF (Cross-Site Request Forgery) ==== Durch [[wpde>Cross-Site Request Forgery]] (auch Session-Riding genannt) benutzen Angreifer auf einer zweiten Seite (oder einer HTML-eMail) die bereits auf einer anderen Internetseite authentifizierten Benutzer (bzw. dessen Sitzung) um die vom Angreifer gewünschte Aktion an der anderen Internetseite auszuführen (auf die ansonsten kein direkter Zugriff bestünde). Beispielweise könnte eine böswillige Seite versuchen die parallel im Browser bestehende Online-Sitzung eines Benutzers für Überweisungen zu benutzen. Gegenmaßnahmen: Benutzer zum ausloggen erziehen, Sessions ablaufen lassen, Authentifizierung durch den Server (explicit authentifikation): würde gehene, aber auf andere Weise nachteilig sind URL-Rewriting oder Form-based session-tokens), mehr hier: [[wpde>Cross-Site Request Forgery#Abwehrma.C3.9Fnahmen|XSRF / CSRF-Abwehrmaßnahmen]]. Reverse-Proxy, ein verstecktes Formular mit Zufallswert ([[wpde>nonce]]) der aber wieder erwartet wird (input type=hidden value=Zufallswert), eine [[security:firewalls#web application firewall]], Clientschutz [[http://www.nongnu.org/requestrodeo/|RequestRodeo]] ([[programmiersprachen:Python]] proxy). === Links === [[http://sunny-winter.de/sessionriding.html|Browser auf XSRF-Anfälligkeit testen]] [[http://events.ccc.de/congress/2006/Fahrplan/events/1560.en.html|CSRF - Vortrag]] auf dem [[http://events.ccc.de/congress/2006/Fahrplan/|23c3]].