Security und Agililität SAEC Days 2020 - Dagmar Stefanie Moser Max Moser Security und Agilität - D. & M. Moser - SAEC Days 2020

Die Seite wird erstellt Nathaniel Walther
 
WEITER LESEN
Security und Agililität SAEC Days 2020 - Dagmar Stefanie Moser Max Moser Security und Agilität - D. & M. Moser - SAEC Days 2020
Security und Agililität
                                    SAEC Days 2020
                                                         Dagmar Stefanie Moser
                                                              Max Moser

Security und Agilität – D. & M. Moser – SAEC Days 2020                           1
Security und Agililität SAEC Days 2020 - Dagmar Stefanie Moser Max Moser Security und Agilität - D. & M. Moser - SAEC Days 2020
Vorstellung
                                                         Dagmar Stefanie Moser, Dipl.-Inform.
                                                         IT Beraterin und Mitgründerin blueheads GbR
                                                         Training und Coaching in Information Security
                                                         mit Schwerpunkt Secure Software
                                                         Development
                                                         Lead Security Architektin, FI-TS GmbH & Co. KG

                                                         Dr. Max Moser, Dipl.-Inform.
                                                         IT Berater und Mitgründer blueheads GbR
                                                         Professor für Informatik und Cyber Security
                                                         an der Hochschule der Bayerischen Wirtschaft
                                                         HDBW, München

Security und Agilität – D. & M. Moser – SAEC Days 2020                                                  2
Security und Agililität SAEC Days 2020 - Dagmar Stefanie Moser Max Moser Security und Agilität - D. & M. Moser - SAEC Days 2020
Agenda
 • IT-Security in der agilen Softwareentwicklung – Spannungsfeld
   zwischen Geschwindigkeit und Sicherheit
 • Security Aktivitäten im agilen Entwicklungsprozess
 • Integration von Sicherheitsanforderungen und Bedrohungsanalyse
 • Beispiele für Umsetzung der gewonnenen Sicherheitsanforderungen

Security und Agilität – D. & M. Moser – SAEC Days 2020               3
Security und Agililität SAEC Days 2020 - Dagmar Stefanie Moser Max Moser Security und Agilität - D. & M. Moser - SAEC Days 2020
Security Trends in Business Applikationen
 • Größere Angriffsfläche durch stärke Anwendungsintegration
         • Schnittstellen zu Web Applikationen und zu mobile apps
 • Verwendung neuer Technologien ohne ausreichende
   Sicherheitsmechanismen
         • Cloud, IoT, Microservice Architektur und vermehrte Verwendung von 3rd
           Party Komponenten
 • Gesetzliche und regulatorische Vorgaben werden strenger
 • Digitalisierung und Innovationsdruck verschärfen die Situation

Security und Agilität – D. & M. Moser – SAEC Days 2020                             4
Security und Agililität SAEC Days 2020 - Dagmar Stefanie Moser Max Moser Security und Agilität - D. & M. Moser - SAEC Days 2020
Agile Projekte und Security
 - Wo liegen die Probleme?
 • Security wird oft als Behinderer betrachtet – „Innovationsbremse“
 • Security-Standards und -Frameworks werden als zu schwergewichtig für
   einen agilen Ansatz betrachtet
 • Zusätzliche Anforderungen können Projektzyklen verlangsamen
 • Sicherheitsprobleme in Software stehen bei vielen Managern nicht im
   direkten Fokus
 • In der Regel mangelt es an Security-Know-How in Projektteams -
   Spezialisten für Secure Software Development sind rar

Security und Agilität – D. & M. Moser – SAEC Days 2020                    5
Spaghetti Analogie

                                                                                            https://github.com/bkimminich/it-security-lecture/blob/master/slides/02-09-sdlc.md
                                                         „sprinkling security on
                                                         insecurely written software
                                                         is like sprinkling salt on
                                                         spaghetti after cooking them
                                                         in unsalted water“

Security und Agilität – D. & M. Moser – SAEC Days 2020                                  6
Ein SCRUM-basierter „Secure Agile“ Prozess
 Product Backlog                                                                  Security Stories
                                                                                    Evil Stories

      Business Anforderungen                    security requirements
                                                                                                Bedrohungs-Analyse
    Technische Anforderungen

                                                                                                                                              Definition of Done
                                                                  secure design
     Qualitäts-Anforderungen                                                                                       Infrastructure as
                                                                                                                         Code
     Sicherheitsanforderungen
                                                                              secure coding                                            Security
    Compliance-Anforderungen                                                                                                           Testing
                                                                                                                                                                     Produkt-
                                                                                                security testing
                                                                                                                                                                   Inkremente

                                                                                                            secure deployment

                                                                                       Sprint

                                                          Betrieb, Monitoring, Logs è Beobachtungen und Ereignisse

                                                                           IDS, IPS, SIEM è Incidents

                                                                                  CERTs, … è CVEs
Security und Agilität – D. & M. Moser – SAEC Days 2020                                                                                                                      7
Warum sind Security Requirements wichtig?
 Auch für agile Projekte gilt:                           Besonders für agile Projekte gilt:
 • 60 % der Defects sind Folge von                       • Security Anforderungen können sehr
   falschen Anforderungen                                  effizient mit der dazugehörigen
 • Security Anforderungen sind häufig                      Business Logik implementiert und
   abstrakt und unkonkret                                  getestet werden (secure features vs.
                                                           security features)
 • Security Anforderungen wirken sich                    • Anforderungen resultierend aus IT
   häufig auf die Architektur aus                          Security Risiken können im Backlog
 • Architekturänderungen in einer                          entsprechend eingeplant werden
   späteren Entwicklungsphase sind                       • Evil Stories sind gut geeignet um
   schmerzhaft                                             Angriffsszenarien zu definieren
                                                         • Sicherheitstests lassen sich effizient in
                                                           eine Test- und Build-Automatisierung
                                                           integrieren

Security und Agilität – D. & M. Moser – SAEC Days 2020                                            8
Beispielanwendung: Web-Shop
                                    Bestellungen (Kunden,
                                    Produkte, …)                                   Registrierung (Name,
                                                                           Web     Adresse, ...)
                                                                          Server
                                                                           Shop

                                                                          SQL-DB
                             Browser                                                                      Browser
                              Shop-                                                                        Shop-
                                                  Produktangebot                      Kaufbestätigung
                             Besitzer                                                                      Kunde
                                                  (Produkte, Preise, …)

                               Besitzer                                                                    Kunde

Security und Agilität – D. & M. Moser – SAEC Days 2020                                                              9
Security User Story
 Als Kunde des Web-Shops möchte ich, dass meine persönlichen Daten vor dem Zugriff Dritter
 geschützt werden, um so nicht für deren Zwecke genutzt werden zu können.
 Akzeptanz-Kriterien
 • Stelle sicher, dass der Transfer der Daten vom Browser des Kunden zum Web Server des
   Shops (und umgekehrt) mindestens TLS 1.2 verschlüsselt ist.
 • Stelle sicher, dass nur authentisierte und autorisierte Benutzer Zugriff auf Kundendaten
   über den Webshop haben.
 • Stelle sicher, dass nur authentisierte und autorisierte Benutzer Zugriff auf die Datenbank
   haben.
 • Stelle sicher, dass die Kommunikation zwischen den Komponenten der Anwendung -
   einschließlich APIs und Datenbank - eine Authentisierung erfordern.
 • …                                                               Akzeptanzkriterien
                                                                   sind Input für
                                                                  automatisierte
Security und Agilität – D. & M. Moser – SAEC Days 2020
                                                                      Testfälle             10
Evil Story
 Als Eve möchte ich die Passwortdatei auf dem Sever der Web-Applikation
 auslesen, um mich als Betriebssystem-Benutzer anmelden zu können.
 Akzeptanz-Kriterien
 • Passwörter sind unter /etc/shadow als salted hash gespeichert
 • Der Betriebssystem-Benutzer, unter dem die Datenbank läuft, kann
   /etc/shadow auslesen
 • SQL Injection über Formular ist möglich
 • Datenbank-User hat FILE Grant, wodurch das Auslesen von Dateien möglich
   ist
 • Mit Hilfe von Password Cracking Tools werden die Passwörter geknackt
                                                       Akzeptanzkriterien
 •…                                                      sind Input für
                                                         automatisierte
Security und Agilität – D. & M. Moser – SAEC Days 2020
                                                            Testfälle        11
Bedrohungs-Analyse
      Bedrohungs-
                                                         • Effiziente Methode um Bedrohungen zu
     modell erstellen                                      identifizieren, zu bewerten und zu adressieren
                                                         • Gibt Transparenz über die wesentlichen
        Bedrohungen                                        Bedrohungen der Anwendung
        identifizieren
                                                         • Bietet die Möglichkeit Schwachstellen bewusst zu
                                                           vermeiden oder in Kauf zu nehmen
        Bedrohungen
         bewerten                                        • Ist Basis für weitere Sicherheitsanforderungen
                                                         • Sollte mit jeder Architekturänderung und jedem
        Bedrohungen                                        äußeren Einfluss (z.B. Incident) weiterentwickelt
         mitigieren
                                                           werden

Security und Agilität – D. & M. Moser – SAEC Days 2020                                                     12
Bedrohungsmodell
                                                                  Vertrauensgrenzen
                                    Bestellungen (Kunden,
                                    Produkte, …)                                                Registrierung
                                                                           Web             (Name, Adresse, ...)
                                                                          Server
                                                                           Shop

                                                                          SQL-DB
                             Browser                                                                      Browser
                              Shop-                                                                        Shop-
                                                  Produktangebot                      Kaufbestätigung
                             Besitzer                                                                      Kunde
                                                  (Produkte, Preise, …)

                               Besitzer                                                                     Kunde
Security und Agilität – D. & M. Moser – SAEC Days 2020                                                              13
Einflüsse aus Entwicklung und Produktion
                                                                                             Vertrauensgrenzen

Änderungen am                                                  Bestellungen (Kunden,
                                                               Produkte, …)
                                                                                                   Web
                                                                                                                              Registrierung        Incidents aus der
                                                                                                                         (Name, Adresse, ...)
Scope der Anwendung                                                                               Server
                                                                                                   Shop
                                                                                                                                                   Produktion

                                                                                                  SQL-DB

                                                          Browser                                                                        Browser
                                                           Shop-                                                                          Shop-
                                                          Besitzer        Produktangebot                         Kaufbestätigung          Kunde

                                                                                                                                                   Erkenntnisse
                                                                          (Produkte, Preise, …)

Änderungen an der
Architektur der Anwendung                                 Besitzer
                                                                                                                                                   aus Logs und
                                                                                                                                           Kunde
                                                                                                                                                   Monitoring
                                                                           neue Vulnerabilities

 Security und Agilität – D. & M. Moser – SAEC Days 2020                                                                                                         14
Erweiterte Security-Anforderungen
 als Herausforderung
 Was bisher erreicht wurde                               Herausforderungen für Projekte / agile
                                                         Vorgehensweisen
 • Sicherheit nicht nur ein Thema von Firewalls
   oder IDS Systemen                                     • Manuelle Umsetzung kostet Zeit
 • Sicherheit auch in den Anwendungen und in             • Manuelle Arbeiten sind fehleranfällig und
   der Infrastruktur berücksichtigen                       nicht nachhaltig
 • Vorgestellte Methoden erlauben es, über               • Zusätzliche Anforderungen können
   eine Bedrohungsanalyse adäquate                         Projektzyklen verlangsamen
   Sicherheitsanforderungen abzuleiten
                                                         • Konzentration im Team wird abgelenkt
 Ziele
 • Sicherheit im Sinne von "shift left" frühzeitig
   in Design und Umsetzung berücksichtigen
 • "secure features" statt nur "security features"
 • gesundes Gleichgewicht von
   Entwicklungsgeschwindigkeit und Sicherheit

Security und Agilität – D. & M. Moser – SAEC Days 2020                                                 15
Ansätze zur Umsetzung (Auswahl)
 • Sicherer Code                                         • Erweiterte Prüfbarkeit Security-
         • erweiterte Coding Guidelines                    Eigenschaften
 • Sicheres Setup der Infrastruktur                         • Generische Sicherheitstests
   + Hardening + Compliance                                 • konkrete Tests zu den
                                                              Sicherheits-Anforderungen
         • Infrastructure as Code mit
           konstruktiv sicherem Setup und                • Sichere CI/CD-Pipeline
           Compliance                                       • CI/CD-Pipeline als Infrastructure
                                                              as Code
                                                            • Zugriffsbeschränkungen,
                                                              Signaturen, …

Security und Agilität – D. & M. Moser – SAEC Days 2020                                            16
Unterstützung der Agilität
 durch Automatisierung – Infrastruktur as Code
                                                         • Beschreibung Server, Netze, etc. via Code
                                                         • Ausführung erstellt/überarbeitet Infrastruktur
                                                         • Beispiele: Chef, Puppet, Salt, Ansible, Terraform
                                                         • Nutzen
                                                            •   Reproduzierbarkeit und Reviewbarkeit
          include_recipe "apt"
                                                            •   Änderungen sind versionierbar
          package 'nginx' do
            action :install
          end                                               •   schnelle Erstellung neue Infrastruktur
          service 'nginx' do
            action [ :enable, :start ]                      •   Ausprägbarkeit in verschiedene Environments
          end

          cookbook_file
                                                            •   Entwickler verwenden produktionsnahe Umgebung
          "/usr/share/nginx/www/index.html" do
            source "index.html"
            mode "0644"
          end

Security und Agilität – D. & M. Moser – SAEC Days 2020                                                         17
Unterstützung der Agilität
 durch Automatisierung – Infrastruktur Compliance
 • Verschiedene Kataloge an                              • Beispiel: RHEL 8 Benchmark von CIS
   Sicherheitsstandards und Compliance-
   Anforderungen existieren
 • Kataloge bilden teilweise Grundlage für
   Compliance Standards, wie PCI DSS
 • Anforderungen lassen sich weitestgehend
   automatisiert umsetzen bzw. überprüfen
 • Aktualisierung Stände der Systeme bzw.
   Überprüfung derer durch häufige                       • siehe auch
                                                              • CIS – Center of Internet Security, Benchmarks
   Provisionierungsläufe                                      • STIGs – Secure Technical Implementation Guides
 • Regelmäßige Ergänzung Anforderungen                        • SCAPs - Security Content Automation Protocol
                                                              • NIST SP 800-123 Guide to General Server Security
   u.a. auf Basis des Threat-Modells

Security und Agilität – D. & M. Moser – SAEC Days 2020                                                             18
Unterstützung der Agilität
 durch Automatisierung – Security-Tests
 • SAST-Tests für Code
         • basierend auf Standard-Katalogen von Sicherheitsprüfungen
         • z.B. nodejsscan für NodeJS oder bandit für Python
 • DAST-Tests - für Anwendung und Infrastruktur
         • auf Basis-Sicherheitsniveau/Compliance
         • z.B. OpenVAS oder Nexpose von rapid7, sqlmap
 • Eigene Tests der Infrastruktur
         • z.B. inspec.io

Security und Agilität – D. & M. Moser – SAEC Days 2020                 19
Automatisierung Sicherheitstests
 - Hier: Infrastrukturtests
 InSpec.io
 • Sprache zur Beschreibung von Security- und Compliance-Regeln
 • Regeln werden zu automatisierten Tests, die gegen Server, Container
   und Cloud-APIs ausgeführt werden können

Security und Agilität – D. & M. Moser – SAEC Days 2020                   20
Fazit
 • Security wird oft als Behinderer                      • Security von Beginn an und
   betrachtet – „Innovationsbremse“                        systematisch in den
 • Sicherheitsprobleme in Software                         Entwicklungsprozess integrieren
   stehen bei vielen Managern nicht                      • Bedrohungen transparent machen
   im direkten Fokus                                     • Anforderungen konkret und
 • Zusätzliche Anforderungen können                        umsetzbar bzw. testbar machen
   Projektzyklen verlangsamen                            • Anforderungen konstruktiv oder
 • Security-Anforderungen sind oft                         über Tests automatisieren
   abstrakt                                              • Infrastrukturcode auf der gleichen
                                                           Ebene wie Anwendungscode
                                                           behandeln

Security und Agilität – D. & M. Moser – SAEC Days 2020                                          21
Sie können auch lesen