Software Development Lifecycle? Phasen?
Gesamter Prozess der Softwareentwicklung:
Analyse/ Anforderungen
Entwurf
Implementierung
Test
Betrieb
Wie können Softwareentwicklungs-Modelle sichere Software produzieren?
Berücksichtigung von Sicherheit im gesamten Prozess
Definition von Aktivitäten und Verantwortlichkeiten (z.B. Bedrohungsanalysen, Schulungen, etc.)
Welche Aktivitäten aus Sicherheits-Perspektive fallen in der Analyphase an? Welche Werkzeuge?
Erhebung und Aufbereitung von Sicherheitsanforderungen für das zu entwickelnde System
funktionale und nicht-funktionale Sicherheitsanforderungen
Ermittlung von Bedrohungen und Risiken
Festlegung von Schutzzielen für verarbeitete Daten
Werkzeuge:
Angriffsbäume (Darstellung von Bedrohungen in Baumstruktur)
Threat Modelling (Iterative Modellierung und Detailierung von Bedrohungen in Software)
Welche Aktivitäten aus Sicherheits-Perspektive fallen in der Entwurfsphase an?
Abbildung der vorher definierte Sicherheitsanforderungen durch den Entwurf
Best-Practices in der Enwurftsphase?
Sicherheitsmuster (Security Patterns): Zur Verfügungsstellung von Entwurfslösungen für immer wieder auftretende Herausforderungen im Sicherheitsbereich
Angriffsmuster (Attack Patterns): Beschreibung von Angriffen (inkl. Vorbedingungen, die erfüllt sein müssen) → Ableitung von Sicherheitsaspekten
UML: Spezielle Erweiterung zur Modellierung von Sicherheitsanforderungen (z.B. UMLsec)
8 Design/ Entwurf Prinzipien für mehr Sicherheit
Economy of Mechanism: Einfachheit der Schutzmechanismen
Fail-Safe Defaults: Standard-Einstellung als sicherer Zustand und bei Fehlerfall Rückkehr zum sicheren Zustand
Complete Mediation: Vollständige Berechtigungsprüfung (Prüfung aller Zugriffe über einen Mediator)
Open Design: Offenes Design
Sicherheit eines Systems darf nicht auf Geheimhaltung beruhen
Separation of Privilege: 4-Augen-Prinzip
Beispiel: Zugriff auf Information durch 2 kryptographische Schlüssel geschützt
Least Privilege: Minimum an Rechten
Nur erforderliche Rechte verwenden/ vergeben
Least Common Mechanism: Minimum an gemeinsamen Mechanismen
Abhängigkeiten minimieren
Psychological Acceptability: Psychologische Akzeptanz
Sicherheitsmechanismen müssen einfach und gut bedienbar sein
Welche Aktivitäten aus Sicherheits-Perspektive fallen in der Implementierungsphase an?
Nutzung von Auflistungen von häufigsten Sicherheitsfehlern
Entwicklung von Programmierrichtlinien
Nutzung von Sicherheitskonzepten von Programmiersprachen
Code Review
SQL Injection? Gegenmaßnahmen?
Manipulation eines SQL Statements durch Angreifer
Gegenmaßnahmen:
Validierung von jeder Eingabe
Ausfiltern von speziellen Datanbankzeichen
Prüfung auf gültige Zeichen mit Allowlist Filtering
Verwendung von Precompiled Statements
Principle of Least Privilege -> Minimierung des Schadens
Command Injection? Gegenmaßnahmen?
Einschleusen und Ausführen von unerwünschtem Programmcode ohne ausreichende Validierung für einen Systemaufruf
Verwendung der Funktionen von Programmiersprachen zum Lesen von Dateien
Beschränkung der Zugriffsrechte (Rechtevergabe oder Verwendung einer chroot Umgebung)
Minimierung von möglichen ausführbaren Dateien
Berücksichtigung der System-Konfigurationen
Cross-Site-Scripting?
Cross-Site-Scripting (XSS): Unvalidierte Benutzereingaben werden von Software entgegen genommen und ausgegeben
-> Schädliche Skripte werden dabei in einen vertrauenswürdigen Kontext eingespeist, aus dem heraus sie das System der Nutzer angreifen können.
Was sind Arten von XSS?
Reflected XSS
Angreifer sendet präparierte URL an Benutzer über Kanal wie E-Mail
Benutzer ruft Seite im Browser auf
Server liefer reguläre Seite mit zusätzlichen Inhalten aus präparierter URL zurück
Browser wertet Rückgabe von Servern aus und je nach Angriff werden Daten sofort an Angreifer übermittelt oder erst nach Eingabe des Benutzers zum Angreifer umgeleitet
Stored XSS:
Angreifer für präparierten Inhalt ein → Speicherung des Inhalts durch Server
Server liefert reguläre Seite mit zusätzlichen Inhalten des Angreifers zurück
Browser wertet Rückgabe von Server aus und je nach Angriff werden Daten sofort an Angreifer übermittelt oder erst nach Eingabe des Benutzers zum Angreifer umgeleitet
Was sind Gefahren von XSS? Und Gegenmaßnahmen?
Gefahr:
Session-Hijacking
Überschreibung von Teilen der Website
Weiterleitung von Benutzern zu einer anderen Seite
Validierung von allen Eingaben bevor Website erneut angezeigt wird
HTML-Encoding der Eingaben von Benutzern
Client-seitige Verhinderung durch Browser oder Client-Firewalls
CSFR?
Cross-Site-Request-Forgery (CSFR):
Designschwachstelle, wo durch untergeschobene präparierte URL ein Angreifer einen Benutzer zu einer Aktion am Server missbrauchen kann
Aktionen: Logout, Einträge erstellen, Passwörter abändern, etc.
Gegenmaßnahmen zu CSFR?
Hinzufügen eines Shared Secrets zu jeder internen URL und Formularen
Shared Secret: Geheimer Token, den nur der Server und Client kennen → Bei jeder Anfrage vom Client wird Token dem Server übermittelt und dort geprüft
Verifizierung von Aktionen durch Benutzer anfordern
“Möchten Sie wirklich Ihr …?”
Butter Overflows?
Entstehung durch Programmierfehler, wenn keine oder falsche Längenüberprüfung beim Schreiben in Buffer durchgeführt wird
Überschreibung nachfolgender Speicherbereiche bei zu langen Eingaben
Was sind Auswirkungen von Butter Overflows?
Absturz
Ungewöhnliches Systemverhalten
Ausführung von eingeschleisten Code
Keine Auswirkungen, wenn überschriebener Speicher nicht gebraucht wird
Was sind Gegenmaßnahmen zu Butter Overflows?
Korrekte Input Validierung und Lägenprüfung
Verwendung von Programmiersprachen mit automatischer Längernüberprüfung
Vermeidung von gefährdeten Funktionen
Verwendung von Testmethoden zum Finden von Buffer Overflows
Welche Aktivitäten aus Sicherheits-Perspektive fallen in der Betriebsphase an?
Definition und Einhaltung (inkl. Überprüfung) der Service Levels (SLAs)
Detection von und Reaction auf Sicherheitsvorfälle
-> Organisatorische Sicherheitsanforderungen
Last changed2 years ago