Brute Force WordPress Attacks – Report, protezione e difesa
In informatica il metodo Brute Force o “forza bruta” (anche noto come ricerca esaustiva della soluzione) è un algoritmo di risoluzione di un problema dato che consiste nel verificare tutte le soluzioni teoricamente possibili fino a che si trova quella effettivamente corretta.
Il suo principale fattore positivo è che consente teoricamente sempre di trovare la soluzione corretta, ma per contro è sempre la soluzione più lenta o dispendiosa; viene utilizzato come ultima risorsa sia in crittanalisi, sia in altre parti della matematica, ma solamente in quei casi in cui essa sia l’unico procedimento conosciuto.
Utilizzo in crittoanalisi
In ambito crittanalitico, questo metodo si utilizza in genere per trovare la chiave di un sistema che impiega un cifrario per individuare il quale non si conosca alcun attacco migliore ed è noto appunto come attacco di forza bruta. Questo fu, ad esempio, il metodo utilizzato dal controspionaggio polacco per decifrare i messaggi tedeschi della macchina Enigma, ideata da Arthur Scherbius. Per ottenere il risultato, infatti, essi utilizzarono la famosa Bomba ideata da Marian Rejewski, una speciale macchina calcolatrice in grado di sottoporre il messaggio cifrato ad un attacco di forza bruta, fino a trovare la soluzione. La macchina venne poi perfezionata dagli inglesi, grazie al contributo del grande matematico Alan Turing.
Questi primi rudimentali e mastodontici calcolatori erano lentissimi, se paragonati agli attuali computer, e potevano impiegare interi mesi per decifrare un breve messaggio. In tempi più recenti, per supplire alla sempre maggiore velocità dei computer disponibili in commercio, divenne necessario utilizzare chiavi di sempre maggiore dimensione. Questa crescita delle dimensioni della chiave è sostenibile, dato che mentre lo spazio delle chiavi (e quindi il tempo necessario per un attacco forza bruta) aumenta esponenzialmente con la lunghezza della chiave (come O(2n), per la precisione), il tempo di cifratura e decifrazione in genere ha poca dipendenza dalla lunghezza della chiave.
Per fare un esempio, utilizzando chiavi di 256 bit, AES è più veloce del Data Encryption Standard (DES), che può utilizzare solamente chiavi da 56 bit.
Un esempio pratico di attacco di forza bruta è quello di tentare di aprire una valigetta con serratura a combinazione provando tutte le possibili combinazioni delle rotelle numerate, che in genere sono solo tre e contengono ognuna una cifra da 0 a 9; le combinazioni totali, ossia i numeri da 000 a 999, sono in tutto 1.000, e altrettanti sono i tentativi massimi necessari per trovare la combinazione esatta. Per aumentare la protezione della valigetta da questo tipo di attacchi è possibile aumentare il numero di ruote numerate; siccome il numero di combinazioni in questo caso cresce secondo le potenze di dieci, con una ruota in più le possibili combinazioni passano da 1.000 a 10.000.
Bisogna prestare attenzione però al trade off, cioè il rapporto tra tempo-memoria e tempo-processori: come spiegato da Daniel J. Bernstein nell’articolo riportato, un calcolatore con 232 processori è incomparabilmente più veloce del corrispondente calcolatore seriale di pari costo.
Utilizzo in sicurezza informatica
Nell’ambito della sicurezza informatica, questo metodo si utilizza soprattutto per trovare la password di accesso a un sistema. La differenza principale tra attaccare una chiave crittografica e attaccare una password è che la prima è solitamente stata generata in modo totalmente casuale mentre una password, per la sua stessa natura di dover essere ricordata e inserita da esseri umani, è generalmente meno densa di informazioni.
Utilizzando una parola italiana di 8 caratteri come password, la sua sicurezza (il numero di possibilità che un attaccante deve testare) non è di 263 tentativi (una sicurezza equivalente a una chiave casuale di 64 bit) ma piuttosto il numero totale di parole italiane di 8 caratteri (una sicurezza equivalente a meno di 16 bit). È quindi palese l’importanza di utilizzare password molto lunghe (spesso chiamate passphrase) oppure generate casualmente; queste due scelte non fanno altro che barattare la facilità di memorizzazione con la lunghezza e il tempo necessario per inserire manualmente la password.
Quando sul sistema è possibile un attacco offline, ovvero quando l’attacco si può eseguire su una copia di lavoro locale del sistema da attaccare, si può compensare la lentezza di esecuzione con la quantità di risorse; laddove un singolo computer possa “provare” 100.000 chiavi al secondo, due computer possono provarne il doppio e così via (la velocità aumenta linearmente con le risorse utilizzate). Questa caratteristica ha motivato, nei recenti anni, molti attacchi “distribuiti” sfruttando solo i cicli inutilizzati di migliaia e migliaia di comuni computer (Internet facilita di molto l’organizzazione di questo tipo di attacchi). Questo ovviamente non è applicabile a sistemi informatici dove sia possibile esclusivamente un attacco online, né a sistemi che utilizzino protezioni fisiche quali lucchetti metallici; non è ovviamente possibile sveltirne l’apertura provando due o più chiavi alla volta.
Cosa è “Brute Force WordPress Attacks”
Nell’attacco Brute Force ad un sito WordPress non si “decripta” la password. Piuttosto invece si cracca la password confrontando l’hash con quelli generati usando una combinazione di caratteri.
Assumiamo di avere una password di lunghezza 3. Abbiamo un set di caratteri di questo tipo: abcdefghijklmnopqrstuvwxyz0123456789 (escludendo i caratteri speciali).
Il numero di permutazioni che si possono generare sarà:
62 * 62 * 62 = 238328.
Ovvero sapendo che abbiamo 26 (lettere maiuscole), 26 (lettere minuscole) e 10 (numeri), sommando otteniamo 62.
Se includiamo i caratteri speciali allora il numero di permutazioni cresce.
Il problema principale nel Brute Force: Se la password è corta, allora sarà trovata in un breve lasso di tempo. Se la password è lunga, allora questo metodo impiegherà da qualche ora a svariate settimane, se non anni, per poter generare tutte le possibili combinazioni fino ad arrivare alla lunghezza desiderata. L’hacker sicuramente lo terrà a mente prima di intraprendere un attacco di questo tipo. Mentre agli utenti, il consiglio è quello di usare password più lunghe e complesse per scongiurare attacchi di questo tipo.
Brute Force WordPress Attacks – Report
Dal report delle ultime settimane redatto dal Wordfence si evince un aumento sostenuto degli attacchi Brute Force WordPress. Nel corso delle ultime tre settimane abbiamo visto che il numero di siti attaccati ogni giorno è quasi raddoppiato. La linea blu tratteggiata indica il numero medio di siti attaccati per i 60 giorni indicati. I grafici che seguono mostrano schemi di attacco negli ultimi 2 mesi.
Le tabelle mostrano i dati degli ultimi due mesi. Abbiamo poi analizzato gli attacchi nelle ultime 24 ore per vedere chi sta attualmente attaccando siti WordPress. Le seguenti tabelle mostra i primi 20 paesi ordinati per attacchi nelle ultime 24 ore. Come si può vedere, l’Ucraina è di gran lunga il principale colpevole di Brute Force WordPress Attacks, responsabile di oltre il 15% degli attacchi totali. Questo è molto se si considera che la popolazione dell’Ucraina è di soli 45 milioni.
Questi IP appartengono tutti alla stessa organizzazione e sono sulla stessa rete. Facendo una ricerca su Google questi IP riportano molte segnalazioni di abusi su Internet. Essi appartengono a una società di hosting in Ucraina chiamato “Pp SKS-Lugan”. I server sono un mix. In alcuni non sono in esecuzione servizi, mentre in altri sembrano essere in esecuzione Web Server su piattaforma Windows IIS.
Come difendersi da Brute Force WordPress Attacks
- Non usare mai “username” ADMIN. Puoi cambiarlo usando questo plugin Admin Renamer Extended
- Usare una password per accedere al sito molto complessa
- Rinominare la pagina wp-login.php
Personalizzare il file .htAccess
Password Protect wp-login.php
# Stop Apache from serving .ht* files
Order allow,deny
Deny from all
# Protect wp-login
AuthUserFile ~/.htpasswd
AuthName “Private access”
AuthType Basic
require user mysecretuser
Limit Access to wp-admin by IP
# Block access to wp-admin.
order deny,allow
allow from x.x.x.x
deny from all
# Block access to wp-admin.
order deny,allow
allow from x.x.x.x
allow from y.y.y.y
allow from z.z.z.z
deny from all
Deny Access to No Referrer Requests
# Stop spam attack logins and comments
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .(wp-comments-post|wp-login)\.php*
RewriteCond %{HTTP_REFERER} !.*example.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L]
Modifica del File wp-config XML-RPC
Inserire il codice
add_filter('xmlrpc_enabled', '__return_false');
subito dopo l’istruzione
require_once(ABSPATH . ‘wp-settings.php’);Questa istruzione impedirà di utilizzare le funzioni che coinvolgono XML-RPC. Nello specifico, per portare l’attacco brute force, viene sfruttato il metodo system.multicall che permette sia di non essere rilevato dai normali metodi di prevenzione, sia di testare numerosissime combinazioni di username e password mediante un numero limitato di chiamate XML-RPC.
Il mio consiglio per scongiurare “Brute Force WordPress Attacks”
Ho usato, testato e provato moltissimo plugin riguardanti la sicurezza su piattaforma WordPress. Alcuni penalizzano pesantemente il sito, altri molto semplici e leggeri.
Il mio consiglio è “All In One WP Security & Firewall“. All In One WP Security utilizza un sistema esclusivo a punti per la classificazione della sicurezza, misurando quanto bene stai proteggendo il tuo sito in base alle caratteristiche di sicurezza che hai attivato. Le regole di sicurezza e firewall sono suddivise in “base”, “intermedio” e “avanzato”. In questo modo è possibile applicare le regole del firewall in modo progressivo senza interrompere la funzionalità del tuo sito. Il plugin non rallenta il tuo sito ed è al 100% gratuito. Tra le tante personalizzazioni, analizziamo solo quelle riguardanti il tema Brute Force WordPress Attacks:
User Login Security
-
Proteggiti dagli attacchi di forza bruta (Brute Force Login Attack) con la funzione di Login Lockdown. Gli utenti con un certo indirizzo IP, o compresi in un intervallo di indirizzi IP, saranno bloccati fuori dal sistema per un periodo di tempo predeterminato, in base alle impostazioni di configurazione. Si può anche scegliere di essere avvisati via e-mail ogni volta che qualcuno viene bloccato a causa di un numero eccessivo di tentativi di accesso.
Brute Force Login Attack Prevention
- Blocca immediatamente gli attacchi di forza bruta tramite la caratteristica speciale basata su Cookie Brute Force Accesso prevenzione. Questa funzionalità firewall blocca tutti i tentativi di accesso da parte di persone e bot.
- Possibilità di aggiungere un semplice captcha matematica al form di login di WordPress per la lotta contro gli attacchi brute forza d’accesso.
- Possibilità di nascondere pagina di login di amministrazione.
- Rinominare WordPress pagina di login URL in modo che i bot e gli hacker non possono accedere l’URL di accesso reale WordPress. Questa funzione consente di modificare la pagina di login di default (wp-login.php) e configurarla a piacimento.
- Possibilità di utilizzare Accesso Honeypot che sarà si aiuto a ridurre bruta tentativi forza d’accesso da robot.
Ricorda prima di fare qualsiasi modifica al tuo sito wordpress:
- Backup completo del database
- Backup del file .htaccess
- Backup del file wp-config