Säkra system En profil om säkerhet och programvara Profilansvarig: Nahid Shahmehri
En liten saga SQL Slammer Januari 2003
Problemet Stackbaserad buffer overflow i MS SQL server 2000 Ett UDP-paket med 376 bytes lät vem som helst köra kod med systemrättigheter I snitt 4000 försök per sekund; 90% av sårbara system infekterades på 10 minuter
Skadan Ungefär 75000 system infekterades Bank of America: bankomatsystemet slogs ut Continental Airlines: försenade och inställda flyg City of Seattle: 911 (larmnummer) utslaget Liknande maskar (2003) CSX railways: trafikstörningar i en vecka Canadian Airlines: inställda flyg Många företag, myndigheter och organisationer stängdes helt Ungefärlig kostnad: tiotals miljarder kronor
Ännu fler fall Maskar med extra hög profil 1988 Internet Worm 2001 Sadmind, Code Red, Nimda 2003 SQL Slammer, Blaster, Welchia Sophisticated cybercrime is big business, often run by organized crime rings whose programmers get paid top-dollar, and it s fairly easy pickings for them, because we have not yet done a very good job of protecting ourselves. -- Eugene Spafford 2004-2010 Sasser, Zotob, Conficker 2010-2012 Stuxnet, Duqu, Flame Andra fall med hög profil 2004 CardSystems: 40 miljoner kortnummer på vift 2007 Heartland Payment Systems: 130 miljoner kortnummer 2007-2010 Distribution av malware från pålitliga webbplatser
1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 Sårbarhetstrender 12000 10000 8000 6000 4000 2000 0 NVD OSVDB CERT/CC
Programutveckling i dag Utvecklare fokuserar på funktionalitet, inte säkerhet Korta ledtider Säkerhet är ofta en efterkonstruktion De flesta utvecklare vet för lite om säkerhet Säkerhetsprinciper följs sällan Demand for secure software is much higher than available security expertise. -- Jose Maria Cavanillas, NESSI Moderna programvarusystem är stora och komplexa Men: Företag börjar få upp ögonen för säkerhetsproblem Stor efterfrågan på ingenjörer med säkerhetskompetens!
Profilen: Säkra system Profilens mål Du ska vara förberedd för att utveckla och leda utveckling av säkra programvaruintensiva system Tre grundpelare Säkerhetskompetens, särskilt inom programvara Kunskap om programutvecklingsmetoder Kompetens inom programvaruteknik
Profilen: Säkra system Obligatoriska kurser Datorsäkerhet Programvarusäkerhet Informationssäkerhet, fk Designmönster Programvarutestning We wouldn t have to spend so much time, money, and effort on network security if we didn't have such bad software security -- Bruce Schneier Valbara kurser Avancerad programutvecklingsmetodik Avancerad webbprogrammering Avancerad programmering i C++ Avancerade nätverk Datornät Databasteknik Webbprogrammering och interaktivitet Kryptoteknik Rekommenderade kurser Datajuridik, komponentbaserad programvara, kompilatorteknik, distribuerade system
Säker programutveckling Skapa medvetenhet om säkerhet Utveckla med säkerhet i åtanke Explicita säkerhetskrav Säkerhet i specifikation, arkitektur och design Säker kodning med regler och mönster Oberoende granskning och utvärdering
Programvarusäkerhet TDDC90 Skapa medvetenhet om säkerhet Utveckla med säkerhet i åtanke Typiska sårbarheter i program skrivna i C/C++ Buffer overflows på stack/heap, integer overflows, race conditions, Exploits Labb om buffer overflows: Bryt dig in i en (virtuell) maskin med hjälp av en sårbarhet och täpp till sårbarheten. Sårbarheterer i webapplikationer Injektionsbuggar, XSS, CSRF, Labb där man får testa på olika attacker
Programvarusäkerhet TDDC90 Explicita säkerhetskrav Säkerhet i specifikation, arkitektur och design Säker kodning med regler och mönster Utvecklingsprocesser för säker programvara Designmönster Ackreditering Oberoende granskning och utvärdering Kodgransking Statisk analys Fuzz-testing
Information security TDDD17 Företag över hela världen förlitar sig idag på sina IT-tjänster: Banker har flyttat sin verksamhet till Internet från sina kontor. Söktjänster samlar in och sparar stora mängder information. Småföretag säljer sina produkter via Internet. Sjukvården blir mer och mer digitaliserad. En förminskning, eller totalt stopp, av de viktiga IT-tjänsterna kan kosta ett företag stora summor, men kan också göra så pass stor skada att företaget inte kan återhämta sig. 13
Information security TDDD17 Informationsteknologi handlar om att hantera information: Lagring av information Förändring av information Förflyttning av information Presentation av information Informationssäkerhet (Information security) handlar då om att säkra informationens konfidentialitet, integritet och tillgänglighet när den är lagrad, när den ändras, när den förflyttas och när den presenteras. 14
Information security TDDD17 Kursen tar upp följande ämnen som alla är en viktig del för information security: Network security Advanced user authentication System security Risk analysis and management Business continuity planning and disaster recovery planning Physical security 15
Information security TDDD17 Kursen består av föreläsningar, laborationer och projekt: Föreläsningarna ges av lärare på IDA samt gästföreläsare som är experter inom sina områden. Ett antal laborationer ges där man får testa på tekniker för information security. Ett projekt genomförs där man får möjlighet att ytterligare fördjupa sig inom ett ämne. 16
Profilen: Säkra system För mer information http://www.ida.liu.se/edu/ugrad/program/profiler/secsy/ Profilansvarig Nahid Shahmehri IDA/ADIT Tel: 013-282066 E-mail: nahid.shahmehri@liu.se Avdelningschef för ADIT Forskningsledare för nätverks- och säkerhetsgruppen