Agile Development vs. Security Requirements Mirco Stickan
Agenda Motivation Agile Softwareentwicklung extreme Programming Scrum Sicherheit in agiler Softwareentwicklung Sicherheit in extreme Programming Sicherheit in Scrum Zusammenfassung 2
Agenda Motivation Agile Softwareentwicklung extreme Programming Scrum Sicherheit in agiler Softwareentwicklung Sicherheit in extreme Programming Sicherheit in Scrum Zusammenfassung 3
Motivation Klassisches Vorgehensmodell im : 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 4
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 5
Motivation Agile Entwicklung Low-Budget Projekte, IT-Start-Ups Wasserfallmodell Sicherheitskritische, umfangreiche Projekte 6
Motivation Agile Entwicklung bei komplexen Projekten immer beliebter Erweiterung der klassischen agilen Methoden verbessern das Security Engineering Entwicklung sicherer Software auch agil möglich! 7
Agenda Motivation Agile Softwareentwicklung extreme Programming Scrum Sicherheit in agiler Softwareentwicklung Sicherheit in extreme Programming Sicherheit in Scrum Zusammenfassung 8
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 9
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 10
Extreme Programming (XP) Um Software erfolgreich zu entwickeln sind nach dem XP Prinzip folgende Werte wichtig: 11
Extreme Programming (XP) Prinzipien des extreme Programming Schnelles Feedback Annahme von Einfachheit Schrittweise Änderung Qualitativ hochwertige Arbeit... 12
Extreme Programming (XP) Praktiken des extreme Programming XP Planspiel Kollektives Eigentum Pair Programming Testgetriebene Entwicklung Keine Überstunden Refactoring User Stories... 13
Scrum Weiteres iteratives Vorgehensmodell der Softwareentwicklung Enge Zusammenarbeit mit dem Kunden Feste Rollenverteilung innerhalb des Teams Regelmäßige / tägliche Treffen (Scrum Meetings) 14
Scrum Tägliche Treffen heißen Daily Scrums Anforderungen werden im Backlog festgehalten Einzelne Iterationen heißen Sprints Prinzipien: Transparenz, Überprüfung, Anpassung 15
Scrum Rollen in Scrum: Scrum Master Product Owner Entwicklungsteam Customer 16
Scrum 17
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 18
Agenda Motivation Agile Softwareentwicklung extreme Programming Scrum Sicherheit in agiler Softwareentwicklung Sicherheit in extreme Programming Sicherheit in Scrum Zusammenfassung 19
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 20
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 21
Abuse Case Modelle Use Case Modell 22
Abuse Case Modelle Abuse Case Modell 23
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 24
Abuser Stories 25
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 26
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 27
S-Scrum 28
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 29
Security Backlog 30
Agenda Motivation Agile Softwareentwicklung extreme Programming Scrum Sicherheit in agiler Softwareentwicklung Sicherheit in extreme Programming Sicherheit in Scrum Zusammenfassung 31
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 32
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 33
Agile Development vs. Security Requirements Vielen Dank für die Aufmerksamkeit. 34
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 én K. Beznosov P.Kruchten G. Bostro m, J. Wa ÿrynen. 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 35