Backup esposto e file senza riferimenti e come trovarli

Pubblicato: 2021-08-24

Mantenere sicuro il tuo WordPress implica un processo continuo di test, rafforzamento, monitoraggio e miglioramento. Ci sono diverse cose di cui gli amministratori di WordPress possono occuparsi per aiutarli a garantire la sicurezza dei loro siti web. Dal garantire che le password soddisfino criteri specifici al rafforzamento di PHP, questi processi possono fare molto per aiutarti a gestire una nave stretta e pulita. Una cosa che tende a essere trascurata è il backup esposto e i file senza riferimenti. Questi file possono rappresentare un rischio per la sicurezza che può essere facilmente gestito seguendo le migliori pratiche.

WordPress utilizza le directory per organizzare le informazioni. Tutte le pagine e i media risiedono all'interno di questa struttura. In un'installazione tipica, questa struttura assomiglierebbe a var/www/html/wordpress/wp-content.

I server Web, inclusi i server che ospitano siti Web WordPress, sono in genere configurati per servire ai client tutti i file che risiedono all'interno di una particolare directory. Ci sono alcune eccezioni, come i file PHP; tuttavia, a meno che un amministratore non abbia esplicitamente bloccato l'accesso, è probabile che se un client lo richiede, il server web lo obbliga.

In generale, questa è una buona cosa, ed è ciò che vuoi che accada poiché è così che i file pertinenti alle tue pagine Web, come file CSS, file JS e immagini, vengono serviti al visitatore. Tuttavia, questo comportamento significa anche che puoi servire involontariamente file che non hai mai pensato che il pubblico vedesse, ad esempio file di backup e senza riferimenti.

Cosa sono i file di backup e non referenziati?

Come suggerisce il nome, i file di backup e senza riferimenti sono backup effettivi eseguiti che possono essere backup di file particolari, in genere creati durante la modifica di file come file di configurazione, o anche backup completi. Capire cosa sono questi file di backup e come vengono generati è il primo passo che dobbiamo compiere per affrontare il problema.

Ci sono molte ragioni per cui potresti dover modificare i file di WordPress. Modificare i file del tuo sito WordPress, tuttavia, senza prima eseguire un backup richiede un po' di coraggio: un punto e virgola mancante può far crollare il tuo sito web!

Naturalmente, poiché tali errori sono facili da commettere, non è consigliabile modificare i file direttamente sui server Web di produzione. Le migliori pratiche ci dicono di testare prima le modifiche in un server di test o staging. Solo dopo un test approfondito e di successo le modifiche possono essere spostate sul server live/di produzione.

Nella vita reale, tuttavia, le migliori pratiche non vengono sempre seguite. Questo può essere particolarmente vero quando si tratta di un piccolo cambiamento. Il processo di download del file, le modifiche, il test e il nuovo caricamento possono richiedere molto più tempo rispetto alla modifica del file sul server live. Ci siamo stati tutti.

La modifica sul server live può essere molto semplice. Con un client SSH e Vi (o Vim se preferisci la versione migliorata), puoi fare miracoli. Una volta che ti connetti al server e raggiungi la directory, è probabile che tu faccia prima un backup del file (es. wp-config.php.bak), modifichi quello live, assicurati che tutto sia in ordine, ed è tutto hunky-dory. Tuttavia, quel file di backup lasciato nella cartella (per ogni evenienza, lo sai) può finire per essere la fonte di molti dolori e dolori. È probabile che chiunque possa scaricarlo e con esso l'intera configurazione, in testo normale, nientemeno.

Inoltre, molti amministratori di WordPress potrebbero non essere consapevoli del fatto che la modifica dei file in atto utilizzando un editor di file come Vim può creare automaticamente file di backup, ripristino e blocco. Vim crea questi file per permetterti di recuperare il tuo lavoro se Vim si arresta in modo anomalo o si chiude inaspettatamente. Sebbene questa sia indiscutibilmente una caratteristica preziosa da avere, ciò significa anche che potresti inavvertitamente finire con file di backup che non avresti mai voluto creare sparsi per il tuo sito Web, in attesa che qualcuno vi acceda.

Allo stesso modo, i backup di intere directory lasciate in una cartella pubblica possono essere altrettanto dannosi. Sebbene l'esecuzione di backup del tuo sito Web WordPress sia fondamentale, è necessario farlo in sicurezza senza introdurre nuovi rischi per la sicurezza. Ne parleremo più dettagliatamente più avanti in questo articolo.

Esempi comuni di file di backup includono vecchie versioni rinominate di file di configurazione modificati, file PHP o altro codice sorgente e backup automatici o manuali sotto forma di archivi compressi (come archivi .zip, .gz o .tar.gz).

D'altra parte, i file non referenziati sono file fuori posto che, a causa di una configurazione o di una decisione di progettazione, finiscono da qualche parte dove non appartengono.

Quali sono i rischi?

Il backup e i file senza riferimenti lasciati accidentalmente accessibili possono far trapelare informazioni riservate. A seconda del file, i dati sensibili possono includere parametri di configurazione o codice sorgente che aiutano gli utenti malintenzionati a capire meglio come funziona il tuo sito web, rendendo così più facile creare un attacco contro il tuo sito web. In alcuni casi, possono essere trapelate anche password che possono dare agli aggressori il controllo sull'intera installazione di WordPress.

Esistono diversi modi in cui qualcuno può trovare i file rimanenti sul tuo server web. Mentre alcuni metodi richiedono alcune competenze tecniche, altri sono semplici come una ricerca su Google, il che aumenta il rischio di esposizione. Se non sei sicuro di avere file residui sul tuo server, continua a leggere per scoprire come cercarli e trovarli prima che lo faccia qualcun altro.

Come trovare file di backup e file non referenziati sul tuo sito Web WordPress

Esistono diversi metodi che qualcuno può utilizzare per trovare file di backup e senza riferimenti. In qualità di proprietario del server, hai il vantaggio poiché puoi farlo in modo più diretto. Questa sezione esplorerà questi diversi strumenti, a partire dagli strumenti che puoi utilizzare per cercare e rimuovere questi file. Vedremo quindi come un gatto curioso potrebbe trovare file di backup e senza riferimenti sul tuo server.

Quando cerchi i file di backup che potresti aver lasciato sul tuo server web, puoi adottare uno (o più) dei tre approcci. Il modo più semplice è installare un plug-in che monitori le modifiche ai file. In alternativa, puoi provare a cercare i file di backup rimasti sul filesystem utilizzando strumenti da riga di comando come trova oppure puoi provare a cercare i file di backup utilizzando una tecnica chiamata fuzzing .

Plugin per il monitoraggio dell'integrità dei file

Una soluzione di monitoraggio dell'integrità dei file per WordPress può aiutarti a monitorare senza sforzo le modifiche ai file sul tuo server web e avvisarti se rileva che qualcosa è stato aggiunto, rimosso o modificato.

Ciò può essere ottenuto con il plug-in di monitoraggio delle modifiche ai file del sito Web. Il plug-in prende un'impronta digitale delle tue directory e poi la confronta con le impronte successive. In sostanza, funziona secondo gli stessi principi di un checksum, rendendolo altamente sicuro e affidabile.

Un monitoraggio dell'integrità dei file può essere particolarmente efficace se non sei a conoscenza di tutte le directory utilizzate da WordPress. Un altro vantaggio significativo di questo plug-in è che il monitoraggio è automatizzato, quindi non è necessario ricordarsi di controllare i file: il plug-in lo fa automaticamente.

Trovare

Diamo ora un'occhiata a come possiamo trovare i file di backup usando il comando trova. Il comando seguente cercherà diverse estensioni di file di uso comune utilizzate durante la creazione di file di backup.

trova /var/www -type f \( -name '*.bak' -o -name '*.backup' -o -name '*.bac' -o -name '*.zip' -o -name '* .tar' -o -name '*.jar' -o -name '*.log' -o -name '*.swp' -o -name '*~' -o -name '*.old' -o - nome '*.~bk' -o -nome '*.orig' -o -nome '*.tmp' -o -nome '*.exe' -o -nome '*.0' -o -nome '*. 1' -o -name '*.2' -o -name '*.3' -o -name '*.gz' -o -name '*.bz2' -o -name '*.7z' -o - nome '*.s7z' -o -nome '*.lz' -o -nome '*.z' -o -nome '*.lzma' -o -nome '*.lzo' -o -nome '*.apk ' -o -name '*.cab' -o -name '*.rar' -o -name '*.war' -o -name '*.ear' -o -name '*.tar.gz' -o -name '*.tgz' -o -name '*.tar.z' -o -name '*.tar.bz2' -o -name '*.tbz2' -o -name '*.tar.lzma' - o -name '*.tlz' -o -name '*.zipx' -o -name '*.iso' -o -name '*.src' -o -name '*.dev' -o -name '* .a' -o -name '*.ar' -o -name '*.cbz' -o -name '*.cpio' -o -name '*.shar' -o -name '*.lbr' -o -name '*.mar' -o -name '*.f' -o -name '*.rz' -o -name '*.sfark' -o -name '*.xz' -o -name '*. asso' -o -nome '*.afa' -o -nome '*.alz' -o -nome '*.arc' -o -nam e '*.arj' -o -name '*.ba' -o -name '*.bh' -o -name '*.cfs' -o -name '*.cpt' -o -name '*.dar ' -o -name '*.dd' -o -name '*.dgc' -o -name '*.dmg' -o -name '*.gca' -o -name '*.ha' -o -name '*.hki' -o -name '*.ice' -o -name '*.inc' -o -name '*.j' -o -name '*.kgb' -o -name '*.lhz' -o -name '*.lha' -o -name '*.lzk' -o -name '*.pak' -o -name '*.partimg.' -o -name '*.paq6' -o -name '*.paq7' -o -name '*.paq8' -o -name '*.pea' -o -name '*.pim' -o -name '*.pit' -o -name '*.qda' -o -name '*.rk' -o -name '*.sda' -o -name '*.sea' -o -name '*.sen' -o -name '*.sfx' -o -name ' *.sit' -o -name '*.sitx' -o -name '*.sqx' -o -name '*s.xz' -o -name '*.tar.7z' -o -name '*. tar.xz' -o -name '*.uc' -o -name '*.uc0' -o -name '*.uc2' -o -name '*.ucn' -o -name '*.ur2' - o -name '*.ue2' -o -name '*.uca' -o -name '*.uha' -o -name '*.wim' -o -name '*.xar' -o -name '* .xp3' -o -name '*.yz1' -o -name '*.zoo' -o -name '*.zpaq' -o -name '*.zz' -o -name '*.include' -o -name '*_1' -o -name '*_2' -o -name '*_x' -o -name '*bak' -o -name '*_bak' -o -name '*old' -o -name '*_old' -o -name '*_a' -o -name '*_b' -o -name '*_c' -o -name '*_d' -o -name '*_e' -o -name '*_f' -o -name '*inc' -o -name '*_inc' -o -name '*_backup' -o -name '* – Copia' -o -name '* – Copia (2)' -o -name '* – Copia (3)' -o -name '*backup' -o -name '*-backup' -o -name '*-bak' -o -name '*-vecchio' -o -name '*-1' -o -name '*-2' -o -name '* – Copia – Copia' -o -name '*( copia)' -o -nome '*(altra copia)' -o -nome '*(seconda copia)' -o -nome '*(terza copia)' -o -nome '*(quarta copia)' -o - nome '*(2a copia)' -o -nome '*(3a copia)' -o -nome '*(4a copia)' -o -nome '* (copia)' -o -nome '* (un'altra copia) ' -o -name '* (seconda copia)' -o -name '* (terza copia)' -o -name '* (quarta copia)' -o -name '* (2a copia)' -o -name ' * (3a copia)' -o -name '* (4a copia)' -o -name 'Copia di *' -o -name 'Copia (2) di *' -o -name 'Copia (3) di *' -o -name 'Copia della copia di *' -o -name 'backup*' -o -name 'backup_*' -o -name 'backup-*' -o -name 'bak*' -o -name 'bak_ *' -o -name 'bak-*' -o -name'vecchio*' -o -nome 'vecchio_*' -o -nome 'vecchio-*' -o -nome '1*' -o -nome '1_*' -o -nome '1-*' -o -nome '2*' -o -name '2_*' -o -name '2-*' \)

Sfocato

Il metodo seguente utilizza uno strumento basato sulla riga di comando chiamato ffuf con un elenco di parole (un elenco di nomi di file e percorsi di file raccolti in testo normale) incentrato sui file di WordPress. ffuf può essere configurato per effettuare richieste utilizzando un elenco separato da virgole di estensioni di file di backup comuni (questo esempio utilizza solo un elenco abbreviato che include solo .bak e .backup, ma in realtà sarebbe probabilmente molto più lungo).

ffuf -u http://example.com/FUZZ -w wordlist.txt -e '.bak,.backup'

Ricerche sui motori di ricerca

I motori di ricerca sono molto, molto bravi a trovare e catalogare le informazioni sui server web. Qualcuno può farlo utilizzando operatori avanzati che possono, ad esempio, eseguire il drill-down di una query per trovare tipi di file specifici su un determinato server.

Questo tipo di ricerca è anche noto come Google Dorking e può utilizzare una combinazione di filtri avanzati e inferenza. L'inferenza è il modo in cui qualcuno che non conosce ciò che risiede su un server utilizza informazioni generali per dedurre che tipo di file e strutture potrebbero risiedere su un server e quindi cerca quelle cose specifiche.

Scanner di sicurezza

Esistono diversi tipi di scanner in grado di eseguire la scansione delle directory di un sito Web. Il primo tipo di scanner è chiamato crawler del sito, che è la stessa tecnologia di base utilizzata dai motori di ricerca per leggere i siti web. Questi tipi di scanner, tuttavia, non sono esclusivi dei motori di ricerca e possono essere scaricati liberamente.

È illegale eseguire la scansione di un sito Web di destinazione nella maggior parte dei paesi, anche se le tue intenzioni sono buone. Puoi e dovresti usare uno scanner solo sui siti web di tua proprietà. Se stai scansionando un sito web di terze parti, assicurati di avere il consenso. Anche così, qualcuno con intenzioni dannose può utilizzare uno scanner di sicurezza per saperne di più sul tuo sito Web e capire che tipo di file ci sono.

Un altro tipo di scanner è uno scanner per test di penetrazione, che può scansionare un sito Web per individuare le vulnerabilità, inclusi i file rimanenti.

Hai trovato file di backup o non referenziati? Ecco cosa fare

Archiviare file di backup su un sito Web non è mai una buona idea. Sfortunatamente, non è raro che i proprietari e gli amministratori di siti Web di WordPress configurino i lavori cron (attività pianificate) per eseguire backup del database, solo per archiviare questi backup sullo stesso server. Anche se sicuramente dovresti eseguire il backup del tuo sito Web, dovresti fare attenzione che i file di backup non vengano archiviati in nessuna parte del sistema di cui hai eseguito il backup.

Avere una strategia di backup di WordPress ben congegnata che segua le migliori pratiche è fondamentale non solo dal punto di vista della sicurezza ma anche dal punto di vista della continuità aziendale. Dopotutto, i backup non valgono molto se non puoi usarli per ripristinare i dati.

Come prevenire l'enumerazione dei file di backup

Come abbiamo visto in questo articolo, mantenere i file di backup sul tuo sito Web WordPress può essere piuttosto rischioso. Pertanto, dovresti sempre utilizzare un ambiente di test o di staging per eseguire le modifiche prima di inviarle al server live/di produzione. La maggior parte degli account di hosting WordPress gestiti viene fornita con un ambiente di gestione temporanea pronto all'uso. Puoi anche utilizzare software come Local, che ti consente di avviare istanze di WordPress sul tuo PC.

Tuttavia, se scegli di mantenere i file di backup sul tuo server web, idealmente, tienili fuori dalla directory che hai configurato per servire il tuo server web.

Inoltre, configura le autorizzazioni dei tuoi file WordPress per vietare l'accesso all'utente del server web: questo assicura che anche in caso di configurazione errata, il server web non sarà autorizzato a servire il file a un client che lo richiede. Come misura aggiuntiva, è una buona idea crittografare tutti i backup del database e assicurarsi che la chiave di crittografia non sia accessibile dall'utente del server web.