De zeven zonden van veilige software Met als dieptepunt de mobiele app Rob van der Veer principal consultant SIG 23 juni 2016 Blackhat Sessions GETTING SOFTWARE RIGHT
Even voorstellen Rob van der Veer Principal consultant Software Improvement Group > SIG meet softwarekwaliteit > SIG adviseert daarover > SIG is een spin-off van de UVA > 100 FTE > Internationaal HHHHI r.vanderveer@sig.eu @robvanderveer +31 6 20437187 www.sig.eu/security SIG headquarters in Amsterdam Page 2 of 22
Inhoudsopgave 1 Onmatigheid 2 Jaloezie 3 Lust 4 Hoogmoed 5 Hebzucht 6 Toorn 7 Gemakzucht 8 Wat kunnen we eraan doen? Pagina 3 van 22
Onmatigheid We maken meer software dan we aankunnen(*) > 12 miljoen software ontwikkelaars > 120 miljard regels code in een jaar > 15% daarvan moet het jaar daarna worden aangepast > Met 1,8 miljoen nieuwe ontwikkelaars Gevolg: > Alleen reactief onderhoud > Innovatie staat onder druk > Kwaliteit leidt en dat maakt het probleem alleen maar groter > Systemen lopen vast en worden kwetsbaar of lekken gegevens (*) Why you need to know about code maintainability Tobias Kuipers Pagina 4 van 22
Pagina 5 van Y
F I N D T H E F L A W int tls1_process_heartbeat(ssl *s) { /* controlled by user */ unsigned char *p = &s->s3->rrec.data[0], *pl; unsigned int payload; unsigned int padding = 16; /* Use minimum padding */... /* The first two bytes of p represent the length of the * payload and is put in variable payload */ n2s(p, payload); pl = p;... unsigned char *buffer, *bp; buffer = OPENSSL_malloc(1 + 2 + payload + padding); bp = buffer;... /* Enter response type, length and copy payload */ bp++ = TLS1_HB_RESPONSE; /* Puts payload length in two bytes of bp. */ s2n(payload, bp); /* Copies payload-length of pl to bp */ memcpy(bp, pl, payload);...
Onmatigheid en mobiele apps? Mobiele apps zijn notoir onveilig Wachtwoorden staan ín de app, Certificaten worden niet gecontroleerd etc etc. Arxan onderzoek 126 apps: 90% kwetsbaar voor minimaal 2 van de OWASP top 10 Public Sector Bank India: geen certificate pinning, client-side only session time outs en je kon rekeningnummers veranderen Ariel Sanchez (2014): Miserabele security in 60 bankier-apps Wendera Smartwire labs: alle 10 populare zakelijk apps kwetsbaar op 5 van de 28 punten en geen van alleen gaan goed met privacy om Hoe komt dat? > App bouwers zijn gewend om kleine simpele dingen te maken, dus als het dan oud en groot wordt.. > Maar dat is niet het enige. Pagina 7 van 22
Jaloezie Ik wil ook een app net als de anderen! > Ik wil niet achterblijven > Ieder zichzelf respecterend > Klanten verwachten het > Ik wil concurreren op gebruiksgemak en features. Mijn managers willen het nog meer! > Betere online dienstverlening > De klant helpt zichzelf kostenbesparing Gevolg: security concessies > Snel! Time to market. Haast! > Gebruiksgemak over security Pagina 8 van 22
Lust Ik wil zelf iets moois bouwen! > Niet volstaan met een mobiele website > Geen hybride app. Native! > Geen platform gebruiken > Ik wil zelf iets zelf voortbrengen not invented here > Iets moois > Met de allerlaatste technieken Gevolg: gouden koets met kwetsbaarheden > Over-investering > Eigen Knutsel Crypto e.d. Pagina 9 van 22
Hoogmoed Ik heb een unieke app nodig! > Mijn diensten vergen een unieke oplossing > Maatwerk, want dat kunnen we prima zelf > Mijn gebruikers hebben 1.000 dingen nodig > Testen en toetsen? Ha, dat doen ontwikkelaars die het niet de eerste keer goed kunnen Gevolg: gouden koets met kwetsbaarheden Pagina 10 van 22
Hebzucht Verzamel big data > Data is kennis en macht, toch? > Gebruikersgegevens kunnen we later wel weer exploiteren Gevolg: je zit op een bom > Wat je verzamelt moet je beschermen > GDPR > Mobiele apps hebben toegang tot een zee aan nuttige informatie > Privacygevoelige informatie: ip-adres, Wifinaam, thuisadres, contacten, gps locatie Runkeeper deelde gps met advertentiebefrijf Onderzoek Troy Hunt: Paypal stuurt huisadres e.d. bij inloggen. Veel niet versleuteld. Pagina 11 van 22
Toorn Waarom vertel je mij niet precies wat je verwacht? Ik verwacht professionaliteit! Pagina 12 van 22
Security is belangrijk maar er is veel aan de hand HEBZUCHT JALOEZIE TOORN LUST ONMATIGHEID Pssstt.. security? HOOGMOED Pagina 13 van 22
Gemakzucht Gemakzucht, misschien wel de moeder van alle software zonden > Security verdient veel aandacht maar er zijn zoveel andere prikkels > Security/kwaliteit kun je niet goed zien en you can t control what you don t measure. > Er is te weinig dialoog tussen bouwers en opdrachtgevers. Veel hoop en weinig controle. > Vaak pas getest als het klaar is Wijzigingen zijn dan 100 keer zo duur (*) Geen tijd om goed te fixen Je kunt niet alles vaststellen met testen > Gevolg: geen security/privacy by design -> incidenten (*) B. Boehm and V. R. Basili. Software defect reduction top 10 list. IEEE Computer, 34:135 137, 2001. Pagina 14 van 22
Er is te weinig dialoog tussen bouwers en opdrachtgevers
Gemakzucht en mobiele apps? Mobiele apps zijn de perfect storm voor slechte security Uit de hand gelopen softwareprojecten Haast, featurecreep Securityconcessies voor gebruiksgemak Eigen knutselwerk Privacygevoelige gegevens binnen handbereik Veel zaken om mee rekening te houden (*)(**) (*) Zie Grip op SSD mobiele eisen: www.cip-overheid.nl/ (**) Zie OWASP Top ten mobile risks Pagina 16 van 22
Veel zaken om mee rekening te houden bij mobiele apps Datacenter Webapplicatie Webbrowser Smartphone Backend Mobiele applicatie > Open verbinding met backend > App-omgeving vijandig: malware, reverse engineering, weinig monitoring en detectie > Geen checks die je met browser wel hebt (bijv. https) > Downloaden van app: appstore threat > Lokale opslag voor onafhankelijkheid verbinding Pagina 17 van 22
Wat kunnen we eraan doen Regel > Maak het vroeg zichtbaar: meet en controlleer volume en kwaliteit van software > Maak daar goede afspraken over (zie Grip op SSD) > Toets niet alleen de requirements (checklist valkuil) Denk na > Vraag je af of je wel een mobiele app wil > Houd het simpel > Respecteer de gevoeligheid van data > Wees voorzichtig met securityconcessies voor gebruiksgemak > Wantrouw de appomgeving en je verbinding, vergeet niet de backend Pagina 18 van 22
Grip op SSD > Samenwerking tussen softwarebouwers, overheid en securityspecialisten vanuit CIP > Producten: Methode handboek SIVA beveiligingseisen (ook mobile) Trainingsmateriaal testers Beveiligingsovereenkomst > Zie cip-overheid.nl Pagina 19 van 22
Hoe zichtbaar maken van security Alle securityrisico s Pentest Code-scantools Codereview * Onderhoudbaarheid Pagina 20 van 22
Codereview vs. Penetratietest Kijken hoe security is ingebouwd vs. Proberen in te breken Pentest Codereview Pagina 21 van 22
Vragen?