Mjukvarusäkerhet och webbsäkerhet
Transcription
Mjukvarusäkerhet och webbsäkerhet
Attacker och skyddsmöjligheter Situationen i dagens internetdominerade datormiljö Grundfrågor att ställa sig idag • Vad vinner vi på att ansluta en tänkt ny tjänst till nätet, eller behålla en tjänst där? • Hur ändrar detta skaderisker för tjänst jämfört med att inte ha den via internet? • Hur ser balansen mellan vinst och risk ut för helt nya tjänster? För våra existerande tjänster? Exempel idag • Basstationer i mobilnät underhålls via nätet, inte via människor som låser upp larmad, fysisk dörr till basstationens dator. Hur vet vi nu att ingen obehörig installerar avlyssningsprogram, kopplar bort nätkryptering o s v via kända nätattacker? • Värme i sommarstugor styrs via enkel PINskyddad SMS-tjänst. Hur vet vi nu att ingen gissar PIN och på pin kiv sätter värmen under fryspunkten? Då vi identifierat (nya) risker • Exakt hur kan våra identifierade möjliga skador via nätuppkopplingen uppkomma? • Finns kända skydd mot just dessa hot? • Är skydden tillräckligt effektiva? • Stör skydden effektiviteten för den tjänst vi vill tillhandahålla? I så fall, till vilken grad? Problem, som fått stor uppmärksamhet i olika sorters media • • • • • • • • • Allmänna direkta ”inbrottsförsök” från nätet E-postburna virus/maskar/trojaner Spam Phishing Skimming ”Identity theft” Bot-nets och Denial of Service Massavlyssning Diverse tricks med webbsidor, adresser och länkar Problem specifika för vissa organisationer och personer • Åsiktsmotiverad DoS • Åsiktsmotiverade sabotage av hemsidor • Anställdas överutnyttjande av rättigheter, ”insiderproblemet” • Politiskt motiverad övervakning Ovanliga problem (tror vi) • Nätavlyssning (som får effekter för den avlyssnade) • Medvetet förfalskade signaturer eller certifikat • Industrispionage från konkurrent via dator • Medvetet sabotage från konkurrenter Men motexempel från närtid… • Stuxnet: Riktat sabotage • NSA och FRA: Total avlyssning, inklusive med aktiv hjälp av tjänsters tillhandahållare Motiv bakom attacker • Visa sig duktig, ”skrytfaktorn” • Direkt ekonomisk vinning • Komma åt åsiktsmotståndare och dem man ser som angripare eller kriminella, inklusive politiska motiv • Gynna egna staten/företaget • Nyfikenhet Medias standardråd • Ha brandvägg och virusfilter, och uppdatera dem. • Var misstänksam mot bilagor o s v. • Ladda inte ner saker från skumma sajter. • Besök bara välkända, pålitliga sajter. • Ha automatuppdateringar påslaget. • Välj bra lösenord Fungerar råden? Räcker de? • Uppdaterad brandvägg och virusfilter är självklart. Men de tar inte helt nya hot och hjälper inte mot säkerhetsluckor • Bilagor är nödvändiga för de flesta. Manipulerade sådana kan ha transporterats via betrodd kontakt. • Vilka sajter är skumma? Inga nya kontakter??? • Automatuppdatering stjäl ofta resurser just då datorägaren själv behöver dem, vilket gör att många slår av uppdateringarna. Datorn är alltid sårbar då den slås på, eller då uppdateringen inte skickats ut av leverantören än. • Lösenordteknikens svaghet har vi presenterat tidigare Hur långt räcker det vi hittills gått igenom i kursen? • Vi har lärt oss principer för användarautentisering, hur de bör implementeras och deras svagheter • Vi har snuddat vid vissa problem med nyckelhantering och certifikat • Vi har nämnt grundproblem med virusskydd och andra filter och med IDS • Så vad mer behöver kommenteras? • Låt oss först titta på listorna över välkända hot Kommunicerar jag med någon pålitlig? • Webb-läsaren kan varna för rapporterade skumma adresser, men det är lätt att flytta skumt innehåll till ny adress • Certifikat ska säkerställa att jag i alla fall nått avsedd adress, ”skum” eller inte, men fungerar det alltid? Problem med certifikat • Om Eve fått certifikat i Bobs namn blir Alice lurad. Eve dekrypterar allt avsett endast för Bob, och kan skicka data som Alice tror kommer från Bob. Falskt Microsoftcertifikat har varit i omlopp… • Äldre certifikat använde den numera knäckta SHA-1 för signaturen, vilket möjliggör skapande av falskt certifikat • Det är så vanligt att ärliga sajters certifikat har gått ut, så användaren struntar ofta i varningar om ogiltiga certifikat • Certifikat bygger på att klienten kan kontrollera certifikatets äkthet med en nyckel för signerande CA, men hur får man en pålitlig CA-nyckel? CA och certifikatsäkerhet • Om SSL/TLS får ett certifikat, kontrolleras att certifikatet gäller för anropad adressat och är signerat av godkänd CA. • SSL/TLS innehåller vid leverans vissa generella CAnycklar för verifiering av certifikat • Grundcertifikat signerade med någon av dessa nycklar ger möjligheter att kontrollera certifikat från utgivare på nästa nivå o s v i CA-träd • Om Bobs certifikat inte är utfärdat av CA i ett träd som Alice känner till, måste Alice själv hämta rätt verifieringsnyckel på ett säkert sätt för att våga lita på att hon kommunicerar med just Bob 14 Skydd mot virus/maskar/trojaner • Ständigt uppdaterad särskild skyddsprogramvara • Begränsa skademöjligheter om du drabbas: – Snäva behörigheter, särskilt för känsliga operationer, logga inte in som administratör i onödan – Minimering av automat-tjänster för e-post m m – Sandlådor i webbläsare • Ha back-up på ej ändringsbart medium, alltså inte i moln, där attackkoden kan ändra, och inte på fast monterat medium lokalt Spam • Spam är bara delvis ett säkerhetsproblem – Spam kan begränsa tillgänglighet genom överbelastning – Spam kan begränsa tillgänglighet genom att användaren slänger verklig post som förväxlats med spam • Åtgärder är adressfiltrering (black-list, white-list, grey-list) och innehållsfiltrering. Samt regler utöver black-list, som möjliggör blockering av uppenbara spam-källor. • Sortering av misstänkt spam till särskild mapp Phishing (lura användaren att sända t ex lösenord till fel adressat) • Phishing bygger på att attackeraren kan sända det kontrollanten förväntar sig vid ID-autentisering. • Motmedel måste bli att attackeraren inte vet vad mottagaren förväntar sig – ”Challenge - response” med kryptografisk styrka • Eller övergång till metod där attackeraren inte kan ta emot och därefter kopiera giltig signal – Förbindelse som är tidsberoende krypterad med godkänd mottagares nyckel – Autentisering av ”kontrollanten” innan sändning – Man-in-the-middle hindras inte av inledande autentisering!!! Enda skyddet där är innehållskryptering med ägarkontrollerad nyckel. Skimming (normalt = falsk avläsning av autentiseringskort) • Falska kortläsare kommer alltid att kunna tillverkas • RFID är bara mer lättlästa ”kort”!!! Deklarerat maximalt ”läsavstånd” gäller korrekthet för godkänd utrustnings funktion, inte att avläsning är omöjlig på längre avstånd oberoende av utrustning • Försvar är aktiva kort, som verkligen använder stark challenge-response. Kortets hemliga innehåll är ej åtkomligt för läsare. • (Fysiskt svårförfalskade kort är en annan möjlighet, som prövats historiskt) ”Identity theft” • Amerikanskt uttryck för att man gör saker i annans namn (och lyckas med det). Allt vanligare som ”identitetsstöld” även i Sverige. • Grundproblem: Ingen (egentlig) autentisering av identitet krävs. Lösenord krävs som mest, ibland bara kontonummer eller annan mer åtkomlig information som ”verifiering” av användarens ID. • Åtgärdsförslag innebär ofta endast att minska , inte utesluta, spridningen av data, som många måste känna till. Alltså ingen vettig grundåtgärd, då ändå många känner till det som påstås ”bevisa” ID. • Enda möjliga åtgärder: Applikationen/servern ska betrakta identiteten som preliminär och utan juridisk bindning tills verklig autentisering genomförts, aldrig godkänna det som flera känner till som bevis för ID, aldrig lagra och sända lösenord i klartext. Vid extra känsliga operationer ska starkare autentisering krävas. Användare ska se till att ha starka lösenord, som är olika för olika tillämpningar. Användarmisstag (t ex att sända hemligt innehåll till fel mottagare) • Begränsa alltid behörighet till ”need to know”/”need to handle” • Logga vad som händer, följ upp orsaker och förbättra systemet där misstag kan göras mindre sannolika • Automatkryptera allt på bärbara media • Åtgärda bristande användarvänlighet • Utbilda personalen (får aldrig ersätta något av ovanstående!!!) Botnets och Denial of Service • Två sidor: Att inte bli del av botnet och att hantera attack från botnet • Uppdatering av säkerhetshål är kritiskt för att inte bli del av botnet • Resurser och uppsättning av protokoll anpassade för att klara mer än normal belastning behövs • Beredskap för reducerad service (t ex förenklade och/eller färre tillgängliga webbsidor) under attack • Bra ISP, som kan hjälpa till ”Insiders” • Återigen inga onödigt vida behörigheter • Loggning • Spårning, inklusive individuell och säker användarautentisering • Utbildning (fungerar både klargörande och avskräckande, om den utförs rätt) Nätavlyssning • Bra kryptering är mycket lätt att åstadkomma idag. Enda ursäkten för att inte kryptera inom en organisation är att man verkligen inte ser något hot, även om data når andra än adressaten. • För allmän surfning blir problemet att tjänster ofta inte stöder bra kryptering, trots att sammanställning av kommunikation kan vara känslig även för ”oskyldiga” data. Och tjänsten kan samarbeta med avlyssnaren. • Högre säkerhet kräver mer komplex nyckelhantering än grundversioner Industrispionage via dator • Händer det??? Tja det finns kända fall, men oftare handlar det om att nästla sig in i företaget, utnyttja ”social engineering” o dyl. • Det är idiotiskt att inte inse möjligheten och bevaka säkerhetshål, ha restriktiv inre brandvägg i DMZ-konfiguration och ha snäva behörigheter internt Medvetet, riktat sabotage • Idag mest känt som DoS, ändring av dåligt skyddade webb-sidor och framkallande av tillfällig systemkrasch • Idag använt politiskt (Estland, Georgien, Taiwan kontra Kina o s v) och ”militant”, som mot vissa industrier och näringar • Fysiskt sabotage rekommenderades av 70-talets terrorister • Det verkliga hotet vore smygändringar... Hemsidessabotage • Ändring ska kräva hög behörighet (med bra autentisering för innehavaren) • Säkerhetshål ska automatbevakas • Rätt version ska finnas lätt tillgänglig för återladdning, men oåtkomlig från webbservern för ändring Och så alla webb-tricks! • Nedgradering av skyddsnivån i protokollet vid handskakning • Attack-URL som liknar måltavlans • DNS-spoofing – att dirigera om anrop till attackerarens sidor via DNS-avkodning • Dold vidaredirigering i länkar • Dolda knappar till länkar/åtgärder • Och att smyga in exekverbar kod Vad är exekverbar kod och vad är ”bara” data? Kod via hål i ”extrafunktioner” • Läsare (browsers) och verktyg för e-post har ofta många och diversifierade funktioner utöver grundfunktionen att förmedla innehåll • Typiska extrafunktioner är att följa länkar i dokument och webb-sidor, att öppna bilagor, editering och annat • Man kan inte presentera en bilagas typ m m utan att öppna åtminstone headern, och säkerhetshål där har gett möjlighet att få kod exekverad • Det är dålig säkerhetsarkitektur att göra alltför mycket automatiskt, utan att fråga användaren • Onödiga tjänster ska slås av Klassisk introduktion av kod: Buffer overflow/overrun • Internlagring i datorer blandar direkta maskininstruktioner, avkodbara instruktioner, pekare till programkod och rena data allt efter tillgängligt minnesutrymme • Om användaren (=attackeraren) lyckas skicka in datasträngar, som är längre än reserverat utrymme för indata, kan datasträngens innehåll överlappa utrymme där processorn hämtar instruktioner eller pekare på instruktioner Mobil kod • Mobil kod är ett samlingsnamn för all möjlig sorts programkod som är öppet till för att tas emot och automatiskt exekveras över nätet • Hit hör hemsides-applets, makron till ordbehandling och mycket annat • För webbläsare använder man i regel ”sandlåda”, d v s behörighetsbegränsning kopplad till varifrån koden kom, till exempel får koden bara läsa lagrade data som skapats av kod-avsändaren (gäller även cookies) • Signerad mobil kod har garanterad avsändare, men ingen som helst garanti för vad den gör med sin behörighet Scripts • ”Scripts” är egentligen bara benämning på en samlad serie instruktioner. • Scripts kan vara program på en server, där de utför uppgifter nödvändiga för att fylla webb-sidor med rätt uppgifter utifrån klientens anropsdata • Det kan också vara motsvarande funktioner, som körs i anroparens dator • Det kan vara en serie instruktioner från anropare Att få ”elaka” scripts exekverade • Cross site scripting, XSS, innebär att angriparen smyger in eget script i svar från ”pålitlig” webb-sajt, t ex genom säkerhetsluckor, genom att delar av svaret hämtas från opålitlig sajt utan att anroparen ser det o s v • Exempel: – Man kan lyckas ändra vidarelänk i den efterfrågade sidan eller ändra hämtningsadress för delar av innehållet – Man kan smyga in kod i det som borde vara text i fält som fylls i av användarna (kommentarsfält o s v) • Säkerhetshotet är framför allt att sådana insmugna script körs med den ”pålitligas” behörighet Cookies • Cookies är korta teckensträngar, som en tjänst lägger i en klients webb-läsare för att spara egen information från samma session eller en tidigare • Cookies är praktiska, eftersom tjänsten inte behöver spara kundspecifik information med egna resurser, och kan se information från tidigare sessioner med oidentifierad användare med variabel IP-adress • Cookies har standardformat, och kan därför avslöja mycket om klientens webb-aktiviteter • Cookies ska bara kunna läsas av den som skapat dem. Har kursen nämnt allt relevant? • Det dyker kontinuerligt upp nya tjänster och kommunikationsstrukturer med nya svagheter, liksom att nya svagheter hittas i det gamla • Vi har inte alls berört grundläggande säkerhetskärnor i OS, hårdvaruåtgärder o s v • Vi behandlar ”dolda kanaler”, att lista ut datainnehåll på annat sätt än att direkt läsa data, bara som ett enda exempel i labben • Kursboken (och OH till TSIT02) innehåller mycket mer! • Utnyttja chansen att fråga på sista föreläsningen!