Forord. Med venlig hilsen, Orod Badjelan. Af Orod Badjelan, DIKU august 2001 1. http://www.diku.dk/students/orod



Relaterede dokumenter
Forår Firewalls

Gode råd til netbankbrugere - sikring af en typisk hjemme-pc med adgang til netbank

Infrastruktur i hjemmet og begreber

Opbygning af firewall regler. Overvejelser med mere

TCP & UDP. - de transportansvarlige på lag 4. Netteknik 1

Indholdsfortegnelse: Firewall Erhvervsakademi Midtjylland

Basal TCP/IP fejlfinding

Router U270 funktionsbeskrivelse

Trådløst LAN hvordan sikrer man sig?

Hvad du søgte efter Identiteten på det websted, du besøgte umiddelbart før vores websted (henvisende websted).

UniLock System 10. Manual til COM Server CV72. Version 1.0 Revision

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning

3. Menuen Start -> Programs -> OpenVPN åbnes, og "My Certificate Wizard" vælges:

Keepit Classic. Keepit Classic Relaterede Problemer

Ruko SmartAir. Updater installation

Network Admission Control

ARP og ICMP. - service protokoller, som vi ikke kan undvære! Netteknik 1

Computer Networks Specielt om Infrastrukturer og Teknologi

M A D S L A R S E N, A S G E R B A L L E G A A R D & J O N A S K R O N B O R G R O S K I L D E T E K N I S K E G Y M N A S I U M.

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Deling i Windows. Netteknik 1


Revision af firewall. Jesper B. S. Christensen. Sikkerhed og Revision 6/7 September 2018

Fuld installation af Jit-klient

Hub & Lag 2 Switch. - Ethernet-enhederne fra lag 2! Netteknik 1

Analyse af Intruder Detection Systemer

Arduino Programmering

Adgang til internettet Manuel login: Automatisk login: Benyttelse af router:

Deling i Windows. - via NetBIOS eller Hjemmegruppe! Netteknik 1

Kursusgang 11. Oversigt: Sidste kursusgang Værktøjer til udvikling og implementering af HCI-design Oversigt over Java Swing

IT Support Guide. Opsætning af netværksinformationer i printere

beskrivelse af netværket på NOVI

SOSIGW. - Driftsvejledning for SOSIGW 1.0. Indeks

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Intrusion Part 1 of chapter 9 Frederik Alkærsig & Henrik Holmgren-Jensen

Grundopsætning af router.

Sikker netværkskommunikation

Datanet Obligatorisk opgave 2: TCP. René Hansen Michael Nilou Anders Bjerg Pedersen Hold september 2007

VLAN - Virtual Local Area Network

Velkommen på kursus hos Microworld

Sikkerhed i trådløse netværk

Netværk, WAN teknik. Introduktion til VPN. Afdeling A Odense. WAN kredsløb. Hovedkontor Viborg. Afdeling B Roskilde

Teknisk beskrivelse til TDC Managed Firewall

AF2208N og AF2208N + trådløse Wi-fi forstærker / AP Long-range

Sådan logger du ind... 2 Hvilke mapper kan du tilgå... 3 Visning af eksempel af en fil... 5 Sådan deler du en fil... 7 Se hvad du deler med andre...


smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15

har jeg hentet nedenstående anmeldelse af et godt program til

DAU REMOTE ACCESS LØSNINGSMULIGHEDER OG TEKNOLOGIER MED REMOTE ACCESS JOHN AMMENTORP

Google Cloud Print vejledning

Ofte benyttes betegnelsen virus om alle former for skadelig kode, men det er ikke helt korrekt.

Overvågningskamera. ~Af Svend, Valdemar og Frederik~

Microcontroller, Arduino

Google Cloud Print vejledning

Distributed Denial-of-Service (DDoS) Attack - og hvordan man forsvarer sig imod det. Bo Lindhøj Artavazd Hakhverdyan May 21, 2012

Kaminsky DNS exploit

STOFA VEJLEDNING SAFESURF INSTALLATION

MANUAL. Præsentation af Temperaturloggerdata. Version 2.0

VIGTIG information til alle kunder som kører backup over Internet via SSL - Kræver kundeaktion inden 17. april 2009!

Digital skriftlig aflevering med Lectio Censormodul Stedprøver installationsvejledning

FleeDa (DBK Fleetmap Database) Installationsvejledning til installation af VPN og FleeDa klient på egen PC (Juli 2017)

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

Det Danske Filminstitut byder velkommen til vores UDP Server. Pligtaflevering - Version 2.0

ViKoSys. Virksomheds Kontakt System

Vejledning til Teknisk opsætning

Introduktion til computernetværk

Delfi Connect. Bruger vejledning 1. TILSLUTNING INSTALLATION MENUSTRUKTUR...4

Multiguide til C903IP

Her kan du læse om OSI modellen, og de 7 forskellige lag. Der er en mindre detaljeret beskrivelse udfra hvert lag.

PID2000 Archive Service

Netservice Netservice-menuen giver dig mulighed for at opsætte og aktivere/deaktivere forskellige netfunktioner på kameraet.

Application Note: AN-Z05

VLAN. - mange logiske net på ét fysisk! Netteknik 1

WLAN sikkerhedsbegreber -- beskrivelse

Procesbeskrivelse - Webprogrammering

Nøglehåndtering. Sikkerhed04, Aften

Instrukser for brug af it

Sektornet VPN Installationsvejledning Windows Vista/7

Understøttelse af LSS til NemID i organisationen

Fjernadgang til BEC s systemer via Portal2

Videregående pc-vejledning

Nexus IP Quickguide. Til alle Nexus VW og FW modeller

IP Modul report / Netværks software manual 1.0 Funktions beskrivelse:

IPv6 sameksistens med IPv4. af Laurent Flindt Muller & Jakob Pedersen

Hvordan griber du moderniseringsprocessen an? Peter Janum Sode Senior Security Consultant

Projektopgave Operativsystemer I

IP version 6. Kapitel 1:Introduktion til IPv6. Ikke flere IP adresser?

Åbning af porte og UPnP

Freeware for PC security

Fjernadgang til BEC s systemer via Portal2

Hvad er KRYPTERING? Metoder Der findes to forskellige krypteringsmetoder: Symmetrisk og asymmetrisk (offentlig-nøgle) kryptering.

Indholdsfortegnelse for kapitel 2

Afinstaller alle andre programmer Vigtigt! Fjern alle andre antivirus programmer før du installerer Panda Internet Security Mere end et antiviru

Brugervejledning - til internetbaseret datakommunikation med Nets ved hjælp af HTTP/S-løsningen

Web services i brug. Anvendelse uden for biblioteksverdenen

VLAN, Trunk & VTP. VLAN: Virtual Local Area Network

Som aftalt tilbud for installation af trådløst lokalnetværk med fælles tilslutning til Internet (ADSL) samt instruktion mv.

- City - gør det selv installation. - Vejledninger -

Sikkerhed på smartphones og tablets

Xenapps/Citrix klient opsætningsvejledning til Integra driftløsningen. Xenapps/Citrix basisport. Xenapps/Citrix Service. Xenapps/Citrix XML service

Transkript:

Af Orod Badjelan, DIKU august 2001 1 Forord Denne artikel er et projekt der blev gennemført på Datalogisk Institut ved Københavns Universitet som en del af kurset Projekter indenfor datanet. Formålet med opgaven er at skabe en forståelig og klar beskrivelse af problemstillingerne ved firewalls. Dokumentet skal analysere disse problemstillinger både på et akademisk og et pædagogisk niveau. Det betyder at jeg skal bruge en del tekniske ord der stammer fra andre områder i netværkssikkerhed (f.eks. netværksbegreber 1, kryptografiske begreber 2, adgangskontrol osv.). Da det vil være umuligt og forvirrende at gennemgå alt vedrørende netværkssikkerhed i et projekt, vil jeg begrænse mig til relevante emner inden for firewalls og dettes hjælpeværktøjer. For dem der måtte have behov for en lille forklaring af de tekniske ord har jeg lavet en liste i bilag C (ordforklaring) som giver en kort beskrivelse af selve begrebet og eventuelt en reference til anden litteratur til viderelæsning. Disse ord vil være markeret med kursiv. (For dem der læser den elektroniske version (HTMLformateret 3 ) vil der være en direkte link til forklaringen.) Med venlig hilsen, Orod Badjelan 1 Bilag A giver et kort gennemgang af TCP/IP modellen 2 Bilag B giver en god introduktion til emnet kryptografi 3 HTML-versionen findes både på den medfølgende diskette samt på min hjemmeside under adressen http://www.diku.dk/students/orod Bemærk: Enhver ikke kommerciel brug af dette dokument er tilladt under forudsætning af at forfatterens og indholdets integritet bevares.

Af Orod Badjelan, DIKU august 2001 2 Indholdsfortegnelse Forord... 1 Indholdsfortegnelse... 2 1 Indledning... 5 2 Trusler og Sårbarheder på Nettet... 6 2.1 IP sårbarheder... 6 2.2 Uautoriseret aflytning og adgang... 8 2.2.1 Afbrydelse ( Interruption )...8 2.2.2 Aflytning ( Interception )... 9 2.2.3 Modifikation( Man in the middle )...9 2.2.4 Fabrikation...10 2.3 Ondskabsfulde programmer... 10 2.3.1 Bruger host programmer (afhængige)...10 2.3.2 Uafhængige ondskabsfulde programmer...13 2.3.3 Bugs og programmernes indbyggede fejl...14 2.4 Word Wide Web (WWW)... 15 2.4.1 Web Browser...16 2.4.2 Server Side Script...16 2.4.3 Klient Side Script...17 3 Introduktion til Boundary Protection Systemer... 20 3.1 Repeater og hub... 20 3.2 Bridge og switch... 20 3.3 Routere og firewall... 21 4 Fordele og ulemper ved firewalls... 22 5 Firewalls terminologi... 23 6 Firewall typer... 25 6.1 Pakkefiltrering (packet filtering)... 25 6.1.1 Fordele...26 6.1.2 Ulemper...26 6.2 Dynamisk Pakkefiltrering ( Dynamic Packet filtering )... 27 6.3 Tilstandsbaseret pakkefiltrering( Stateful Packet filtering )... 28 6.4 Proxy gateway... 29 6.4.1 Fordele...30 6.4.2 Ulemper...30 6.5 Circuit level gateway... 31 6.6 Guard... 33 6.7 Bastion Host... 33 7 Firewalls arkitektur... 35 7.1 Dual-Homed Arkitektur... 35

Af Orod Badjelan, DIKU august 2001 3 7.1.1 Fordele...36 7.1.2 Ulemper...36 7.2 Screened Host Arkitektur... 36 7.2.1 Fordele...37 7.2.2 Ulemper...37 7.3 Screened Subnet Arkitektur... 38 7.3.1 Fordele...39 7.3.2 Ulemper...39 7.4 Arkitektur med Multiple Screened Subnet... 40 7.4.1 Split-screened subnet...40 7.4.2 Uafhængige Screened Subnets...41 7.5 Variationer af Firewall Arkitektur... 42 8 Firewall Design... 43 8.1 Hvad er dit behov?... 43 8.1.1 Hvad skal firewall gøre for dig?...43 8.1.2 Hvad er dine begrænsninger?...44 8.2 Evaluering af de produkter der er til rådighed... 44 8.3 Styring og konfigurering af systemet... 44 9 Firewalls venner... 46 9.1 Sårbarheds scanner... 46 9.2 Virus scannere... 47 9.2.1 Basis anti-virus teknikker...47 9.2.2 Avancerede Antivirus teknikker...48 9.3 Intruder Detection Systemer (IDS)... 49 9.3.1 IDS Analyse Metoder...50 9.3.2 IDS Typer ( Monitor Level )...52 9.3.3 IDS som Automatisk Reagerer på Angreb...54 9.3.4 Honey pot & Padded Cell systemer...55 9.4 Virtuelt Privat Netværk(VPN)... 56 10 Afslutning... 57 11 Konklusion... 58 12 Litteratur liste... 59 Bilag A... 60 Netværk terminologi... 60 Hvad er en pakke?... 60 Netværks topologi (TCP/IP modellen)... 60 Fysisk lag... 61 Internetlag (IP lag)... 62 Transportlag... 63 Applikationslag... 66 Bilag B... 67

Af Orod Badjelan, DIKU august 2001 4 Kryptografi... 67 Hvad er kryptografi... 67 Symmetri kryptering (privat nøgle)... 68 Asymmetri kryptering (offentlig nøgle)... 69 Hash funktion... 71 Digital underskrift... 71 PGP (Pretty Good Privacy)... 72 Nøglefordeling... 73 Web trafiksikkerhed... 74 Bilag C... 76 Ordforklaring... 76

Af Orod Badjelan, DIKU august 2001 5 1 Indledning Inden jeg kan begynde at snakke om firewalls, er jeg nødt til at forklare hvad der egentlig menes, når man nævner en firewall. Vi ved alle sammen hvordan man kontrollerer indgang og udgang af et land i en international lufthavn, hvor alle skal stå i kø og komme gennem en hel masse sikkerhedskontroller. En sådan lufthavn har normalt en udgang og væggen omkring lufthavnen er godt beskyttet. En firewall kan sammenlignes med en sådan anordning. Man ønsker at sikre sine computere, og selvfølgelig er dette lettest ved at tvinge al trafik til at gå igennem et bestemt punkt, og så prøve at sortere i hvem der må komme ind og hvem der ikke må i dette ene punkt, ligesom man ved paskontrol afviser uønskede turister. Ideen ved at have så få som muligt (helst en) international lufthavn i et land er at man kan forøge sikkerheden og formindske omkostningerne. Selvfølgelig kunne man godt prøve at sikre hver enkelt computer, men dette ville være uhensigtsmæssigt både i opsætning og vedligeholdelse af disse sikkerhedsanordninger. Ved at samle det hele på et sted er disse ting jo klart lettere, da man ikke skal rundt flere forskellige steder og opdatere. Det er dog ikke altid nok at spærre for uvedkommende udefra. Nogle gange har man fået noget personale inden for lufthavnen som har hjulpet terrorister ind i landet. Det er ikke en firewalls skyld hvis nogen indenfor organisationen hjælper udefra kommende med at skade netværket. Man skal betragte en firewall som en dør. Hvis folk kommer inde fra vinduet, er det ikke firewalls skyld. Hvis man ikke har sikret sig at alle andre forbindelser til nettet undtagen dem der kommer gennem en firewall er afbrudt, har en firewall ingen værdi. Der findes mange måder hvorpå man kan snyde sig ind i et land. Der findes også en række metoder som hackeren benytter for at komme ind i dit computersystem. I den digitale verden skyldes disse sikkerhedshuller ofte uhensigtsmæssigt programmel eller fysiske svagheder. Nogle af disse sårbarheder har ikke noget at gøre direkte med firewalls, men de eksisterer på grund af netværkssvagheder. Studier af disse svagheder ville hjælpe os med at implementere en stærk firewall. Næste afsnit vil gennemgå en række af de trusler og sårbarheder der findes på nettet. Derefter vil jeg give en kort introduktion til Boundary protection, som jeg synes det er nødvendigt at kende for at forstå Internet og firewall teknologien. På det tidspunkt har man et godt indtryk af netværket og dettes sårbarheder, og så kan man godt kaste sig over emnet firewalls.

Af Orod Badjelan, DIKU august 2001 6 2 Trusler og Sårbarheder på Nettet It is easy to run a secure computer system. You merely have to disconnect all dial-up connections and permit only direct-wired terminals, put the machine and its terminals in a shielded room, and post a guard at the door. -F.T. GRAMPP AND R.H.MORRIS [FIS] I år 2000 eksisterede Sovjetunionen ikke. Man kan ikke lukke en lufthavn for turisterne. Nogle af turisterne kommer med falske pas, nogle af dem er spioner, nogle har en dødelig sygdom, nogle har en bombe i deres kuffert, nogle vil sælge defekte varer, nogle er måske ikke kriminelle, men når de ser åbne butikker bliver de forvandlet til tyve. Men trods alle sikkerhedsforanstaltninger kan man ikke undgå uheld, fordi nogle af disse tilfælde er uundgåelige. Når man åbner sig for Internettet er man klar over nettets trusler. Derfor benytter man sig af sikkerhedsmekanismer som kryptografi, firewalls osv til at begrænse udefra kommendes rettigheder. Hvis man vil lave en komplet liste over disse svagheder, kan man nok skrive en bog om det. Herunder forsøger jeg at lave en kompakt liste over de vigtigste klasser i den kategori: 2.1 IP sårbarheder Internet Protokol (IP) er det første protokollag (Netværkslag) i den TCP/IP model der sørger for at alle data kommer til destinationen( for læsere der ikke har kendskab til TCP/IP modellen vil jeg henvise til bilag A). IP er en Connectionless og Stateless protokol. Dvs. at alle pakker er selvstændige og de kommer ikke fra den samme router hver gang. Denne facilitet skaber en del sikkerhedsproblemer hvor man ikke kan stole på pakkernes identitet og integritet. Herunder vil jeg pege på to af de indbyggede svagheder der eksisterer i IP version 4. Hvis man kigger i IP header(se figur 1) kan man se at bit 64 til bit 80 er reserveret til en checksum. Denne checksum er faktisk en blok checksum der bliver brugt til at kontrollere enkelte bit fejl under transmission af data. Denne checksum er ikke en krypteringsbaseret checksum. Hvis en hacker ændrer indeholdet af IP pakken, kan han også nemt ændre denne checksum. Derfor skal man ikke tage fejl og opbygge sikkerhedssystemet baseret på denne checksum. En anden svaghed ved IP header er feltet Source address (senderens adresse bit 96-128). Det er ikke nogen garanti at senderens adresse er den adresse som pakken virkelig kommer fra. Denne type angreb medfører en

Af Orod Badjelan, DIKU august 2001 7 klasse angreb der hedder Source address forgery attack, hvor hackeren sender sine ondskabsfulde pakker med et falsk IP nummer( senderens adresse) der ser ud som om de kommer fra en person (maskine) man stoler på og han håber på at man vil udføre nogen handlinger baseret på denne tillid uden at forvente at få nogen pakker retur (hvis man sender pakker tilbage, bliver de sendt til den rigtige adresse). F.eks. kan han sende en kommando sammen med pakkerne til ens system, hvorefter systemet sender ham en e-mail med ens password fil. I det tilfælde man bruger en TCP forbindelse, vil den rigtige maskine (ejeren af det forfalskede IP nummer) reagere på ens svarpakke ( ifølge trevejs handshake, se bilag A) ved at nulstille forbindelsen da han ikke har bedt om det. Dette er ikke hvad hackeren ønsker sig. Derfor skal angrebet være komplet før den rigtige ejer nulstiller forbindelsen. Denne situation er ikke ønskelig for en hacker. Derfor vil en hacker normalt sørge for at den rigtige maskine (ejeren af IP nummeret) går ned, før han foretager angrebet (f.eks. vha. DOS se afsnit 2.2.1).

Af Orod Badjelan, DIKU august 2001 8 2.2 Uautoriseret aflytning og adgang I den klassiske netværkssikkerhed opdeler man denne klasse i fire kategorier; afbrydelse, aflytning, modifikation og fabrikation. 2.2.1 Afbrydelse ( Interruption ) Her blokerer gerningsmanden for adgang til et system. Afbrydelsen kan foregå ved fysisk at ødelægge kommunikationsveje eller medier som data er lagret på (f.eks. kan man i vores lufthavn ødelægge landingsbanerne eller kontrolrummet). I computerverdenen vil en civiliseret hacker aldrig finde på fysiske angreb. Men man kan trække serveren ned ved at bombardere den med oversvømmende information. Forestil dig at du sidder i en stor organisation hvor du har adgang til 100 maskiner. Du sender 10.000 mails af størrelse 2MB fra hver af disse maskiner til en adresse på en vigtig server. Der er en grænse på hvor mange mails en server kan håndtere, før den går ned. Denne type angreb bliver kaldt Denial of service (DOS). Der findes ikke noget effektivt forsvar mod DOS. Man kunne måske replikere sin server således at i det tilfælde en af serverne går ned, så kan de andre sørge for at man kan udbyde sin service (replikering har også sine ulemper når man skal håndtere redundant data). DOS er upopulært, da man bruger så meget trafik som normalt kan spores tilbage til senderen.

Af Orod Badjelan, DIKU august 2001 9 2.2.2 Aflytning ( Interception ) Her aflytter hackeren al transmission (eller dele heraf) til eller fra en datakilde (brud på fortrolighed). Dette angreb er et passivt angreb og umuligt at opdage. Man behøver ikke engang have adgang til telefonlinjer. Med den nuværende teknologi kan man aflytte et kobber kabel fra 200m afstand eller man kan aflæse en skærm på en rimelig afstand. Aflytning bliver benyttet i spionverdenen. Man foretager aflytning med to formål. Man vil gerne enten fange password og følsomme oplysninger (f.eks. Dankortnummer) eller vil man benytte det til trafik analyse (f.eks. kan man gætte hvornår en militærbase er aktiv og hvilken enhed den er i kontakt med). Der findes en række værktøjer (protokoller) der giver mulighed for at etablere en sikker forbindelse mellem to endepunkter (f.eks. SSH). Nogle af disse værktøjer giver stærke krypteringsmuligheder til at hemmeligholde følsomme data (f.eks. kreditkortnummer) i de elektroniske handelstransaktioner (f.eks. SET og SSL). Disse værktøjer kan godt gemme indhold af data men de er ikke særlig effektive imod trafikanalyse, da en trafikanalytiker stadigvæk analyserer trafikken baseret på mængden af data, senderens og modtagerens adresse og antallet af forbindelser. Der kan man måske hæmme trafikanalysen ved at dække de interne adresser på de to store virksomheder ved hjælp af Virtuelt privat netværk VPN (det bliver gennemgået sidst i artiklen). Aflytning kræver at man enten har fysisk adgang til firmaet (dettes kabler), eller at man sidder på en router meget tæt på det ene punkt (helst den router deres firewall sidder på) da IP s natur kan tillade at pakkerne bliver sendt via forskellige routere. En form for lovlig aflytning bliver kaldt sniffing. Sniffing kan foretages af din netværksadministrator, hvor han kan kontrollere netværkstrafikken. 2.2.3 Modifikation( Man in the middle ) Her sidder hackeren mellem de to parter der kommunikerer med hinanden. Man afbryder forbindelsen mellem to punkter. Derefter præsenterer man sig selv som den modsatte part overfor begge parter. Man modtager data fra et punkt og modificerer det og sender det til modtageren. Denne type angreb er et brud på dataintegritet og skal tages alvorligt. Man kan benytte sig af kryptografi og timestamps for at undgå denne type angreb. For at kunne foretage denne type angreb skal man have adgang til en router tæt på et af knudepunkterne. IP s natur gør også denne type angreb besværligere, når de selvstændige pakker selv kan vælge forskellige routere afhængigt af internettrafikken.

Af Orod Badjelan, DIKU august 2001 10 2.2.4 Fabrikation Den type angreb er brud på autentifikation. I den simpleste form stjæler man en anden persons identitet (f.eks. brugernavn og password) og bruger det til at autentificere sig selv til en server. Session hijacking er et andet eksempel på fabrikation. I dette tilfælde finder hackeren en igangværende forbindelse mellem to parter f.eks. en bank og en kunde. Hackeren sørger for at kundens server går ned (DOS) og overtager sessionen. Der kan man også sikre kommunikationlinien ved hjælp af kryptering(f.eks. vha. SSH). Samtidig kan det kræves at hver transaktion bliver verificeret ved hjælp af digital underskrift( f.esk. vha. SET). Man kan også benytter sig af stærk autentifikation( f.eks. vha. smartcards) for at undgå en situation hvor kreditkort nummeret eller passwordet bliver stjålet. 2.3 Ondskabsfulde programmer Indtil nu burde det være klart at en hacker laver indbrud med henblik på brud på fortrolighed, integritet, autentifikation og afbrydelse (DOS). En smart hacker vil ikke bruge sin tid til at hacke manuelt på hvert enkelt system. Man skal bare lave nogen tiltrækkende programmer der har en ondskabsfuld identitet og lægge dem på en offentlig hjemmeside (shareware programmer) eller sende det til folk via e-mail ( I love you ). Jeg vil gerne opdele disse programmer i tre grupper: de programmer der er afhængige af andre programmer, de uafhængige programmer og de programmer der har indbyggede fejl. Der findes et stort udvalg af disse programmer. Herunder vil jeg kort pege på nogle af de mest populære typer. 2.3.1 Bruger host programmer (afhængige) Disse programmer har den egenskab at de skal gemme sig inden i andre host programmer. Nogle af dem er beregnet til at skade computeren og nogle af dem har økonomiske interesser. Man kan ofte finde ondskabsfulde programmer der indebærer en eller flere af de nedenstående karakteristikker

Af Orod Badjelan, DIKU august 2001 11 (f.eks. trojansk hest virus eller logisk bombe virus). Her gennemgår vi kun kort de vigtigste klassiske typer. Salami angreb: Programmet sender en lille sum penge hver gang fra en konto til en anden konto. Spildsamling: Programmet kan gendanne data der er blevet slettet fra disken (f.eks. Norton command). Covert channel: En kommunikationskanal der muliggør overførsel af informationer på en måde som ikke er udtænkt af designeren af denne kommunikationsfacilitet. Trap dør: Programmøren laver en bagdør i programmet for at kunne komme forbi sikkerhedsmekanismerne i udviklingsfasen. Ofte glemmer programmøren at slette disse bagdøre før produktionen. En af de tidligere versioner af Multics( et operativ system) viste sig at indeholde en bagdør som blev udbedret i senere udgaver. Trojansk hest: Dette er et program med en skjult sideeffekt som ikke er noteret i programdokumentationen. For eksempel er Back Orifice og Netbus to netværksmanagement utilities (hjælpe programmer) for Win95 og NT miljø som i virkeligheden er to stærke hacker programmer der tillader uautoriserede brugere at få adgang til systemet og overtage kontrollen med det indre netværk via Internettet. Logisk bombe: Dette er et skjult program, som bliver aktiveret hvis en bestemt betingelse bliver opfyldt. Casino virus er et virus der bliver aktiveret når systemet viser 15. JAN, APR eller AUG. Viruset inficerer kun *.com filer < 62905 bytes. Virus: Virus er også et afhængigt program der gemmer sig i et andet program og kan replikere sig selv. Virus findes i flere varianter. Et virus kan sprede sig fra en computer til en anden via netværk, diskette o.l., når man installerer (eller aktiverer) de modtagne inficerede programmer. Denne egenskab gør virus til computerens fjende nr.1. Virus kan opdeles i tre grupper (denne opdeling hjælper os med at generere antivirus programmer i afsnit 9.2). Gruppe 1: Disse virus er de nemmeste at opdage fordi de ændrer størrelsen af host programmet. Parasitic Virus: Denne virus sætter sig på eksekvere filer (.com,.exe, og.bat). Når man kører disse filer, replikerer de sig selv til de andre eksekvere filer. Starship og Dark Avenger er to eksempler på

Af Orod Badjelan, DIKU august 2001 12 parasitic virus. Starship bliver aktiveret når man modificerer filrettigheder på en smittet fil (langsom metode). Dark Avenger aktiveres når man åbner filen og smitter samtidig (hurtig metode). Componian virus (PATH): Denne virus udnytter den svaghed der findes i operativsystemet. I operativsystemet Dos (windows) gælder det at når man indtaster et filnavn, søger Dos først at finde en fil med det samme navn med efternavnet.com. Hvis det ikke findes, søger den efter efternavnet.exe og til sidst.bat. Viruset udnytter denne facilitet og gemmer sig i en brugbar fil med et højere prioritets efternavn (f.eks. autoexe.com). Den samme facilitet eksisterer i Unix, hvor man søger efter filen i den nærmeste path. Bootstrap virus: Denne virus kopierer master boot sektoren til et andet sted på disken og placerer sig selv i stedet for. Derefter opretter viruset en pointer der peger på starten af bootsektoren. Når man tænder maskinen (eller rebooter) bliver viruset først læst og ført ind i hukommelsen, derefter bliver bootsektoren læst ind og udfører sin service. Den Stonde virus (også kaldet New Zealand virus) er et godt eksempel på en virus der netop udfører samme procedure. Gruppe 2: Disse virus er besværlige at opdage (med en simpel virus scanner) fordi de komprimerer størrelsen af filen og hæfter sig til filen på en måde hvor man kan ikke se ændringer i filens størrelse, dato og checksum. Stealth virus: Denne virus er blevet designet til at gemme sig for antivirus programmer. Når denne virus har smittet et program (en fil), komprimerer den størrelsen af filen( som er blevet stor) til den oprindelige størrelse så de almindelige virus scannere ikke kan opdage viruset (pga. fil længde). Udover komprimering gemmer denne virus sig selv i en sektor og markerer sektoren som bad sector i FAT. De andre programmer vil ikke lægge mærke til denne sektor, når de normalt hopper over bad sectors. Polymorfisk virus: Når denne virus replikerer sig selv, laver den funktionelt ækvivalente kopier der har forskellige bit mønstre. Derfor vil virusets signatur ændre sig hver gang. Ligesom ved stealth virus benytter denne virus sig af komprimering, men derudover krypterer den også sig selv med en tilfældig nøgle. Næste gang man køre host programmet, benytter man denne nøgle til at dekryptere viruset. Når viruset replikeres igen, vælger den en anden tilfældig nøgle. Dette gør denne virus enormt svær at opdage. Gruppe 3: Disse virus er uafhængige af operativsystem og hardware platform. Mail system og andre netværks tjenester vil være et godt miljø til at sprede disse virus.

Af Orod Badjelan, DIKU august 2001 13 Macro virus: Macro virus adskiller sig fra de andre virus (gruppe 1 og 2), idet den smitter dokumenterne i stedet for eksekver filerne. Disse virus vil hægte sig til en data fil og på denne måde kan de komme forbi integritetsbeskyttelsesmekanismer der normalt undersøger eksekver filer. En macro er et eksekver program der er indkapslet i et tekstdokument eller andre typer af filer. Brugeren benytter en macro til at automatisere gentaget arbejde for at spare på tasteanslag. Det der gør det muligt at skabe macro virus er en autoeksekverings macro facilitet, hvor macroen bliver aktiveret uden brugerens interaktion. Dette kan ske når man udfører en anden kommando (f.eks. gem) eller der sker en anden handling (feks. Åbne eller lukke et dokument). Macro virus er meget populært blandt Microsoft produkter (mest Office pakken). Word og Excel er to eksempler på disse produkter. Macro virus angriber normalt.doc og.dot filer. Når filen NORMAL.DOT er blevet smittet, bliver alle for nyligt skabte.doc filer smittet. I Love You er et macro virus der netop opfylder ovennævnte betingelser. Viruset spreder sig via e-mail og hver gang denne mail bliver læst af en ny bruger, får viruset adgang til brugerens adressebog og sender sig selv til de nye ofre. 2.3.2 Uafhængige ondskabsfulde programmer Disse programmer er i modsætning til virus (bruger host programmer) selvstændige. Dvs. at de behøver ikke at gemme sig i et andet program for at kunne blive aktiveret. De bliver tit brugt til afbrydelse (DOS) og kan blive opdaget lynhurtigt, efter at de har skadet systemet. Bakterie (Rabbit): Denne type programmer replikerer sig selv hver gang de bliver aktiveret. Bakterier reproducerer eksponentielt og misbruger eventuelle processor ressourcer samt fylder i hukommelsen og på diskpladsen. Fredag den 13. er en virus som har netop denne egenskab. Viruset virker på den måde, at hver gang man fanger interrupt 21, forøges.exe filer med 1808 bytes. Orm (Worm) : Netværks Orm bruger netværkskommunikations linjer til at sprede sig selv fra et system til et andet. En Orm kan opføre sig som en virus, bakterie eller trojansk hest. Orme kan for eksempel sprede sig via e-mail og når de har fundet din adressebog kan de sende en kopi af sig selv til dine venner. Som et typisk eksempel på orme af denne type kan vi pege på I Love You og Bubble Boy.

Af Orod Badjelan, DIKU august 2001 14 2.3.3 Bugs og programmernes indbyggede fejl Der findes ofte nogle huller i de eksisterende prorammer som en hacker kan benytte sig af til at få adgang til din computer eller overtage root rettigheder i dit netværk. Disse bugs bliver normalt rettet når software leverandøren opdager dem, men nogle gange kan man se de samme fejl i flere generationer af produktet. Som et eksempel kan vi pege på Unix- kommandoen Finger. Finger har en fast størrelse buffer. Dvs. at hvis den modtager et stort input kan den overskrive de første bytes i sin buffer, hvad der kan medføre at man kan taste nogle kommandoer (f.eks. rm rf) med roots rettigheder. Nogle gange er problemet ret stort, fordi fejlen ligger i protokolniveau. Som et eksempel kan man pege på SMTP, FTP og NFS. SMTP ( Simpel Mai Transport Protocol ): SMTP er Internet standard protokol for at sende og modtage e-mail. SMTP er ikke selv et stort problem, men SMTP servere kan betragtes som tiltrækkende mål for hackeren. Et program der afleverer e-post til brugeren har tit brug for at kunne køre med enhver modtagers rettigheder. Sendmail er en Unix implementering af SMTP der kører med roots rettigheder. Sendmail er blev udnyttet af hackere flere gange for at bryde ind. Internet Orme er et godt eksempel på denne type angreb (se afsnit 2.3.2). Et alternativ for at formindske risikoen er at man benytter andre implementationer af SMTP, hvor der ikke køres med roots rettigheder. Man kan også sørge for at alle indkommende mails bliver sendt først til en proxy server ( se afsnit 6.4 ), hvor de kan blev analyseret før de bliver sendt til modtageren. FTP ( File Transfer Protocol ): FTP er en protokol der sørger for at man kan downloade (kopiere) filer fra et site til en anden computer. Der findes to tilfælde hvor man vil benytte FTP. I det første tilfælde vil en bruger gerne downloade nogle filer på sin computer (normalt indre netværk). Risikoen ved dette er ikke større end ved at bruge HTTP. Den vigtigste ting er at man kan downloade virus eller en trojansk hest ind i systemet. Det andet tilfælde er hvis man gerne vil tillade andre at downloade sine offentlige filer. Dette tilfælde er mere risikabelt. En udefra kommende må logge ind på dit system med brugernavn anonymous eller ftp. FTP dæmonen kører med roots rettigheder når den skal verificere et password. FTP kræver at man åbner forbindelserne til den endeknude via port 20 som ligger under 1024. Hvis den udefra kommende kan skrive til disken, kan denne protokol betragtes som farlig. Derfor skal man holde offentlige dokumenter på et separat areal og sørge for at arealet er skrivebeskyttet. Den anden vigtige ting er at man skal sørge for at Password filen ikke ligger i FTP området.

Af Orod Badjelan, DIKU august 2001 15 NFS ( NetWork File System ): NFS er et RPC (Remote Procedure Call) baseret fil system. NFS er som andre implementationer af RPC protokollen baseret på gensidig tillid. I et RPC-baseret system skal man kunne mount (flytte) filer eller objekter fra en maskine til en anden. Dvs. at de andre maskiner kan overtage rettigheder til andres filer. Dette kan medføre en del seriøse problemer, når for eksempel en hacker nemt kan NFS-mount dit filsystem. RPC virker ovenpå TCP eller UDP. Et subsystem der bruger RPC over UDP kan være mere risikabelt, når det kan miste pakker, duplikere eller medføre andre sikkerhedsproblemer der kan skyldes UDPs natur (se bilag A). De fleste RPC-baserede servere bruger ikke et fast por nummer. De accepterer ethvert port nummer som operativsystemet tildeler dem og registrerer denne tildeling med en portmappe. Dette tilfældige portnummer gør pakkefiltrering (se afsnit 6.1) endnu besværligere da man ikke kan bestemme hvilken port der skal være lukket. En portmappe har en del ekstra egenskaber der er mindre sikkerhedsvenlige. For eksempel kan en portmappe fortælle hvem som helst i netværket hvilken service (og på hvilket portnummer) der køres på dit system (via rpcinfo kommando). Dette er enormt brugbart for en hacker der gerne vil planlægge et angreb. Nogle implementationer af NFS benytter sig af en svag klient autentifikation. En hacker kan nemt overbevise en NFS-server om at en forespørgsel kommer fra en berettiget bruger. Der er også situationer hvor en hacker kan hijacke en eksisterende NFS mount. Når NFS ikke virker særlig godt på Internettet, er der ingen grund til at tillade det mellem et lokalt netværk og Internettet. Hvis man er meget interesseret i at bruge RPC uden for lokale netværk, kan man benytte sig af andre RPC filsystemer der er baseret på autentifikation. AFS ( Andrew File System ) er et af disse fil systemer. AFS benytter Kerberos til autentifikation og har mulighed for at kryptere trafikken mellem to hosts. 2.4 Word Wide Web (WWW) Word Wide Web er i bund og grund en Klient/server applikation der kører på Internet og TCP/IP intranet. WWW har trukket distribuerede systemer til nyt niveau. Mobile koder flyttes rundt på Internettet og kører på klient maskiner. Elektronisk handel giver nye forretningsmuligheder og sikkerhed har fået en helt ny vinkel. De traditionelle sikkerhedsmekanismer var ikke designet til at opfylde de nuværende behov. Der er brug for en hel del andre mekanismer for at kunne skabe et vist niveau af beskyttelse mod de trusler der følger med www.

Af Orod Badjelan, DIKU august 2001 16 2.4.1 Web Browser En klient har brug for en web browser for adgang til WWW. En browser er et program med en grafisk brugergrænseflade (GUI) som indeholder nødvendige protokoller for at etablere forbindelse til web. Denne browser skal kunne kommunikere med en web server via en protokol. HTTP (hypertext transfer protocol) er en af de mest kendte protokoller. Denne protokol kan overføre forskellige services fra serveren til browseren frem og tilbage. Et typisk eksempel på disse services ville være HTML sider. Denne brugbare uskyldige kommunikation kan medføre følgende sikkerhedsproblemer. En browser kan give brugbare oplysninger tilbage til serveren ( i det mindste Retur adresse). En browser kan gemme optegnelser over besøgte sider. Hvis du for eksempel bestiller en billet via en offentlig computer i en lufthavn, kan næste person der bruger computeren rulle tilbage til de sider du har besøgt og muligvis finde fortrolige oplysninger om dig og din rejse. En browser gemmer din nøgle til kryptering og digital signatur (se bilag B). En browser kører i system-mode og har alle rettigheder. Nogle browsere er integreret i operativsystemet (f.eks. Explorer). En browser indeholder sine konfigurationsfiler plus en lokal diskplads til eksekvering af importerede filer. Dvs. at en trojansk hest kan komme ind og styre computeren. De fleste browsere har integreret e-mail service. Dvs. en hacker kan udnytte bugs i din browser ved at sende en e-mail. 2.4.2 Server Side Script I den traditionelle klient/server model får klienten kun adgang til få services ligesom FTP og kun en lille gruppe kan få adgang til flere services via RPCs. Dynamisk HTML ved hjælp af forms og CGI scripts gør det muligt for flere klienter at få mere fleksibel adgang til flere services.

Af Orod Badjelan, DIKU august 2001 17 CGI (Common Gateway Interface) er et meta-sprog der fortolker URLs (Uniform Resource Locators) eller HTML forms til et køredygtigt (runnable) program på serveren. I denne arkitektur sender klienten en URL eller form til serveren der indeholder CGI script specifikationen af dettes input argumenter (se figur 3). Serveren sender forespørgslen til et program der kører med serverens rettigheder. Web serveren kan invokere applikationer ligesom Server-Side Includes (SSIs). Hos SSI kan et dokument indeholde indlejrede systemkommandoer (SSI in-lines). Når en klient spørger efter den slags dokumenter, evalueres systemkommandoen og resultatet inkluderes i det dokument der bliver sendt retur til klienten. Nedenstående eksempel kan illustrere hvordan en CGI script kan skade systemet: En script der sender en fil til en klient kan se sådan ud : cat babe.jpg mail orod@diku.dk En hacker kan taste en ondskabsfuld kommando bag adressen f.eks.: orod@diku.dk rm rf / Dvs. at hvis hackeren taster : cat babe.jpg mail orod@diku.dk rm rf vil serveren først sende et pænt billede til klienten Orod og derefter slette alle de filer der kan slettes fra serveren. Følgende er en række sikkerhedsovervejelser for at beskytte serveren mod CGIs trusler: Behold alle CGI filer i det samme bibliotek (f.eks../cgi-bin) for at kunne holde øje med dem. Alle filer på serveren skal være skrivebeskyttet. Adskil dine offentlige filer fra dine private filer (helst fysisk). Giv aldrig serveren root rettigheder. Alle CGI skal køre under det samme brugernavn (UID). Serverens brugernavn (UID) skal ikke eje binære filer og opsætningsfiler. Brug en software wrapper der kan kontrollere CGIs rettigheder (f.eks. CGIWar). Filtrer CGI en før den kører på serveren. 2.4.3 Klient Side Script I den moderne WWW arkitektur har man mulighed for at overføre programmet til en klient og køre det hos klienten. I denne teknologi kan man benytte klientens CPU resurser i stedet for serverens dyrebare resurser. Denne teknologi vil trods alle fordele gøre klientmaskinen sårbar, da klienten skal gemme udefra kommende filer på disken for at kunne køre dem.

Af Orod Badjelan, DIKU august 2001 18 2.4.3.1 Cookies Cookies er små filer som serveren beder browseren om at gemme hos klienten. Disse cookies vil indeholde informationer som serveren vil referere til næste gang brugeren etablerer forbindelse til serveren (se figur 4). Hvis klienten f.eks. har brug for password for at få adgang til serveren, kan passwordet bliver gemt i cookies og blive brugt næste gang automatisk. Disse uskyldige cookies kan ikke skade computeren af sig selv, men de kan f.eks. benyttes til at samle oplysninger om klienten ( klient profil). Dette kan betragtes som brud på privacy. 2.4.3.2 Klient script sprog Tilsvarende CGI script findes klient script sprogprogrammer der kan køre på klientmaskinen. Et af disse sprog er Javascript som i virkeligheden intet har at gøre med Java. Javascript bliver brugt som et udvidet sprog for Web-browsere som også er blevet standardiseret af European Community Manufacture s Association (ECMA). Javascript bliver ikke betragtet som en stor trussel, når den ikke har kommandoer til at læse og skrive filer. De kan også kun få adgang til en begrænset mængde af data. De bliver brugt som forms til automatisk at sende brugerens oplysninger tilbage til serveren. De fleste Javascript sikkerhedsproblemer falder i to kategorier: DOS angreb som kan få browseren til at gå ned og bugs i data access limitations som tillader Javascript at læse tilfældige filer og sende dem retur til det site Web-siderne kommer fra. Det burde nævnes at der har været flere rapporter der har anmeldt buffer overflow problemer i forbindelse med Javascript implementationer. Da Javascripts programmer ikke direkte kan åbne filer, kan de tvinge Web browseren til at åbne dem ved at give browseren den lokale URLs adresse (f.eks. file:/etc/passwd).

Af Orod Badjelan, DIKU august 2001 19 Javascript kan få adgangsrettigheder hvis den får lov til at bruge ActivX eller Java, hvis de er til rådighed. Det bliver betragtet som en seriøs trussel. Derfor anbefales det at man enten filtrerer scripts sprog eller disabler ActiveX og Java i alle browsere. 2.4.3.3 Java applets For at bruge Web teknologien optimalt skal klienten være forberedt på at modtage eksekverbare programmer (applets) fra de forskelige servere der tager klientens opmærksomhed. Applets skal være platform-uafhængige for at kunne flyttes fra en maskine til en anden uden at behøve kompileres for den bestemte type maskine. Det vil medføre en stor sikkerhedsrisiko at lade et tilfældigt program køre på sin egen maskine. Derfor har Java designerne begrænset applets så meget at de ikke kan skade klienten. Hovedpunkterne i designet er: Applets kan ikke få adgang til brugerens filsystem. Applets kan ikke samle informationer om brugernavn, e-mail adresse, maskinkonfiguration osv. Applets må kun etablere forbindelse til den server de kommer fra. Applets kan ikke rekonfigurere systemet ved at oprate classloader eller en ny security manager. Applets kan kun vise de vinduer der er markeret som offentlige. Java aktiverede browsere har deres egne Java virtuelle maskiner. En Java virtuel maskine har tre sikkerhedskomponenter; Byte code verifier, Class loader og Security manager. En sådan browser bruger den samme sikkerhedspolitik men det er ikke obligatorisk. Dvs. at brugeren vil benytte begrænsninger eller åbne sig for andre. Security manageren kontrollerer ikke direkte de operationer programmet udfører. Til gengæld kontrollerer den hvilke funktioner der bliver kaldt. F.eks. må usikre programmer ikke normalt skrive til disken, men hvis der er et bibliotek der regnes for sikkert ved brug af usikre programmer, kan programmet kalde på det bibliotek og få det til at skrive på disken. Der er to store risici i denne model: For det første vil security manageren tillade noget der burde være forbudt. For det andet er der en teoretisk risiko for at dette sikre bibliotek indeholder usikre operationer. Der har været flere anmeldelser hvor folk har klaget over denne type angreb.

Af Orod Badjelan, DIKU august 2001 20 3 Introduktion til Boundary Protection Systemer En simpel definition på netværk ville være et samlet antal computere der er forbundet til hinanden. Internet kan også betragtes som et stort netværk med flere millioner computere over hele verden. Der findes forskelligt udstyr som man kan benytte til at tilslutte disse computere til hinanden. Nogle af disse værktøjer er hurtigere end andre; nogle giver et højere sikkerhedsniveau end andre. I dette afsnit vil jeg give en kort introduktion til disse værktøjer. 3.1 Repeater og hub En repeater forlænger et netværkssegment ved at regenerere de indkommende signaler. Repeateren tillader alle protokoller, da den simpelthen regenererer alle signaler og sender dem videre i frisk form. En repeater har typisk to porte. En hub virker på samme måde som en repeater blot med den forskel, at en hub har flere porte. Derfor kalder man ofte en hub for en multiport-repeater. En ulempe ved hub er frem for switche er, at hvis flere af de tilsluttede enheder prøver at transmittere samtidig, kan der opstå en kollision på nettet. Man skal være opmærksom på at en hub giver ingen sikkerhed. 3.2 Bridge og switch En bridge anvendes primært som en overgang mellem to forskellige fysiske medier. Ved hjælp af en bridge kan man dele sit netværk i to eller flere segmenter. En bridge har to porte og har til at starte med en tom MAC-tabel. Hver netværksenhed har en individuel MAC-adresse, der er givet af producenten hvis man f.eks. har et netkort, er der ikke andre enheder i verden med samme MACadresse. Bridgen læser hver ny MAC-adresse, der transmitteres fra, og indsætter nummeret i sin MAC-tabel. Når Bridgen kender MAC-adressen på de to segmenter, sender den kun data videre til det andet segment, hvis MAC-adressen ikke findes i det segment, der sendes fra. Det er ganske smart, da kollisioner på et segment ikke påvirker det andet segment. Samtidig holdes trafikken fra to eller flere computere på samme segment lokalt men en broadcast ville altid passere bridge. Det er nu nemt at forstå hvordan en switch virker: En switch er nemlig en hub med en bridge på hver port. Man kan sige at switching giver bedre kontrol i forhold til hub, når den kan isolere trafikken mellem to punkter uden at broadcaste pakker til de andre punkter.