Bild på MinRidskolas hemsida

Säkerhetsbrister inom MinRidskola.se

Det finns stora säkerhetsbrister i det populära administrationsverktyget MinRidskola.se som bl.a. låter ridklubbar hantera lektioner, hästar och medlemmar. Tjänsten (Xenophon Cloud Edition) som drivs av företaget Prosperous AB har skapats för att förenkla det administrativa arbetet för ridskolor. I sitt nyhetsbrev beskriver företaget sin tjänst som enkelt, snabbt och säkert, dock sparas lösenord i klartext, hemsidan kör utdaterad TLS-kryptering och lösenordskraven är alldeles för låga. Ändå använder sig nästan 70 ridklubbar runt om i landet tjänsten.

Det här är andra delen i en serie inlägg som ska kartlägga och bedöma IT-säkerheten inom ridsporten. Första delen handlade om antalet ridföreningar som använder sig av TLS-kryptering. Tredje delen handlar är en fortsättning på denna text.

OBS: Detta inlägg publicerades tidigt 2020. Det som skrivs nedan beskriver tjänsten som den såg ut då. Problemen med att lösenord skickas i mejl och den dåliga TLS-versionen är nu båda fixade. Ett antal allvarliga säkerhetshål kvarstår dock, men de beskrivs inte i denna text.

Kort fakta om MinRidskola:

Hemsida: https://minridskola.se/ & https://xenophon.se/
Antal registrerade ridklubbar: 69 (Jan. 2020)
Antal aktiva användare per vecka: >30.000
HTTPS: Ja, TLS 1.0 (sårbar)
Sparar lösenord i klartext: Ja
Max lösenordslängd: 10 symboler

Det var när jag höll på att registrera mig för en köplats hos en ridskola på MinRidskola som jag upptäckte att hemsidan inte använde sig av TLS-kryptering. Detta var på registeringssidan, där användaren skriver in namn, personnummer, telefonnummer, e-post och inte minst lösenord. Allt detta skulle då komma att skickas helt oskyddat över internet till deras servrar. Någon person med illasinnade planer hade hyfsat lätt kunnat se den okrypterade datatrafiken mellan mig som användare och servern och stjäla inloggningsinformation eller annan känslig data. Detta gäller för alla användare, vare sig de är administratörer eller ridelever. När de har denna information kan de enkelt ta över andras konton, ställa till det för de registrerade ridklubbarna genom att radera eller modifiera (medlems-)data eller i värsta fall få root-åtkomst till hela servern.

Osäker TLS-anslutning
Firefox varnar för osäker anslutning.

Nu endast några veckor efter att jag upptäckte bristerna så har faktiskt utvecklarna implementerat TLS, men tyvärr var det TLS 1.0. Denna version ses numera som osäker och har ersatts med senare versioner som 1.2 och 1.3. Så här skriver Microsoft om TLS 1.0: ”Evolving regulatory requirements as well as new security vulnerabilities in TLS 1.0 provide corporations with the incentive to disable TLS 1.0 entirely”, dvs den ska inte användas.

Alla hemsidor ska använda sig av TLS, vare sig de innehåller känslig användardata eller inte. TLS-certifikat är gratis (t.ex. Let’s Encrypt), är enkelt att implementera och skyddar mot MITM attacker. Fördelarna med krypterad trafik överväger lätt den korta tid det tar att installera certifikatet. De flesta uppdaterar sig också automatiskt, så underhållet är minimalt.

Det andra stora säkerhetshålet är att lösenord lagras okrypterat på deras servrar (använder jag mig av ”Glömt lösenord”-funktionen på hemsidan så skickas mitt lösenord i klartext i ett okrypterat mail[!] till min registrerade email-adress). Enligt deras hemsida har de över 30.000 lektionsryttare varje vecka. Låt oss säga att någon får åtkomst till deras databas; detta ger då den personen tillgång till 30.000+ lösenord, personnummer etc, och med det full kontroll över alla konton och ridklubbar som använder sig av detta system.

I ett nyhetsbrev från april 2019 står det: ”MinRidskola.se och Xenophon kundinloggning hade tillsammans 50.684 inloggningar under mars, dvs i snitt 1.635 inloggningar per dag! Nytt rekord”. Kommer de låta lika glada om dessa användare får sina personuppgifter stulna?

Mitt lösenord i klartext på mail
Mitt lösenord i klartext på mail.

Systemet kan enkelt missbrukas, låt mig ge ett kort exempel. Har man glömt av sitt lösenord kan man begära att det ska skickas till ens e-post genom att skriva in sitt personnummer på ”Glömt lösenord” sidan. Dessa svagheter kan utnyttjas genom att en person, som låt oss säga heter Bob, skapar ett skript som skriver in alla möjliga personnummer på den sidan. Bob skickar förfrågningar till servern om att de användarna har glömt sina lösenord, fast servern vet inte om att det är en enskild person som gör detta. De personnummer som är korrekta kommer då göra så att lösenorden skickas okrypterat från Xenophons server till sina användare. Om då Bob lyssnar på trafiken från serven så får Bob tillgång till alla dessa lösenord, och kan med hjälp av personnumren (som Bob också känner till) logga in och ta över alla konton. Om servern inte har en s.k. ”rate limiter” för antalet förfrågningar per tidsenhet så kan detta troligtvis göras på bara några minuter, vilket är lysande för Bob men aning tråkigt för användarna.

Lösenord ska skickas över en säker anslutning (TLS) och lagras i krypterad form (hashning + salt). Endast användaren ska känna till sitt lösenord, ingen annan.

Den tredje bristen är att lösenord får ha max tio symboler i längd, varför inte längre? Fast eftersom lösenorden sparas i klartext så spelar det egentligen ingen roll hur långa de är….

Generellt ska lösenord helst vara längre än 16-18 symboler (så hög entropi/bitar som möjligt), se t.ex. Wikipedias artikel om det. Kortare lösenord kan ganska snabbt hittas genom brute-force attacker. Nackdelen med långa lösenord är att de är svåra att komma ihåg, därför är det bra om man använder sig av en lösenordshanterare (som t.ex. KeePassXC eller Bitwarden) som lagrar och genererar långa slumpmässiga lösenord åt en; ett unikt lösenord för varje konto eller hemsida. Alternativt kan man använda sig av tärningsmetoden; se XKCDs hemsida för exempel.

Till råga på allt så har varken MinRidskola.se eller Xenophon.se en integritetspolicy (ingen synlig iallafall), vilket tillsammans med allt ovan bryter mot GDPRs regler. Erbjuder man en tjänst så har man också ett ansvar att hålla den uppdaterad, säker och användarvänlig.

Lista på brister hos MinRidskola och Xenophon
Hästen på bilden har inget med MinRidskola eller Xenophon att göra.

Trots dessa allvarliga brister är det ändå i nuläget nästan 70 ridklubbar och flera tusen användare som använder sig av tjänsten dagligen. 

Ändå om den inte märks på samma sätt som allt annat i stallet så är IT-säkerheten lika viktig som friska hästar, rena lokaler och glada medlemmar – för utan den kan vi lika gärna glömma allt som har med enkelt, snabbt och säkert att göra.

 

Tack för att du har läst, och always encrypt!


Prosperous AB kontaktades om dessa problem den 18:e januari och den 7:e februari 2020 men inget svar eller några systemuppdateringar har kommit än, så jag publicerar istället det här inlägget för att offentliggöra bristerna i MinRidskola. Detta för att förhoppningsvis få företaget att fixa sagda brister eller för att få de registrerade ridklubbarna att byta till ett bättre och säkrare system.

Uppdatering 2020-02-28: Ändrade antal medlemmar från 50k till 30k. Antalet registrerade användare hos MinRidskola/Xenophon är okänt, men är iallafall över 30 000 enligt deras hemsida.
Uppdatering 2020-03-20: Prosperous har nu aktiverat TLS 1.2 och bytt ut glömt lösenordsfunktionen så nu skickas inte längre lösenord via okrypterade mail. Ett bra steg framåt.
Uppdatering 2021-02-25: Lade till en ”varning” om att det som skrivs kan i dagsläget vara utdaterat.

Länkar i slumpmässig ordning:

https://www.xenophon.se/
http://www.minridskola.se
https://en.wikipedia.org/wiki/Password_cracking
https://en.wikipedia.org/wiki/Password_strength#Entropy_as_a_measure_of_password_strength
https://idrottonline.se/
https://www.xkcd.com/936/
https://docs.microsoft.com/en-us/security/solving-tls1-problem

Lämna en kommentar

Din e-postadress kommer inte publiceras.