ITM30408 gruppe3 oblig2

Fra Hiofwiki

Gå til: navigasjon, søk

Innhold

Oblig 2

GPG Nøkler

De praktiske oppgavene

Gruppa satt sammen på en datalab og utførte de praktiske oppgavene sammen.

Kryptografi

Installeringen gikk veldig greit, også installeringen av GPGMail Betaen for OS X 10.5 Leopard, alle på gruppen lagde vært sitt nøkkelpar som vi lastet opp i binær form til til skolens server. Deretter lagde vi en link til de her, slik kunne vi (og andre) enkelt dele de offentlige nøklene våres. Deretter prøvde vi å sende krypterte mailer frem og tilbake til hverandre og dette gikk veldig fint. Espen prøvde og kryptere innhold via DropThing, men dette gikk ikke da de offentlige nøkkelene han hadde lagret i keychain ikke ble vist i GUIet. Deretter sendte vi alle en kryptert og signert mail til Audun, og alle har fått tilbakemelding om at det fungerte.

Sniffing av nett

Vi satt opp internettdeling og sniffet når en i gruppa logget seg på wikipedia. I loggen fant vi enkelt ut for eksempel hvilket brukernavn og passord vedkommende hadde.

Tjenester og brannmurer

Vi portscannet radio.hiof.no og fant ut at følgende porter er åpne: 22, 80, 4949, 8000 og 8001.

Offentlig nøkkel-kryptografi og sikkerhetsproblemer

Innen asymetrisk kryptografi opereres det med private nøkler og offentlige nøkler. Hvis to personer skal sende en kryptert melding til hverandre blir personlige og offentlige nøkler brukt. Hvis Bob skal sende en melding til Alice, trenger Bob Alice's offentlige nøkkel for å sende meldingen kryptert. Når Alice mottar denne meldingen kan hun kun lese den ved at hun bruker sin private nøkkel. Bob har også sin egen private nøkkel som han trenger å bruke når han får en melding tilbake fra Alice. For at Alice skal sende en melding til Bob må hun bruke Bobs offentlige nøkkel. Man kan altså dele den offentlige nøkkelen med andre slik at de som ønsker det kan sende en melding til deg ved bruk av din offentlige nøkkel. Mens den private nøkkelen blir holdt hemmelig.

Kryptering av informasjon har den hensikt å beholde konfidensialitet og integritet. Den vanligste måten å logge inn på forskjellige nettsteder, servere og tjenester på nettet er ved hjelp av autentisering. Den vanligste autentiseringen er ved hjelp av brukernavn som gjerne er kjent (for å identifisere personen som ønsker å logge inn), og passord som skal være hemmelig. Når slik informasjon blir sendt over nettet uten at det krypteres, er det veldig lett å få tak i passordet som skal sørge for autentisering. Dersom man krypterer denne informasjonen som blir sendt over nettet, kan man fortsatt få tak i den krypterte informasjonen, men det er vanskelig å dekryptere teksten slik at man får tak i det sensitive innholdet.

Når det gjelder å sende sensitiv informasjon med e-mail, så er ikke dette sikkert. Dersom noen plukker opp pakkene som sendes, så kan de enkelt lese og forandre innholdet i mailen uten at dette merkes. For å forhindre dette kan man kryptere innholdet. På den måten blir innholdet uleselig for den som eventuelt kan plukke opp pakkene. På den måten beholdes konfidensialiteten. Det er også umulig å forandre på innholdet. Man kan forandre på krypteringen, men det vil bare skape støy for mottakeren.

De fleste som ikke kan så mye om internett og sikkerhet stoler 100% på at avsenderen av e-mailen er riktig. Sannheten er at det er veldig lett å forfalske avsenderadressen. Ved hjelp av signering kan man forsikre seg om at avsenderen er den han/hun utgir seg for å være, dessuten kan man sjekke at innholde ikke er forandret.

Kjernen i GPG og SSL er begge symmetrisk nøkkel-kryptografi. Begge bruker offentlige nøkkel-kryptografi. Der GPG bruker signering for å bevare integriteten bruker SSL MACs. Det vil si at både mailutveksling med GPG og HTTP-forespørsler med HTTPS/SSL bruker kryptering for å overføre informasjon sikkert, og for å sørge for at integriteten er i behold. HTTPS gjør også at vi kan sikre autentisering av websiden ved hjelp av digitale sertifikater på samme måte som GPG bruker signering. Det gjør at vi er sikker på at den vi mottar e-post fra, eller den at den serveren vi ønsker å logge på, er den de utgir seg for å være.

Det brukes i mange tilfeller velkjent algoritmer for og lage krypteringsnøkler. Hovedgrunnen til dette er at man da kan sikre seg om at nøklene blir pålitelige. Siden algoritmene er velkjente ville det vært allment kjent hvis de ikke var sikre. Det bygger på samme prinsipp som f.eks Wikipedia, siden alle har tilgang til og se innholdet og eventuelt endre noe vil svakheter hurtig bli påvist eller rettet. Hvis man hadde generert krypteringsnøkler med en "hemmelig" algoritme, er det færre som kan kvalitetssjekke algoritmen og dermed er man ikke like sikker på at nøkkelen som ble generert er trygg.

Selv om algoritmen som genererer nøklene er velkjent, blir ikke nøklene sårbare. De blir generert på en slik måte at man ikke kan kalkulere seg tilbake til nøkkelen, man må eventuelt bruke rå kraft, noe som vil ta "evig" lang tid dersom algoritmen som genererte nøkkelen var god.

Trygghet mot sniffere

Selv om trafikken på et trådløst nettverk er kryptert, er man ikke sikret mot sniffere. I eksempelet hvor man setter opp 2 maskiner og den ene får internettilgang igjennom den andre så er trafikken bare kryptert når den er i "luften". Når maskin A (den som har deler internettforbindelsen) mottar dataene fra det trådløse nettet blir trafikken dekryptert før den sendes videre ut på internett. Det er bare mens det er i det trådløse nettet det er kryptert, ikke etter maskin A eller en router har mottat dataene.

På denne måten kan man, hvis man har tilgang til en router/maskin i mellom 2 punkter i kjeden, uten store problemer sniffe trafikk, og eventuelt plukke opp sensitiv informasjon. Problemet er at veldig få har tilgang til disse maskinene, og siden man kan kryptere trådløse nett må man eventuelt koble seg fysisk på nettet, eller dekryptere sikkerhetsnøkkelen til det trådløse nettet, før man kan sniffe noe i det hele tatt.

Når vi gjorde en sniffing test fant vi lett ut brukernavnet og passordet til en bruker, vi logget oss på wikipedia med en testbruker og dette var det logfilen ga oss etter at vi hadde logget oss på.

‘√≤°�∫GUE�
∆Æ�ƒ–ˇˇÜπ
(5ÓÃ�Ï.ŒPOST /w/index.php?title=Spesial:Logg_inn&action=submitlogin&type=login HTTP/1.1
Accept-Language: nb-no
Accept-Encoding: gzip, deflate
Cookie: nowiki_session=d717e86e8f3de8f3f7a46e9f435f6916; nowikiLoggedOut=20080219093349; nowikiUserName=Solfre
Referer: http://no.wikipedia.org/w/index.php?title=Spesial:Logg_inn&returnto=Spesial:Logg_ut
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nb-no) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2
Content-Type: application/x-www-form-urlencoded
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Length: 59
Connection: keep-alive
Host: no.wikipedia.org

â¢∫GkE�
∆Æ�ƒ–ˇˇœ·
(5ÓÃ�Ï.ŒwpName=Solfre&wpPassword=aprilsnarr&wpLoginattempt=Logg+innâ¢∫G�’�∆Æ�
∞�
�Ï0∏(5Ó√���
†t ‚†tÀ�â¢∫GO’�∆Æ�

Her kan vi se at vi lett ser hvilken maskin som brukes, nettleser, og ikke minst, brukernavn og passord (linjen 4. nederst). Og det er ikke bare maskin A som kan sniffe trafikken til maskin B, i prinsippet kan alle maskinene/routerne i mellom maskin B og endemaskinen sniffe trafikken. Hvis man vil beskytte eposter og annet tekstinnhold man sender over internett kan man selv kryptere dette ved hjelp av GPG. Skal man sikre brukere av et nettsted mot at deres passord og brukernavn kan sniffes opp av bindeleddene mellom brukeren og nettstedets server er man nødt til å sette opp en sikker linje ved hjelp av HTTPS/SSL.

I noen tilfeller kan man bli utsatt for svindelforsøk, og en av de vanligste måtene å gjøre det på er å utgi seg for å være noen andre enn man er. Den enkleste måten å vite om et nettsted er den de virkelig utgir seg for å være er å sjekke om nettstedet har et sertifikat. Hvis de har et slikt sertifikat og dette er signert av et CA(Certificate authority) kan man være ganske trygg på at nettstedet er trygt å besøke.

I tillegg til å sjekke om nettstedet har et slikt sertifikat er det noen andre triks man kan sjekke. Stemmer URLen til nettstedet? Ofte lurer de inn en ekstra bokstav eller et subdomene eller noe liknende slik at det ser korrekt ut, men så viser det seg at det faktisk ikke er det korrekte domenet du besøker. Andre ganger kan man også titte på kildekoden til siden å se om man finner noe ulumskheter der. Dette krever riktignok relativt god teknisk forståelse av oppbygningen til et nettsted så dette er ikke den letteste eller sikreste måten å verifisere ett nettsted.

Portscannning

En port scanner er et lite program som brukes til å sjekke hvilke porter på en server som er åpne. Dette brukes ofte av administratorere til og sjekke sikkerhetens på deres systemer, og av hackere for og eventuelt utnytte svakheter. Vi har scannet serveren radio.hiof.no for porter og dette avslørte at det var 5 åpne porter:

  • TCP Port: 22 - ssh
  • TCP Port: 80 - http
  • TCP Port: 4949 - munin
  • TCP Port: 8000 - irdmi
  • TCP Port: 8001 - vcom-tunnel

Port 22 og 80 er relativt vanlige porter som brukes til webtilgang og konfigurering. SSH som kjører på port 22 brukes som regel for å logge seg på en server fra utsiden, med denne teknologien får du tilgang via shell og kan gjøre typiske administrative oppgaver på tjeneren. SSH bruker offentlig nøkkel kryptografi for å sikre forbindelsen mellom maskinene. SSH kan også brukes som en tunnel for tjenester som SFTP og SCP. HTTP som kjører på port 80 som standard er åpen for å slippe igjennom HTTP requests. Grunnen til dette er enten at det vises en info side som hostes på denne serveren, eller at serveren har et slags administrasjons GUI som kan brukes i en nettleser. Det siste virker mest sannsynlig siden det på port 4949 kjøres en tjeneste med navn Munin. Munin er et program som brukes til monitorering av maskiner på nettverket og kan presentere dette i et web-GUI. Det er mulig at det er i denne sammenheng at port 80 er åpen.

iRDMI på port 8000 var det vrient å finne noe om. Dette var det jeg fant: Intel Remote DMI (Desktop Management Interface). Jeg mistenker at denne porten ikke brukes til iRDMI, men er åpnet for å avlaste en annen port. Port 80 kan være åpen av mange grunner uten at vi kan vite hvorfor, det er mulig den er så trafikkert at port 8000 og 8001 er åpnet for å avlaste denne porten. Men dette blir bare spekuleringer da det er veldig lite informasjon å finne om standardtjenestene på disse portene.

Grunnen til at det bare er disse portene som er åpne og ikke alle de andre 65530 portene er at det sitter en brannmur i mellom oss og tjeneren, eventuelt i tjeneren. En brannmur er programvare som beskytter datanettverk mot angrep. F.eks angrep fra hackere som ønsker tilgang til innsiden av et nettverk. En brannmur kan være programvare på en tjener eller maskin. Det er mange eksempler på dette, Norton har en firewall man kan installere, Windows XP/Vista, Mac OS X og flere Linux distroer har innebygde brannmurer. Det andre alternativet er en dedikert brannmur, denne kjører gjerne på en dedikert maskinvare med spesialisert programvare. Dette er den sikreste og beste løsningen, men også den dyreste og vanskeligste.

Hovedoppgaven til en brannmur er å jobbe som en sikkerhetsvakt mellom datanett. Den hindrer uønsket trafikk fra internett og hindrer at noen kan komme inn på det lokale nettet, og den kan også sperre uønsket trafikk fra det lokale nettet ut på internett. Dette brukes ofte til sperre for tjenester som VOIP eller tilsvarende. Konfigurasjonen av en brannmur er en omfattende oppgave, og gjøres det ikke riktig kan det være en dyr investering uten noen avkastning. Den vanligste praksisen er å stenge for alt som ikke spesifikt trengs å åpnes. Slik er man tryggere på at man ikke åpner for unødvendig trafikk.

Hvis man har en godt konfigurert brannmur har man den fordelen av at man er godt beskyttet mot angrep fra utsiden. Ulempen med en brannmur er at det er også vanskeligere å sette opp trygge forbindeler fra utsiden til innsiden av nettverket. Siden all trafikk må gå gjennom brannmuren, vil dette også være med på å senke hastighetene. En "dårlig" brannmur vil ikke klare å kontrollere all trafikken hurtig nok og skaper dermed en flaskehals i nettverket.

Selv om man er godt beskyttet med en brannmur vil det alltids være mulig å komme seg igjennom. En av de vanligere metodene er å sette opp en HTTP-tunnel. Dette er en teknikk som kan kamuflere å sende all trafikken fra din maskin gjennom en åpen port, ofte port 80. Dette blir oftest brukt fra innsiden av litt strengere brannmurer, typisk i skole/firmanettverk. På denne måten kan man f.eks åpne for MSN og andre tjenester som din arbeidsgiver kan ha sperret. HTTP-Tunneling krever en client (din arbeidsstasjon) og en server på utsiden som kan ta i mot din request på port 80, for så å oversette den til den porten tjenesten du egentlig kjører bruker.

Hvis man vil komme seg inn på et nettverk som har en brannmur fra utsiden, kreves det som regel mer avanserte rutiner, eventuelt en server som nevnt tidligere på innsiden. Å komme seg igjennom en godt sikret brannmur er vanskelig og overgår desverre vår kunnskap.

Social Engineering

Social engineering er en samling teknikker som brukes for å manipulere folk til å utføre forskjellige handlinger eller avsløre konfidensiell informasjon. Personen som utfører social engineering, altså angriperen, bygger en selvsikkerhet ovenfor et potensielt offer, og det er dette som er viktig for at angriperen skal ha suksess med forsøket. Evnen til å påvirke offerets følelser som skyldfølelse, frykt og medlidenhet, er helt avhengig av angriperens evne til å virke som en trygg og troverdig person. Slik vil mottakeren lettere stole på denne personen. Når først dette troverdighetsforholdet mellom angriper og offeret er etablert, kan angriperen utnytte dette til å få tak i den hemmelige informasjonen han/hun trenger. Typiske mål for de som driver med dette er telefonselskaper, store korporasjoner, finansinstitusjoner, militær- og regjerningsvirksomheter og sykehus.

En metode av social engineering er "pretexting". Dette vil si at en person bruker forskjellige taktikker for å få tak i din personlige informasjon, her under falske premisser. En pretexter selger din informasjon til folk som kanskje er villige til å bruke dette til å få goder i ditt navn, stjeler dine ressurser, og for å etterforske eller anmelde deg. Personene som driver med pretexing har forskjellige metoder for å få tak i din personlige informasjon. Et eksempel kan være at personen ringer deg og forklarer at han er fra et firma som driver med spørreundersøkelser, og han vil gjerne stille deg noen spørsmål. Når pretext'eren har klart og fått tak i den informasjonen han vil ha, ringer han til f.eks. din bank eller andre steder, og later som om han er deg eller andre som naturlig vil ha tak i din private informasjon. Pretext'eren kan så fortelle at han for eksempel har glemt sjekkheftet/kortet sitt, og trenger dermed informasjon om sin konto. På denne måten vil han lett kunne få tak i all personlig informasjon om deg.

Et eksempel på et tilfelle hvor pretexting har blitt brukt til å skaffe urettmessig tilgang til datasystemer, er [HP-saken] fra 2006 (Hewlett-Packard). De har blitt beskyldt for å bruke pretexting for å spionere på direktører, journalister og ansatte. Blant annet gav formannen Patricia Donn bort styremedlemmenes private telefonnummere til en etterforskningsgruppe, for at de skulle få tak i og overvåke kundenes telefonsamtaler. Med dette hadde de planer om å skaffe seg opplysninger, dokumenter og hemmlig informasjon fra bedriften, uten lov. Med dette fikk de dermed informasjon som de selv dro goder av. Det påstås at Donn visste om at de private etterforskerne fikk tak i telefonsamtaler gjennom falske intensjoner, også mer kjent som pretexting.

Et eksempel på en annen teknikk som blir brukt er en "Trojansk hest". Her utnytter angriperne menneskets nysgjerrighet ved å plante virus og farlig software som er designet til å infiltrere og ødelegge datasystemer uten eierens godkjennelse. Dette kan for eksempler komme i eposter som inneholder vedlegg som er fristende å klikke på og installere (screensavers, anti-virus oppdatering e.l.). Noen angripere drar det lenger ved for eksempel å la en CD eller USB-penn ligge åpen, slik at en nysgjerrig sjel tar den opp og kjører den i sin egen maskinen for nygjerrighetens skyld.

Et eksempel på en konkret sak hvor dette er brukt er ["Trojansk hest"-skandalen i Israel] i 2005, hvor det ble påstatt at noen Israelske storbedrifter brukte ulovlig overvåkende software for å stjele informasjon fra rivaler og fiender.

Referanser

Bok :
James F. Kurose og Keith W. Ross (2008). Computer Networking - A Top-Down Approach. Addision Wesley.

Nettsteder:
http://en.wikipedia.org/wiki/Public-key_cryptography
http://forskningsnett.uninett.no/uninytt/1995-1/kry.html
http://en.wikipedia.org/wiki/Social_engineering_(computer_security)
http://www.securityexperiment.com/se/SocialEngineeringRepository/index.php5?title=Theory
http://www.securityfocus.com/infocus/1527
http://www.ftc.gov/bcp/conline/pubs/credit/pretext.shtm
http://money.cnn.com/2006/10/04/news/companies/hp_california/index.htm?cnn=yes
http://www.msnbc.msn.com/id/8064757
http://no.wikipedia.org/wiki/Brannmur
http://en.wikipedia.org/wiki/Port_scanner
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers