agile development vs. security requirements · agile development vs. security requirements 5...
TRANSCRIPT
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