Agile Development vs. Security Requirements · Agile Development vs. Security Requirements 5...

Post on 18-Oct-2020

6 views 0 download

Transcript of Agile Development vs. Security Requirements · Agile Development vs. Security Requirements 5...

SeminarSicherheit und

SoftwareengineeringSS 2013

Agile Development vs. Security Requirements

Agile Development vs. Security Requirements

Mirco Stickan

Agile Development vs. Security Requirements

2

SeminarSicherheit und

SoftwareengineeringSS 2013

Agenda

● Motivation

● Agile Softwareentwicklung● eXtreme Programming● Scrum

● Sicherheit in agiler Softwareentwicklung● Sicherheit in eXtreme Programming● Sicherheit in Scrum

● Zusammenfassung

Agile Development vs. Security Requirements

3

SeminarSicherheit und

SoftwareengineeringSS 2013

Agenda

● Motivation

● Agile Softwareentwicklung● eXtreme Programming● Scrum

● Sicherheit in agiler Softwareentwicklung● Sicherheit in eXtreme Programming● Sicherheit in Scrum

● Zusammenfassung

Agile Development vs. Security Requirements

4

SeminarSicherheit und

SoftwareengineeringSS 2013

Motivation

● Klassisches Vorgehensmodell im Softwareengineering: Wasserfallmodell

+ Umfangreiche Planung der einzelnen Entwicklungsphasen

+ Genaue Dokumentation der Entwicklungsschritte+ Anwendung von Sicherheitsstandards möglich

- Hoher Zeitaufwand - Änderung der Anforderungen führt oft zu hohem Arbeitsaufwand

Agile Development vs. Security Requirements

5

SeminarSicherheit und

SoftwareengineeringSS 2013

Motivation

● Trend der letzten Jahre: Agile Softwareentwicklung

+ Enge Zusammenarbeit mit dem Kunden+ Kurze Entwicklungszyklen+ Schnelle Reaktion auf Anforderungsänderungen durch eine iterative Arbeitsweise

- Geringe Dokumentation - Keine Risikoanalyse oder Security Engineering

Agile Development vs. Security Requirements

6

SeminarSicherheit und

SoftwareengineeringSS 2013

Motivation

Agile Entwicklung → Low-Budget Projekte, IT-Start-Ups

Wasserfallmodell → Sicherheitskritische, umfangreiche Projekte

Agile Development vs. Security Requirements

7

SeminarSicherheit und

SoftwareengineeringSS 2013

Motivation

● Agile Entwicklung bei komplexen Projekten immer beliebter

● Erweiterung der klassischen agilen Methoden verbessern das Security Engineering

→ Entwicklung sicherer Software auch agil möglich!

Agile Development vs. Security Requirements

8

SeminarSicherheit und

SoftwareengineeringSS 2013

Agenda

● Motivation

● Agile Softwareentwicklung● eXtreme Programming● Scrum

● Sicherheit in agiler Softwareentwicklung● Sicherheit in eXtreme Programming● Sicherheit in Scrum

● Zusammenfassung

Agile Development vs. Security Requirements

9

SeminarSicherheit und

SoftwareengineeringSS 2013

Extreme Programming (XP)

● Eine der bekanntesten agilen Entwicklungsmethoden

● 1995 in einem Projekt bei Chrysler entwickelt

● Ziel: Entwicklungsprozess vereinfachen und ständige Zusammenarbeit mit dem Kunden

Agile Development vs. Security Requirements

10

SeminarSicherheit und

SoftwareengineeringSS 2013

Extreme Programming (XP)

● Entwicklungsphase fokussiert sich immer auf eine bestimmte Version des Prototypen

● Es werden nur Anwendungsfälle entwickelt, die für die aktuelle Version benötigt werden

● Prinzip: YAGNI („You Ain't Going to Need It“)

● Iterative Arbeit und Entwicklung in einzelnen Releases

Agile Development vs. Security Requirements

11

SeminarSicherheit und

SoftwareengineeringSS 2013

Extreme Programming (XP)

Um Software erfolgreich zu entwickeln sind nach dem XP Prinzip folgende Werte wichtig:

Agile Development vs. Security Requirements

12

SeminarSicherheit und

SoftwareengineeringSS 2013

Extreme Programming (XP)

● Prinzipien des eXtreme Programming

● Schnelles Feedback

● Annahme von Einfachheit

● Schrittweise Änderung

● Qualitativ hochwertige Arbeit

...

Agile Development vs. Security Requirements

13

SeminarSicherheit und

SoftwareengineeringSS 2013

Extreme Programming (XP)

● Praktiken des eXtreme Programming

● XP Planspiel● Kollektives Eigentum● Pair Programming● Testgetriebene Entwicklung● Keine Überstunden● Refactoring● User Stories...

Agile Development vs. Security Requirements

14

SeminarSicherheit und

SoftwareengineeringSS 2013

Scrum

● Weiteres iteratives Vorgehensmodell der Softwareentwicklung

● Enge Zusammenarbeit mit dem Kunden

● Feste Rollenverteilung innerhalb des Teams

● Regelmäßige / tägliche Treffen (Scrum Meetings)

Agile Development vs. Security Requirements

15

SeminarSicherheit und

SoftwareengineeringSS 2013

Scrum

● Tägliche Treffen heißen Daily Scrums

● Anforderungen werden im Backlog festgehalten

● Einzelne Iterationen heißen Sprints

● Prinzipien: Transparenz, Überprüfung, Anpassung

Agile Development vs. Security Requirements

16

SeminarSicherheit und

SoftwareengineeringSS 2013

Scrum

Rollen in Scrum:

● Scrum Master

● Product Owner

● Entwicklungsteam

● Customer

Agile Development vs. Security Requirements

17

SeminarSicherheit und

SoftwareengineeringSS 2013

Scrum

Agile Development vs. Security Requirements

18

SeminarSicherheit und

SoftwareengineeringSS 2013

XP vs. Scrum

● Beide Verfahren geeignet für Teams mit bis zu 10 Personen

● Beide Verfahren arbeiten eng mit dem Kunden zusammen

● Scrum noch teamorientierter und strukturierter als XP

● Beide Verfahren sehen kein Security Engineering vor

Agile Development vs. Security Requirements

19

SeminarSicherheit und

SoftwareengineeringSS 2013

Agenda

● Motivation

● Agile Softwareentwicklung● eXtreme Programming● Scrum

● Sicherheit in agiler Softwareentwicklung● Sicherheit in eXtreme Programming● Sicherheit in Scrum

● Zusammenfassung

Agile Development vs. Security Requirements

20

SeminarSicherheit und

SoftwareengineeringSS 2013

Sicherheit in eXtreme Programming

● Sicherheit eine der wichtigsten nicht-funktionalen Eigenschaften eines Softwaresystems

● Sicherheitslevel hängt häufig von der Fähigkeit der Entwickler ab

● Angriffsmöglichkeiten sind vielseitig

● Möglichkeiten zur Verbesserung des Security Engineerings in XP:

● Abuse Case Modelle● Abuser Stories

Agile Development vs. Security Requirements

21

SeminarSicherheit und

SoftwareengineeringSS 2013

Abuse Case Modelle

● Abuse Case Modell

● Beschreibt Angriffe auf das System

● Wird nach dem klassischen Anwendungsfalldiagramm erstellt

● Aufgabe des Security Engineers mit speziellem Domänenwissen

● Kann in Zusammenarbeit mit dem Kunden entwickelt werden

Agile Development vs. Security Requirements

22

SeminarSicherheit und

SoftwareengineeringSS 2013

Abuse Case Modelle

Use Case Modell

Agile Development vs. Security Requirements

23

SeminarSicherheit und

SoftwareengineeringSS 2013

Abuse Case Modelle

Abuse Case Modell

Agile Development vs. Security Requirements

24

SeminarSicherheit und

SoftwareengineeringSS 2013

Abuser Stories

● User Stories, die sich auf Angriffe des Systems beziehen

● Können im Gegensatz zu normalen User Stories nicht vom Kunden geschrieben werden

● Nach Dokumentation werden Prioritäten vergeben

Agile Development vs. Security Requirements

25

SeminarSicherheit und

SoftwareengineeringSS 2013

Abuser Stories

Agile Development vs. Security Requirements

26

SeminarSicherheit und

SoftwareengineeringSS 2013

Sicherheit in Scrum

● Sicherheit muss zu Beginn der Entwicklung betrachtet werden

● Innerhalb der Sprintiterationen kein Security Engineering sinnvoll

● Bekannte Ansätze in Scrum:● S-Scrum (Secure Scrum)● Security Backlog

Agile Development vs. Security Requirements

27

SeminarSicherheit und

SoftwareengineeringSS 2013

S-Scrum

● Anfang 2013 auf Malaysia vorgestellte Methode von Sani, Almasi et. Al

● Erweiterung des klassischen Scrum Prozesses zur Betrachtung von Sicherheitsanforderungen

● In dieser Risikoanalyse-Phase werden z.B. Abuser Stories geschrieben und das Product Backlog angepasst

Agile Development vs. Security Requirements

28

SeminarSicherheit und

SoftwareengineeringSS 2013

S-Scrum

Agile Development vs. Security Requirements

29

SeminarSicherheit und

SoftwareengineeringSS 2013

Security Backlog

● Sicherheitsansatz von Azham et.al (2011)

● Erweiterung von Scrum um zusätzliches Backlog

● Neue Rolle: Security Master

● Security Master definiert sicherheitskritsche Funktionen im Product Backlog

Agile Development vs. Security Requirements

30

SeminarSicherheit und

SoftwareengineeringSS 2013

Security Backlog

Agile Development vs. Security Requirements

31

SeminarSicherheit und

SoftwareengineeringSS 2013

Agenda

● Motivation

● Agile Softwareentwicklung● eXtreme Programming● Scrum

● Sicherheit in agiler Softwareentwicklung● Sicherheit in eXtreme Programming● Sicherheit in Scrum

● Zusammenfassung

Agile Development vs. Security Requirements

32

SeminarSicherheit und

SoftwareengineeringSS 2013

Zusammenfassung

● Extreme Programming● Beliebte agiles Vorgehensmodell● Kurze Entwicklungszyklen und enge Zusammenarbeit mit

Kunden● Security Engineering kann durch Abuse Case Modelle

und Abuser Stories verbessert werden

● Scrum● Feste Rollenverteilung, tägliche Treffen● Kurze Entwicklungszyklen und intensive Teamarbeit● Security Engineering durch S-Scrum oder Security

Backlog

Agile Development vs. Security Requirements

33

SeminarSicherheit und

SoftwareengineeringSS 2013

Zusammenfassung

● Vorgestellte Methoden zeigen: Agile Softwareentwicklung steht mit der Entwicklung sicherer Software nicht im Konflikt

● Vorteile von Scrum und XP können so auch in sicherheitskritschen Systemen genutzt werden

● Weitere Sicherheitserweiterungen vorhanden

● Vollständige Sicherheit kann nie garantiert werden

● Interpretation von Sicherheit ist abhängig vom Entwickler → Investition in Weiterbildung notwendig

Agile Development vs. Security Requirements

34

SeminarSicherheit und

SoftwareengineeringSS 2013

Agile Development vs. Security Requirements

Vielen Dank für die Aufmerksamkeit.

Agile Development vs. Security Requirements

35

SeminarSicherheit und

SoftwareengineeringSS 2013

Quellen

Bildquellen Vortrag:

Wasserfallmodell: http://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Wasserfallmodell.svg/350px-Wasserfallmodell.svg.png

Fragezeichen: http://static.freepik.com/fotos-kostenlos/fragezeichen_21147438.jpg

Wrong: http://images.sodahead.com/polls/002502229/3159695671_600px_Red_xsvg_answer_101_xlarge.png

Handshake: http://techfi lipino.com/wp-content/uploads/2012/02/how-to-be-good-at-an-interview-handshake.gif

XP Werte: http://upload.wikimedia.org/wikipedia/commons/c/c9/XP-Werte.png

Notebook: http://www.clipartpal.com/_thumbs/pd/education/note.png

Pair programming: http://labs.micromata.de/download/attachments/1310769/Agility.jpg?version=1&modifi cationDate=1264256163984

Scrum: http://www.intellias.de/images/stories/scrum_circle_de_big.jpg

Mitarbeiter: http://www.ky-logistik.de/mediapool/96/961032/resources/24817088.jpg

Security: http://www.nextgenerationpayments.com/images/security.jpg

Abuse Case Modell: M. A. Sasse I. Flechais, C. Mascolo. Integrating security and usability into the requirements and design process

Abuser Stories: M. Bod ́en K. Beznosov P.Kruchten G. Bostro ̈m, J. Wa ̈yrynen. Extending xp practices to support security requirements engineering

S-Scrum: M. M. Almasi D. Mougouei, N.F.M. Sani. S-scrum: a secure methodology for agile development of web services

Product Backlog: N. Ithnin Z. Azham, I. Ghani. Security backlog in scrum security practices. Software Engineering