28. februar 2010

Om Twitter og sikkerhet

I dette innlegget vil jeg rette fokus mot Twitter-sikkerhet generelt og tilgang for 3.parts applikasjoner spesielt. Mange kan allerede dette, men jeg prøver å reflektere over sikkerhet med utgangspunkt i hvordan weben er programmert, hvordan tjenester kommuniserer seg i mellom, og hva dette kan innebære med tanke på strategier for sikker bruk.

Bakgrunn: Phishing er høyaktuelt

I etterkant av jordskjelvet i Chile februar 2010 var det flodbølgevarsel mange steder i Stillehavet/Asia, blant annet på Hawaii. Den 27.februar var det veldig mange som sendte Twitter-meldinger med informasjon, observasjoner fra folk på Hawaii, lenke til direktesendinger, bilder og analyser. Spammerne hev seg raskt på og sendte tilsynelatende flodbølge-relaterte meldinger med lenker til sitt innhold (for eksempel porno, spyware eller phishingforsøk). De utnyttet med andre ord en katastrofesituasjon til å prøve å lure andre. Det er fort å gå i fellen for brukere som er opprørte og desperate etter å få informasjon, eller bare ønsker å følge med "live". Forkortede lenker (bit.ly og tiny.url) er smarte for å spare tegnplass, men en flott metode for å lure folk.

I forrige blogginnlegg tok jeg utgangspunkt i et konkret phishing-forsøk på Twitter og så på hvorfor brukere lett kan gå fem på og hvordan hackeren tenker for å realisere phishingen i praksis. Phishing er en varig trussel, og det kommer stadig nye og troverdige phishing-forsøk og metoder. Målet med slike angrep er som regel å samle inn flest mulig brukernavn/passord. Mange brukere har samme passord på ulike tjenester, så verdien av en stor passordsamling er gull verdt for hackeren, men det kan også være andre motiver for å fiske til seg brukerdata.

Om du først blir utsatt for angrep eller har mistanke om at noe er galt, så er det mest åpenbare tiltaket å endre passordet så raskt som mulig. Da vil ikke lenger en eventuell hacker kunne misbruke kontoen din. Tilsynelatende.

But behold. There is more.

Connections-innstillingen i Twitter

Etter å ha dypdykket litt i Twitter+phishing og blant annet fått tips av @AtelierKari, er det ett tiltak som er minst like viktig som å regelmessig endre passord, og som alle bør gjøre fra tid til annen. Under Settings på twitter.com er det en arkfane som heter Connections. Her vises alle 3.parts applikasjoner som har tilgang til å gjøre bruk av Twitter-kontoen din. Du har selv godkjent (autorisert) slike, men du har trolig ikke lagt dem til via Twitter-innstillingene.

Bildet over (klikk for stor versjon) viser en applikasjon som jeg brukte for en tid tilbake. Jeg ønsket å generere et bilde av mine følgere på Twitter til bruk i en presentasjon om sosiale medier (på en konferanse). Jeg fant tjenesten Twilk, som kan lage et flott collage-bilde bestående av profilbildet til alle mine følgere (til høyre, klikk for stor versjon).

Twilk trenger derimot aksess til min brukerkonto for å kunne gjøre dette (fordi Twitter sitt API krever autentisering fra applikasjoner som for eksempel vil lese meldingshistorikken til en bruker). Jeg måtte derfor gi Twilk tilgang til Twitter før Twilk kunne sette i gang med jobben. Ser du et potensielt faremoment her?

OAuth, 3.partsapplikasjoner og API

La oss først se kort på hva et API er. Jeg har selv programmert et lite system som poster Twitter-meldinger automatisk i kraft av en annen bruker. Det brukte jeg til å spre 150 mac-tips automatisk utover sommeren 2009. For å få til det, måtte jeg gjøre bruk av Twitter-API-et. Det har Twitter-utviklerne programmert slik at andre utviklere (meg for eksempel) kan gjøre nytte av sentral funksjonalitet i Twitter, det være seg å poste meldinger, lese meldinger, telle opp antall følgere, hente ut brukernavnet til følgere og så videre. API-et gir tilgang til verdier Twitter har, slik at andre utviklere kan lage egne systemer som bruker disse verdiene.

Twilk (nevnt over) bruker noe som heter OAuth, en åpen protokoll for å autorisere tilgang til en tjeneste fra en annen via et API. Med OAuth kan utviklere lage programvare/tjenester som gir tilgang i kraft av en bruker på en annen tjeneste. Siden Twilk bruker OAuth mot Twitter vil Twilk ikke få brukernavnet og passordet mitt, men har likevel tilgang til å operere mot min konto. OAuth brukes som metode for å gi Twilk privilegier for min Twitter-bruker. Det er bra, for det er nettopp det som må til for å utføre jobben. Jeg vil at Twilk skal kunne hente alle profilbildene til mine følgere, og sette disse sammen til ett stort bilde sortert etter frekvens på hvor ofte vi har kommunisert på Twitter. Jeg vil derimot IKKE at Twilk skal få passordet mitt, for jeg vet ikke hvem som har laget Twilk og stoler ikke på at de har ærlige hensikter. Altså kun tilgang, intet passord. OAuth sikrer dette.

Når bildet jeg "bestilte" var ferdig laget av Twilk, så ønsket jeg ikke å lage flere. Dette var altså en engangsbruk for meg. Men - det jeg nå har oppdaget (en måned i etterkant) er at Twilk fortsatt ligger inne med aksess som autorisert 3.partsapplikasjon under Connections-innstillingen i Twitter! Dette er utrolig skummelt. Jeg kan bytte passord og føle meg trygg, men Twilk har likevel tilgang. Tenk over hvilke følger dette egentlig har. Det er jeg som først gav tilgang og den er vedvarende. Twilk har ikke passordet mitt, men kan likevel operere mot kontoen min slik de vil. De kan faktisk sende spam-meldinger i mitt sted, selv om de har lovet meg på websidene deres at de kun skal samle inn alle profilbilder til mine følgere. Jeg stoler på at de ikke gjør det, men kan jeg være sikker?

Tiltak for beskyttelse

Svaret er nei. Jeg kan ikke stole på Twilk, og jeg kan ikke stole på noen andre aktører. La oss ta noen tankeeksperimenter (med Twilk som tilfeldig hypotetisk eksempel :-) Twilk kan starte med ærlige hensikter, men bli kjøpt opp av uærlige mennesker. Twilk kan være designet til å være tilsynelatende nyttig mens hensikten egentlig er å lure folk til å gi tilgang til deres aller helligste på Twitter. Twilk eller en hvilken som helst annen Twitter-tjeneste kan lure meg. Jeg vet ikke, og derfor må jeg ta forhåndsregler.

Dersom du gir tilgang til en 3.parts tjeneste i Twitter-sammenheng, så foretrekk de som benytter Oauth. Vær skeptisk hvis tjenesten ikke bruker OAuth, men eksplisitt ber om ditt brukernavn og passord. Vil du virkelig leke med ilden, så kan det være lurt å endre Twitter-passordet først (for eksempel til "1234"). Logg så inn (lek med ilden), bruk tjenesten, gjør deg ferdig og endre deretter tilbake til ditt opprinnelige passord igjen. Da har en potensiell uærlig aktør fått et ubrukelig passord.

Slett 3.partstjenester fra Connections-innstillingen med en gang du er "ferdig" med å bruke dem.

Twitter anbefaler selv på sine websider å sjekke Connections-innstillingen jevnlig (takk til @AtelierKari for lenke. Dette gjelder selv om du ikke mener du har gitt tilgang til noen 3.partsapplikasjoner! Du kan nemlig være "hacket" uten at du vet om det, og hackeren kan ha gitt tilgang til applikasjoner i ditt sted. Hvis det skjer, så har hackeren kontroll selv om du bytter passord, fordi slike applikasjoner er autoriserte en gang for alle uavhengig av hvor ofte du bytter passord. Fjern de tjenester du får listet opp som du ikke har et aktivt forhold til. Da bør du være rimelig trygg. Dette kan virke paranoid, men du vet aldri hvordan mennesker bak slike tjenester har tenkt og programmert løsningen sin. Tjenester som kan synes profesjonelle og nyttige, kan i virkeligheten være et skalkeskjul for noe helt annet.

I tillegg til alle tiltakene nevnt i dette innlegget (med evt. kommentarer) bør du også se på forrige blogginnlegg med kommentarer, som lister en del viktige tiltak for å beskytte seg mot phishing. En viktig strategi er for eksempel å anse varsler som kommer per e-post kun som en varsling om at noe er nytt, ikke som en snarvei til dette nye (sier sikkerhetsguru Bruce Schneier). Altså må du logge eksplisitt inn på tjenesten i stedet for å klikke på lenken. Det tar litt mer tid, men er sikrere og er noe jeg som regel gjør selv, uansett hvor troverdig lenken ser ut.

Oppsummering og konklusjon

Det kan være flere kilder til misbruk av din Twitter-konto. Hvis en hacker får deg på fiskekroken og får vite passordet ditt, så kan hackeren poste meldinger i ditt sted (for eksempel gjennom et automatisert script eller ved manuell innlogging). Et umiddelbart tiltak er tilsynelatende å bytte passord. Dette kan løse problemet, men som vi har sett er det også mulig for hackeren å legge inn 3.partsapplikasjoner som for alltid vil være autoriserte, uavhengig av dine passordskifter. Det er derfor viktig å både endre passord jevnlig/ved mistanke og å sjekke Connections-innstillingene i Twitter hvor autoriserte 3.partsapplikasjoner kan administreres. Bruk gjerne 3.partsapplikasjoner, men vær alltid varsom og grunnleggende skeptisk. Da går det bra. Disse forhåndsreglene gjelder for øvrig ikke bare Twitter, men også Facebook og andre Web 2.0-tjenester.

Dersom du tror dette innlegget kan ha nytte for andre som kan ha nytte av å kjenne til problematikken, så spre gjerne. Hvis jeg får spam på Twitter så sender jeg en beskjed til spam-offeret som viser til dette og forrige blogginnlegg om problematikken, føl fri til å gjøre det samme om du vil:

Hei, du er trolig hacket og har sendt ut spam. Noen vet passordet ditt. Se analyse/tiltak på: http://bit.ly/bhCr4m og http://bit.ly/dwFauK

Har du andre sikkerhetshensyn som folk bør være klar over når det gjelder Twitter, eller synspunkter på dette innlegget?

25. februar 2010

Twitter og phishing

I dag ble jeg forsøkt "hacket" på Twitter. Jeg gikk ikke fem på, men jeg ser for meg at mange gjør det. Angrepet er utspekulert. Jeg fikk nemlig en direktemelding fra en nordmann på Twitter (varsling via e-post). Da er det fort gjort å bli lurt. I dette innlegget skriver jeg om mine erfaringer og refleksjoner, og prøver å forklare hva phishing er slik at du kan lære mer om sikkerhet på nett generelt og phishing spesielt. Jeg vil også foreslå noen strategier for å unngå å gi fra deg din innloggingsinformasjon.

Analyse av et phishing-forsøk

Start med å se nøye på denne meldingen:

Her har en nordmann, la oss kalle ham "Lasse", tilsynelatende sendt en direkte melding til meg. Som vi skal se senere er det ikke Lasse, men en automatisert rutine, som har sendt meldingen. Det er fordi Lasse har blitt lurt i første omgang, og med en gang han blir lurt, brukes han som virkemiddel for å lure andre. Hvis jeg blir lurt, så brukes jeg også.

Meldingen er skrevet på engelsk. Jeg ante derfor raskt at det var "moser i luften". Neste bilde viser hva som møter brukere som klikker på lenken:

Klikk på bildet for å åpne i større versjon

URL-en i adressefeltet avslører at dette ikke er en Twitter-side. Det hackeren her har gjort, er å gå til Twitter, vise kildekoden, kopiere den, lage en ny fil, lime inn HTML-koden og så legge ut filen på sitt eget nettsted. Det er den falske websiden vi ser i bildet over, men det ser helt likt ut med hvordan Twitter presenterer innlogging når du klikker på noe som krever innlogging uten å være logget inn.

Hackeren har for øvrig endret en viktig detalj i HTML-koden. Når du skriver inn brukernavn og passord og trykker "Sign in"-knappen, så lagres informasjonen i en database. Jeg har ikke prøvd, men dersom hackeren er lur så vises enten ressursen du forventet å få se (et bilde i dette tilfellet), eller så vises en feilmelding, eller kanskje redirigeres du til den ekte Twitter-innloggingssiden. En smart hacker vil prøve å skjule overfor alle ofre at de nettopp har blitt lurt til å oppgi brukernavn/passord. Derfor må en være føre var i stedet for etterpåklok i slike situasjoner. Det er verdt å understreke at hackeren ikke sitter klar og reagerer i det folk trykker. Hackeren har laget et automatisert script/programrutine som utføres i det øyeblikk "logg inn"-knappen trykkes. Alt er klargjort på forhånd. Derfor kan tusenvis gå i fellen samtidig.

Hackerens motivasjon

Du lurer kanskje på: Hva skal egentlig hackeren med innloggingsinformasjonen din? Hackeren har laget et script som automatisk logger inn i kraft av offeret og sender tilsvarende direktemeldinger til dem som offeret følger. Meldingen sprer seg da i takt med at stadig nye mennesker går på. For hver ny person som blir lurt øker databasen over gyldige brukernavn og passord. Målet er å få flest mulig brukernavn/passord. Hvorfor er dette skummelt? Hva skal hackeren med dette?

Twitter-kontoen din brukes ved første øyekast til å lure andre. En kan fort tro at målet blir å lure flest mulig, men det er ikke tilfelle. Det er mer korrekt å si at metoden er å bruke eksisterende nettverk og tilliten som ligger i direkte meldinger, til å lure flest mulig. Målet er ikke å lure folk, men å stjele fra folk. Hva da? Hva er verdien av at hackeren vet brukernavnet og passordet ditt og mange andre sitt? La oss tenke over hva hackeren egentlig har. Han har ikke bare en liste over brukernavn/passord, men han kontrollerer faktisk utrolig mange ekte, etablerte Twitter-kontoer. Dette er verdifullt. Veldig verdifullt. Han kan for eksempel spre reklame for et produkt med jevne mellomrom, og nå hundretusenvis av følgere som ellers ikke ville fått informasjonen. Tenk deg at jeg plutselig sender ut reklame på Twitter for en duppedings, uten at jeg selv vet om det. Hvordan vil mine følgere tolke det? Jo, de vil ta det som en anbefaling siden jeg ellers skriver faglig interessante meldinger. Dersom et firma sender en slik, så overses det i større grad. Det å misbruke hackede kontoer blir derfor et kraftig instrument med tanke på reklame. En kan tenke seg mange varianter av dette. Det er derimot noe enda mer alvorlig vi bør se på.

Hackeren vet at mange mennesker benytter samme brukernavn og passord for ulike web-tjenester. Når hackeren har en riktig kombinasjon av passord/brukernavn, kan hackeren prøve denne på gmail, paypal, facebook, ... og så videre. Det er ikke sikkert det går, men det kan være. Det kommer an på hvilken passordstrategi offeret har benyttet. La oss si at hackeren gjennom et slikt angrep klarer å samle inn 10.000 brukernavn/passord. Det er da sannsynlig at en god del av disse har samme id-er på en rekke nettsteder (de som er på Twitter er trolig på mange nettsteder, så her er det bare å prøve i vei). Om hackeren bare får treff med brukernavn/passord på 100 PayPal-kontoer av 10.000 ofre, så er det likevel god butikk. Det er også mulig å lage automatiserte rutiner som tester om innlogging lykkes eller ikke, og bygger opp nye lister over hvilke brukernavn/passord som fungerer på hvilke nettsteder. En manuell analyse utført av hackeren vil også kunne avsløre mønstre i passordene. Selv om en bruker varierer passordet fra tjeneste til tjeneste, vil hackeren kanskje kunne klare å gjette seg til hva variasjonen består av, og slik knekke de virkelige inntekstbringende tjenestene (PayPal for eksempel).

En annen motivasjon kan være å samle en stor base av brukernavn/passord og så selge til høystbydende slik at de kan gjøre butikk av det.

Hvorfor lykkes slike angrep?

Dette er en variant av såkalt "social engineering". Hackeren har forstått Twitter og vet at direktemeldinger varsles per e-post og vises med full tekst i e-posten. Brukeren som får en slik e-post (potensielt offer) trenger altså ikke logge seg inn på Twitter for å se meldingen. Den står i klartekst i e-posten. Men - her er det en lenke og teksten gjør folk nysgjerrig på hva som er bak lenken. Mange vil klikke og møter en beskjed om å logge seg inn på Twitter. Noen aner lunten og avbryter, men siden en kom fra e-postprogrammet og ikke fra Twitter direkte, vil mange trolig tenke at "aha, nå vil Twitter at jeg logger inn for å se ressursen så da får jeg logge inn". At en får direktemelding gjør det hele mer troverdig. Prøv gjerne å oppsummere overfor deg selv hva som nå er nøkkelen til hackerens suksess.

Min korte oppsummering er at hackeren lykkes ved å

  • gjøre angrepet troverdig og å skape tillit
  • lede offeret til en falsk versjon av en webside, med det formål å stjele informasjon fra offeret
  • bruke offeret som virkemiddel for å skalere opp angrepet

Hvordan unngå phishingangrep?

Phishing er utbredt. Det er fordi vi i det siste har sett en sterk vekst i nettbaserte tjenester. Stadig mer av daglige gjøremål skjer på nett, og massen av brukere øker kraftig. Det betyr at potensielle ofre øker tilsvarende. Det er viktig å være oppmerksom på lenker en klikker på. Hvis jeg får en lenke med varsling om at jeg har fått melding på Facebook, Twitter eller andre tjenester, så åpner jeg alltid et nytt blankt vindu og logger inn på den aktuelle tjenesten. Deretter klikker jeg på lenken i e-posten. Det tar noen sekunder ekstra, men hindrer at jeg blir lurt dersom lenken er en phishing-lenke. Selv om varslingens meldingstekst ser autentisk ut kan det være phishing. Bedre føre var...

Dine passord er gull verdt. De gir deg tilgang til noe bare du skal ha tilgang til. Dersom ditt passord på en tjeneste blir kompromittert, enten ved hjelp av phishing eller andre teknikker, så ønsker du trolig å redusere skaden så mye som mulig. Da kommer vi inn på passordstrategi. Vi mennesker har ikke evne til å huske mange ulike passord, og faller for fristelsen til å bruke samme passord overalt. Det gjør derimot eksponeringsfaren større i tilfelle du blir lurt overfor en tjeneste. Jeg har skrevet en praktisk veileder om hvordan en kan tenke om gode brukernavn og passord som er høyaktuell i så måte.

Dersom du har mistanke om at du har blitt utsatt for et slikt angrep, så endre Twitter-passordet ditt umiddelbart. Da vil hackeren ha et ugyldig passord og kan ikke lenger utnytte brukerkontoen din. Vurder nøye om du virkelig vil bruke samme passord flere steder. Twitter er en avansert tjeneste med tanke på økosystemet rundt Twitter, og kan være ekstra sårbart for angrep. Selv har jeg nå endret slik at Twitter-passordet mitt er unikt kun for Twitter.

Hva tenker du?

I dette innlegget har jeg prøvd å reflektere litt om hvordan slike angrep typisk utføres, motivasjonen til hackeren og hva du kan gjøre. Har du forslag til flere argumenter eller andre mulige synspunkter? Legg gjerne igjen en kommentar.

7. februar 2010

Twitter + Melodi Grand Prix = morsomt

Twitter er først og fremst en arena for deling av gode ressurser, faglige diskusjoner og personlig læring. Men - av og til er det skikkelig gøy også, særlig når mange samles om, og kommenterer, en felles begivenhet. Det er for eksempel mange som ser Melodi Grand Prix (MGP). Det å følge med på Twitter samtidig som en ser på TV, gir MGP en helt ny dimensjon. Under sendingen av MGP ble det skrevet mange twittermeldinger av folk som så på TV (med mobil/PC i fanget). En twittermelding kan være inntil 140 tegn i lengde. Dette krever at den som skriver må formulere seg kort og konsist. Når en har tid til å formulere seg skriftlig, og leser hva andre skriver, blir resultatet ofte finurlige formuleringer.

Den 6.februar 2010 tagget mange meldingene sine med #mgp. Dermed var det enkelt å søke opp alt som ble skrevet om Melodi Grand Prix. Det har aldri vært så givende og morsomt før å se Melodi Grand Prix. Jeg synes denne bruken av sosiale medier er et interessant fenomen som det er verdt å skrive om. Jeg har derfor plukket ut noen av de jeg synes er mest morsomme, kategorisert disse etter tema og kreditert opphavsmannen med @brukernavn foran meldingen:

Ytringer om vinnermelodien:

  • @MagnusNedregard: Noterer at fiolin-trikset virket i #mgp igjen.
  • @Jarle_H: Didrik så nok at Rybak gjorde suksess med fele ifjor... så i år knallet han til med hele fem stykker... #mgp
  • @hanspfo: #MGP Finalens nest dårligste låt vant og vi slipper dermed alle bekymringer rundt hva tv-lisensen skal brukes til i 2011.
  • @kagh: Vil dette si at vi får råd til å arrangere ski-VM i 2011? #MGP
  • @lmaroen: Regn med å se folk sovne sporadisk i tiden fremover, av at de nynner på verdens kjedeligste låt. #mgp
  • @graver: Registrer en del klager på musikksmaken til de som stemmer på #mgp. Men de med musikksmak ser vel ikke på #mgp? :)
  • @rkarolius: Julesangen vant. #mgp
  • @dagta: #mgp Hurra. Gratulerer alle sammen. Didrik vant. Nå slipper vi neste år.

Om SMS-stemming:

  • @mortenprom: Okay. Konklusjonen fra i kveld må være at vi fratar alle gamlinger mobilene deres...
  • @bjornva: SISTE: Norske svigermødre har i kveld utviklet mad sms-skillz #mgp
  • @teknobloggen: En million nordmenn vil betale 5 kroner for å stemme på en GP-sang, men betale for å laste den ned sitter langt inne?

Under utdelingen av stemmene:

  • @hannesnielsen: Her stiller ordførere med kjedet sitt som om det var offisielle besøk av Kongen? Hvordan har #mgp fått en sånn posisjon?
  • @gossoman: er Jørn Hoel ordfører? Jøss. #mgp

Karakterisering av deltakerne:

  • @VGNettMads: Du vet at vi lever i en kommersiell verden når kjæresten til Barbie vinner Grand Prix #MGP
  • @HalvorDahl: Enda godt ikke Satan-folket vant #MGP. Det skulle tatt seg ut.
  • @chrisspaulsen: som bevis på at det kun er utseendet som teller: Didrik vant #MGP
  • @opplyskontoret: 3. plass i MGP ikke helt det Keep of Kalessin så for seg da de inngikk deal med Djevelen
  • @bjornva: Mulig det er påpekt tidligere, men hvordan kunne ma arredondo delta både solo og som vokalist i keep of kalessin?
  • @halvordahl: Merkelig at alle i Keep of Kalessin har kopiert sveisen til Maria Arredondo. #MGP
  • @teknobloggen: Shit! Noen har slaktet en stressless og sydd kjole til Maria Haukaas Storeng

Pauseunderholdning med Ingrid Bjørnov:

  • @umulius: Ingrid Bjørnov < Se maling størkne
  • @flatpedal: Herregud dette var lange tv-minutter. Stakkars olliver
  • @SolElisabeth: Mgp. Eneste bra innslag i kveld,Ingrid Bjørnov.
  • @palnordseth: "Litt" kulere enn Ingrid Bjørnovs historietime. Se Dolph Lundgrens pauseunderholdning i svenske MGP i går: http://bit.ly/aOK48I
  • @jonaspetter: Ingrid Bjørnov - Dolph Lundgren 0-1. http://bit.ly/b5bAVo #MGP
  • Fra en facebook-venn: Ser at AMO-kurset for musikere i kommersiell og kreativ krise kulminerer med en slags "eksamen" på NRK1...

Diverse:

  • @auduny: La det swinge til du mister alt + ctrl #mgp
  • @FrokenMakelos: Twitter gjør #mgp uendelig mye mer underholdende. Hurra!
  • @NilsApeland: Sjelden i TV-historien har så mange laget så mye for så mange ut av så lite.
  • @gorken: Vi må «sende» Didrik til den internasjonale finalen... Heldigvis trenger han bare klippekort på bussen for å komme dit

Dersom du vil skumme gjennom alle Twitter-meldinger som omhandler Melodi Grand Prix, så se på http://hashtags.no/mgp. Hvilke kommentarer synes du er mest morsomme?