eccf6dca5d90938969272c820e435a9b.ppt
- Количество слайдов: 24
Säkerhetsbrister & intrång KTH DSV Kista maj 2001 © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Vem är Anders Ingeborn? • Civ. ing. KTH Datateknik 2000 • Teknisk säkerhetskonsult i. Xsecurity – Penetrationstester, sårbarhetsanalyser – Banker, kärnkraftverk, mediebolag mm. • Frilansskribent – Nätverk&Kommunikation – Säkerhet&Sekretess © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Dagens föreläsning! • Säkerhetsbrister och intrång • Buffer overflow-brister, röd tråd: – Vad är det? – Varför intressant? – Hur fungerar det? – Exempel från verkligheten © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Vad är det? • Vad är ett program (Turing? ) – Maskinkodsinstruktioner i minnet • Brister som leder till att en angripare kan ändra dessa instruktioner – Full kontroll över programmet – Samma rättigheter som programmet © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Varför är detta intressant? • Otroligt effektiva och fräcka attacker – Ofta total kontroll över en server • 25 -30% av rapporterade brister – Morris Worm 1988 (fingerd & sendmail) – MS Internet Information Server 2001 • Kommer att finnas så länge programmerare sköter minneshantering (C) © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Vad är det exakt? • En angripare lyckas lura ett program att skriva utanför reserverat minne – ”Buffer overflow” – Styr om datorns instruktionspekare • Programmeringsfel – Ingen kontroll av buffertstorlekar vid kopiering av minnesblock © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
När kopieras minnesblock? • En serverappl. tolkar ett kommando – Läser inmatad info från angripare – Använder strcpy() • Angriparen styr mängden data som kopieras – Bättre: strncpy() • Programmeraren styr den maximala mängden data som kopieras © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Hur fungerar det? • Ett funktionsanrop • Returadress sparas på stacken • Lokala variabler reserveras på stacken • Stackminnet är sekvensiellt © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Exempel • code • stack © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
”Buffer Overflow” 00 12 FF 00 00 12 FF 04 00 12 FF 08 00 12 FF 0 C 00 12 FF 10 00 12 FF 14 © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Vi skriver över returadressen! • När anropade funktionen är klar – Deallokera de lokala variablerna • Lägg tillbaka gamla ESP • POP ESP – Gör RET till den anropande funktionen • Lägg tillbaka gamla EIP • RET, POP EIP • Vårt värde skrivs till EIP! © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Vart hoppar vi? 00 12 FF 00 00 12 FF 04 00 12 FF 08 00 12 FF 0 C 00 12 FF 10 00 12 FF 14 © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Alternativ för mer data Applikation 00 12 FF 00 00 12 FF 04 aa bb cc dd 00 12 FF 08 00 12 FF 0 C 00 12 FF 10 00 12 FF 14 Kernel 32. dll 00 12 FF 18 77 F 8 E 3 A 8 00 12 FF 1 C 00 12 FF 20 © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Vilken kod skickar vi? • ”Statiska instruktioner” – Förstöra information – Lägga till användare – Virus • Mer dynamiskt – Ladda ner ett program och starta det – Internet. Open. URL, Internet. Read. File © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Helt dynamiskt • Kommandoskal över nätverket! – Öppna en socket – Loop • Lyssna på inmatning från angripare • Lägg på egen stackarea • Anropa systemfunktion, typ Win. Exec() – Bind cmd. exe till socket © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Kom ihåg • Samma rättigheter som det attackerade programmet! – Kanske en del av operativsystemet? • Erfarenhet: – Många serverapplikationer körs med administratörsrättigheter – Gäller även ”viktiga företag” © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Exempel från verkligheten • Microsoft • ”ASP-buggen”, dec 2000 <script language=#######> • ”Printerbuggen”, apr 2001 GET null. printer HTTP/1. 1 Host: ############## © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Mer exempel • DNS – BIND-TSIG, feb 2001 – BIND-NXT, jan 2000(? ) • FTP-GLOB, mar 2001 • NTP, apr 2001 • Oracle AS, apr 2001 – HTTP-anrop via i. Planet webbserver © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Attack mot ett vanligt företag • Buffer overflow-brist i externt tillgänglig internet-tjänst – DNS, FTP, HTTP etc. • Kommandoskal över internet – Plattform för vidare attack in mot applikationsservrar, databasservrar etc. © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Men brandväggar då? • Använd samma portar som tillåtna applikationer • Brandväggen kanske tillåter anslutningar inifrån och ut? – Låt servern ansluta till dig istället! © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Var får man information? • Bug. Traq – www. securityfocus. com • CERT – www. cert. org • Företag – Eeye, NAI Covert Labs – i. Xsecurity : -) © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Lästips • Hack proofing your network, av Greg Höglund m. fl. • Smashing the stack for fun and profit av ”Aleph One” • Win 32 Buffer Overflows av ”Barnaby Jack” • (Cuckoo’s Egg av Clifford Stoll) © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Frågor ingeborn@ixsecurity. com © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
Bonusbild vid tid över • Styrning – Direkthopp – Registerhopp – NOP-sled • Kod – XOR-”kryptering” skydd mot 0 – Load. Library & Get. Proc. Address © Anders Ingeborn 08 -662 10 70 www. ixsecurity. com
eccf6dca5d90938969272c820e435a9b.ppt