IT-Sicherheit
...
...
-
- 1 / 154
-
Lernkarten
Nennen Sie Beispiele für einen Passiven Angriff (3p)
- Abhören / Lesen von Kommunikationskanälen
- Passwort-Sniffer
- Keylogger
Nennen Sie Beispiele für einen aktiven Angriff (6p)
- Verändern von Daten bei der Übertragung oder in Dateien
- Replay-Attacken (Wiedereinspielen von Daten)
- Spoofing-Attacken (falsche Identität)
- Request Forgery ("Unterschieben" von Daten)
- Denial of Service (DoS)
- Social Engineering
Was sind Computerviren? Und Welchen Schaden können sie anrichten? (6p)
- Selbstvermehrendes Computerprogramm
- Vermehrung über Wirtsprogramm
- Nicht eigenständig lauffähig
- Schaden durch
- Unkontrollierte Vermehrung (Ressourcenverbrauch)
- Programmierfehler
- Ausspähen von Daten
- Gezielte Schadfunktionen
Nennen Sie 4 Virentypen (4p)
- Programmviren
- Bootsektorviren
- Makro-Viren
- "Daten-Viren"
Nennen Sie Infectionsarten von Computerviren (3p)
- Überschreibende Viren
- Prepender-Viren
- Appender-Viren
Nennen Sie Schutzmechanismen die Computerviren verwenden um sich zu tarnen (4p)
- Abfangen von Systemaufrufen (Stealth viren)
- Verschlüsselung soll typische Zeichenketten (Signaturen) verbergen
- Polymorphe Viren: variable Verschlüsselung, Variation der Entschlüsselungsroutine bei Infektion
- Retroviren: deaktivieren Virenscanner etc.
Nennen Sie Präventionsmöglichkeiten gegen Vieren (6p)
- Eingeschränkte Berechtigungen
- Verschlüsseln von Code
- Verwendung von Prüfsummen (Hashcodes)
- Verwendung aktueller Softwareversionen und Security Patches
- Deaktivierung von Automatismen und riskanten Funktionen
- Mitdenken
Nennen Sie Möglichkeiten Viren zu erkennen (6p)
- Scan nach bekannten Viren (Signaturen)
- Versuch der Erkennung anhand Code-Muster
- Manuell auf Anforderung (meist Scan aller Dateien)
- Automatische Prüfung aller Schreib-/Lesezugriffe
- Erkennung typischer Verhaltensmuste
- Monitoring (Überwachung von Dateistrukturen / Dateien über Hashcodes)
Was sind Würmer? (5p)
- Selbstreproduzierendes Programm, ähnlich Virus
- Eigenständig lauffähig, benötigt kein Wirtsprogramm
- Verbreitung über Netzwerke oder Wechselmedium
- Benötigt meist Unterstützung, um auf ein System zu gelangen und ausgeführt zu werden
- Schadverhalten wie bei Virus
Nennen Sie Verbreitungsmechanismen von Würmern (7p)
- Instant-Messaging, IRC
- P2P-Würmer
- Netzwerkdienste
- Wechseldatenträger
- USB-Devices
- Smartphones
Was sind E-Mail-Würmer? (4p)
- Verbreitung über E-Mail
- Ausführung durch Fehler in Mailsoftware oder durch "Mitarbeit des Benutzers"
- Automatisches Öffnen von Anhängen
- Beeinflussung des Benutzers
Was sind Trojanische Pferde?
- Programm mit versteckter Schadfunktion
- enhält oder installiert Schadcode
- Kann Schadcode ggf. auch nachladen
- Auch als Plugin für Anwendung (Browser)
Wie können sich Trojanische Pferde verbreiten?
- E-Mail-Anhänge
- Downloads
- Datenträger
- Würmer
- Weiterverbreitung meist durch Benutzer
Welche Schadroutinen können Trojanische Pferde ausführen?
- Ausspähen von Daten
- Deaktivieren von Sicherheitsmechanismen
- Fernsteuerung des Rechners
- Umleitung von Webseiten
- Zerstörung / Verschlüsselung von Daten
Nennen Sie Gegenmaßnahmen zu Trojansichen Pferden
- Minimale Rechtevergabe
- Verschlüsselung von Daten
- Vierenscanner
- Verhaltensüberwachung
- Nur vertrauenswürdige Software installieren
Was versteht man unter Botnetzen?
- Netzwerk von infizierten Rechnern (Bots)
- Infizierung meist durch Viren, Würmer, trojanische Pferde
- Fernsteuerung meist über zentralen Rechner
Wofür können Botnetze verwendet werden ?
- SPAM-Versand
- DdoS-Angriffe
- Klickbetrug
- Resourcenmissbrauch
- Filesharing
- Rechenleistung
- Zunehmend gezielt krimineller Einsatz
Was sind Rootkits?
- Sammlung von Tools / Maleware
- Verbergen von Zugriffen auf kompromittiertes System
- Verbergen seiner eigenen Installation und Existenz
- Bereitstellen von Backdoor-Funktionen
- Sammeln von Informationen
- Bot-Funktionen
- Installation meist über Sicherheitslücken
- Teilweise auch über Trojanische Pferde
- Verbergen oft weitere, an sich leicht erkennbare Malware
Nennen Wege die Installation von Rootkits zu verhindern
- Maßnamen gegen Trojanische Pferde
- Schließen von Sicherheitslücken
- Hardware-BIOS-Schreibschutz aktivieren
Nennen sie Möglichkeiten Rootkits zu erkennen
- Ähnlich Viren, Würmer, Trojanische Pferde etc.
- Versucht sich selbst zu verbergen -> Erkennung schwierig
- Scans von sauberem System aus (Boot von CD o. Ä.)
- Verhaltenserkennung (geändertes Verhalten von Systemroutinen)
- Analyse von Speicherabzügen
Nennen sie Möglichkeiten Rootkits zu entfernen
- Entfernung aus bestehender Installation nur begrenzt zuverlässig
- Bestimmte Rootkits durch Virenscanner erkenn- und entfernbar
- Scannner darf nicht in infiziertem System laufen -> Boot von externenm Medium
- Meist Neuinstallation fällig
- Rootkit in BIOS betrifft auch den Start externer Medien oder Neuinstallation
Was versteht man unter einem Buffer Overflow?
- Ausnutzen unzureichender Eingabevalidierung
- Begrenzter Seicherbereich wird mit zu großen Datenblöcken gefüllt
- Dadurch werden angrenzende Speicherbereiche überschrieben
Welche Folgen kann ein Bufferoverflow haben
- Programmabsturz
- Verfälschung von Daten
- Aushebeln von Sicherheitsprüfungen
- Ausführen von eingeschleustem Code
Was versteht man unter einem Stackoverflow?
- Bei Prozeduraufruf werden Rücksprungadresse und Aufrufparameter auf dem Stack abgelegt
- Stack wächst von oben her
- Overflow bei Aufrufparameter kann Rücksprungadresse überschreiben
- Einfache Variante: ungültige Adresse führt zu Programmabsturz
- Erweiterte Variante: Code einschleusen
- Zusätzlich zur neuen Rücksprungadresse wird ausführbarer Code eingeschleust
- Rücksprungadresse zeigt auf eigenen Code
- Ungenau bekannte Position kann durch NOP-Opcodes ausgeglichen werden
- Eingeschleuster Code wird mit Berechtigung des manipulierten Prozesses ausgeführt -> "Privilege Escalation"
Was versteht man unter einem Heap Overflow?
- Grundsätzlich selbes Konzept
- Overflow von dynamisch allokiertem Speicher
- Ausführen beliebigen Codes durch Überschreiben von Funkitonspointern
Welche Gegenmaßnahmen gibt es zu Overflows?
- Saubere Programmierung
- Prüfung von Bereichsgrenzen
- Unterstützung durch Bibliotheken
- Toolunterstützte Codeanalyse
- Zusätzliche Prüfungen
- canary bei stack overflow
- Umsetzung durch Compilererweiterungen
- Nutzung typsicherer Programmiersprachen
- Sprachen mit direkter Zeigermanipulation wie C/C++ besonders anfällig
- Andere Sprachen wie Java, C# sicherer durch eingebaute Bereichsprüfungen
Was versteht man unter einem Injection-Angriff?
- Einschleusen von ausführbaren Anweisungen über Schnittstellen oder Benutzereingaben
- SQL-Injection
- Dynamic Evaluation (eval-Injection)
- Shell Injection
- HTML-Script Injection (cross site scripting)
Wie können SQL-Anweisungen injected werden?
- Durch ungenügende Eingabevalidierung
- z.B. Ungeprüfte Übernahme von Eingaben in WHERE-Bedingung
- Erlaubt Ausblenden von Statement-Teilen durch Kommentarzeichen oder zusätzliche Teile in WHERE-Clause
- Erlaubt Ausführen praktisch beliebiger Anweisungen
Welche Gegenmaßnahmen gibt es zu SQL-Injection?
- Vermeidung
- Escaping
- Pattern-Checks
- Prüfung der Eingabe auf erlaubte bzw. verbotene Zeichen (Black- / Whitelisting)
- Verwendung von Prepared Statements
- Verwendung eines OR-Mapper
- Schadensbegrenzung
- Rechtebeschränkung
Was versteht man unter eval-Injection?
- Nutzung ungeprüfter Benutzereingaben in eval-Anweisung (dynamische Ausführung von Strings als Programmcode zur Laufzeit)
- Erlaubt ausführung von fast beliebigem Programmcode
- Ähnlich: include file injection
Nennen sie Gegenmaßnahmen zu Eval-Injection
- Don't do it!
- Escaping
- Black-/Whitelisting
- Rechtebegrenzung
Was versteht man unter shell-Injection?
- Nutzung ungeprüfter Benutzereingaben in Shell-Kommandos
- z.B. system()-call
- Erlaubt Ausführung von fast beliebigen commandline-Befehlen
- Sequence
- Pipe
- Command substition
- AND, OR
- IO-Redirection
Nennen sie Gegenmaßnahmen zu Shell-Injection
- Don't do it
- Nutzung von libs und direkten APIs statt system()-call
- Escaping
- Viele Sprachen bieten schon entsprechende Funktionen (PHP, Python)
- Eingabevalidierung (Pattern-Checks, Black-/Whitelisting)
Was versteht man unter Script-Injection (Cross Site Scripting, XSS)
- Injektion von Code (z.B. JavaScript-Block) in Webseiten
- Non-persistent (reflected) / persistent (stored)
- Server- ("traditional") /Clientseitig (DOM-based)
- Ermöglicht Umgehen von AuthN-/AuthZ-Mechanismen, z.B. Same-Origin-Policy
Nennen sie Gegenmaßnahmen zu Script-Injection
- Eingabevalidierung
- Output encoding / escaping
- Ersetzen von HTML-Sonderzeichen in Daten, die in die Seite gerendert werden
- HttpOnly-Cookies
- Bindung von Sessions/Cookies an weitere Informationen (IP-Adresse)
Was versteht man unter Cross Site Request Forgery?
- Dem Benuter wird ein Request auf eine andere Seite untergeschoben
- Request wird mit der Session bzw. den Credentials des Users ausgeführt
- Basiert auf Vertrauen der Anwendung in die Benutzeridentität
Nennen sie Gegenmaßnahmen zu Cross Side Request Forgery
- Nutzerseitig kaum Gegenmaßnahmen möglich
- Ausloggen nach Nutzung der Anwendung
- Dauerhafte Anmeldung ("remember me") vermeiden
- Anwendungsseitig
- Verwendung von Tokens und Nonces zusätzlich zu Session-Cookie
- Übertragung von Authentisierungsdaten als Request-Parameter oder Header
- Prüfung von Referer- oder Origin-Header (allein nicht ausreichend)
- Unterstüzung durch Frameworks oder Bibliotheken
Was ist Broken Authentication and Session Management?
- Fehlerhafte Implementierung von Funktionen im Bereich Authentication and Session Management
- Erlaubt Angreifern Zugriff auf Passworte, Schlüssel, Tokens oder erlaubt Identitätsmißbrauch auf andere Weise
Was ist Insecure Direct Object References?
- Direct Object Reference: nach außen sichtbare Referenz auf internes Objekt (Datei, Directory, Datenbank-Key, ..)
- Mangelnde Validierung erlaubt unautorisierten Zugriff auf Daten oder gar Ausbruch aus dem Anwendungskontext
Was versteht man unter Security Misconfiguration?
- Sicherheitslücken aufgrund fehlerhafter Konfiguration auf verschiedensten Ebenen
- Anwendung
- Application Server
- Web Server
- Datenbankserver
- Betriebssystem
- Beinhaltet auch Versionstände von Komponenten und Bibliotheken