“Back to the Future” Marinus Kuivenhoven Sogeti
1
Commodore 64
2
Commodore 1541 floppy drive
3
Assymetrisch gedrag
Een operatie die voor een overgang zorgt.. Waarbij heen
minder ‘kost’ dan terug
4
Assymetrisch gedrag
5
Kopieerbeveiliging • Asymmetrisch gedrag verhogen − Verschil in kosten tussen media dupliceren en media gebruiken
6
Asymmetrie als kopieerbeveiliging
7
Kopieerbeveiliging C64 #1 • Bad Sector (1983) − Opzettelijk fouten maken bij productie
8
Kopieerbeveiliging nu • Xbox 360 (2005) − Opzettelijk fouten maken bij productie
9
Kopieerbeveiliging C64 #2 • Gap Bytes (1985) − Tussen ruimtes vullen
10
Kopieerbeveiliging nu • PC games met SafeDisc (2002 - ….) − Tussen ruimtes vullen
11
Kopieerbeveiliging C64 #3 • Trackallignment (1987) − Afwijkende ruimte tussen blocks
12
Kopieerbeveiliging nu • PlayStation 2 (2000) − Afwijkende ruimte tussen blocks
13
Principe
In de IT leren we niet van eerder gemaakte fouten!
14
De ‘F’-test Men spreekt over een infectie als een micro-organisme, virus of parasiet in een levend wezen is binnengedrongen en daar schade aanricht. In het ergste geval kan een infectie leiden tot de dood van het geïnfecteerde individu. Opdracht: Tel hoe vaak de letter 'F' op deze slide voorkomt.
Schrijf dit op een blaadje, hou je vingers omhoog of roep het aantal. Niet vals spelen en in één keer tellen. 15
Phone + Freak = Phreak "Joybubbles" & "Captain Crunch"
16
Trygve Reenskaug • DBO, MVC, OO, UML, ect..
17
Database Oriented Application (1965) Scherm: USERNAME:[PERSOONA] PASSWORD:[GEHEIM12]
Achtergrond: Mag er toegang worden gegeven aan de gebruiker wanneer: de username is PERSOONA en het wachtwoord is GEHEIM12 18
SQL injection (1997) Scherm: USERNAME:[PERSOONA] PASSWORD:[WEETIKVEEL of 1=1]
Achtergrond: Mag er toegang worden gegeven aan de gebruiker wanneer: de username is PERSOONA en het wachtwoord is WEETIKVEEL of 1=1; 19
Aanvallen op een webapplicatie
20
Serverside scripting (1993) /JavaScript (1995) 1 Request met gegevens
Browser
Webserver 3 Nieuwe pagina
2 Genereert pagina
21
Cross-site scripting (1996) 1 Request met code
Browser
Webserver 3 Nieuwe pagina
2 Genereert pagina met de code erin
4 Toont pagina en voert de code uit
22
Oorzaak van het probleem
Telefoon Applicatie Applicatie
Stem + Tonen
Query + Gegevens
Content+Javascript
Centrale Database Browser
23
Oorzaak van het probleem
Telefoon Applicatie Applicatie Presentator
Stem + Tonen
Query + Gegevens
Content+Javascript
Text + Opdracht
Centrale Database Browser Publiek
24
Oorzaak van het probleem
Data?! Logica?!
Aanvrager
1 communicatiekanaal
Verwerker
De verwerker kan geen onderscheidt maken tussen data en logica
25
Out of band communication – Telefoon
Telefoon
Gesprek
Centrale 1 Gesprek
Telefoon
Gesprek
Tonen
Centrale2
26
Out of band communication – Database
Client
Data
Applicatie Data
Query
Database
27
Out of band communication – Database 1: stmt = ‘select something from table where column =‘ + variable; 2: stmt = ‘select something from table where column = ?‘; Bind(1,variable);
1: var: a, -> hash = 0cc175b9c0f1b6a831c399e269772661 var: b, -> hash = 92eb5ffee6ae2fec3ad71c777531578f 2: var: a, then hash = 4a8a08f09d37b73795649038408b5f33 var: b, then hash = 4a8a08f09d37b73795649038408b5f33
28
Out of band communication – Browser HTTP heeft alleen in band communication 1 Request met code
Browser
Webserver 3 Nieuwe pagina
2 Genereert pagina met de code erin
29
Focus ligt op incidenten..
30
..Specifiek een blacklist van incidenten • OWASP top 10 • • • • •
Injection Cross-Site Scripting (XSS) Broken Authentication and Session Management Insecure Direct Object References Cross-Site Request Forgery (CSRF)
• SANS CWE/25 • • • • • •
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection') Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') Unrestricted Upload of File with Dangerous Type Cross-Site Request Forgery (CSRF) URL Redirection to Untrusted Site ('Open Redirect')
• WASC 24+2 • • • • • •
Cross-Site Scripting Cross-Site Request Forgery SSI Injection SQL Injection XPath Injection XQuery Injection 31
Principe Data
Client
Client
Logica
Contextsafe data + Logica
Interpreter
Interpreter
32
The Last Ninja
33
The Last Ninja
34
The Last Ninja
35
The Last Ninja
36
Aanvallen op een webapplicatie
37
The Last Ninja
Autorisatie 38
Principe
Actie1+token1 Actie2+token2
Client
Actie1+Token Actie3+token3 Actie4+token4
Applicatie
39
Aanvallen op een webapplicatie
40
The Last Ninja 2
Whitelist validatie 41
Principe
A, B, C, D
Client
A
Interpreter
42
Aanvallen op een webapplicatie
43
The Last Ninja 3
Referentie 44
Principe
1,2
Client
2
A=1,B=2
Applicatie
A,B B
Store
45
Threatmodel
Interactor Dataflow
Trustboundairy
Process Client Datastore
46
STRIDE Threat classification -Spoofing
-Tampering -Repudiation
-Information Disclosure -Denial of Service
-Elevation of Privileges
47
Threatmodel
Interactor Dataflow
Trustboundairy
Process Client Datastore
48
Trustmodel D/L
Interactor
Trustboundairy
Process
Dataflow
Client Datastore D/L
Splits data&logica, gaat dat niet dan encoden op context en middels whitelist 49
Trustmodel D/L
✔
Interactor
✔
Trustboundairy
Process
Dataflow
Client Datastore D/L
Clientside security bestaat niet, voer controles nogmaal zelf uit 50
Trustmodel D/L
✔
Interactor C R U D
C R U D
✔
Trustboundairy
Process
Dataflow
Client Datastore D/L
Whitelist voor opstellen mogelijkheden en valideer deze. 51
Trustmodel D/L
✔
Interactor C R U D
1 2 3 4
C R U D
1A 2B 3C 4D
✔
Trustboundairy
Process
A B C D
Dataflow
Client Datastore D/L
Gebruik een referentie wanneer objecten worden blootgesteld. 52
Overview
Fouten Principes
Trustmodels 53
staat voor resultaat
54