Security theorie Omdat theorie heel praktisch is Arjen Kamphuis & Menso Heus arjen@gendo.nl menso@gendo.nl
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
arjen@gendo.nl menso@gendo.nl Slides: gendo.nl