ITM30408 Gruppe5 Oblig2

Fra Hiofwiki

Revision as of 20. feb 2008 kl. 15:34; Ingeteid (Diskusjon | bidrag)
(diff) ← Eldre versjon | vis nåværende versjon | Nyere versjon → (diff)
Gå til: navigasjon, søk

Innhold

Oblig 2 - Dataformidling og nettverk : Datasikkerhet

Oppgaver

Kryptografi

Generering av GPG-nøkkelpar

NavnOffentlig nøkkelFingerprint
  ASCII Binær fil  
Steffen Diedrichsen 0xA44F8BDC steffend.gpg 1FA6 1E69 AF73 E0EA 57F4 9485 F5C3 B022 A44F 8BDC
Johan Sydseter 0xF8E6FAE7 johan.gpgkey EF47 F086 84FB 0D65 C87F C812 2607 867E F8E6 FAE7
Inge Thorin Eidsæther 0x1AD8625C inge.gpg 6316 A002 6CBA EB12 70A6 5188 7041 C443 1AD8 625C
Angelica Pettersen 0xBAD82F17   EA92 8A93 CD98 5030 F7E1 AFB8 362A 5808 BAD8 2F17
Ole-Martin S. Olsen 0xE8903917 olemartin.gpg DEF3 8607 D437 BFEC F496 076B D9FA 6608 E890 3917

Sniffing av nett

Vi satte opp Johans G4 Mac PowerBook som Internettaksesspunkt (maskin A), og
Inges tilsvarende maskin som klient (maskin B) for tilkobling til førstnevnte
over trådløst nett (802.11b/g WLAN).

Oppsett av Internettdeling av Ethernet over AirPort i Mac OS X gjøres slik:

  • Skru på AirPort i operativsystemet
  • Koble til en TP-kabel (twisted pair) mellom maskinen og en RJ-45 port på et LAN tilkoblet Internett.
  • I Eplemenyen, velg System Preferences.
  • Under Internet & Network: velg Sharing, deretter Internett.
  • Klikk evt. på hengelåsen og skriv inn login-passordet ditt
  • Velg 'Build-In Ethernet' i 'Share your connection from:' -feltet.
  • Kryss av for AirPort i 'On'-kolonnen for feltet 'to computers using'.
  • Klikk på 'AirPort Options'.
  • Opprett et nettverksnavn i feltet 'Network Name'.
  • Sett 'Channel' -feltet til Automatic.
  • Kryss av for 'Enable Encryption using WEP'.
  • Skriv inn ønsket passord i 'Password' og 'Confirm Password' -feltene, 5 tegn for 40-bits WEP, 13 tegn for 128-bits WEP.
  • Klikk OK og returner til Sharing i System Preferences.
  • Under teksten 'Internet Sharing Off', klikk på Start.

Oppsett av Internettilgang over AirPort på en Mac med OS X gjøres slik:

  • I Eplemenyen, sett Location til Automatic
  • Skru på AirPort i operativsystemet
  • Klikk på AirPort-symbolet og velg nettverket til maskin A fra listen
  • Velg WEP-kryptering fra listen, og skriv inn tilhørende passord i felt for dette

Tilkobling over AirPort gikk greit og maskin B kom på nett etter løsing av noen innledende instillingsproblemer.

Sniffing etter påloggingsinformasjon

Vi laget en konto på wikipedia.org og logget på med passordet test_passord via en laptop PC med Windows. Samtidig satt vi opp en Powerbook G4 til å lytte på den trådløse forbindelsen ved å bruke tcpdump til skrive data til en temporær logfil. G4 powerbooken tok som en følge av dette i mot en cookie via den trådløse forbindelsen som så slik ut:

wpName=Steffen+gruppe5&wpPassword=test_passord&wpLoginattempt=Log+inG<BA><A8><A3>
^@^L^@9^@^@^@6^@^@^@6^@^^L16<AC>^@^M<93><EC>6^@E^@^@(^]~@^@6^F^Q<87>[<C6>
<AE>^B^@^B^C^@P<CC><CB><BE>   <84><AD>^D<BF>w,P^P^@^U^N6^@^@G<BA><A8><A4>
^@^A<E1>.^@^@^D^@^@^@^E<EA>^@^^L16<AC>^@^M<93><EC>6^@E^@^E<DC>^]^?@^@6^F^K<D2>[<C6><AE>^B^@^B^C^@P<CC><CB><BE>   <84><AD>^D<BF>w,P^P^
@^U=^V^@^@HTTP/1.0 200 OK
Date: Tue, 19 Feb 2008 09:59:54 GMT
Server: Apache
X-Powered-By: PHP/5.1.2
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Set-Cookie: enwiki_session=18f961391e1335c585f1b920b11ef6b6; path=/
Set-Cookie: enwikiUserID=6477037; expires=Thu, 20-Mar-2008 09:59:54 GMT; path=/
Set-Cookie: enwikiUserName=Steffen+gruppe5; expires=Thu, 20-Mar-2008 09:59:54 GMT; path=/
Set-Cookie: enwikiToken=deleted; expires=Mon, 19-Feb-2007 09:59:53 GMT
Content-Language: en
Vary: Accept-Encoding,Cookie
X-Vary-Options: Cookie;string-contains=enwikiUserID;string-contains=enwiki_session,Accept-
Encoding;list-contains=gzip
Expires: Thu, 01 Jan 1970 00:00:00 GMTContent-Encoding: gzip
Content-Length: 3434
Content-Type: text/html; charset=utf-8
X-Cache: MISS from sq31.wikimedia.org
X-Cache-Lookup: MISS from sq31.wikimedia.org:3128
X-Cache: MISS from knsq27.knams.wikimedia.org
X-Cache-Lookup: MISS from knsq27.knams.wikimedia.org:3128
X-CacG<BA><A8><A4>^@^A<E1><EF>^@^@^B^P^@^@^B^P^@^^L16<AC>^@^M<93><EC>6^@E^@^B^B^]<80>@^@6

Tjenester og brannmurer

Vi brukte portscanneren-delen av Network Utility i Mac OS X for å scanne serveren unicast.hiof.no.
Her er resultatene:

Fra utsiden av skolens nett:

Port Scan has started ...

Port Scanning host: 158.39.172.205

	 Open TCP Port: 	22		ssh
	 Open TCP Port: 	25		smtp
	 Open TCP Port: 	53		domain
	 Open TCP Port: 	80		http
	 Open TCP Port: 	4949

Port Scan has completed ...

Rapport

Kryptering med offentlig nøkkelkryptografi

Gruppemedlemmene lastet individuelt ned GnuPG (GNU Privacy Guard) og tilhørende applikasjoner etter behov fra macgpg.sourceforge.net, blant annet Preferences for endringer av instillinger via grafisk grensesnitt, Keychain Access for administrasjon av nøkler, og DropThing for kryptering av ren tekst for klipp og lim inn i applikasjoner som ikke støttet direkte integrasjon mot GPG. GPG og ønskede ekstraapplikasjoner ble deretter installert på hver enkelt av medlemmenes datamaskiner.

Steffen som har en en laptop PC med Windows lastet ned gpg4win og installerte denne. gpg4win er en Windows-port av gpg og har de samme funksjonene som macgpg.

DropThing fungerte ikke 100% på undertegnedes maskin, da de andres offentlige nøkler (med unntak av en, som i likhet med de andre ikke var signert av meg) ikke var tilgjengelige i brukergrensesnittet, selv etter en restart av maskinen.

Individuelle nøkkelpar ble generert med kommandoen gpg --gen-key i et skall (shell) via Terminal.App eller tilsvarende program. Offentlig nøkkel ble eksportert til ASCII-kode med kommandoen gpg --export -a -o brukernavn.asc, og en binær nøkkel eksportert på samme måte med kommandoen gpg --export -o brukernavn.gpg. Nøkkelen med ASCII-kode ble lastet opp til en valgt keyserver / nøkkeltjener på Internett, og linket til i tabellen over. Den binære nøkkelen ble lastet opp på ønsket webområde og linket til på samme måte.

Hvert enkelt medlem sendte en signert og en kryptert mail til en annen på gruppa, samt en kryptert mail til Audun. Mottaker av kryptert mail verifiserte deretter avsenders autentisitet ved signering, gjennom å sjekke og sammenligne fingeravtrykket til dennes offentlige nøkkel mot den oppgitt av avsenderen ved personlig møte. Signering gjøres med den interaktive kommandoen 'gpg --edit-key UID', hvor UID er ID, mailadresse eller navn.

  • Kort forklaring på offentlig nøkkelkrypografi

Kryptering er betegnelsen på en av flere mulige metoder som kan benyttes for å gjøre informasjon uleselig for andre enn mottageren. Offentlig nøkkelkryptografi (Public Key Encryption) er en asymmetrisk form for kryptografi, hvilket innebærer bruk av forskjellige nøkler for kryptering og dekryptering av informasjon, i motsetning til symmetrisk kryptering, hvor det bare er snakk om en nøkkel. Innen offentlig nøkkelkryptografi benyttes det såkalte private og offentlige krypteringsnøkler. Krypteringsnøkler er filer med informasjon om hvordan en spesiell type algoritme (fremgangsmåte) skal benyttes for å kryptere klartekst eller dekryptere en kodet melding. Avsender skaffer til veie mottagers åpent tilgjengelige offentlige nøkkel og krypterer meldingen til mottager med denne, mens mottager dekrypterer den samme meldingen med sin private nøkkel. Den private nøkkelen kan også benyttes av avsender til å signere en utgående melding, som deretter verifiseres av mottager ved bruk av avsenders offentlige nøkkel. Den offentlige nøkkelen er ment å distribueres til alle som skal sende kryptert mail til eieren av den private nøkkelen, og kan lastes opp til nøkkelservere for å forenkle distribusjonen. Den private nøkkelen må holdes strengt hemmelig. Skulle den private nøkkelen komme på avveie, kan hvem som helst i besittelse av nøkkelen lese krypterte meldinger tiltenkt den originale eieren, samt opptre som denne både ved kryptering og signering. Ved kompromittert privat nøkkel må nøkkelen ugyldiggjøres ved å utstede et såkalt tilbaketrekningssertifikat (revocation certificate), som lastes opp til en nøkkelserver. Et problem med offentlig nøkkelkryptografi er at offentlige nøkler blir distribuert til et større antall personer, som alle må gjøres oppmerksom på sikkerhetsbruddet. Mer moderne kryptografiske løsninger som GPG (GNU Privacy Guard) og PGP (Pretty Good Privacy) bygger på offentlig nøkkelkryptografi. Wikipedia

  • Hvilke problemer løser kryptering av informasjon?

Kryptering av informasjon i form av digitale data medfører (innen offentlig nøkkelkryptografi) hemmelighold ved at denne blir gjort uleselig for alle tenkte lyttere mellom avsender og mottaker, samt at konfidensialiteten er opprettholdt ved at bare tiltenkt adressat har tilgang til den krypterte informasjonen. Wikipedia

  • Hvilke problemer løser signering?

Digital signering av et dokument gjøres med avsenders private nøkkel, og bekrefter avsenderens identitet samt dokumentets autentisitet og integritet. Autentisitet i denne sammenhengen vil si hvorvidt avsender er den vedkommende gir seg ut for å være, og hvorvidt dokumentet stammer fra vedkommende. Integritet vil si at innholdet av dokumentet ikke er blitt forandret etter at forfatteren har avhendet det. Signering umuliggjør endringer av innholdet uten at den digitale signaturen forandres og gjøres i GPG med algoritmen SHA-1, men GPG kan også bruke andre algoritmer som MD5. Både SHA-1 og MD5 har svaketer og kan misbrukes. Wikipedia

  • Hva er forskjellen på en privat og offentlig nøkkel? Hvilken nøkkel kan du dele med andre, og hvilken må holdes hemmelig?

Privat og offentlig nøkkel i et nøkkelpar er matematisk relaterte, men mens en privat nøkkel i GPG/PGP kan brukes til å produsere en kopi av den offentlige nøkkelen dersom denne har gått tapt, er det motsatte IKKE tilfelle. Den offentlige nøkkelen distribueres til alle som har behov for å sende eieren av denne kryptert informasjon bare denne personen skal ha tilgang til. Den private nøkkelen og tilhørende passord må derimot holdes STRENGT hemmelig. Distribusjon av offentlige nøkler kan f.eks. foregå over e-post, eller ved publisering på websider eller til nøkkelservere.

  • Hvilke likheter er det mellom kryptert og/eller signert mailutveksling med GPG og behandling av HTTP-forespørsler med HTTPS/SSL?

En HTTPS-forespørsel foretas av en nettleser med et innebygd sikkerhetssertifikat som matcher det som er installert på den aktuelle webserveren. Sertifikatet på serversiden er unikt for domenet (evt. subdomener eller hosts under dette) og av typen SSL (Secure Sockets Layer).Wikipedia Slike sertifikater utstedes av organisasjoner som VeriSign, som først foretar en grundig sjekk av domenets eier (firma, organisasjon eller person) før eventuell godkjenning av denne. Sertifikatet i nettleseren følger med programmet ved nedlasting, og installeres samen med dette på datamaskinen. Før data sendes mellom webserver og nettleser, etableres det en kryptert forbindelse mellom disse. Både for HTTPS-trafikk og utveksling av kryptert mail er det altså snakk om et opplegg med nøkler av et slag på hver side av forbindelsen.

  • Hvorfor benytter man velkjente algoritmer, men hemmelige nøkler?

Algoritmene som benyttes ved kryptering av data bør med fordel publiseres slik at feil og mangler i disse lettere kan bli oppdaget av en eller flere kompetente programmerere som måtte interessere seg for kryptering (sitat: "Given enough eyeballs, all bugs are shallow" - Eric S. Raymond, "The Cathedral and the Bazaar"), så lenge de private nøklene og tilhørende passord hemmeligholdes. Det er nøklene som bestemmer hvordan algoritmen blir benyttet for å kryptere og (korrekt) dekryptere informasjonen!

Sniffing av nett

I forbindelse med oppgaven med å sniffe etter pålogginsinformasjon, har vi - basert på utskriften av cookie vist i oppgavedelen på denne siden - kommet frem til følgende konklusjon:

Siden cookies med brukernavn og passord kan snappes opp over et LAN via en ukryptert forbindelse, kan vi konkludere med at bruk av cookies over ukrypterte forbindelser er en meget usikker måte å sikre seg mot inntrengere på. Som vist over, dukker passordet opp i klartekst i første linjen av cookien. Hvis du sitter på et åpent nett, har du derfor ingen beskyttelse mot personer med verktøy for sniffing av nett som skulle ha et ønske om å snappe opp passord og brukernavn ditt for deretter å bruke dem til destruktive angrep.

  • Hvorfor kan A sniffe trafikk til og fra B når trafikken på det trådløse netter er kryptert?

A kan sniffe trafikken til og fra B siden data på vei mellom B og A kun er kryptert på det trådløse nettet, mens det på A igjen blir dekryptert før videresending ut på Internett.

  • Hvilke andre maskiner mellom B og f.eks. www.vg.no kan gjøre et tilsvarende angrep?

Teoretisk sett kan alle maskiner fra og med A til og med www.vg.no sniffe trafikken som kommer fra B, da informasjonen går ukryptert fra A helt til www.vg.no.

  • Hvordan kan B beskytte en forbindelse mot avlytting/sniffing hele veien til en maskin et annet sted på nettet?

Ved å implementere ende-til-ende kryptering i form av systemer som offentlig nøkkelkryptering for mail og SSL-sertifikater for webservere (og tilsvarende klientsertifikater for nettlesere) vil all informasjon sendt fra B til maskinen i den andre enden av forbindelsen være kryptert, og dermed uleselig for uvedkommende skulle noen snappe det opp på veien.

  • Hvordan kan B vite om et nettsted opererer under falsk identitet (f.eks. at A utgir seg for å være Bs nettbank)?

Forsøk på phishing vil kunne observeres ved forskjell på linktekst og faktisk URL, dersom det da ikke dreier seg om DNS-spoofing eller -poisoning. Da må man sjekke om sikkerhetssertifikatet fra server er gyldig ved å undersøke dette grundig.

Resultat av portscanning

Portscanning er en teknikk som går ut på å bruke et program til å sende ut datapakker til en eller flere TCP og/eller UDP porter på en datamaskin for å se om den responderer på henvendelsene. En åpen port indikerer som regel at maskinen kjører en server på den aktuelle porten. Resultatet av portscanningen mot unicast.hiof.no ga oss følgende åpne porter: 22 (ssh), 25 (stmp), 53 (domain), 80 (http) og 4949. SSH (Secure SHell) er det krypterte alternativet til Telnet, som er fjerninnlogging (remote login) på en annen maskin. SMTP (Simple Mail Transfer Protocol) er service for utgående mail, domain er DNS (Domain Name Service) for oppslag av navn til IP-adresser, mens HTTP (HyperText Transfer Protocol) er en webserver. Port nummer 4949 står oppført på IANAs liste som "Munin Graphing Framework". Munin er et verktøy for monitorering av datamaskiner i et nettverk, med et større antall plugins tilgjengelig for rapportering av mange forskjellige typer data. Alle tjenester kjører på standard portnummer.

Forklaring på begrepet Brannmur

Det finnes to typer brannmurer. "Personal Firewall" er en type brannmur som er implementert i operativsystemet eller (gjerne tredjeparts) programvare på en datamaskin med et klientoperativsystem (som Windows XP eller Mac OS X) som kontrollerer trafikk til og fra de forskjellige nettverksgrensesnittene på denne maskinen. Wikipedia Den andre typen er implementert i operativsystemet eller programvare på en datamaskin med serveroperativsstem eller dedikert hardware og operativsystem (f.eks.: Cisco eller Zyxel) som regulerer trafikken mellom større nettverk på forskjellige datakommunikasjonskanaler (også kaldt porter).Wikipedia Til sammen er det 65535 porter for TCP (Transmission Control Protocol), og like mange for UDP (User Datagram Protocol).Wikipedia Åpner man for TCP port 80 som er standard for en webserver, vil datamaskiner på utsiden av nettverket kunne nå denne serveren med sine forespørsler, dersom disse kommer i form av HTTP requests. I motsatt retning kan en brannmur kontrollere hvilke porter som blir åpnet av applikasjoner på innsiden av nettverket, for å hindre uautoriserte kall til tjenester på datamaskiner på utsiden av nettet. Slike applikasjoner vil - hvis de er programmert for formålet eller modifisert av en ondsinnet programmerer - kunne åpne for tilgang for datamaskiner fra utsiden av nettverket. Noen brannmurer inspiserer også innholdet i datapakkene (Stateful firewalls)Wikipedia, og kan utføre mer avanserte operasjoner hva angår behandling av datatrafikken. Det er god (og vanlig) praksis å kun åpne for porter som er nødvendige, og holde alle andre andre lukket. Fordelen med en brannmur er bedre kontroll med nettverkstrafikken og beskyttelse fra angrep utenfra, ulempen er et potensielt tregere nettverk (særlig ved bruk av pakkeinspiserende brannmur) og mer administrativt arbeid involvert for å sette opp porter for applikasjoner som måtte trenge det for å fungere (ordentlig).

En metode en angriper kan benytte for å gå rundt en brannmur er å sende en e-post med et virus som vedlegg, eller gjennom å kjøre "ondsinnede" programmer på en webserver. Angriperen kan også utnytte svakheter i nettverket ved å bruke såkaldte ormer til å infiltrere brannmuren og spre virus. Trojanske hester kan på denne måten plantes på insiden slik at man kan få fullstendig kontroll over datamaskinen. En samling datamaskiner infisert på denne måten kalles et botnet. Et botnet kan brukes til å angripe datamaskiner fra flere kanter i et såkaldt DDoS (Distributed Denial of Service) angrep. Et botnet kontrolleres av en botnet "gjeter" ("herder") som typisk kan kontrollere maskinene fra en IRC-server.Wikipedia

Forklaring på begrepet Social Engineering

Social Engineering er en betegnelse på den kunsten / ferdigheten en person har i å få tak i kunnskap i form av verdifull informasjon om et datasystem med det formål om urettmessig å skaffe seg tilgang til dette for å tilegne seg sensitive eller konfidensielle opplysninger derfra - eventuelt også for å endre eller slette slike. Social Engineerng krever som oftest grundig forarbeid fra angriperens side, som for eksempel ved å sette seg godt inn i detaljer om personer eller forhold ved bedriften som vil være avgjørende for at målet for 'øvelsen' ikke får mistanke om at noe er galt. Som regel bedrives Social Engineering over telefon og ikke ved personlig møte da det er lettere å utgi seg for å være en annen over telefon. Et vanlig eksempel på et Social Engineering angrep er når en angriper ringer en ansatt i et firma og gir seg ut for å være en nettverksadministrator eller en fra firmaets supportavdeling, og manipulerer den ansatte til å kjøre visse kommandoer og/eller utføre visse handlinger slik at angriperen får tilgang til systemet.

En litt eldre sak fra 2003, wired.com, beskriver hvordan AOL fikk store problemer ved at hackere lurte ansatte til å kjøre filer de mottok over IM som så koblet seg til AOL's interne programvare (Merlin), og ga hackerne full tilgang til dette systemet. Merlin trengte også en brukerID, to passord og en SecurID kode; dette fikk angriperne tak i ved å spamme de ansatte med falske sikkerhetsoppdateringer og bedrive Social Engineering angrep over telefon.

En sak fra sommeren 2006, darkreading.com, beskriver hvordan et sikkerhetsfirma fikk full tilgang til et firmas nettverk og systemer ved bedrive Social Engineering. I den saken gikk det ut på å legge ut minnepinner med spesialprogramvare på, og vente på at nysjerrige ansatte skulle plugge dem inn i maskinene de satt ved. Minnepinnene ble lagt ut på parkeringsplassen, ved innganger hvor røykere sto og andre plasser hvor ansatte ofte befant seg. Når minnepinnene ble koblet til maskinene gikk den spesiallagde programvaren ut på nettet og begynte å samle informasjon som den deretter sendte tilbake til sikkerhetsfirmaet.


Referanser

http://en.wikipedia.org/wiki/Personal_firewall

http://en.wikipedia.org/wiki/Firewall_(networking)

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

http://en.wikipedia.org/wiki/Stateful_firewall

http://en.wikipedia.org/wiki/Pretty_Good_Privacy

http://en.wikipedia.org/wiki/Cryptography

http://macgpg.sourceforge.net/

http://en.wikipedia.org/wiki/Social_engineering_(computer_security)

http://www.wired.com/techbiz/it/news/2003/02/57753

http://www.darkreading.com/document.asp?doc_id=95556&WT.svl=column1_1


Ingeteid 20. feb 2008 kl. 15:57 (CET)