Investor image5

Säkerhet för webbplatser uppbyggda i WordPress

I takt med ökad digitalisering blir det större fokus på säkerhet. Vi lagrar idag mer information i molnet än tidigare på grund av fler webbtjänster. Dagens webbteknik har skapat ett större intresse och förtroende bland människor att utföra tjänster digitalt. Ett förtroende att webbtjänsternas ägare behandlar och skyddar våra personuppgifter väl. Tyvärr leder även en ökad digitalisering till större intresse för säkerhetsintrång. På så sätt är det idag större krav än någonsin på hög säkerhet.

Världens mest populära webbplattform är WordPress och därmed kommer detta blogginlägg handla om potentiella säkerhetshål och hur man täpper till dessa hål i WordPress.

Följande stycken är typiska säkerhetshål för en webbplats.

Injektion

Injektion är ett väldigt allvarligt säkerhetshål för att det möjliggör access till databasen. Detta leder till att en hackare kan skapa en kopia av databasen (fylld med information) eller få fram användarnamn och tillhörande lösenord (se autentisering och sessionshantering). Dessa typer av ”attacker” är vanliga och lätta att utföra, men det är även enkelt att förhindra. Injektioner uppkommer när en utvecklare inte saniterar (rensar bort) bland annat skadliga tecken som används vid förfrågningar till databasen, exempelvis via formulär.

Cross-Site Scripting (XSS)

Cross Site Scripting är en typ av injektion som tillåter en hackare att köra kod i webbläsaren hos webbplatsens besökare. Detta leder till att denne kan få tag i användarens cookies och annan sessionsdata. XSS är det mest vanliga säkerhetshålet på nätet vilket uppkommer när en utvecklare inte saniterar inskickad data, antingen innan den sparas eller innan den visas för användaren.

Cross Site Request Forgery (CSRF)

CSRF används ofta i kombination med XSS. En hackare kan, genom att lägga in en bit skadlig kod via XSS, styra en användare genom att kontrollera användarens webbläsare.

Bristfällig autentisering och sessionshantering

Dessa typer av säkerhetshål uppkommer när känslig data inte hanteras korrekt. Det kan exempelvis vara att en hackare kan lyssna av en okrypterad uppkoppling där exempelvis lösenord, kreditkortsnummer eller sessionstoken skickas i klartext. Det kan även vara att lösenordet inte sparas korrekt i databasen vilket leder till att en hackare kan få tag på det exempelvis via en SQL-injektion.

Lättknäckta lösenord

Det händer ofta att administratörer och redaktörer använder allt för simpla lösenord för att logga in i administrationsverktyget. Simpla lösenord kan snabbt listas ut via Brute force attacker vilket är när ett program upprepande gör inloggningsförsök för att hitta rätt användarnamn och tillhörande lösenord till en administratör.

Det finns även många som använder samma lösenord till flera administrationsverktyg. Detta ökar sannolikheten för intrång.

Ett effektivt sätt att undvika val av lätta lösenord är att enbart tillåta olika former av tecken som exempelvis ett lösenord med minst en stor bokstav, en siffra och två specialtecken. Det är även bra att kräva långa lösenord. Ett som är 20 tecken med bara bokstäver är i 99% av fallen säkrare än ett som är 8 tecken med specialtecken. Ett annat alternativ är att enbart tillåta automatiskt genererade lösenord.  Vidare är det även möjligt att begränsa antal inloggningsförsök under en viss tidsperiod samt begränsa till utvalda IP-adresser.

Hur skyddar man sig?

Det mest effektiva sättet att skydda sig mot flera av nämnda säkerhetshål är att säkerställa att WordPress, plugins och teman är uppdaterade. En stor nackdel med WordPress är att potentiella säkerhetshål upptäcks ofta på grund av den enorma populariteten. Vid lansering av nya uppgraderingar publicerar WordPress vilka säkerhetshål som är ”täppta” i den nya versionen. Därmed är det allmänt känt vilka säkerhetshål det finns i tidigare WordPress-versioner! Och vilka är självfallet intresserade av detta? Jo, Hackers! De behöver enbart leta reda på webbplatser som inte har uppgraderat till senaste version.  Och säkerhetshål finns det gott om i WordPress, sedan WordPress 4.4 släpptes den 8 dec 2015 så har det i skrivande stund publicerats dussintals säkerhetshål.

Därmed är det nödvändigt att ha koll på senaste uppgraderingar av WordPress, plugins och teman. Så se till att alltid uppgradera så fort som möjligt efter lansering av nya versioner!

Ett annat sätt är att använda sig av plugins som håller koll på dessa säkerhetshål samt automatiskt blockerar inkommande förfrågningar som försöker utnyttja dessa.

För att skydda webbplatsen mot injektioner, XSS och CSRF ska alla fält på webbplatsen, där en användare kan skriva in data, valideras och saniteras mot körbar kod, så att webbplatsen inte kan manipuleras. Slarv med detta kan få digra konsekvenser och förenklar möjligheten för hackare att utföra attacker.

För att skydda sig mot säkerhetsintrång genom avlyssning av en okrypterad uppkoppling finns det egentligen bara en lösning: kryptera den. Detta kan man bland annat göra genom HTTPS vilket kräver ett installerat certifikat på servern.

Det finns självfallet mer att skriva om skydd mot säkerhetsintrång för webbplatser uppbyggda i WordPress men då behöver vi introducera er till mer avancerade termer.

Inläggets visdomsord är framförallt uppgradering och kryptering! Vi gör självfallet detta för våra kunder och har under senaste åren utfört hundratals uppgraderingar.

John Eriksson
Systemutvecklare, Provide IT