Säkerhetsintrång på datorer och nätverk blir allt vanligare. Ofta är det mycket allvarligt för de företag som blir utsatta. Förutom att tid och information går förlorad, kan ett säkerhetsintrång få konsekvenser både bland kunder och investerare. Så vad kan vi göra? Förutom att installera uppdaterade säkerhetsprogram, behöver vi kunskap om hur angriparna arbetar.
Det finns flera sätt att ta sig in i ett företags nätverk. En brandvägg skyddar mot mycket, men långt ifrån allt. Det lättaste sättet för en angripare att nå datorer innanför en brandvägg är att lura användaren att köra ett program som angriparen skrivit.
Programmet kan exempelvis vara ett modifierat rootkit som från användarens dator öppnar upp sessionen från användaren genom brandväggen och ut till angriparen. Alternativt kan rootkitet innehålla någon liknande funktionalitet som ger angriparen fullständig tillgång till användarens dator.
Maskera en trojan som innehåller ett modifierat rootkit
Till att börja med så måste angriparen skapa en trojan som användaren senare ska luras att köra. Angriparen börjar med att leta reda på lämpligt rootkit eller skapar ett själv.
Egenskaper hos ett ur angriparens synvinkel bra rootkit:
- Filer som tillhör angriparen syns inte när användare eller administratör letar i filsystemet.
- Angriparens processer är gömda för användare och administratör när de processer som är i gång kontrolleras.
- Program som Netstat visar inte de portar som tillhör den bakdörr rootkitet lagt upp.
- Det kan modifieras så att inte antivirusprogrammen känner igen innehållet på tillhörande filer, det vill säga antivirusprogrammet kan inte hitta angriparens filer.
- Det lägger upp en bra och gömd bakdörr, helst med tillgång till en kommandoprompt.
- Det kan konfigureras så att bakdörren startar en session mot angriparen, vilket gör att paketet på vägen ut ser ut som vanlig http-trafik initierad från datorn som attackeras när det går genom brandväggen. Krypterad trafik, exempelvis https gör att brandväggen inte kan verifiera trafiken. Öppnas sessionen dessutom när användaren surfar så kanske han/hon släpper ut paketet genom lokala brandväggen om det nu finns en sådan. Annars får rootkitet själv modifiera brandväggen för att tillåta trafiken.
Har man misslyckats med att modifiera rootkitets filer så kommer det förr eller senare att kunna hittas och identifieras av antivirusprogrammen. Då kommer det inte att kunna användas för att attackera datorer som kör uppdaterade antivirusprogram.
Rootkits innehåller ofta moduler som är till för att attackera både datorer på den attackerade datorns LAN och andra datorer på Internet, exempelvis DDOS- (Distributed Denial of Service) attacker. rootkitets moduler används även för att på olika sätt övervaka användaren på den dator där rootkitet är installerat.
Från Internet kan angriparen tanka ner en nyttoprogramvara - vilken som helst - för att skicka med sitt rootkit i. I exemplet nedan kommer gaim.exe användas för att skicka med ett rootkit.
När man packar filer i Winrar kan man välja att när den packade filen gaim2.exe körs så ska alla filerna packas upp i en katalog utan att det syns på skärmen för den som startar gaim2.exe, samt att ett script (gaim.bat) ska startas automatiskt.
Gaim.bat är ett script som angriparen gjort, som när det körs, automatiskt startar både rootkitet och gaim.exe. När gaim2.exe körs på en dator där rättigheterna tillåter användaren att installera program, kommer filerna i gaim2.exe att packas upp.
Därefter startar Gaim.bat automatiskt rootkitet och även installationen av programmet gaim. Användaren kan styra gaim.exe-installationen, men rootkitet är redan färdiginstallerat och skapar med sin magi bakdörrar med mera.
Även om användaren väljer att stoppa installationen av gaim.exe, är datorn osynligt helt i angriparens våld.
Sprida den skapade trojanen
Nu är det dags för angriparen att på något sätt sprida sitt program. Det kan göras på många mer eller mindre smarta sätt. Angriparen kan rikta vilka användare som ska attackeras men också se till att angreppen mer eller mindre slumpas ut.
Till exempel kan angriparen lägga programmet på disketter eller usb-minnen. Angriparen kan besöka receptionen på företaget som ska attackeras och lägga ifrån sig ett usb-minne eller en diskett så att det ser ut som om någon glömt det.
Det räcker oftast att lägga ut tre-fyra stycken minnen/disketter på lämpliga platser i närheten av företaget som man vill attackera. Då hittar nästan alltid någon på företaget minnet och kör programmet på sin dator. Framför allt om filen heter något intressant.
Vill man nå en specifik person kan e-post vara ett alternativ för att få ut sitt modifierade paket. Eftersom innehållet inte matchas av brandväggens antivirusfilter, ramlar det med största sannolikhet igenom.
Om företaget valt att filtrera bort bilagor som innehåller körbara filer, kan angriparen döpa om filen till .txt och skriva att den ska döpas om igen på mottagarens sida till .exe. Alternativt kan angriparen använda DC++ eller annan fildelningsprogramvara om det inte spelar någon roll vem som attackeras, eller om syftet är att attackera så många datorer som möjligt.
Använda bakdörren för att leta intressant information
När rootkitet väl är installerat på en dator, är angriparen på insidan. Nu kan han/hon på olika sätt attackera de andra datorerna på den datorns nätverk.
En attack på det lokala nätet kan börja med en Man in the Middle-attack som gör att några datorer på det lokala nätet skickar all data riktad mot Internet eller servrar via datorn med rootkitet installerat. Detta medför att den hackade datorn kan se och spara all förbipasserande data som inte är krypterad och med hjälp av färdiga program filtrera ut:
- e-post (som senare kan importeras till lämpligt e-post program)
- filer (filerna läggs upp i en katalog på datorn)
- SSL-krypterad trafik (https-trafik som okrypterat presenteras i textfiler)
- lösenord som sparas i tabellform från FTP, IMAP, POP3, Telnet, SSHv1, HTTP, HTTPS samt flertalet andra protokoll
- vissa krypterade Windows-inloggningar där man senare kan gå vidare med john the ripper eller lophtcrack för att testa sig fram till rätt lösenord
Med hjälp av remote key loggers kan användarens knapptryckningar detekteras. På så vis kan angriparen få inloggningskoder till banker. (De bankcertifikat som finns lagrade på den lokala datorn har angriparen redan tillgång till.)
Attackera andra datorer i samma eller kringliggande nätverk För att ta sig in i servrar och klienter där angriparen inte hittar lösenord eller liknande, går det även att leta efter vulnerabilities, sårbarheter. Med hjälp av nmap eller mer avancerade scanners som ISS och Nessus kan angriparen hitta olika sårbarheter.
Tidigare har det funnits mängder med sårbarheter mot de flesta applikationer och operativsystem. Några har kunnat utnyttjas för att ta sig in i ett system och få omfattande rättigheter, till exempel RPC-hålet på Windowsoperativen, sårbarheter i webbservrarna på både Windows och Linux, SSH på Linux och flera andra.
Använder angriparen de mer avancerade scannerprogramvarorna, går det ofta att få fram exakt vilka sårbarheter som finns på ett nätverk. Scannerprogramvarorna har ofta länkar till ställen där man kan läsa mer om specifika sårbarheter. Länkarna kan peka på leverantörens egen hemsida med lösningsbeskrivningar och patchar, eller på cve.mitre.org där kända sårbarheter dokumenteras.
När man följer vissa av de här länkarna, kan man även hitta så kallad Proof of Concept-kod. Det är källkod som publiceras för att påvisa att en sårbarhet existerar och på så sätt pressa programleverantörerna att snabbt skapa och släppa säkerhetsuppdateringar.
Proof of Concept -kod kan inte alltid användas direkt som attack-kod, eftersom koden är skriven endast för att bevisa att sårbarheten existerar.
Om planen är att ta sig in i en dator så måste man för det mesta modifiera Proof of concept-koden så att attacken går hela vägen och installerar en bakdörr eller ett rootkit. En attack mot IIS på Windows 2000 är ett exempel.
Då gick Proof of concept-koden bara så långt i sin attack att kommandot dir kördes i en katalog på servern och fick all output från kommandot skickad tillbaka till den attackerande datorn. Det gjorde knappast att angriparen kände att han hade full kontroll. Genom att modifiera koden kunde man göra mycket mer men i just det här fallet med begränsade rättigheter.
Vill man inte knacka kod själv, finns det alltid en möjlighet att köra färdig kod som andra har gjort och som går att hitta på Internet. Sårbarheterna är ofta väl dokumenterade och innehåller oftast CVE, CAN eller Bid-nummer som ger varje sårbarhet ett unikt nummer. Den som vill hitta färdig attack-kod kan söka efter dessa nummer på olika hack- och crack-hemsidor.
Med hjälp av egenknackad kod eller färdig kod som utnyttjar hittade sårbarheter, kan en angripare ta över fler system och installera ytterligare kopior av rootkitet. Många sårbarheter gör att valfri kod kan köras på den dator som attackeras. Andra ger bara möjlighet att köra kod med begränsade rättigheter och vissa tillåter oss bara att stoppa vissa tjänster.
Ett exempel är rPc-buggen som fanns i bland annat Windows 2003. Denna bugg kan utnyttjas för att fullständigt ta över en icke fullt uppdaterad Windows 2003-server. Nya sårbarheter hittas ständigt och nya säkerhetsuppdateringar måste kontinuerligt installeras för att skydda sig mot dem.
Angriparen får tillgång till det mesta
Genom att blanda olika typer av attacker, kommer angriparen ofta att ha tillgång till det mesta på det drabbade företagets nätverk via den första hackade datorn. Då kan företagets nätverk till exempel användas till att dela ut program, filmer och musik. Angriparen kan även använda nätverket till att dela ut annat olagligt material som barnpornografi. Dessutom kan nätverket och Internetuppkopplingen användas till att attackera andra datorer.
Alla datorer där en angripare lyckats få in ett rootkit är i angriparens våld. De enda lösningarna är att antingen helt installera om allt på datorn, eller köra ett uppdaterat antivirusprogram som hittar rootkitet.
Hur säker är du?
Hur ser det ut på er arbetsplats? Finns de senaste säkerhetsuppdateringarna på samtliga nätverksanslutna datorer och applikationer? Många tycker inte att det spelar någon roll ifall en enskild dator blir attackerad. Om det händer är det ju bara att installera om den specifika datorn, resonerar man. Men nätverket är inte säkrare än sin svagaste länk. Har en dator tagits över är det ganska enkelt för angriparen att gå vidare till andra datorer i nätverket.
Säkerheten handlar även om användarna och administratörerna. Har alla tillräckligt mycket kunskap för att verkligen klara av
ansvaret att välja vad som får göras och inte? Idag har de flesta företag mer eller mindre bristande säkerhet. Hemma hos den typiska bredbandskunden är det ännu värre. Att skydda sig helt är extremt svårt. Men rätt kunskap är en bra början.
Pär Björklund, lärare på Informator