Entwicklung Sicherer Webanwendungen (Teil 3) Flashcards

1
Q

Was ist eine Keyed Hash-Funktion?

A

Keyed Hash-Funktion= Hash-Funktion, welche einen symmetrischen Schlüssel verwendet

Kann nur erzeugt/überprüft werden, wenn symmetrischer Schlüssel bekannt

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

Was ist Sandboxing? Was ist das Ziel?

A

Mit der Sandbox-Technik schafft man ein isoliertes Testumfeld innerhalb eines Systems. Das Grundprinzip beim Sandboxing ist es, die ausgeführte Datei – in diesem Fall Dateien, die auf Schadsoftware überprüft werden sollen – von der Systemumgebung abzuschotten und so vor den potenziell schädlichen Auswirkungen zu schützen. Dies funktioniert, da die Sandbox von den Ressourcen des Systems getrennt ist.

Ziel: Schutz Client vor schädlichem Code

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

Was ist das Ziel der Same-Origin Policy?

A

Ziel: Keine Informationen aus einem Kontext (z.B. Banking RIA) soll aus einem anderen Kontext (z.B. Spiel) zugreifbar oder manipulierbar sein.

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

Prinzip „Vertraue nicht dem Client“

Erläutere kurz den Hintergrund

A

Clients können unter voller Kontrolle eines Angreifers sein

Das bedeutet:
Angreifer kann übliche Verarbeitungsreihenfolge ändern
Angreifer kann Daten ändern
Angreifer kann alte Daten wieder einspielen
Angreifer kann Metadaten ändern
Angreifer hat client-seitigen Code

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

Auf welchem System sollen die wichtigen Entscheidungen getroffen werden?

Was sind hier wichtige Prinzipien?

A

Ziel: Wichtige Entscheidungen werden auf dem Server getroffen

Dort sind Code und Daten sicher vor Manipulationen

Prinzipien:
Authentifizierung auf dem Server überprüfen

Autorisierungsentscheidungen auf dem Server treffen

Anwendungs-spezifische kritische Entscheidungen (z.B. Rabattsatz) auf dem Server treffen

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

Als was können an Client gesendete Daten angesehen werden?

Was sind hier Prinzipien?

A

An den Client gesendet Daten können als öffentlich ansehen.

Ziel: Geheimhaltung von Geschäftsgeheimnissen

Prinzip:
Nur diejenigen Daten an den Client senden, die unkritisch sind

Businesslogik mit Geschäftsgeheimissen nur auf dem Server verwenden

Diese Regeln gelten nur eingeschränkt für abgeschlossene Umgebungen
(z.B. Firmen-interne RIA)

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

Was ist die eval() funktion? Ist diese kritisch? Wenn ja, warum?

A

eval() in JavaScript

nimmt einen String entgegen compiliert diesen (!!!) und führt ihn aus

Ist unbedingt zu vermeiden!
fehlende Überprüfung - wird sofort compiliert

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

Was versteht man unter Härtung?

A

Änderung von IT-Komponenten um Angriffsmöglichkeiten zu reduzieren und Sicherheit zu erhöhen

Mittels: Konfiguration und Erweiterungen

Typischer Fehler: Unnötiger Dienst altiviert (zb in Wordpress)

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

Was sind Ebenen die man härten kann?

A

Härtung des Betriebssystems
Härtung der Web-Dienste
Härtung der verwendeten Scripting-Sprache(n)

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

Wie könnte man einen Apache Server härten?

A

Fingerprinting verhindern

Apache Signatur ändern, so dass nicht aktuelle Version des Web-Servers
zurückgegeben wird

Verhindern, dass Versionen von anderen Programmen übermittelt werden
(z.B. Perl, PHP, OpenSSL, …)

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

Was sagt das Prinzip „Nur soviel Komplexität wie notwendig“?

A

Erfahrung: Komplexität wirkt IT Sicherheit entgegen
Wartbarkeit sinkt

Systeme werden unübersichtlich

Entwickler haben keinen Überblick mehr

„Weakest Links“ werden erzeugt (jede Funktion die mit Nutzer interagiert ist ein Weakest Link)

Im Durchschnitt 1 Schwachstelle in 1000 Lines-of-Code

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

Was versteht man unter Role-based Access Control?

A

Rechte werden nicht an einzelne

Benutzer vergeben sondern an Rollen

Benutzer werden Rollen zugewiesen

Hierarchie von Rollen möglich

Verhindert, dass vergessen wird, Rechte wieder zu entfernen

Verhindert, dass zu viele Rechte zugewiesen werden

Ermöglicht einfach großflächige Änderungen

Rollen meist durch Anwendung „natürlich“ gegeben

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

Wozu dient der Authentication Entforcer?

A

Erzwinge für jede Aktion und jeden Teilschritt eine vorherige Authentifizierung / Autorisierungsüberprüfung

Prüfung am Besten auslagern und regelmäßig aufrufen
Beispiel: Identity Provider

Bei „kritischen“ Funktionen am besten erneute Authentifizierung verlangen

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

Was steckt hinter Secure Logger / Secure Storage?

Was ist der Mehrwert?

A

Sicheres Speichern von Daten auf dem Webserver

Log-Dateien sollten keine vertraulichen Daten beinhalten
Passwörter sollten vertraulich gespeichert sein

Mehrwert:
Erschwert Angriffe

Laufen mehrere virtuelle Webserver auf einem Server: verhindert, dass eine verwundbare Anwendung andere Anwendungen ebenfalls kompromittiert

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

Was steckt hinter dem Security Prinzip „Defense in Depth“

A

Sich nicht auf eine einzige Schutzmaßnahme verlassen

Möglichst jeden Schutzmechanismus duplizieren

Duplizierte Schutzmechanismen jeweils nach anderem Funktionsprinzip, bei Produkten jeweils anderer Hersteller

Mögliche Maßnahmen:
Zweifaktor Authentifizierung 
Einfaben Validieren 
Erst Login, dann Funktionen bieten
Erst Verschlüsselung, dann Authentifizierung 
Zugriff auf Server mit SSH Key
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was versteht man unter dem „Fail Securely“ Prinzip?

Was sind Fail Securely Maßnahmen?

A

Web-Anwendung sollte so gebaut sein, dass ein gebrochener Sicherheitsmechanismus nur minimalen Schaden anrichtet (z.B. Dienst verweigert anstatt Zugriff auf alles)

Maßnahmen:
Gesamte Seite im Notfall sperren
Server abschalten
Plugins nach Updates prüfen
Bearbeitung sperren für einen Zeitraum
Arbeitsspeicher herunterschrauben
Sandbox
Loggen und Secure hole fixen
17
Q

Was steckt hinter dem Prinzip „Secure Defaults“?

A

Web-Anwendungen, Benutzeraccounts etc. sollten in der Grundeinstellung maximale Security bieten

Beispiel an der Datenbank:

Keinesfalls Administrator-Account für Datenbankzugriff verwenden

Nur minimale Rechte, so dass gerade noch auf alle benötigten Objekte zugegriffen werden kann

Nur notwendige Zugriffsart (am besten nur lesend)

Nur wenn unbedingt nötig: create, update, delete