Entwicklung Sicherer Webanwendungen (Teil 3) Flashcards
Was ist eine Keyed Hash-Funktion?
Keyed Hash-Funktion= Hash-Funktion, welche einen symmetrischen Schlüssel verwendet
Kann nur erzeugt/überprüft werden, wenn symmetrischer Schlüssel bekannt
Was ist Sandboxing? Was ist das Ziel?
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
Was ist das Ziel der Same-Origin Policy?
Ziel: Keine Informationen aus einem Kontext (z.B. Banking RIA) soll aus einem anderen Kontext (z.B. Spiel) zugreifbar oder manipulierbar sein.
Prinzip „Vertraue nicht dem Client“
Erläutere kurz den Hintergrund
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
Auf welchem System sollen die wichtigen Entscheidungen getroffen werden?
Was sind hier wichtige Prinzipien?
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
Als was können an Client gesendete Daten angesehen werden?
Was sind hier Prinzipien?
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)
Was ist die eval() funktion? Ist diese kritisch? Wenn ja, warum?
eval() in JavaScript
nimmt einen String entgegen compiliert diesen (!!!) und führt ihn aus
Ist unbedingt zu vermeiden!
fehlende Überprüfung - wird sofort compiliert
Was versteht man unter Härtung?
Ä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)
Was sind Ebenen die man härten kann?
Härtung des Betriebssystems
Härtung der Web-Dienste
Härtung der verwendeten Scripting-Sprache(n)
Wie könnte man einen Apache Server härten?
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, …)
Was sagt das Prinzip „Nur soviel Komplexität wie notwendig“?
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
Was versteht man unter Role-based Access Control?
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
Wozu dient der Authentication Entforcer?
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
Was steckt hinter Secure Logger / Secure Storage?
Was ist der Mehrwert?
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
Was steckt hinter dem Security Prinzip „Defense in Depth“
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