29
Enkla hackerknep för testare Michael Boman Omegapoint AB

Enkla hackerknep för testare

Embed Size (px)

Citation preview

Page 1: Enkla hackerknep för testare

Enkla hackerknep för testare

Michael Boman

Omegapoint AB

Page 2: Enkla hackerknep för testare

Kort om Michael Boman

• Säkerhetskonsult på Omegapoint (Stockholm)– Inriktning: Sårbarheter och skadlig kod

• Penetrationstestare• Incidenthanterare• Kursinstruktör

– Säker utveckling (J2EE & .NET)– Säkerhetstestning

Page 3: Enkla hackerknep för testare

Omegapoint-säkrar utvecklingen

Vi är det ledande Svenska konsultföretaget inom utveckling av säkra IT system med hög kvalitet.

Våra expertkonsulter levererar:

• Lösningar

• Uppdrag

• Utbildningar

Vi är experter på hela utvecklingscykeln från design, krav och utveckling till test och överlämning.

Göteborg

MalmöKalmar

Stockholm

Falun

Page 4: Enkla hackerknep för testare

Vad kommer vi kommer att gå igenom

• Vad är säkerhetstestning?• Skillnaden mellan test och säkerhetstest• Säkerhetstestning av webbapplikationer /

fet-applikationer & klient/server system• Verktyg för webbapplikationstestning• OWASP Testing Guide och OWASP Top 10• DEMO (SQL Injection & XSS)• Hur du går vidare

Page 5: Enkla hackerknep för testare

Vad är säkerhetstestning?

• Kärt barn har många namn– Säkerhetstestning– Penetrationstestning– Etisk Hackning (eng: ethical hacking)

Page 6: Enkla hackerknep för testare

Skillnaden mellan testning och säkerhetstestning

• ”Vanlig” test testar generellt att testa att system utför vad det skall göra enligt de krav som ställts

• Säkerhetstestning testar vad mer man kan få systemet att göra

Page 7: Enkla hackerknep för testare

Säkerhetstestning av webbapplikationer / feta klienter

• OWASP Testing Guide• OWASP Top 10• SANS/Mitre Top 25

Page 8: Enkla hackerknep för testare

WebbapplikationKlient/Server & Fet-applikation

Sky

ddsv

ärde

Hög

tLå

gt

O2 - Cross-Site Scripting (XSS)

O3 - Broken Authentication and Session Management

O4 - Insecure Direct Object References

O5 - Cross-Site Request Forgery (CSRF)

O8 - Failure to Restrict URL Access

O9 - Insufficient Transport Layer Protection

O10 - Unvalidated Redirects and Forwards

M1 - Failure to Preserve Web Page Structure ('Cross-site Scripting')

M2 - Improper Sanitization of Special Elements used in an SQL Command ('SQL Injection')

M3 - Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

M4 - Cross-Site Request Forgery (CSRF)

M7 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

M8 - Unrestricted Upload of File with Dangerous Type

M11 - Use of Hard-coded Credentials

M12 - Buffer Access with Incorrect Length Value

M13 - Improper Control of Filename for Include/Require Statement in PHP Program ('PHP File Inclusion')M14 - Improper Validation of Array Index

M15 - Improper Check for Unusual or Exceptional Conditions

M16 - Information Exposure Through an Error Message

M17 - Integer Overflow or Wraparound

M18 - Incorrect Calculation of Buffer Size

M20 - Download of Code Without Integrity Check

M22 - Allocation of Resources Without Limits or Throttling

M23 - URL Redirection to Untrusted Site ('Open Redirect')

M25 - Race Condition

O1 - InjectionO6 - Security Misconfiguration

O7 - Insecure Cryptographic Storage

M5 - Improper Access Control (Authorization)

M6 - Reliance on Untrusted Inputs in a Security Decision

M9 - Improper Sanitization of Special Elements used in an OS Command ('OS Command Injection')

M10 - Missing Encryption of Sensitive Data

M19 - Missing Authentication for Critical Function

M21 - Incorrect Permission Assignment for Critical Resource

M24 - Use of a Broken or Risky Cryptographic Algorithm

Page 9: Enkla hackerknep för testare

Verktyg för webbapplikationstestning

• Man-in-the-middle proxy– Paros Proxy– Webscarab– BURP Suite

• Fuzzing verktyg– JBroFuzz– Fuzzdb (databas med fuzzing strängar)

• Klienter och utvecklingsverktyg

Page 10: Enkla hackerknep för testare

OWASP Testning Guide och OWASP Top 10

• OWASP Testing Guide– 66 olika tester definierade spritt över 10 olika

områden

• OWASP Top 10– Dom 10 mest allvarliga säkerhetsproblemen– Refererad i PCI-DSS standarden

Page 11: Enkla hackerknep för testare

OWASP Top 10 (2010)

• A1: Injection• A2: Cross-Site Scripting (XSS)• A3: Broken Authentication and Session Management• A4: Insecure Direct Object References• A5: Cross-Site Request Forgery (CSRF)• A6: Security Misconfiguration• A7: Insecure Cryptographic Storage• A8: Failure to Restrict URL Access• A9: Insufficient Transport Layer Protection• A10: Unvalidated Redirects and Forwards

Page 12: Enkla hackerknep för testare

DEMO

• SQL Injection• Cross Site Scripting (XSS)

Page 13: Enkla hackerknep för testare

SQL InjectionTeori

Page 14: Enkla hackerknep för testare

SQL-statements

sql = "SELECT * FROM users WHEREuser = '" + user + "' AND password = '" + password + "' ";

Page 15: Enkla hackerknep för testare

SQL-statements

sql = "SELECT * FROM users WHEREuser = '" + user + "' AND password = '" + password + "'";

Page 16: Enkla hackerknep för testare

SQL Injection Exempel

user = 'OR 1=1 --password = blabla

Page 17: Enkla hackerknep för testare

SQL-statements

sql = "SELECT * FROM users WHEREuser = '' OR 1=1 --' AND password = 'blabla' ";

Page 18: Enkla hackerknep för testare

SQL-statements

sql = "SELECT * FROM users WHEREuser = ‘‘ OR 1=1 --’ AND password = ‘blabla’";

Page 19: Enkla hackerknep för testare

SQL Injection - konsekvenser

• Exponering av allt i databasen som databasanvändaren kan få åtkomst till– Läs, skriv, ändra, ta bort - förstör

• Kringgå autentisering / inloggning• Exekvera kod på server• Läsa filer på databasen

Page 20: Enkla hackerknep för testare

Okänd applikation

• Kan man lära sig schemat för en okänd applikation?

• Kända systemtabeller– Microsoft: Sysobjects, …– Oracle: User_tables, User_source, …

• Kända systemvariabler– User, …

Page 21: Enkla hackerknep för testare

SQL InjectionDemo

Page 22: Enkla hackerknep för testare

Cross Site Scripting (XSS)Teori

Page 23: Enkla hackerknep för testare

Cross-Site Scripting

• Attackeraren kör (skript) kod i användarens webbläsare– Kan styra vad användaren ser och gör

Page 24: Enkla hackerknep för testare

Cross-Site Scripting Typer

• Typ 0: DOM• Typ 1: Reflekterad• Typ 2: Lagrad

Page 25: Enkla hackerknep för testare

Cross-Site Scripting (typ 2)

Page 26: Enkla hackerknep för testare

Cross-Site Scripting

• Kräver skript stöd i webbläsaren– JavaScript– VBScript (IE)

Page 27: Enkla hackerknep för testare

Cross Site Scripting (XSS)Demo

Page 28: Enkla hackerknep för testare

Hur du går vidare

• Skapa ett labb där du kan öva och utveckla dina kunskaper

• Läs ”facklitteratur”– Böcker– Tidningar– Bloggar– Mailinglistor– Sociala nätverk

Page 29: Enkla hackerknep för testare

Frågor?

Michael Boman

[email protected]

0709-15 88 30