Wordpress og hacking

De seneste par uger har der været skrevet meget om WordPress og brute force hacking, men i virkeligheden er denne type angreb nok den mindste trussel mod din WordPress hjemmeside. Vi har efterhånden set nogle forskellige hackede og defacede WordPress hjemmesider, men vi har endnu til gode at se et tilfælde hvor indtrængeren kom ind ved at gætte admin-brugerens password.

Dermed ikke sagt at det ikke sker. Vi ser dagligt mere eller mindre ihærdige forsøg på at gætte passwords på vores mailservere ved at prøve en lang liste af passwords fra en ende af (som bliver standset i vores firewall), og hvis man bliver ved med at prøve rundt omkring skal det nok lykkes at finde et sted hvor man kommer ind. Den slags er imidlertid let at undgå:

Brug sikre passwords

Brute-force angreb går ud på at prøve en lang række af brugernavne / passwords fra en ende af, f.eks. "admin / admin", "admin/admin2013", "administrator/test", osv. På en WordPress website er der typisk ikke noget der forhindrer en angriber i at prøve tusindvis af kombinationer, så det er blot et spørgsmål om at starte et script og lade det prøve på forskellige hjemmesider indtil der er gevinst.

Langt den enkleste måde at beskytte sig på er at bruge sikre passwords. Her gælder det om at undgå navne, ord der findes i en ordbog, kombinationer af ord og den slags. Et godt password til en WordPress admin-bruger består af mindst 12 tilfældige tegn, f.eks. @e&6zYj8EoTG. Med et password af den type er man godt sikret mod forsøg på at gætte admin-brugerens password - hvis man vel at mærke sørger for at det er unikt. (Det er især en rigtig dårlig ide at bruge det samme password som giver adgang til webhostens kontrolpanel).

Den slags password er der naturligvis ikke nogen der kan huske, så brug værktøjer som LastPass eller tilsvarende. Eller find en måde at lave sikre passwords som du kan huske - lav for eksempel en sætning som "Sikke en varm og dejlig forårsdag i København den 17. april" og brug de første bogstaver i hvert ord: Sev&dfiKd174. (Jeg fik engang at vide at det var lettere at huske sådan en sætning hvis man valgte en som var socialt uacceptabel - stærkt pornografisk eller racistisk for eksempel. Jeg prøvede også, men måtte hurtigt skifte igen, da jeg fik ødelagt humøret hver gang jeg skulle bruge mit password).

Beskyt din WP-config fil

En af de mest almindelige måder at hacke et CMS på - ikke bare WordPress - er at skaffe sig adgang til konfigurationsfilen med databaseoplysningerne. I WordPress hedder denne fil wp-config.php, og den ligger typisk i roden af WordPress installationen.

Linux opererer med tre grupper af brugere der kan få adgang til en fil: ejeren, en gruppe af brugere, og resten af verden. Adgangsniveauet udtrykkes ofte som et tal, f.eks. "644" som angiver at ejeren kan læse og skrive til filen ("6"), mens brugergruppen og resten af verden kun kan læse men ikke rette ("4").

Problemet her er at en WordPress installation efterlader wp-config.php med for gavmilde adgangsrettigheder. På mange webhoteller får filer som standard "644", hvilket betyder at det under visse omstændigheder er muligt for uvedkommende at læse wp-config.php. Herfra er det så muligt at skaffe sig adgang til databasen, og derefter er næste trin at rette administratorens password så man får fuld adgang til WordPress.

Man bør derfor altid tjekke rette adgangsniveauet til wp-config.php. "600" virker fint i de fleste tilfælde (ejeren kan læse/skrive, gruppen og resten af verden har ingen adgang). Nogle foretrækker "400" (ejeren har kun adgang til at læse), men det kan give problemer med nogle plugins. Mange webhoteller tilbyder en file manager applikation der kan bruges til at justere filrettigheder, eller kan man sætte rettighederne via en FTP-klient som f.eks. FileZilla.

Mange webhoteller tilbyder 1-click installere, men desværre efterlader disse som regel også wp-config.php ubeskyttet. Hvis man bruger sådan en installer og ikke selv har lyst til at rode med Linux rettigheder, så kan man evt. bede webhotellets support om assistance.

Hold WordPress og plugins opdateret

Mange af de scripts som hackere benytter sig af udnytter kendte svagheder i forskellige CMS'er. WordPress bliver hyppigt opdateret, blandt andet for at lukke sikkerhedshuller, og mange plugin-udviklere er også flinke til at holde deres kode ajour. Det er let at holde WordPress opdateret via kontrolpanelet, og man kan undgå mange problemer på den måde (men tag en backup inden du går i gang, både af filerne og databasen).

Der findes rigtig mange gode WordPress plugins, og det kan være fristende at bruge mange af dem. Desværre er det også sådan at jo mere man hælder på sin WordPress installation, desto større er sandsynligheden for at der er et sikkerhedshul et sted. Det er en god ide at prøve at holde antallet af plugins nede, og at holde sig til dem der har mange brugere.

Man kan selvfølgelig vælge at gøre mere - se f.eks. WordPress Codex - men ovenstående dækker langt de fleste angreb som en typisk WordPress hjemmeside bliver udsat for.