AB Applikationssäkerhetstestning Swedish Association for Software Testing 2009-05-12
Presentation Vem är jag? Mattias Bergling, Inspect it Arbetar med Informationssäkerhet Fokus på IT-säkerhet Intrångstester Applikationssäkerhetsanalyser Säkerhetsgranskningar Medlem i OWASP Swedens ledningsgrupp 2009 AB
Agenda Inledning Intrångstest kontra applikationssäkerhetstest Metodik OSSTM metodik OWASP testmetodik Automatiserat och manuellt
Inledning Säkerhetstester behövs det? Marcus Ranum, Tenable Network Security I think the stupidest idea that I ve seen in computer security is the whole notion of penetration testing Är numera CSO på Tenable som säljer Nessus Hans devis är Gör det rätt från början. Lätt att säga med hans bakgrund
Web Hacking Incidents Database TJX Twitter MySpace Bank of India Life Is Good Zone-h.org (Danmec/Asprox)
Säkerhetstester Olika typer av tester Säkerhetstester och dess metodik Intrångstester/Penetrationstester Applikationssäkerhetstester Kodgranskning Testtyper (förhandsinformation) Automatiserade och manuella tester? Vad kan jag förvänta mig för resultat?
Säkerhetstester Intrångstester/Penetrationstester Klassiska intrångstester fokuserar på nätverk, tjänster och konfigurationer Testerna kan utföras scenariobaserat (internt eller externt) med i förväg bestämda målsystem En hacker utan kännedom om bolaget En missnöjd anställd Syftet med testerna är att identifiera sårbarheter som exempelvis svagheter i konfiguration avsaknad av patchar och säkerhetsuppdateringar svaga lösenord En del av testmomenten innefattar och överlappar moment i applikationssäkerhetstester En vanlig testmetodik är OSSTMM.
Säkerhetstester Intrångstester/Penetrationstester Open Source Security Testing Methodology Manual (OSSTMM) Kartläggningsfas Nätverk, system, tjänster Under kartläggningen identifieras och kartläggs Serverinfrastruktur Nätverk registrerade på bolaget Applikationer som exponeras mot Internet Anslutningspunkter för distansarbete Användarnamn (och i vissa fall även lösenord) Versionsinformation och kända sårbarheter Vanliga verktyg Google, RIPE, DNS, nmap, OpenVAS, (Nessus)
Säkerhetstester Intrångstester/Penetrationstester OSSTMM Intrångsfas Under intrångsfasen utnyttjas sårbarheterna för att göra intrång Fokus är att via sårbarheter i perifiera system slutligen nå målsystemet Vid åtkomst till ett system utförs delar av kartläggningsarbetet på nytt Svaga konfigurationer och relationer utnyttjas för att gå från ett system till nästa Konton med samma lösenord Svaga systemkonfigurationer Vanliga verktyg Hydra, Metasploit, applikationsklienter (osql, TS), applikationsspecifika verktyg (Open Source eller egenutvecklade), (Canvas), (Impact)
Användarnamn Root, admin, administrator, user, demo, test Lösenord password, <inget lösenord>, <samma som användarnamnet>, secret, hemligt, sommar, vinter, <företagsnamnet>, sommar09, sommar2009, lösenord, abc123, qwerty, qwe123, 123qwe, 123456 osv
Säkerhetstester Applikationstester Applikationstesterna tar vid där intrångstesterna slutar Fokus ligger på applikationslogiken och inte på tjänster och nätverk i så stor utsträckning Ett typiskt applikationstest utförs med behörigheter i applikationen Med fördel så utförs testet med tillgång till flera användarkonton/roller Vyer och applikationsflöden testas av mot sårbarheter och svagheter Metodik baseras ofta på OWASP testing guide Varför följa en metodik?
Open Web Applikation Security Project Introduktion Vad är OWASP? En världsomspännande, öppen och gratis organisation Syftar till att förbättra säkerheten i webbapplikationer OWASP driver ett antal större projekt Utveckling av applikationer och verktyg Dokumentation av metodik och guider Arrangerar seminarier om applikationssäkerhet Lokalt kapitel i Sverige Arrangerar t.ex kostnadsfria seminarier
Säkerhetstester Applikationstester OWASP Testing Guide v3 Metodiken är indelad i 10 övergripande kategorier Samtliga kategorier innehåller information och exempel på relevanta testmoment Verktyg Proxy, curl, wget, kommersiella applikationsskanners
Metodik OWASP Testing Guide 1. Informationsinsamling Indexerade sidor robots.txt Surfa, crawla/spidra, HTTP-headrar Felmeddelanden Standardsidor Onsamehost/msn DNS bruteforce
Metodik OWASP Testing Guide 2. Konfigurationsverifiering SSL Vanliga kataloger/filer Tolkning av filändelser Kopior/backuper Administrations-/editeringsgränssnitt HTTP metoder
Metodik OWASP Testing Guide 3. Test av autentisering Kryptering av autenticeringsinformation Enumerering av användarnamn Vanligt förekommande användarnamn och lösenord Brute Force Kringgå autenticering Password reset eller reminder Logout och cachehantering Captcha och flerfaktorsautenticering Race conditions
Metodik OWASP Testing Guide 4. Sessionshantering Schema (cookie - slumpmässighet, attribut) Session fixation Exponerade variabler Cross Site Request Forgery 5. Test av "authorization" Path traversal/direktadressering Accessa andra rollers information 6. Programlogik Beroende på applikationen
Metodik OWASP Testing Guide 7. In/utdatavalidering Cross Site Scripting Lagrad XSS DOM-baserad XSS Cross Site Flashing SQL-injection, (Oracle, MySQL, MSSQL, MS Access) LDAP-injection ORM-injection XML-injection SSI-injection XPath-injection
Metodik OWASP Testing Guide 7. In/utdatavalidering (fortsättning) IMAP/SMTP-injection Kodinjektion Kommandoinjektion Buffer Overflow Heap oveflow Stack Overflows Format string problem "Incubated" sårbarheter HTTP splitting/smuggeling
Metodik OWASP Testing Guide 8. Denial of Service SQL wildcards Låsa användarkonton Buffer Overflows Resursallokering Indatastyrda loopar Fylla loggar/diskar Bristande minneshantering Sessionshantering
Metodik OWASP Testing Guide 9. Web Servicestestning Informationsinsamling Testa WSDL Test av XML-struktur XML innehåll Speciella HTTP GET-anrop SOAP attachments "replay"attacker
Metodik OWASP Testing Guide 10. Ajax testning Identifiera Ajax Testa för Ajax-specifika brister Rapportering och gradering
Applikationstester Verktyg och automatiserade tester Tester med automatiserade verktyg Källkodsanalysverktyg Applikationssäkerhetsscanners Testningsramverk och verktyg Helautomatiserade tester ger sällan ett heltäckande resultat Problem Logiska problem Flöden Indata ( OR = ) Manuella tester tar oftast mer tid i anspråk
Applikationstester Man vs. machine
OWASP Top Ten OWASP Top Ten Project 10 mest vanliga sårbarheterna i webbapplikationer 1. Cross Site Scripting (XSS) 2. Injection Flaws 3. Malicious File Execution 4. Insecure Direct Object Reference 5. Cross Site Request Forgery (CSRF) 6. Information Leakage and Improper Error Handling 7. Broken Authentication and Session Management 8. Insecure Cryptographic Storage 9. Insecure Communications 10. Failure to Restrict URL Access
OWASP Top 10 Jämförelse analyssätt
Länkar http://www.owasp.org http://www.owasp.org/index.php/sweden http://www.osstmm.org http://whid.xiom.com (flashback.info, xssed.com, zone-h.org)
Frågor?
Kontaktuppgifter Mattias Bergling mattias.bergling@inspectit.se 08-6137083 www.inspectit.se