Applicazione del principio del privilegio minimo per una migliore sicurezza di WordPress
Pubblicato: 2021-07-27Il principio del privilegio minimo per WordPress perde i titoli dei giornali quando si verificano violazioni, perdita di dati e attacchi DoS. Eppure è una delle migliori pratiche di sicurezza più efficaci, anche se trascurate, per i siti Web WordPress.
In questo post del blog, definiamo prima il principio del privilegio minimo, quindi esaminiamo quando e dove si applica, i rischi di non adottarlo e perché molti sviluppatori di siti Web non lo stanno ancora integrando nei loro siti Web WordPress. Condividiamo anche alcuni consigli pratici, in modo che tu possa iniziare subito a migliorare la sicurezza dei tuoi siti WordPress. Questo post sul blog include alcuni mini case study per illustrare il suo utilizzo in contesti reali.
Sommario
- Qual è il principio del privilegio minimo?
- Quando e dove si applica il principio del privilegio minimo?
- Quali sono i rischi se la PoLP non viene applicata?
- Perché molti proprietari di siti Web trascurano il principio del privilegio minimo in WordPress?
- Come applicare il PoLP per WordPress
- Privilegi utente del database di WordPress
- Ruoli e privilegi degli utenti di WordPress
- Creazione di ruoli personalizzati
- Permessi di file e directory
- Configurazione dei plugin di WordPress
- Accesso FTP per appaltatori di terze parti
- Mini casi di studio
- Applicazioni per siti di e-commerce
- Università e istituzioni educative
- Siti web e blog di notizie
- Siti bancari
- Tracker di salute e fitness
- Utilizzando il principio del privilegio minimo per WordPress e oltre
Qual è il principio del privilegio minimo?
L'idea è molto semplice: non concedere a un account utente, un processo o un programma più diritti di accesso di quelli necessari per svolgere i compiti designati. In termini di un tipico sito Web WordPress con un blog, pensa ai tuoi editori, autori, contributori e abbonati. Ognuno di loro ha bisogno di accedere a più o meno del back-end del tuo sito web.
Il principio del privilegio minimo (PoLP) è anche noto come "principio di minima autorità", "principio dei privilegi minimi" o "account utente con privilegi minimi" (LUA).
Consideriamo alcuni semplici esempi. I tuoi bambini spesso non hanno bisogno di accedere alla cucina. Quindi, installi un dispositivo di controllo degli accessi, come un cancello di sicurezza, in vari punti della tua casa per consentire loro di vagare a piacimento, ad eccezione di alcune stanze. In uno spazio di coworking pubblico condiviso, disconnetteresti il tuo laptop prima di andare a pranzo. Inoltre, l'addetto al parcheggio del tuo elegante ristorante richiederà il tuo documento d'identità o il biglietto prima di restituire le chiavi della tua auto. Il controllo degli accessi previene i danni a te e ai beni di valore dei tuoi utenti, che si tratti di un oggetto fisico o di una garanzia digitale.
Quando e dove si applica il principio del privilegio minimo?
La semplice risposta è che si applica ovunque: da quel bambino che vuole salire le scale agli utenti sul tuo account di hosting del sito Web WordPress. Il tuo libero professionista finanziario che deve scaricare le fatture mensili non ha bisogno dello stesso livello di accesso dell'amministratore del sito web. Lo stesso vale per tutti i tipi di account aziendali privilegiati, sistemi di gestione dei file, documentazione della strategia di marketing o gestori di password.
Quali sono i rischi se la PoLP non viene applicata?
Controllare l'accesso a determinate aree sembra un gioco da ragazzi. Altrimenti, non stai abbandonando il sito Web per capriccio di qualsiasi utente che ha effettuato l'accesso, compresi quelli che potrebbero commettere errori innocenti e involontari e potrebbero non essere nemmeno consapevoli di averli fatti, né dei risultati non intenzionali?
Pensa ai seguenti possibili utenti:
- Il nuovo utente inizia con una scarsa comprensione delle implicazioni aziendali degli errori su un sito Web WordPress
- Quelli con poca esperienza di amministrazione di WordPress
- Senza alcuna conoscenza delle implicazioni del download di nuove versioni o plug-in di WordPress a piacimento, o dell'aggiornamento senza prima eseguire un backup
- Quelli con una consapevolezza limitata della sicurezza che creano nuovi utenti o modificano le autorizzazioni di utenti esistenti
- Coloro che non sanno come affrontare gli errori segnalati o altri problemi
- Collaboratori esterni di post sul blog come partner, liberi professionisti e clienti, con forse un'infarinatura di conoscenza di WordPress, che potrebbero persino "utile" scaricare o aggiornare i plug-in sul tuo sito Web, senza chiedere
Significa anche che l'intero back-end di WordPress è a rischio di persone altrimenti non autorizzate, come qualcuno con livelli di accesso inappropriati, che aggiungono nuovi utenti e danno loro accesso ad aree del sito Web in cui possono causare danni deliberati .
Ad esempio:
- Alterazione di temi, funzionalità personalizzate o contenuti di siti Web rivolti al pubblico
- Gestione errata di stock, SKU o metadati di prodotto nei negozi di e-commerce
- Offrire sconti non autorizzati
- Accesso, modifica, download o eliminazione di codice, modelli di pagina, media, configurazioni o personale, cliente e altri tipi di file
- Accesso a dati aziendali, clienti, sanitari o finanziari, ad esempio, per abusare o vendere ad altre parti nefaste
- Portare offline il sito e i suoi prodotti o servizi
Indipendentemente dal fatto che utilizzi o meno WordPress, uno o tutti questi problemi possono verificarsi quando il principio del privilegio minimo per WordPress non viene adottato deliberatamente e in modo coerente nell'intera organizzazione.
SUGGERIMENTO: utilizza un plug-in del registro delle attività per WordPress per tenere un registro di tutte le modifiche apportate dagli utenti al tuo sito Web WordPress. Aiuta con la responsabilità dell'utente e facilita la risoluzione dei problemi.
Perché molti proprietari di siti Web trascurano il principio del privilegio minimo in WordPress?
I rischi che abbiamo delineato sembrano piuttosto convincenti, giusto? Ma uno dei problemi più comuni segnalati a seguito degli audit del sito Web di WordPress è che i ruoli degli utenti di WordPress in un ambiente tipico sono ancora configurati come segue:
- Il ruolo di amministratore di WordPress viene assegnato a ogni utente, anche quando l'utente deve solo inserire contenuti scritti da qualcun altro
- Lo stesso vale per i permessi di file e directory, che sono tutti configurati con i permessi meno restrittivi
Ce l'abbiamo. Abbiamo tutti avuto esperienza di lavoro come amministratori di sistema e di siti Web ad un certo punto della nostra carriera. Piuttosto che mantenere i contatti tra utenti e autorizzazioni all'inizio, controllando ciò che l'utente deve fare, gli amministratori spesso preferiscono semplicemente assegnare loro anche il ruolo di amministratore (sembra più veloce, inizialmente).
Lo stesso vale per i file e le autorizzazioni di directory. Ad esempio, alcuni plugin di WordPress memorizzano file di cache o altri dati sul file system (ad esempio nelle directory di WordPress). È più facile configurare semplicemente i permessi del 777 nella directory /wp-content/plugins/, perché tutti i plugin funzioneranno e non è necessario dedicare ulteriore tempo alla risoluzione dei problemi e alla modifica dei permessi ogni volta che si installa un nuovo plugin. Tuttavia, condurre alcune ricerche all'inizio per determinare le aree specifiche dell'applicazione o delle directory del sito Web, per evitare che gli utenti abbiano un accesso eccessivo, riduce i rischi già menzionati. Inoltre, ha l'ulteriore vantaggio di consentire a tutti di accedere a ciò di cui hanno bisogno per svolgere il proprio lavoro, senza ulteriori input da parte di un amministratore.
Domande che i proprietari di siti Web e gli amministratori devono porre
La convenienza vale il rischio per la sicurezza? Sai quale sarebbe la nostra risposta a questa domanda. Semplicemente non ha senso installare e mantenere in anticipo e robusti plug-in di sicurezza delle applicazioni Web, protocolli di password e altre misure come 2FA, se il tuo più grande rischio per la sicurezza è che hai già lasciato la porta sul retro aperta con controlli di accesso amatoriali e lassisti!
Come applicare il principio del privilegio minimo per WordPress
Ora che sei concentrato sul rendere l'applicazione del tuo sito Web la più sicura possibile, questa sezione ti fornisce un elenco di dove e come il principio del privilegio minimo può essere applicato a un sito Web o blog WordPress.
Privilegi utente del database di WordPress
Iniziamo con il punto più semplice: i permessi o i privilegi del database utente di WordPress.
Per le normali operazioni quotidiane di WordPress come la scrittura e la pubblicazione di contenuti, l'utente del database di WordPress ha bisogno solo delle seguenti autorizzazioni per consentire loro di gestire i dati dall'interno del database:
- Selezionare
- Inserire
- Aggiornare
- Eliminare
Queste autorizzazioni non consentono all'utente del database di WordPress di modificare la struttura del database.
Raccomandazioni
In un ambiente ideale, per rafforzare la sicurezza del tuo sito Web o blog WordPress, dovresti configurare i privilegi del database MySQL di WordPress sicuri e restrittivi. Torna all'assegnazione di tutti i privilegi solo agli utenti che devono installare un nuovo plug-in che crei nuove tabelle nel database o quando WordPress è stato aggiornato e sono state apportate modifiche allo schema del database di WordPress.
Un'altra raccomandazione è quella di evitare di concedere l'accesso a database diversi da quello di WordPress per il sito Web in questione.
Per ulteriori informazioni sui privilegi del database WordPress, puoi anche leggere Perché i privilegi minimi del database WordPress degli utenti MySQL migliorano la sicurezza, il che spiega le ripercussioni di una configurazione non sicura.
Ruoli e privilegi degli utenti di WordPress
Gli utenti di WordPress commettono errori, anche gli amministratori. Inoltre, agli utenti piace anche esplorare impostazioni e configurazioni. Se assegni agli utenti l'accesso come Super amministratore o amministratore, i più curiosi tra loro molto probabilmente installeranno plug-in casuali. Ciò può potenzialmente comportare una modifica involontaria dell'esperienza utente, ad esempio una modifica della funzionalità del sito Web.
WordPress ha una serie di ruoli utente integrati e funzionalità connesse, come elencato di seguito (dalla maggior parte alla meno).
- Super Admin: amministratore della rete del sito
- Amministratore: amministratore di rete del sito per un singolo sito
- Editor: gestisci e pubblica i post, inclusi i post di altri utenti
- Autore: gestisci e pubblica i propri post
- Contributore: scrivi e gestisci i tuoi post, ma non li pubblica
- Abbonato: gestisci solo il profilo
Un esempio di come funziona in pratica è che mentre un collaboratore e un autore possono condividere alcune capacità (ad es. modificare post ed eliminare post), un collaboratore non è in grado di fare tutto ciò che può fare un autore, come caricare file o creare blocchi utilizzabili.
Creazione di ruoli personalizzati
Ci sono anche un buon numero di plugin che puoi usare per creare ruoli WordPress nuovi e personalizzati.
Ecco alcuni casi d'uso comuni:
- Nelle organizzazioni più grandi, potrebbe essere necessario assegnare qualcuno nel tuo team di marketing per moderare, approvare e rispondere ai commenti. La funzionalità "Commenti moderati" è contenuta nel ruolo Editor, ma questo ruolo assegna anche tutta una serie di altre potenti funzionalità. Quindi, se questo è tutto ciò che devono essere in grado di fare, è sufficiente impostare un ruolo personalizzato, con questa singola autorizzazione.
- Se il tuo sito WordPress contiene un plug-in di e-commerce come WooCommerce, sei limitato a due ruoli iniziali: Shop Manager (consentendo all'utente di gestire l'intero negozio) e Cliente (consentendo all'utente di visualizzare il proprio account e gli ordini). L'amministratore dispone di autorizzazioni aggiuntive, come "Gestisci impostazioni" e "Visualizza rapporti". Ma cosa succede se i tuoi utenti, ad esempio il personale non dirigenziale, richiedono qualcosa nel mezzo, come la possibilità di aggiungere e gestire quantità di stock o SKU, o semplicemente elaborare gli ordini?
- Sul nostro sito Web utilizziamo un plug-in per i nostri articoli della knowledge base. Ciò offre al nostro team di supporto l'accesso per creare e modificare gli articoli della knowledge base, ma non l'accesso alle pagine principali del sito Web e ai post del blog.
Raccomandazioni
Per la maggior parte degli utenti regolari, il ruolo di collaboratore è sufficiente. Per i team leader e i manager pratici, si consiglia il ruolo di Editor. Tuttavia, dovresti limitare i ruoli di Super amministratore e amministratore a utenti esperti e responsabili che ne hanno davvero bisogno.
Per ulteriori informazioni, consulta Come utilizzare i ruoli utente di WordPress per migliorare la sicurezza di WordPress.
Permessi di file e directory
È facile configurare i permessi di file e directory ed è disponibile un'ampia documentazione online che spiega come rafforzare i permessi dell'installazione di WordPress. WordPress funziona su qualsiasi sistema operativo che esegue PHP, comunemente Linux. In termini di gruppi, Linux ha tre gruppi di autorizzazioni:
- Proprietario: proprietario del file/directory, le cui autorizzazioni non si applicano né influiscono su altri utenti
- Gruppo: gruppo di utenti a cui è stato assegnato l'accesso a file/directory, le cui autorizzazioni non si applicano né influiscono su utenti esterni al gruppo
- Altro: quali livelli di autorizzazione hanno tutti gli altri per lo stesso file/directory
A ciascuno di questi viene assegnata l'autorizzazione Lettura (visualizzare il contenuto), Scrittura (scrivere o modificare il contenuto) o Eseguire (eseguire il contenuto, ad esempio uno script). Queste autorizzazioni sono memorizzate come una serie di numeri e danno accesso a codice PHP, immagini e altri media, file HTML e javascript e plugin.
L'implicazione dell'assegnazione delle autorizzazioni sbagliate al gruppo di autorizzazioni sbagliato potrebbe significare che un hacker malintenzionato potrebbe trarne vantaggio e provocare una vulnerabilità di basso livello che si trasforma in un rischio inaccettabile.
Raccomandazioni
Durante l'installazione di WordPress, dovresti anche utilizzare il PoLP, configurando il minor numero possibile di autorizzazioni per file e directory affinché WordPress funzioni.
Ricorda che rafforzando i permessi di file e directory, potresti anche limitare il funzionamento di alcuni plugin di WordPress. Come spiegato in precedenza, potresti installare plug-in che devono memorizzare i dati nella loro directory di installazione. In tal caso, non configurare semplicemente le autorizzazioni 777 per la directory del plug-in (lettura, scrittura ed esecuzione completa per chiunque abbia i permessi per controllarla). Questa è la via d'uscita più facile. Ma dovresti anche evitare di limitarlo così lontano da impedire agli utenti interessati di aggiornare WordPress, i suoi temi e plug-in dall'interfaccia utente web.
Per ulteriori informazioni, vedere Permessi file WordPress: la guida alla configurazione dei permessi di siti Web e server Web sicuri.
Configurazione dei plugin di WordPress
Non tutti gli amministratori sono uguali. Come molti sistemi e reti, è comune avere un amministratore principale in un gruppo di amministratori di WordPress. In genere, il proprietario del sito Web non ha altra opzione che assegnare ad altri utenti l'accesso come amministratore. Tieni presente che nel caso dei plug-in di sicurezza di WordPress, spesso possono archiviare dati sensibili, come un registro di controllo della sicurezza di WordPress, a cui gli amministratori avrebbero accesso.
Raccomandazioni
I plugin di sicurezza di WordPress di solito ti consentono di limitare l'accesso ad altri amministratori di WordPress. L'utilizzo di tali funzionalità sembra un piccolo, ma a volte trascurato, controllo che ti aiuterà a mantenere un controllo migliore dell'accesso degli utenti.
Per ulteriori informazioni sui singoli plug-in, contattare il supporto dei plug-in e il provider di hosting. Quindi chiedi in quali directory deve scrivere il plug-in, in modo da poter configurare autorizzazioni specifiche per quella directory.
Accesso FTP per appaltatori di terze parti
Quando assumi un designer o il team di supporto di un plug-in ha bisogno dell'accesso FTP al tuo sito Web, potresti concedere loro l'accesso completo alla radice del tuo sito Web, giusto? Questo non è necessario.
Raccomandazioni
Nel caso di un designer, tutto ciò a cui deve accedere è la directory del tema, quindi limita l'accesso a quella directory. Lo stesso vale per i team di supporto dei plugin. Se hanno bisogno dell'accesso per controllare i file di registro, fornisci loro l'accesso FTP alla directory del plug-in o alla posizione in cui il plug-in memorizza i file di registro. Evita di dipendere da parti esterne per eseguire la due diligence sulla sicurezza per te.
Mini casi di studio
Diamo un'occhiata ad alcuni esempi riconoscibili di come funziona in pratica e di come le domande e le decisioni sul controllo degli accessi possono guidare l'applicazione di PoLP per consentire il giusto accesso per i team e gli individui giusti.
Applicazioni per siti di e-commerce
Le applicazioni di siti Web di e-commerce, come quelle in cui i consumatori acquistano articoli di grandi dimensioni come frigoriferi-congelatori, aspirapolvere, fotocamere o laptop, offrono vari esempi di dove è possibile adottare PoLP.
Alcune delle decisioni di controllo degli accessi per gli sviluppatori di applicazioni per siti Web di e-commerce sono ovvie:
- I dipartimenti delle risorse umane probabilmente non avranno bisogno dell'accesso ai dati dei clienti o alle directory di file che memorizzano i plug-in, ma avranno bisogno dell'accesso alla maggior parte dei record del personale (sebbene forse i dati sanitari, che spesso godono di uno status speciale in molte legislazioni sulla conformità alla protezione dei dati, potrebbero essere più limitato alla necessità di conoscere la base)
- I dipartimenti marketing non avranno necessariamente bisogno dell'accesso alle tabelle SKU o ai codici prodotto. Tuttavia, vorranno accedere alle tabelle nel database dei prodotti che elencano i nomi dei prodotti, le specifiche e le descrizioni
Alcuni sono meno evidenti:
- I consumatori hanno bisogno di accedere a tutti i loro dati in ogni momento?
- I responsabili della conformità PCI-DSS hanno bisogno di accedere a tutti i dati dei consumatori?
Università e istituzioni educative
Che dire delle istituzioni più tradizionali e di vecchia data, dove la sicurezza delle applicazioni web e il PoLP sono inizialmente meno evidenti?
Alcune delle decisioni di controllo degli accessi per i portali di università e college sono ovvie:
- Il reparto paghe deve accedere ai registri del personale e degli appaltatori nell'applicazione del sito Web per tenere traccia dei giorni lavorativi ed effettuare i pagamenti
- I dipartimenti amministrativi di vario tipo potrebbero aver bisogno di accedere ai registri degli studenti, per elaborare documenti d'identità, domande di alloggio, bollette o borse di studio
Alcuni sono meno evidenti:
- Quali fornitori di terze parti, come fornitori di carte magnetiche edili, potrebbero aver bisogno di un accesso intermittente ad alcune tabelle di dati degli studenti?
Siti web e blog di notizie
Il web è pieno di siti web di notizie, podcast e blog. Molti proprietari di siti Web dipendono da più amministratori, collaboratori, editori, correttori di bozze ed editori. Inoltre, ci sono abbonati e spettatori da considerare.
Alcune delle decisioni di controllo degli accessi per le applicazioni di siti Web di blog e notizie sono ovvie:
- A seconda delle aree di responsabilità aziendale, gli editori potrebbero aver bisogno di accedere a una combinazione di pagine, articoli e post di blog di tutti
- I contributori dovranno accedere solo ai propri post del blog
Alcuni sono meno evidenti:
- Tutte le terze parti hanno bisogno di accedere a ogni tabella nel database di WordPress? È qui che entrano in gioco i controlli personalizzati.
Siti bancari
Il nostro ultimo esempio è qualcosa che molti di noi usano quotidianamente, i servizi di siti web bancari. A parte le informazioni sulla salute, i dati finanziari personali sono naturalmente uno dei tipi più riservati che ci siano.
Alcune delle decisioni di controllo degli accessi per la realizzazione di applicazioni per siti Web sono ovvie:
- Nessun utente di servizi bancari dovrebbe avere accesso all'account di un altro utente, se non con il consenso espresso (probabilmente controllato dall'utente).
- Gli account utente del personale dovrebbero avere accesso a molti account utente del servizio, ma limitati solo alle attività che devono eseguire come parte del loro lavoro
Alcuni sono meno evidenti:
- Quanto accesso dovrebbero avere i dipartimenti di supporto tecnico? Dovrebbero essere in grado di visualizzare e modificare tutto, in caso di errori?
Ti consigliamo di pensare e pianificare il caso d'uso aziendale per ogni scenario. Insieme ai tuoi gruppi di utenti e individui con descrizioni di lavoro uniche. Prima traccia questi. Solo allora puoi iniziare a esaminare i protocolli di controllo degli accessi a tua disposizione nel tuo sito Web WordPress.
Tracker di salute e fitness
I dispositivi di monitoraggio della salute o del fitness e le loro dashboard online connesse raccolgono, archiviano e condividono statistiche affascinanti sugli utenti e sui loro dati sanitari, attività, obiettivi e risultati.
Alcune delle decisioni di controllo degli accessi per i marchi di tracker per la salute e il fitness sono ovvie:
- Quali team all'interno dell'organizzazione hanno bisogno di accedere a quali dati? È logico che se un team è responsabile della progettazione e dello sviluppo della parte di monitoraggio del sonno dell'app, non ha necessariamente bisogno dell'accesso alle tabelle delle statistiche dell'allenamento.
- La maggior parte degli utenti vorrà che il PoLP (che lo sappiano o meno) sia molto restrittivo, quindi le loro informazioni sulla salute non vengono condivise con tutti gli altri utenti. Quindi, quali privilegi di accesso dovrebbero essere assegnati al normale ruolo utente e quali dati saranno quindi condivisi su un profilo pubblico (solo nome, immagine del profilo e passi giornalieri medi?).
Alcuni sono meno evidenti:
- Quali e quante informazioni devono essere accessibili ad altri utenti per facilitare le caratteristiche comuni di ludicizzazione di tali strumenti?
- Gli sviluppatori dovrebbero impostare tutti i permessi di accesso o parte di questo processo decisionale dovrebbe essere scaricato dagli utenti?
Utilizzando il principio del privilegio minimo per WordPress e oltre
Quanto sopra è solo una selezione degli scenari più comuni in cui il principio del privilegio minimo per WordPress è spesso trascurato ma può essere facilmente applicato.
Per iniziare ad adottare PoLP, inizia considerando cosa vuoi fare riguardo ai seguenti elementi:
- Il server web
- La banca dati
- Personalizzazioni
Non esitare ad applicare il principio del privilegio minimo semplicemente perché le cose non funzionano subito. Sì, la maggior parte delle volte devi dedicare alcune ore alla configurazione di ruoli utente personalizzati e alla risoluzione dei problemi dei plug-in. Riconfezionalo nella tua mente come investimento a lungo termine nella sicurezza dei tuoi siti Web WordPress.