Secure Software Alliance 6
SSD model SSDprocessen Organisatorische inrichting SSD Business impact analyse (BIA) Onderhoud standaard beveiligingseisen Risico attitude organisatie Sturen op maturity Standaard beveiligingseisen Wettelijke eisen, beleid en uitgangspunten Gap Verantwoording Intern (dashboard), extern (compliancy) Risicoanalyse Gap Risicobeheersing en risicoacceptatie Contactmomenten Beveiligingstestplan Eisen Acceptatie risico s Codereview Securitytesten Pentest Ontwikkelproces Intiatie Ontwerp Bouw Test Acceptatie Productie 7
Uitdaging: SDLC Scrum 8
Scrum in een notendop 9
Bring Security to Scrum 10
Van Waterval naar Agile 11
Agile Application Security Testing Bedrijfs / IT doelstelling Project Brief PID/ Release Plan PAT vrijgave Privacy Impact assessm ent Business Case Global Require ments Security Baseline MTP Wettelijke kaders en policies PSA User Story 1..n Epic 1..n Global Backlog Features Sprint Backlog Definition of Ready Feature nr(s) Artifacts (Functional Blocks) Definition of Done Sprint Demo Sprint Retro GAT vrijgave Keten test vrijgave In beheer name rapport Operatie Security Officer Architect Scrum Team(s) Test + release Product Owner(s) manager Product Owner(s) Kwaliteitsmanager Security Specialist 12
Security risico s 13
Gebruik een RAR lijst Require ments Acceptatie criteria Risico s één RAR lijst?! 14
Wat heb je hieraan? Expliciet en controleerbaar risicomanagement In een Scrum setting mogelijk Met borging van elk risicotype Elk risico is te mappen Zonder Scrum te frustreren Weinig extra s toevoegen 15
Application Security Life Cycle OPDRACHTGEVER Regievoering In productie nemen (keten) veilige applicaties Pentesten Periodieke check up Productie Veilig houden applicaties PIA 0-meting Acceptatie van beveiligingscriteria en risico s Acceptatie Initiatie Opstellen security acceptatie en testcriteria Uitvoeren van beveiligingstesten Testen Ontwerp Opstellen gedetailleerde beveiligingseisen o.b.v. bedreigingen Risicobeheersing OPDRACHTNEMER Vulnerability scan Bouw Code analyse Review ontwerp 16
Application Security Life Cycle OPDRACHTGEVER Regievoering In productie nemen (keten) veilige applicaties Pentesten Periodieke check up Productie Veilig houden applicaties PIA 0-meting Acceptatie van beveiligingscriteria en risico s Acceptatie Initiatie Opstellen security acceptatie en testcriteria Uitvoeren van beveiligingstesten Testen Ontwerp Opstellen gedetailleerde beveiligingseisen o.b.v. bedreigingen Risicobeheersing OPDRACHTNEMER Vulnerability scan Bouw Code analyse Review ontwerp 17
OWASP top 10 (2013) 18
Security by design Ontwikkelteam In alle fasen van de software levenscyclus Test: Aantonen defect / vulnerability Ontwikkelteam Belangrijke kwetsbaarheden en/of bedreigingen Onderdeel application life cycle en vrijgaveadvies Penetratietest Net voor of na in productiename Vinden en diepgaand onderzoeken van een vulnerability (forensics) Ethical hacker (extern) Verdieping en onderzoek naar specialistische aanvallen Separaat rapport Securitytest en penetratietest vervangen elkaar dus niet; > het vult elkaar aan < 19
Mogelijkheden securitytesten Mogelijk uit te voeren securitytesten: Authenticatie en autorisatie (SQL) Injectie Syntactisch / semantisch Parameters aanpassen Sessie overnemen HTTPS Encryptie Sensitieve data Cross site scripting (XSS) Cross site request forgery Redirects Met reguliere tools Tool, zoals Burp Suite nodig! Groeipad 20
SSD Beveiligingseisen Normalisatie en validatie van input SSD-18: Inregelen van HTTP validatie SSD-19: Normaliseren van invoer voor validatie SSD-22: Toepassen van invoervalidatie SSD-20: Controle op de codering van dynamische onderdelen SSD-21: Afdwingen van geparameteriseerde queries 21
Invoervalidatie Naam Naam Naam Naam Naam Naam Vul hier uw naam in 123456!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!@#$%^&*()_: <>?;,./\ {} ÁáÉéÍíÓóÚúÄäËëÏïÖöÜüÀàÈèÌìÒòÙù aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 22
Verdiepen vanuit invoervalidatie Naam Naam Naam Naam X X X x <b>test</b> <font size="6" color="#ff0000" face= comic sans>rood</f <a href="https://www.google.com">klik hier</a> SELECT naam FROM naam WHERE naam = naam AND 23
Checken invoervalidatie Op GUI zelf (respons) In bericht Middleware Back-end Logging Gekoppelde applicaties Database Is het bericht manipuleerbaar? Kan ik hiermee validaties op GUI omzeilen? <Name>Tim van Loon</Name> <Phone>0612123123</Phone> <Name><i>Pim van Loon</i></Name> <Phone>!@#$%^&*(</Phone> Oplossing Zorgen dat slechts een naam mogelijk is via veld en services. Beperking tot alfabetisch, beperkt non alfanumeriek, (min en) max van X aantal karakters. 24
Afsluiting 25