© Anders Ingeborn 2002 Säkerhetsanalys av applikationer Internet Security Summit 2002.

Slides:



Advertisements
Liknande presentationer
Talföljder formler och summor
Advertisements

Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
© Anders Ingeborn Säkerhetsbrister & intrång KTH DSV Kista maj 2001.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Att söka och förvalta kunskap
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
E-post juni 2013.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
Azure Web sites IRL Robert Folkesson Active
PKI – en del av säkerheten i SSEK
Programstruktur: C för enchipsdatorer
Funktioner och programorganisation
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 6 – Vecka INNEHÅLL  Hantering av användarkonton och användargrupper  Användning av Sudo för delgering.
För utveckling av verksamhet, produkter och livskvalitet. Rekursiva algoritmer, en annan sort tänkande -Hur -När -Bra/Dåligt (kap 7)
Trådlös (o)säkerhet Vanliga missuppfattningar Det krävs dyr utrustning Vi har inte trådlös access Vi är säkra för vi använder kryptering Vi är säkra för.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
IKEv2 En halvformell analys. Agenda IKEv2 – protokollet i huvuddrag Proverif – bakgrund, funktion Analys – fokus Modell – abstraktioner, förenklingar.
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Att programmera i språket Java
Säkerhet i praktiken – med Windows Server 2003 och XP! Marcus Thorén, MCT, MCSE+Security Security Consultant Nexus Security Consultants Technology Nexus.
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl Internetprogrammering F 14 Läs också: Kursboken.
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem.
Programmering B PHP Lektion 2
Pekare och speciell programstruktur i inbyggda system
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
© Anders Ingeborn 2002 ”Utblick verkligheten” Gästföreläsning Kryptografins grunder KTH 2002.
Programmering B PHP Lektion 3
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
© Anders Ingeborn Säkerhet i trådlösa LAN Älvsjö april 2001.
Välkomna! 1. Mobilitet i förändring – privatliv och arbetsliv vävs ihop! Johan Andersson Systems Engineer.
Wireless Technologies (Trådlös nätverksteknik) Security Considerations (Säkerhetsapaspekter)
William Sandqvist C:s minnesmodell.
Känna till och ha provat metoder och verktyg för processledning
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Grundläggande programmering
© Anders Ingeborn Säkerhetsbrister och intrång.
Elisabeth Ingesson, Kalmar Läns Landstingsavdelning 097
Modulär programutveckling
IT-säkerhet Gästföreläsning av Christian Ohlsson 2011.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
© Anders Ingeborn IT-säkerhetsprojekt Vinnande strategier.
© Anders Ingeborn, Infosec 2000 Penetrationstester Att bryta sig in i andras datorer.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Namnrum, räckvidd och rekursion Linda Mannila
© Anders Ingeborn Säkerhetsbrister & intrång Internetdagarna 2001.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Nyttan med en säker meddelande- och kommunikationsplattform Lasse Pettersson, Humandata.
Trådlösa Nätverk Caffe Latte Man-in-the-middle Denial of Service.
Datorer och privat säkerhet (privacy). Innehåll Handel på internet Risker som en användare utsätt för på internet Hur man skyddar sig från attacker Hur.
Problemlösningsmetodik
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
1.1. TechNet Security Summit 2004 Security Framework ”Introduktion av ”Security in Depth” Marcus Murray.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
HOST IDENTITY PROTOCOL - EN KANDIDAT FÖR FRAMTIDENS INTERNET PROTOKOLL Jonny Mattsson IT 4.
Varför UNIKUM? Genom att arbeta med IUP via Internet och verktyget Unikum vill vi uppnå flera saker: Ökad delaktighet i planeringen från föräldrar och.
© Anders Ingeborn 2000 ”Utblick verkligheten” Gästföreläsning Kryptografins grunder KTH 2000.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
OPERATIVSYSTEM OCH PRAKTISK LINUX Föreläsning 10 – Vecka INNEHÅLL  Säkra nätverksförbindelser  SSH (Secure Shell)  SSL (Secure Sockets Layer)
Maria Kihl och Jens A Andersson Kapitel 8: Säker datakommunikation.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
Trådlösa nätverk WPA v1 TKIP EAP Christian Johansson, Robin Nilsson, Jonas Rådström.
Anders Sjögren Funktioner något in och något annat ut.
Datasäkerhet 1.Skydda informationen – Ändra, förstöras eller kopieras 2.Säkerställa driften – Se till att program, datorer, servrar, nätverk och kommunikation.
Kristian Gustafsson Peter Sundström
Presentationens avskrift:

© Anders Ingeborn 2002 Säkerhetsanalys av applikationer Internet Security Summit 2002

© Anders Ingeborn 2002 Vem är Anders Ingeborn? • Civilingenjör Datateknik KTH • Säkerhetkonsult i eget företag – Fokus på produktevaluering • Frilansskribent • Föredragshållare

© Anders Ingeborn 2002 Bakgrund • Teorin – Många bra algoritmer – Många bra protokoll – Många bra modeller • Praktiken – Många osäkra produkter – Många osäkra IT-system – Många osäkra företag

© Anders Ingeborn 2002 Vad är det som brister? • Sällan matematiken • Ofta lösenorden • Design – Rätt mekanism på fel plats – Fel mekanism på rätt plats • Implementation – Slarv, stress...

© Anders Ingeborn 2002 Granskning/validering • Exempel på två problemområden – Kryptografi (t.ex. autentisering) – Minneshantering på låg nivå • Typer av granskning – Interaktion, ej labbmiljö – Maskinkodsanalys, labbmiljö – Källkodsanalys (annan föreläsning) • Kunden ofta mer intresserad än leverantören?!

© Anders Ingeborn 2002 Autentisering • Bevisa att något är äkta – T.ex. en identitetsangivelse • Användningsområde för lösenord – Naivt: ”Sesam öppna dig” – Inte så lyckat om någon kan avlyssna – Inte så lyckat om någon kan läsa databasen

© Anders Ingeborn 2002 Saltvärden • Bra för att ”skydda” lösenord – Lagring i lösenordsdatabas – Förhindra att två användare med samma lösenord får samma krypterade lösenord – En användare ska inte kunna dra slutsatser om en annan användares lösenord även om han/hon får en kopia av /etc/shadow etc • Slutsats – ”Saltvärden är bra”

© Anders Ingeborn 2002 Rätt sak på fel plats • Teori – Autentisering behöver säkerhet – Saltvärden är bra; ger säkerhet • Marknadsföring – ”...Our security measures encompass a complete package...”

© Anders Ingeborn : Autentisering

© Anders Ingeborn 2002 Utvärdering • Användarnamn i klartext • Autentisering i ett steg, ”Sesam…” • Ingen serverautentisering • Samma lösenord vid flera försök ger olika ”kryptosträng” – Saltvärden? • Slutsats: En bra mekanism använd i fel sammanhang

© Anders Ingeborn 2002 Liten liknelse • Ganska bra – Vaktpost ropar ”14” – Soldat svarar ”7” – Summa 21? Differens 7? • Ganska dåligt – Soldat ropar ”14 och 7”

© Anders Ingeborn 2002 En bättre autentisering • VPN implementeras ofta med protokollet IPSec • Autentisering, sekretesskydd, riktighetsbevarande etc. • Bättre än det mesta, t.ex. – Publika algoritmer – Challenge/response – Ömsesidig autentisering

© Anders Ingeborn 2002 IKE Aggressive-Mode, PSK Initiator Responder HDR, SA, KE, Ni, IDii --> <-- HDR, SA, KE, Nr, IDir, HASH_R HDR, HASH_I --> • Får man som angripare checksumman kan man försöka en attack med ordlista på lösenord/PSK • Slutsats: Även bra protokoll behöver anpassas till hotbilden!

© Anders Ingeborn 2002 Nu något om kryptering • Kryptering vs. nonsens • LDAP-kryptering, MD5-krypterat • ”...Krypterar med 256-bitars AES och dekrypterar med 2048-bitars Diffie Hellman...” • ”...A folder containing secret or confidential information becomes invisible when the archive is locked...”

© Anders Ingeborn 2002 Kryptografi/maskinkodsanalys • Inget nytt under solen – Auguste Kerckhoff – La Cryptographie Militaire 1883 – Säkerheten ska ligga i nyckeln inte i algoritmen • ”Hemlig specialutvecklad kryptering”

© Anders Ingeborn 2002 Räcker detta? • Det finns uppenbarligen gott om möjligheter att göra fel i alla fall • Program för t.ex. signering av filer – Bra algoritm, bra implementation, bra nyckel…men… – Privata nyckeln inkompilerad som en konstant i programkoden utan skydd • Glöm inte att skydda nyckeln!

© Anders Ingeborn : Binärkodsanalys

© Anders Ingeborn 2002 Något om ECB-mode • Electronic Code Book • Blockvis, oberoende kryptering – Block av krypterade data kan bytas ut • Riktighetsindikerande funktion – T.ex. en icke-linjär checksumma

© Anders Ingeborn : Exempel på ECB-mode

© Anders Ingeborn : Användning av ECB-mode badpassword:1007: 39ead569b79c7ea239ead569b79c7ea2: 12f21f3c752398a9b2b692c58ff9612e: • Lösenordet var ” ” • Men inget lösenord blir någonsin ”starkare” än 7 tecken

© Anders Ingeborn 2002 Minneshantering • Vanligaste typen av säkerhetsbrist de senaste tio åren – Rapport fr. Oregon Institute of Technology • Programmeringsspråken C & C++ • Övergripande förklaring – Skriva utanför reserverat minne – Skriva över sparad instruktionspekare – Styra om exekveringen till egen kod

© Anders Ingeborn 2002 Fyra generationer • Överskrivning i stack-minnet – strcpy, strcat etc. • En byte utanför – vektor[17] ger • Formatsträngar – sprintf( dst, ”%s”, src ); • Överskrivning i heap-minnet – Kontrollblock varvat med minnesblock

© Anders Ingeborn 2002 >telnet labbserver OK labbserver HELP %8x%8x%8x 5e6f7a8b9c0d1e2f3a4b5c6d >telnet labbserver 80 GET /index.html HTTP/1.1 Basic-Authentication: AAAAAAA...AAAAAA Connection to host lost... 5: Minneshantering/interaktion

© Anders Ingeborn 2002 Fördel med interaktion • Enkelt, kräver inga avancerade verktyg • Identifierar tanke-/beräkningsfel – ”Rätt” funktion: strncpy vs. strcpy – ”Rätt” plats: maxgräns för dynamisk inmatn. – Fel i alla fall – Beräknat maxgränsen fel • Ganska komplext med automatiserad maskinkodsanalys

© Anders Ingeborn : Exempel på tankefel while( buf[bufptr] != '\n' && buf[bufptr] != '\0' ) { if( buf[bufptr] == ' ' && argptr == 0) { argptr = bufptr + 1; } bufptr++; } if( argptr == 0 ) { strncpy( cmd, (const char *)buf, bufptr ); cmd[bufptr] = 0x00; printf( "Server log: Command: %s\n", cmd ); } else { strncpy( cmd, (const char *)buf, argptr-1 ); cmd[argptr-1] = 0x00; strncpy( args, (const char *)buf+argptr, (bufptr-argptr) ); }

© Anders Ingeborn 2002 Studera funktionsanrop • Maskinkodsanalys • Vilka argument skickas? • Vilka lokala variabler används? • Vilka funktioner anropas? – Importerade funktioner från delade systembibliotek?

© Anders Ingeborn : Exempel på ”formatsträng”

© Anders Ingeborn 2002 Avslutning • Falsk kryptografisk säkerhet är farligare än ingen säkerhet alls • Fel i minneshantering ger lömska fel • Räkna upp egenskaper.. – Nyckellängder, funktioner •..sämre än att utvärdera säkerheten – Common Criteria, ITSEC, TCSEC/OrangeBook, FIPS-140 etc.

© Anders Ingeborn 2002 Frågor?