Hushfort

Come faccio un controllo di sicurezza su ciò che espone il mio sito WordPress?

Di Eureka Studio · Aggiornato il

In breve

Metti alla prova il sito dall'esterno con richieste reali, da disconnesso: apri /wp-login.php, /xmlrpc.php, /wp-json/wp/v2/users, /?author=1 e /wp-sitemap-users-1.xml. Ognuna mostra se una porta di login è aperta o se trapela un nome utente. Puoi eseguirle con un browser o con curl, oppure lasciare che un plugin di scansione le esegua e ti dica cosa trova.

Passaggi

  1. 1Passaggio 1

    Apri una finestra privata o un terminale

    Fai il test da estraneo, non da te stesso. Le richieste da utente connesso vedono più di quanto veda il pubblico, quindi controlla sempre da disconnesso.

    Cinque richieste che farebbe un bot
    curl -sI https://yoursite.com/wp-login.phpcurl -s  https://yoursite.com/xmlrpc.phpcurl -s  https://yoursite.com/wp-json/wp/v2/userscurl -sI https://yoursite.com/?author=1curl -sI https://yoursite.com/wp-sitemap-users-1.xml
  2. 2Passaggio 2

    Controlla le porte di login

    Se wp-login.php mostra un modulo di login, il login predefinito è pubblico. Se xmlrpc.php risponde "accepts POST requests only", è aperta anche una seconda porta di login.

    yoursite.com/xmlrpc.php che risponde: XML-RPC server accepts POST requests only
  3. 3Passaggio 3

    Controlla se trapelano nomi utente

    Un elenco JSON da /wp/v2/users, un reindirizzamento da ?author=1 a /author/nome/ o una sitemap degli utenti rivelano tutti i nomi di login.

    L'elenco utenti REST pubblico che mostra il nome di login demo-admin
  4. 4Passaggio 4

    Esegui la Scansione della superficie per il quadro completo

    In Hushfort, apri la Panoramica e premi Esegui di nuovo la scansione sotto Scansione della superficie. Invia richieste reali al tuo sito e indica per nome ogni nome utente che trova.

    Scansione della superficie con 3 punti aperti: XML-RPC aperto, elenco utenti REST e scansione autori che espongono demo-admin
  5. 5Passaggio 5

    Chiudi ciò che hai trovato, poi esegui di nuovo la scansione

    Attiva l'Hardening della superficie e premi Esegui di nuovo la scansione. Le porte che erano rosse ora mostrano una spunta verde; ciò che resta è segnato come Attenzione, con una correzione suggerita.

    Scansione della superficie dopo l'Hardening della superficie: XML-RPC, elenco utenti REST, scansione autori ed elenco autori nella sitemap chiusi

Perché è importante

Un controllo di sicurezza WordPress utile parte da fuori: cinque richieste reali, da disconnesso, mostrano cosa vede davvero un bot. Quasi tutti i consigli di sicurezza riguardano interruttori: attiva questo, disattiva quello. Ma un interruttore ti dice cosa hai chiesto, non cosa è successo. Un livello di cache potrebbe servire una vecchia risposta. Una regola della CDN potrebbe bloccare un file prima ancora che WordPress veda la richiesta. Un plugin potrebbe riaprire qualcosa che un altro aveva chiuso. L'unica risposta onesta a "cosa espone il mio sito?" è chiederlo come farebbe un estraneo.

La buona notizia: l'elenco delle cose da controllare sul fronte login è breve. I bot cercano la stessa manciata di indirizzi su ogni sito WordPress:

Indirizzo Cosa rivela quando è aperto
/wp-login.php, /wp-admin Il modulo di login predefinito
/xmlrpc.php Una seconda porta di login, con tentativi in massa tramite system.multicall
/wp-json/wp/v2/users Un elenco di autori e dei loro slug di login
/?author=1 Un reindirizzamento a /author/nome-di-login/
/wp-sitemap-users-1.xml Gli URL degli archivi autore, che contengono gli slug di login

Nessuno di questi è un disastro da solo. Insieme, consegnano a un bot un elenco di nomi e due porte su cui provarli. Sapere quali sono aperti ti permette di chiuderli nell'ordine giusto: prima le porte, poi i nomi.

Errori comuni

  • Fare il test da connesso. WordPress mostra di più agli utenti connessi. Usa una finestra privata o curl.
  • Testare la pagina in cache. Se hai appena cambiato un'impostazione, svuota prima la cache delle pagine e della CDN, altrimenti vedrai la vecchia risposta.
  • Fermarsi alla prima luce verde. Chiudere il modulo di login lasciando aperto XML-RPC è la mezza soluzione più comune che vediamo.
  • Aspettarsi un audit di sicurezza completo. Questi controlli riguardano le vie d'accesso. Non dicono nulla su malware, modifiche ai file o plugin non aggiornati.

Senza plugin

I cinque comandi curl del passaggio 1 sono il metodo manuale, e vale la pena conoscerli. Leggi i risultati così:

  • HTTP/2 200 su wp-login.php: il login predefinito è pubblico. 404: è nascosto.
  • XML-RPC server accepts POST requests only. da xmlrpc.php: l'endpoint è attivo. Per sapere se il login viene accettato, dovresti inviare una chiamata wp.getUsersBlogs con un account di prova.
  • Un array JSON da /wp/v2/users con campi "slug": i nomi utente sono pubblici. 401 o un array vuoto: chiuso.
  • Location: /author/nome/ da ?author=1: una fuga. Ripeti con 2, 3 e così via per vedere quanti utenti potrebbe raccogliere un bot.
  • 200 sulla sitemap degli utenti: gli URL degli autori sono elencati.

Lo svantaggio è il tempo e l'interpretazione. Devi ripetere tutto dopo ogni modifica, e testare correttamente il login via XML-RPC significa scrivere XML a mano.

Se qualcosa va storto

  • La scansione dice "aperto" ma l'hai disattivato. Svuota la cache delle pagine e della CDN e ripeti la scansione. Se è ancora aperto, un altro plugin o una regola del server potrebbe sovrascrivere l'impostazione.
  • La scansione non riesce a raggiungere il sito. Alcuni hosting impediscono a un sito di inviare richieste a se stesso (loopback). Chiedi al tuo hosting di consentire le richieste di loopback, oppure usa il metodo curl dall'esterno.
  • Un nome utente trapela ancora dopo l'hardening. Controlla il box autore del tuo tema e la sitemap degli autori di eventuali plugin SEO. Cambia il nome visualizzato dell'autore se il tema lo stampa.

Con Hushfort

La Scansione della superficie è inclusa in Hushfort Security, il plugin di sicurezza gratuito per WordPress.

La Scansione della superficie si trova nel pannello Hardening della superficie di Hushfort. Misura ciò che il tuo sito espone davvero con richieste reali, proprio come il metodo manuale, ed elenca per nome i nomi utente che trova. Ogni risultato corrisponde a un livello di Hushfort che lo chiude:

Abbiamo creato la Scansione della superficie dopo che un negozio continuava a ricevere tentativi di password tramite XML-RPC nonostante la sua pagina di login fosse nascosta. L'impostazione sembrava a posto; solo una richiesta reale ha mostrato la porta aperta.

Domande frequenti

È legale scansionare il proprio sito WordPress?

Sì, inviare richieste normali al tuo sito va benissimo. Fai test solo su siti di tua proprietà o per cui hai l'autorizzazione.

Perché fare test con richieste reali invece di leggere le impostazioni?

Le impostazioni possono dire una cosa mentre una cache, una regola della CDN, un altro plugin o un tema ne fanno un'altra. Una richiesta reale mostra ciò che un visitatore riceve davvero.

Questo controllo trova malware o plugin vulnerabili?

No. Controlla le porte d'accesso e le fughe di nomi utente. Per la scansione di malware e vulnerabilità note serve un altro strumento; Hushfort non lo fa.

Ogni quanto dovrei fare il controllo?

Dopo aver installato o rimosso plugin, cambiato tema, cambiato hosting o modificato le regole della CDN. Sono i momenti in cui l'esposizione cambia senza che te ne accorga.

Segnala un bug o richiedi una funzione

Il tuo messaggio arriva direttamente al team che sviluppa Hushfort.

Di cosa si tratta?

Usata solo per risponderti.

Usiamo questi dati solo per risponderti. Privacy