Security theorie
Omdat theorie heel praktisch is
Arjen Kamphuis & Menso Heus
[email protected] [email protected]
Huisregelement • Artsen en geheimagenten uitgezonderd telefoons, honden en robots nu op stil. • Deze presentatie is Creative Commons licensed. Gebruik & deel! • Wij weten ook niet alles... stel moeilijke vragen!
http://creativecommons.org/licenses/by-nc-sa/3.0/nl/
Inbraken ontraceerbaar
Verbieden van ‘hacking’ helpt niet
Verbieden niet effectief als als identificatie van daders onmogelijk is
Wet/regelgeving zou zich moeten richtten op borgen van afdoende beveiliging
Beveiligingsbeleid van informatie
C ●
Confidentiality, wie kan er bij de data?
●
Integrity, is de data accuraat?
●
Availablity, is de data beschikbaar?
I ●
Gelden de regels voor iedereen?
A
'veiligheid'
ged
niek tech
rag
vertrouwelijkheid, integriteit & beschikbaarheid
Wat is het probleem?
• Integriteit van de data / functie • Beschikbaarheid van data / functie • Vertrouwelijkheid van data
• Integriteit van de data / functie • Beschikbaarheid van data / functie • Vertrouwelijkheid van data
Geplanned
Intern
Extern
Opportunistisch
Geplanned
Intern
Extern
Opportunistisch
Geplanned
Intern
Extern
Opportunistisch
Geplanned
Intern
Extern
Opportunistisch
Geplanned
Intern
Extern
Opportunistisch
Geplanned
Intern
Extern
Opportunistisch
Geplanned
Intern
Extern
Opportunistisch
Pro-tection
De-tection
Re-action
Sleutel brandkast!
Wachtwoorden
Hoe werken wachtwoorden? • Wachtwoorden zijn een combinatie van tekens die er voor moeten zorgen dat alleen degene die het wachtwoord weet toegang krijgt tot de afgeschermde gegevens of programma's. • Hoe langer de combinatie van tekens en hoe diverser de tekens, hoe ingewikkelder het wachtwoord te kraken valt • Wachtwoorden die makkelijk te herleiden persoonlijke informatie bevatten zijn onveilig (naam kat, geboortedatum, etc)
Wachtwoord combinaties
26x26x26 = 17.576 52x52x52 = 140.608 62x62x62 = 238.328
3 letters 3 LeTtErs 3 L3tT3r5
Door een grotere variatie van tekens groeit het aantal mogelijkheden enorm, maak daar gebruik van!
3 tekens, hoofd & kleine letters
Dictionary attack
Waarom je nooit bestaande woorden moet gebruiken: Vorig voorbeeld, 3 letters, 17.576 mogelijke uitkomsten. Er zijn ongeveer 3000 3letterige woorden in het Engels, gebruik je een bestaand woord dan heb je het heel veel makkelijker gemaakt!
Slappe wachtwoorden
Fout
Naam Geboortedatum
Alleen letters
Waarom
Persoonlijke info:
'geheim'
Makkelijk te raden
Van het web te halen Staat op je Hyves
Slechts 26 opties per karakter ipv 62
Staan vaak in 'dictionary' lijsten
Makkelijk te 'brute forcen'
Luie wachtwoorden:
Sterke wachtwoorden
Een goed voorbeeld: iG!)"p7&ct@@Z.f~ Een iets minder goed maar makkelijker te onthouden voorbeeld: @pp3l~fl4p!
Verschillende handige tools bruikbaar: KeePassX (crossplatform, GPL), 1Password (M RoboForm (Windows)
Let goed op je wachtwoord
Log nooit in vanaf onbetrouwbare locaties (internet café's, je pension in Frankrijk, je moeder's huis)
Log altijd uit in applicaties
Lock je workstation als je wegloopt
Zorg dat je password reminder niet online te vinden is
Help je gebruiker ... http://192.168.100.2:81/set_cookie.php? cookiename=autologin&cookievalue=arjen@gend o.nl:::<password_sits_here_in_plaintext>:::e1cf ab18a9b3ae1815576434aa3d4809&expires=12866 20129&referrer=http://portal.thalysnet.com/index. phphttp://192.168.100.2:81/set_cookie.php?
Gebruik verschillende wachtwoorden
Logging
Logging
Het belang van logs
Logbestanden laten je zien wie wat wanneer gedaan heeft Log niet alleen wat goed gegaan is maar juist ook wat fout gegaan is. Kees die succesvol inlogt is nuttige informatie, Kees die 492 pogingen doet om in te loggen net zo nuttig! Bekijk je logs regelmatig, zie je iets vreemds?
Het belang van logs
Logs laten als het fout gaat in sommige gevallen ook zien wat er fout gegaan is: Altijd handig voor onderzoek Niet altijd betrouwbaar: bij volledig compromised machine onduidelijk of wat je ziet echt is of wat de hacker wilt wat je ziet Heeft je web applicatie uberhaupt een log optie en wie bekijkt die dan?
User input validatie
'Zet daar maar neer'
Vroeger ...
Input eenvoudig te beheersen
Nu ...
Input komt van oncontroleerbare bronnen
Samy worm (myspace)
Binnen 20 uur 1 miljoen vriendjes
SQL Injection
Wachtwoorden negeren Databases droppen Data manipuleren Eindeloze pret...
SELECT * FROM Users WHERE username='input1' AND password='input2' “Zoek een gebruiker wiens username & wachtwoord voldoet aan de ingevulde waarde” SELECT * FROM Users WHERE username='input1' and password='' OR 1=1
User input validatie dus!
Waar komt je input vandaan?
Waar gaat mijn data naar toe?
Invoervelden website RSS Imports? Andere automatisch opgeslurpte data? Bestaat de kans dat mensen via mijn site andere sites besmetten?
Wie mag wat invullen, en waarom?
What is sourcecode? ●
●
programming language versus machine language
int main () { printf (“Hello World!\n”); }
compiler
Hello World!
^?ELF^A^A^A^@^@^@^@^@^@^@^@^@^B^@^C^@^A^@^@^@À<82>^4^@^@^@<9C>^G^@^@^@^@^@^@4^@ ^@^G^@(^@^Y^@^X^@^F^@^@^@4^@^@^@4<80>^4<80>^à^@^@^@à^@^@^@^E^@^@^@^D^@^@^@^C^@^@ ^@^T^A^@^@^T<81>^^T<81>^^S^@^@^@^S^@^@^@^D^@^@^@^A^@^@^@^A^@^@^@^@^@^@^@^@<80>^ ^@<80>^Ò^D^@^@Ò^D^@^@^E^@^@^@^@^P^@^@^A^@^@^@Ô^D^@^@Ô<94>^Ô<94>^^D^A^@^^A^@^@^F ^@^@^@^@^P^@^@^B^@^@^@ä^D^@^@ä<94>^ä<94>^È^@^@^@È^@^@^@^F^@^@^@^D^@^@^@^D^@^@^@( ^A^@^@(<81>^(<81>^ ^@^@^@ ^@^@^@^D^@^@^@^D^@^@^@Qåtd^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^F^@^@^@^D^@^@^@/lib/ld-linux.so.2^@^@^D^@^@^@^P^@^@^@^A^@^@^@GNU^@ ^@^@^@^@^B^@^@^@^B^@^@^@^@^@^@^@^C^@^@^@^F^@^@^@^E^@^@^@^A^@^@^@^C^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^B^@^@^@^@^@^@^@^D^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@D^@^@^@ ^@^@^@^@ú^@^@^@^R^@^@^@.^@^@^@^@^@^@^@9^@^@^@^R^@^@^@5^@^@^@À<84>^^D^@^@^@^Q^@^N ^@^A^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^U^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@_Jv_RegisterCl asses^@__gmon_start__^@libc.so.6^@printf^@_IO_stdin_used^@__libc_start_main^@GLI BC_2.0^@^@^@^B^@^B^@^A^@^@^@^@^@^A^@^A^@$^@^@^@^P^@^@^@^@^@^@^@^Pii^M^@^@^B^@V^@ ^@^@^@^@^@^@Ô<95>^^F^E^@^@Ì<95>^^G^A^@^@Ð<95>^^G^B^@^@U<89>å<83>èa^@^@^@èÈ^@^@^@ èã^A^@^@ÉÃ^@ÿ5Ä<95>^ÿ%È<95>^^@^@^@^@ÿ%Ì<95>^h^@^@^@^@éàÿÿÿÿ%Ð<95>^^@^@^@éÐÿÿÿ1í^ <89>á<83>äðPTRh^P<84>^h°<83>^QVh<84><83>^è¿ÿÿÿô<90><90>U<89>åSè^@^@^@^@[<81>ÃÓ^R ^@^@P<8B><83>^T^@^@^@<85>Àt^BÿÐ<8B>]üÉÃ<90><90><90><90><90><90><90><90><90><90>U <89>å<83><80>=Ø<95>^^@u-¡Ü<94>^<8B>^P<85>ÒtESC<8D>¶^@^@^@^@<83>À^D£Ü<94>^ÿÒ¡Ü <94>^<8B>^P<85>ÒuëÆ^EØ<95>^^AÉÃ<89>öU<89>å<83>¡¼<95>^<85>Àt!¸^@^@^@^@<85>Àt^XÇ^D $¼<95>^è<8C>|û÷<8D>¶^@^@^@^@<8D>¿^@^@^@^@<89>ì]ÃU<89>å<83><83>äð¸^@^@^@^@)ÄÇ^D$Ä <84>^è^PÿÿÿÉÃ<90><90><90><90><90><90><90><90><90><90><90><90><90><90>U<89>åWV1öS <83>ì^Lè ^@^@^@<81>Ã^@^R^@^@è-þÿÿ<8D><93>^Tÿÿÿ<8D><83>^Tÿÿÿ)ÂÁú^B9Ös^\<89>×<8D>´
'Be-evil-dag' ●
● ●
Medewerkers aanmoedigen gaten in procedures te vinden Beloon belangrijke vondsten Maak er een event van!
Aan het werk! Wat moet een organisatie de komende 24 uur/dagen/maanden doen?
Dag, dagen, maanden
Acute brandjes blussen
Verantwoordelijkheid toebedelen
Personeel bewust maken en opleiden
Strategische plannen maken
Strategische plannen uitvoeren
[email protected] [email protected] Slides: gendo.nl