Sikkerhetstesting i et «nøtteskall» DND Oslo, 8 mars 2016
Innhold Hva er sikkerhetstest Plassering av sikkerhetstest i utviklingssykelusen Verktøy Demo? 10.03.2016 2
Mitt navn: 10.03.2016 3
Om meg, Jobber siden 1987 med kvalitet, standardisering, kvalitetssikring og systemog akseptansetesting Fulltid siden 2004 med programvare testing Tester, testleder og testkonsulent Aug 2008 testleder i Brønnøysund (BRREG) Nov 2013 testkonsulent i SOC ISTQB Full Advanced, EC Council Certified Ethical Hacker, Scrum Master, CTFL Agile Tester, REQB Foundation 10.03.2016 4
og sikkerhetstest Ikke fulltid dessverre Første erfaring: sikkerhetserklæringer prosjekter i helsesektorn Gjennomføring sikkerhetsrevisjon basert på ISO 27002 Certified Ethical Hacking EC Council Forfatter ISTQB CTAL/CTEL Security Tester syllabus Noe småtesting / hacking underveis Og jeg mener at vi som tester bør kunne litt om sikkerhetstest 10.03.2016 5
Hva er informasjonssikkerhet? The protection of information and information systems from unauthorized access, use, disclosure, disruption, modification, or destruction in order to provide confidentiality, integrity, and availablity (National Information Assurance Glossary). 10.03.2016 6
Hva er sikkerhetstesting? A process used to determine that the security features of a system are implemented as designed and that they are adequate for a proposed application environment (MDA Glossary). Men det er ikke alt! Sikkerhetstest = negativt testing! 10.03.2016 7
Hensikt med sikkerhetstesting Verifisere at sikkerhetstiltak (designet) fungerer (Sikkerhetstiltak) som beskytter mot kjente trusler og sårbarheter Verifisere at det ikke er blitt implementert nye sårbarheter i koden, infrastruktur eller rutiner Før systemet blir satt i drift Periodisk når systemet er i drift
Hvordan sikkerhetsteste? Statisk Review av arkitektur og design Statisk analyse Manuel code review Systemaudit (infrastruktur: nettverkskann asset management) Dynamisk Funksjonell (test cases scriptet) Teknisk (scenarier) Automatisert (sårbarhetsskann, webapplikasjon, WS, database) Manuelt (OWASP testing guide, OSSTMM, good practices)
Funksjonelle testtyper Funksjonell sikkerhetstest: Log inn / Autentisering Autorisering Inputvalidering Kryptering / Sertifikater Logging (bruker, administrator, system) Audit trial WebService (automatisert autentisering, inputvalidering, SQL, XSS)
Statiske testtyper Statisk Analyse Automatisert gjennomgang av koden for å finne avvik i koden med referanse til en kodestandard. Kodestandarden skal inneholde informasjonssikkerhet relaterte regler. Code review Strukturert (ofte manuell) gjennomgang av produsert kode med hensikt å avdekke informasjonssikkerhet relaterte sårbarheter. Nettverks- og portskann Kartlegging og verifisering av aktive servere, åpen porter og tjenester som er aktive og om de er i samsvar med arkitektur / designdokumentasjon.
Testtyper Teknisk Webapplikasjonstest Manuell og/eller automatisert verifisering av applikasjonen for å avdekke kjente trusler, slik de er publisert i siste versjon av OWASP top 10. Sårbarhetsskanning Automatisert verifisering av nettverkskomponenter for å se om disse er beskyttet mot de seneste sårbarhetene. Verifisering av «hardened» konfigurering. Penetrasjonstest Automatisert eller manuell verifisering hvor man prøver å utnytte kjente sårbarheter (exploits).
Sikkerhetstest i livssyklusen 10.03.2016 13
Utfordring: Strategi og testtilnærming Krav er ofte dårlig formulert (.. i samsvar med ISO27001, som er feil) Ingen åpne sikkerhetsstandarder brukt i utvikling og implementering Hver implementering er unik Forhåpentligvis likt i bedriften? Bestemme hva som skal testes Trusler > implementert tiltak «eksplorativt» for å introduserte sårbarheter Definer når og hvordan det kan testes 10.03.2016 14
Prosesser Sikkerhet testprosess (ISTQB): Sikkerhetstest planning Sikkerhetstest design Sikkerhetstest gjennomføring Sikkerhetstest evaluering og rapportering Sikkerhetstest vedlikehold System (programvare) utviklingsprosesser Sekvensiell Smidig 10.03.2016 15
Sammenheng mellom prosessene (ISTQB CTAL) 10.03.2016 16
Sikkerhet i livssyklusen - anbefaling Aktiviteter i alle livssyklusfaser Rettet på forebygging med statiske teknikker Rettet på verifisering av implementeringen med statiske og dynamiske teknikker Rettet på verifisering av vedlikehold med dynamiske / automatiske teknikker Trening! 10.03.2016 17
Microsoft Secure Development Lifecycle 10.03.2016 18
Sikkerhet i produksjon / vedlikehold Nye trusler og sårbarheter avdekkes kontinuerlig Nettverk, hardware og programvare endres kontinuerlig Arkitekturen endres. Så, skal vi teste kontinuerlig, periodisk (og planlagt)? Verktøy fri testing? 10.03.2016 19
Så, hva kan vi gjøre som testere? Lære Forbedre utviklingsprosessen Enhetstest = statisk analyse Manuell test funksjonell test Automatisert sikkerhetstest Verifiser at systemer og applikasjoner er up to date Velg noen verktøy, lær dem, tilpass dem, bruk dem Det er ikke nødvendig å teste alt 10.03.2016 20
Hvordan gå videre? Bygg et testlab (virtuelle maskiner) Vet statusen av (hvilke) data i systemet Lag en (egen) oversikt av trusler for ditt miljø / applikasjon Les OWASP testing guide Les How to Break Web Software (Andrews and Whittaker) Utforsk og velg tilgjegelige verktøyer (ikke for mange) Prøv og lær (Proxies / HTTP / HTML) Ikke vær overambisiøs, men prøv! 10.03.2016 21
Sikkerhetstestverktøy
Verktøy - utfordringer De fleste kommer fra Hacker-miljøet Open Source veldig rettet på en oppgave Lisensierte ofte en videreutvikling Ingen strukturert / felles måte å teste Ingen strukturert / felles måte å analysere testresultat Omfattende konfigureringsmuligheter 10.03.2016 23
Verktøy - utfordringer Fleste er rettet mot sikkerhetsspesialister / teknikere / utviklere Ikke til de funksjonelle testerne! Falsk tro på resultatene (false positives, false negatives) Design og logikk feil kan ikke (alltid) avdekkes 10.03.2016 24
Hvilke verktøy? Valg av testverktøy (www.sectools.org, www.webappsec.org) Open source versus lisensert Test av verktøyene Implementering via en pilot Testlab? 10.03.2016 25
Takk til: ww.indianz.ch 10.03.2016 26
Sikkerhetstestlab Ditt verktøy og en kopi av prod. miljøet Basert på virtuelle maskiner (VMware Player) Kali Linux Flere hosts (Windows / Unix) Web applikasjoner (OWASP Broken Web Applikasjoner 0.94, inkl. WebGoat) Hackable websites 10.03.2016 27
Anbefalt (og med GUI) Zenmap: standard network scan OpenVas: vulnerability Armitage: standard penetrationstest (vulnerability scan + exploit) Firefox: Cookie manipulation Burpsuite: webapplikajson Wireshark 10.03.2016 28
www.soco.no