Hoppa till innehåll
Anime.se

Bakom kulisserna

  • inlägg
    4
  • kommentarer
    4
  • visningar
    3 188

Bidragare till den här bloggen

Oplanerat driftavbrott 1-17 december 2017


Sceleris

1 565 visningar

 Share

Kanske – förhoppningsvis? – har ni märkt att Anime.se var otillgängligt från 1 december 2017 till 17 december 2017.

 

KORTFORM: Vi blev hackade. Hackaren har troligtvis inte våra lösenord, men byt för säkerhets skull ändå lösenord här på Anime.se och överallt där du använder samma lösenord som du använder på Anime.se. Överväg att aktivera tvåstegsverifiering.

 

LÅNGFORM:

Vad hände? Servern blev hackad.

@Avathars serverdator som var värd åt Anime.se var också värd åt några andra webbplatser. Den 30 november märkte vi att Anime.se samt en annan av dessa webbplatser hade blivit hackade. Med "hackade" så menar vi att obehöriga människor har lyckats använda säkerhetsbrister i serverkonfigurationen för att kunna utföra egen programkod.

Hackningen av den andra webbplatsen användes för att bedriva nätfiske/phishing, vilket drog till sig uppmärksamhet från några tunga namn inom internationell bekämpning av bedrägeri på Internet. För att inte skada Anime.se:s internetleverantörs rykte (det är inte en konventionell internetleverantör) bestämde vi oss för att inte enbart städa bort hackningen, utan också flytta själva servern till annan leverantör.

Det är främst denna serverflyttning som har tagit tid.

Varför inträffade hackningen? Slumpen, och bristfällig säkerhet från vår sida.

Varje offentlig webbserver utsätts dagligen för dussintals (om inte hundratals eller tusentals) hel- och halvautomatiserade attacker som prövar kända säkerhetshål, t.ex. särskilda installationer av webbmjukvara som Wordpress. De flesta försök misslyckas, och hackaren prövar ett nytt offer. Men när hackaren får "vittring" på någon säkerhetsbrist, så kan den göra ett manuellt hackningsförsök och pröva olika tekniker för att få tillgång antingen till administratörsgränssnitt i någon viss programvara, eller tillgång till serverdatorns filsystem.

Sådana hackare har inget särskilt offer i sikte, utan bara prövar mängder av sajter. Givetvis sker även attacker mot specifika webbplatser, med avsikt att exempelvis stjäla ekonomiska uppgifter eller utföra sabotage, men efter analys av hackningsmetoderna och spåren som efterlämnats (programkod och uppgifter i webbserverloggarna) finner jag det osannolikt att tro att detta ska ha utförts av en person som specifikt velat Anime.se illa. Vi blev attackerade för att vi inte hade en säker webbserver.

Jag har inte kunnat avgöra när Anime.se-hackningen inträffat (hackningen av den andra webbplatsen är orelaterad), eller genom vilket säkerhetshål. Det kan ha skett så länge som ett år sedan (runt december 2016), eller mer nyligt. Säkerhetshålet kan ha varit dålig säkerhet i programkoden bakom forummjukvaran, men i så fall tror jag att det är en äldre version, då jag tror att den är bättre nu. Jag kan dock inte utesluta att säkerhetsbristen har varit i någon programkod som jag skrivit själv, även om jag alltid försöker minimera riskerna i den kod jag skriver.

Vilken skada är skedd? Ingen känd, men användares uppgifter kan ha läckt ut.

Jag har som sagt analyserat hackningen. För Anime.se:s fall har det i princip gått ut på uppladdning och körning av obehörig programkod i språket PHP. Det har inte lett till (och kan under rimliga omständigheter inte leda till!) en hackning av operativsystemet på serverdatorn, men hackaren har onekligen haft möjlighet att göra allting som forummjukvaran har kunnat göra: manipulera webbfiler och manipulera databasen.

Vi har redan kammat igenom och säkerställt att alla filer på webbserverinstallationen är korrekta. Med tanke på hur hackningar som dessa brukar yttra sig så misstänker jag personligen att hackaren inte intresserat sig av vår databas, men jag kan inte utesluta det, så det är rimligt att agera från ett värstafallsscenario: vi bör utgå från att hackaren har laddat ner hela databasen.

Vilka uppgifter kan ha läckt ut, om en läcka har skett? Vad som helst som medlemmar själva har angett.

Anime.se är trots allt inte en finansorganisation, så vi bör inte ha någon särskilt känslig information, men varje medlem som angett information får själv tänka på vad som kan finnas. Om du skickat viktiga lösenord eller hemligheter med PM (privata meddelanden) till andra medlemmar, så kan det finnas i en potentiell läcka.

De viktigaste uppgifterna för de flesta medlemmarna är förmodligen deras mejladresser och hashade, saltade lösenord (+ salt).

Mejladresser kan man vilja hemlighålla exempelvis för att slippa skräppost, och för att inte ge hackare förslag på inloggningsuppgifter (d.v.s. de skulle kunna försöka logga in med mejladressen på andra sajter, om de också kunde komma på lösenord att pröva).

Behöver jag vara orolig för att mitt lösenord har läckt ut? Jag tror att risken är liten, men för bästa säkerhet är det en bra utgångspunkt, särskilt nu år 2017.

Lösenorden på servern är inte lagrade i klartext. Om du har lösenordet "mysecretpassword123" och det står i klartext i databasen, så kan en hackare se det direkt, och logga in på Anime.se i ditt namn.

Lösenorden på servern är INTE lagrade i klartext; de är "hashade" och "saltade". Tänk på hashning som en metod att omvandla information till tal med specifik längd. Metoden MD5 omvandlar "mysecretpassword123" till hashen/talet f745b5848872f84b341e1261b50516ef (= 328681265058597787962136258559093315311). En minimal ändring av lösenordet ger en oförutsägbar ändring av hashen: "mysecretpassword124" ger istället talet 0db56efa3f6ff4b33127065bfd0a000b (= 18222020568328642345997323382465101835).

Beroende på vilken metod som används kan hashning vara rimligt säkert, på så sätt att det är väldigt svårt att givet en hash/tal komma fram till ursprungsinformationen. Om du har talet f745b5848872f84b341e1261b50516ef och undrar vilket lösenord som ligger bakom, så måste du pröva dig fram: "a" är fel, "b" är fel, "c" är fel, "d" är fel, och så vidare. Detta kräver extremt många försök. Om du söker efter talet på Google så kommer du dock till en webbsajt där någon redan har tagit fram detta; de har beräknat massvis med kombinationer och erbjuder snabba uppslag i vad som kallas för "regnbågstabeller".

För att komma ifrån problemet med regnbågstabeller – och det faktum att många har lätta lösenord som "abc123" – kan man "salta" lösenordet, vilket är att man kombinerar det med ett slumpmässigt tillägg. "abc123" ger hashen e99a18c428cb38d5f260853678922e03, och om du söker på Google efter det så får du 1800 träffar: det är inte ett bra lösenord. Om man kombinerar "abc123" med saltet (= en slumpmässig kort text som är unik för varje medlem) "9AgpyW", så har man istället "lösenordet" "abc1239AgpyW", vilket ger hashen b2f1015f9ee3411b227633b50fac909d som du förmodligen inte kommer att återfinna i någon regnbågstabell.

Denna forummjukvara sparar så vitt jag vet hashar av metoden MD5(MD5(salt) MD5(lösenord)). Antag saltet "9AgpyW" (hash 11c565979273e02e2725d4f71186f8da) och lösenordet "abc123" (hash e99a18c428cb38d5f260853678922e03): hashen som lagras blir hashen av texten "11c565979273e02e2725d4f71186f8dae99a18c428cb38d5f260853678922e03" vilket blir hashen 8880c7e7649752b855b587e6e0b9c9c3. Det som lagras i databasen är alltså din mejladress t.ex. animefan@example.org; din salt, t.ex. "9AgpyW"; och hashen av kombinationen av hashen av saltet och hashen av lösenordet, t.ex. 8880c7e7649752b855b587e6e0b9c9c3.

Under åren har detta varit ett tämligen säkert sätt att lagra lösenord, för det har varit praktiskt taget ogenomförligt att knäcka fram ursprungslösenordet genom endast dessa uppgifter. Men nu, år 2017, har vi väldigt kraftfulla datorer, inklusive hyrdatorer via tjänster som AWS, som kan pröva åtskilliga miljarder kombinationer varje sekund. (Det finns sätt att motverka detta, genom att använda långsammare hashfunktioner som Bcrypt; detta används dock inte av vår forummjukvara.)

Det är därför inte omöjligt att hackaren har laddat ner och lyckats knäcka våra lösenord. Jag tror att det är väldigt osannolikt, men det är inte omöjligt, och den säkraste vägen är därför att anta att lösenordet har läckt.

Hur ska jag tänka kring lösenord till olika webbplatser? Återanvänd inte lösenord, använd svåra lösenord.

  • Det är inte smart att återanvända lösenord. Om du använder samma lösenord på Anime.se som du gör på exempelvis Facebook, och någon stjäl och knäcker ditt lösenord via ett hack av Anime.se, så kommer de ju att kunna logga in på ditt Facebook-konto. I ett mardrömsscenario skulle de kunna använda konton för att få tillgång till andra konton, och i slutändan lyckas genomföra en identitetskapning och få tillgång till viktiga saker som bankinloggningar.
  • Lita inte på någon enskild webbplats mer än du måste. Hackning och läckor är inte den enda risken. Tänk om jag och @Avathar var illvilliga, då hade vi kunnat knäcka era lösenord! Så lita inte på oss heller: återanvänd inte lösenord. (Och ange inte någon information som du inte vill att någon under några omständigheter ska få veta, t.ex. en hemlig mejladress.)
  • Svåra lösenord är bättre än lätta lösenord. Exakt vad som är svårt råder debatt kring; en del menar att lösenord som "correct horse battery staple" är jättebra lösenord, andra menar att man bör ha något i stil med "BHr+y:ffhuYB!2,%". Båda är dock svårare än "abc123", som i många fall går att knäcka på sekunder.
  • Tänk på var de största riskerna ligger. Jag skulle vilja påstå att de allra flesta bör vara mer på sin vakt mot hackare över nätet, än vad de behöver vara på sin vakt mot personer i sin fysiska närhet. Om det enda sättet som du kan ha ett säkert Anime.se-lösenord på är att du skriver ner det på ett papper, gör då det. (Men skriv kanske inte ner ditt banklösenord, särskilt inte på en PostIt-lapp med texten "mitt banklösenord".)
  • Bered någon metod för att kunna hantera många olika lösenord. Med en bra metod kan man använda varierade, långa, väldigt svåra lösenord, utan särskilt mycket besvär.
    • Lösenordshanterare är program som lagrar de olika lösenorden man har i krypterade filer. Man måste fortfarande komma ihåg ett lösenord, för att kunna dekryptera lösenordsfilen. Glömmer man det så är man körd! Och det bör vara ett bra lösenord, för annars riskerar man att en obehörig person kopierar och knäcker den krypterade filen. Det finns program och webbläsartillägg till alla möjliga plattformar. Jag har tidigare använt KeePass.
    • Den metod som jag använder nu heter Password Maker. Det är en metod som använder inmatad data och ett huvudlösenord för att generera unika lösenord; genom att ändra det inmatade så får man olika lösenord. Till exempel: om mitt huvudlösenord är "abc123" och jag behöver ett lösenord till Anime.se så matar jag in "anime.se" under "Input Url" och "abc123" under "Master Password", väljer lösenordslängd 32, och får "F[V9fj^\K:I0l@7$TDGzHTCS[7,wa+4i"; lycka till att knäcka det lösenordet! Har jag flera användare på Anime.se så kan jag skriva in t.ex. "Sceleris" under "Username" och istället få lösenordet "Bz8%tz^/J6x-`=`GrLu|C9c&GWG428I}". Metoden använder ingen lagring och ingen dataöverföring, så det finns inget att knäcka och ingen trafik att tjuvlyssna på. Den finns i mobilappform och som webbläsartillägg, och även webbsidan kan sparas ner lokalt på din dator.
    • Man kan använda något U2F-baserat där det går; det är en metod som använder en elektronisk nyckel i USB- eller NFC-format; tänk säkerheten med bankdosor.

 

Med allt det sagt: byt ditt lösenord, och överväg att aktivera tvåstegsverifiering. Om du inte kan logga in och inte kan återställa ditt lösenord själv, kontakta oss på info@anime.se. Om du har frågor eller åsikter, kommentera detta blogginlägg eller mejla oss.

 

Slutligen ber vi om ursäkt för besväret. Vi ber även om ursäkt för att vi varit så dåliga på att informera, och vi lovar att vi ska skärpa våra rutiner.

 Share

1 kommentar


Rekommenderade kommentarer

Bra jobbat och tack för den utförliga förklaringen. 😊 Nu har jag klart bättre förståelse för hur hackande hanteras och motarbetas.

Keep up the good work!

😊👍

Länk till kommentar
Gäst
Lägg till kommentar…

×   Inklistrat som formaterad text.   Klistra istället in som oformaterad text

  Endast maximalt 75 uttryckssymboler tillåts.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa editor

×   Du kan inte klistra in bilder direkt. Ladda upp eller sätt in bilder med URL.

×
×
  • Skapa nytt...