Säkerhetsproblem hos DN och SvD

http://www.codeodyssey.se/upload/resource/blog/DN-achtung.png

För ett tag sen skrev jag om en tysk sajt som listar upp säkerhetsproblem av typen XSS på kända webbplatser. Ägaren av denna hittade min artikel och frågade om jag kunde översätta den till engelska.

Under vår diskussion sa jag att det skulle vara intressant att veta hur säkerheten ser ut på den svenska webben. "beNi" som säkerhetsexperten kallar sig erbjöd sig att ta en koll på några sajter om jag skickade honom en lista. Jag tog några som var i färskt minne och har varit ganska aktuella på nätet det senaste.

Nyhetssajter:

Aftonbladet.se
DN.se
SvD.se

Bloggportaler:

Bloggportalen.se
Twingly.se
Knuff.se

Stor besvikelse

Nu fick jag ett svar från beNi som har undersökt säkerheten på några av sidorna. Han orkade bara att undersöka DN, SvD och Twingly. De andra tre tyckte han laddade för långsamt för att han skulle orka jobba med dem (även fast han har en 6MBit-uppkoppling).

BeNi hittade en hel del osäkra sidor inom loppet av några minuter. Både DN och SvD innehåller luckor i säkerheten som man kan läsa i sammanställningen på hans blogg. Där finns även fem exempel på länkar som visar hur säkerhets-luckorna kan utnyttjas.

Exempel på säkerhetsluckor

De länkar han hittade på DN, SvD och Koll.se finns här under. Jag har även laddat upp skärmdumpar på hur sidorna ser ut när man besöker dem för tillfället. Observera att det inte är farligt att klicka på just dessa länkar. Men ser du några liknande länkar från en okänd källa så skulle jag definitivt avråda från att besöka dem.

Säkerhetsproblem 1 - DN.se (problem åtgärdat) (skärmdump)

Säkerhetsproblem 2 - DN.se (problem åtgärdat) (skärmdump)

Säkerhetsproblem 3 - Koll.se (problem åtgärdat) (skärmdump)

Säkerhetsproblem 4 - SvD.se (problem åtgärdat) (skärmdump)

Säkerhetsproblem 5 - SvD.se (problem åtgärdat) (skärmdump)

Man kan alltså kontantera att Twingly klarade sig bra mot XSS-attacker. Sajten använder ASP.NET där mycket av skydden är inbyggda. Microsoft har som tur är insett att hoten är väldigt allvarliga och även gett ut speciella API:er som man kan skydda sina projekt med. Jag kommer att återkomma om dessa i senare artiklar.

För DN som använder Java och SvD som kör klassisk ASP gick det alltså inte så bra för i testet.

Utvecklare måste vakna

Det är lite pinsamt att se hur så här stora nyhetssajter inte har total koll på säkerheten. Webmasters måste vakna och förstå de nya hoten som hela tiden ökar mot webbplatser. Sajter med svagheter hotar inte bara den inre strukturen, utan själva grejen med cross-site-scripting är att det kan användas i attacker mot andra mål.

Uppdatering: Twingly indexerar XSS-länkar! Märkte just att en länk till det här inlägget dök upp på SvD. Det var inte min mening, men visar att Twingly inte verkar har något filter mot XSS. Eller så får vi hoppas på att de har kapat bort de sista querystringsen i länken. Hur som helst borde inte systemet godkänna den länk som jag kallar "säkerhetsproblem 5" här ovan. Att artikeln på SvD handlar om säkerhet och har överskriften "Jakten på trygghet gör oss otrygga" var ju endå lite ironiskt. Det visste nog inte vår tyska vän när han valde ut målet. Och jag hade inte sett innehållet när jag postade detta eftersom den riggade länken gömmer hela det riktiga innehållet. Nåväl, nu kanske SvD och Twinglys utvecklare får upp ögonen lite snabbare.

Uppdatering 2: Vi är glada att Primelabs (som utvecklar Twingly) har tänkt igenom XSS-hoten. Martins upplyser oss i kommentarerna om att deras system normaliserar urlerna innan de sparas. Vi vill också passa på att förklara att det inte är någon fara att surfa på någon av de webbplatser som har nämnts i denna artikel. Det finns dock en risk att utomstående sajter kan lägga ut länkar till DN och SvD som på något sätt kan vara ett hot mot säkerheten. Eller skicka länkar via email eller chatt-system. Det är också värt att påpeka att såna här sårbarheter är väldigt vanliga. Det visar inte minst det faktum att säkerhetsexperten beNi kunde hitta problem på två av de tre webbplatser han försökte med.

Uppdatering 3: Nu har tydligen DN också länkat till denna artikel genom Twingly. Det kan jag inte riktigt förstå eftersom XSS-länkarna till DN inte verkar ha alls samma adress. Länken "Säkerhetsproblem 2" går visseligen till nån inloggningssida som innehåller id-numret för den artikel. Det visar att Twingly har rätt stor dynamik på systemet för att länka rätt. Det är artikeln "Över 70 döda i nya bombdåd i Irak" som länkar hit. Nu ser jag ett litet problem med Twingly tjänsten. Hur får man bort länkar man inte vill ska hamna där? Måste man anmäler man dem som olämpliga? Ett enklare tillhandagångssätt för att ta bort sina egna länkar hade underlättat. Om ni på DN som kollar på detta imorgon läser detta så får ni gärna plocka bort länken. Den är ju inte direkt relevant i det sammanhanget. Om ni vill läsa andras funderingar om Twingly och relevans på nyhetssajterna så kan ni ju alltid börja på Beta Alfa.

Uppdatering 4: Jag beslutade mig för att ta bort länkarna tills vidare. Detta så att utvecklarna ska kunna få tid att lösa problemen i fred. Tror inte att dessa länkar skulle kunna användas till att ställa till någon speciell skada. Ville mest visa att man kan hitta dem på de flesta webbplatser och visa ett verkligt exempel. Sen var jag ju inte heller först med att publisera länkarna publikt. Ifall DN och SvDs utvecklare (SvD har hört av sig och tackat för mitt tips) vill ha länkarna så kontakta mig på info [at] codeodyssey.se. Annars bör ni kunna hitta dem i er besökarlogg.

Uppdatering 5: SvD har fixat problemen på sin sajt. Grattis till att det gick så fort, det var imponerande! Jag har lagt fram dessa länkar igen i utbildningssyfte till andra utvecklare. Ett annat skäl till att jag vill ha kvar länkarna är att jag vill studera hur sökmotorerna kommer att reagera på dem. Kommer de till exempel fortfarande fungera i de cachade versionerna hos Google? Det ska bli intressant att följa vad som händer.

Uppdatering 6: Vi är glada att lägga märke till att DN nu också har fixat säkerhetsproblemen. Båda sajterna lyckades alltså täppa igen hålen på bara 1-2 dagar vilket är riktigt bra.

Comments

Hej Jesper, tack för en bra artikel, det är viktigt att lyfta fram säkerhetsluckor inte minst för sajtägarna själva. För att vara tydlig gentemot andra läsare vill jag klargöra att det inte är Twingly som skapar säkerhetsluckorna på DN och SvD. Twingly normaliserar urlar innan de skickas vidare, det går därmed inte att genomföra liknande XSS-attacker (XSS står för "cross site scripting") genom att tidningarna publicerar blogglänkar. Att "Twingly indexerar XSS-länkar" stämmer alltså bara delvis, det är sant att de indexeras men den delen som skapar XSS-sårbarheten försvinner. Återstoden blir en helt vanlig webbadress. Mvh Martin Källström
Martin, Tack så mycket för den informationen. Jag hoppades på att ni hade en spärr mot detta och är glad att det visade sig vara fallet. Jag har strukit över det felaktiga påståendet och skrivit en till uppdatering om din kommentar. Kan för övrigt gratulera att er egna sida Twingly var säker mot XSS. Killen som genomförde testet sa att han bara fick ASP.NET-error när han försökte. Han lyckades inte exekvera något Javascript på er sida. Det måste väl också ses som en komplimang att sidan laddade tillräckligt snabbt för att han skulle orka försöka. Är också glad att du tyckte att den här artikeln var positiv. Jag var lite nervös att de sajter som jag tagit upp som exempel skulle visa ogillande till att jag publiserade länkarna. Men eftersom den tyska sajten redan hade gjort det, såg jag inte det som någon större fara. Jag hoppas att utvecklar-teamen på DN och SvD har överseende med att jag har skrivit detta inlägg. Nyhetssajterna utför ju ofta egen granskning och det är väl inte alltid de meddelar dem de skriver om innan kan jag tänka. Jag borde eventuellt ha kontaktat sajtägarna innan jag skrev detta inlägg men det är lätt att vara efterklok. Jag ville skapa lite uppståndelse runt det så att fler utvecklare får upp ögonen. Riktiga "live"-exempel är oftast den bästa undervisningen.
Nu har jag kontaktat både DN och SvD angående detta. Jag önskar dem all lycka till för att säkra sina webbplatser mot cross site scripting. Detta blogg-inlägg borde vara en bra referens till felsökning.
Man blir trots allt lite nyfiken på vad han hade kunnat åstadkomma på Aftonbladets sida - den framstår ju inte direkt som modern och genomtänkt, åtminstone från utsidan. Å andra sidan är det ju ganska talande att han inte ens orkade testa den för att den laddade för långsamt...
Tyvärr är ju många större webbplatser öppna idag, är de "stängda" för XSS så är de öppna för SQL Injections istället. Det finns ett ypperligt exempel på en kommunal webbplats som är helt öppen för både det ena och det andra. Det konstiga är att webbplatsen utsattes för "hacking" för några månader sedan, men säkerhetsluckorna är fortfarande öppna, speciellt SQL Injection. Känns dumt att länka dit så jag hoppar över det. /Johan
Hej Jesper, tack för dina uppdateringar och förtydliganden. Angående publicering av den här typen av uppgifter förstår jag din nervositet. Man kan överväga att först kontakta sajtägarna och ge dem skälig tid (några dagar) att reagera innan man gör informationen publik. Nu var det här inga hemligheter, verktyg för att testa sådana sårbarheter finns sedan länge tillgängliga för de som har intresse av det. Mvh Martin Källström
Martin, det är givetvis som du säger att jag borde ha kontaktat sajtägarna först. Det kändes dock som att XSS-sårbarheter inte är så farliga att lägga ut publikt. Det handlade ju mest om att visa att man kunde köra egna Javascript på sajterna foga in eget innehåll på domänerna. Inga försök till att modifiera data eller få fram känsliga uppgifter gjordes. Dessa brister finns ju på de flesta webbplatser om man letar. Och de som vill ställa till skada hittar dem lätt. Detta var tänkt som ett realt exempel så att utvecklare lätt kan se vad det handlar om. Jag ska fundera på att göra lite egna exempel på min webbplats i framtiden. Jag har nu tagit bort länkarna tills vidare, se uppdatering 4.
z0idberg, jo det undrar man hur säker Aftonbladet är och även Bloggportalen. Johan, håller med dig att det är skrämmande hur många webbplatser som är öppna för SQL-injektion och XSS. Använder man tjänster själv på en sådan webbplats tycker jag det är viktigt att veta hur säkra ens egna uppgifter är. Ska precis åka ut på resa idag. Men fortsätter gärna att diskutera webbsäkerhet. Tack alla som har kommenterat artikeln.