Aplicarea principiului celui mai mic privilegiu pentru o securitate îmbunătățită WordPress

Publicat: 2021-07-27

Principiul celui mai mic privilegiu pentru WordPress ratează primele titluri atunci când au loc încălcări, pierderi de date și atacuri DoS. Cu toate acestea, este una dintre cele mai eficiente, dacă este trecută cu vederea, cele mai bune practici de securitate pentru site-urile WordPress.

În această postare pe blog, definim mai întâi principiul cel mai mic privilegiu, apoi examinăm când și unde se aplică, riscurile de a nu-l adopta și de ce mulți dezvoltatori de site-uri web încă nu îl integrează pe site-urile lor WordPress. De asemenea, împărtășim câteva recomandări practice, astfel încât să puteți începe imediat să îmbunătățiți securitatea site-urilor dvs. WordPress. Această postare de blog include câteva mini studii de caz pentru a ajuta la ilustrarea utilizării sale în setări reale.

Cuprins

  • Care este principiul celui mai mic privilegiu?
  • Când și unde se aplică principiul privilegiului minim?
  • Care sunt riscurile dacă nu se aplică PoLP?
  • De ce mulți proprietari de site-uri neglijează principiul cel mai mic privilegiu în WordPress?
  • Cum se aplică PoLP pentru WordPress
    • privilegii de utilizator al bazei de date WordPress
    • Rolurile și privilegiile utilizatorilor WordPress
      • Crearea de roluri personalizate
    • Permisiuni pentru fișiere și directoare
    • Configurare pluginuri WordPress
    • Acces FTP pentru contractori terți
  • Mini studii de caz
    • Aplicații pentru site-uri de comerț electronic
    • Universități și instituții de învățământ
    • Site-uri de știri și bloguri
    • Site-uri web bancare
    • Trackere de sănătate și fitness
  • Utilizarea principiului celui mai mic privilegiu pentru WordPress și nu numai

Care este principiul celui mai mic privilegiu?

Ideea este foarte simplă: nu acordați unui cont de utilizator, nu procesați sau programați mai multe drepturi de acces decât are nevoie pentru a-și îndeplini sarcinile desemnate. În ceea ce privește un site web WordPress tipic cu un blog, gândiți-vă la editorii, autorii, colaboratorii și abonații dvs. Fiecare dintre ele are nevoie de acces la mai mult sau mai puțin din backend-ul site-ului dvs.

Principiul celui mai mic privilegiu (PoLP) este cunoscut și sub denumirea de „principiul celui mai mic privilegiu”, „principiul privilegiilor minime” sau „contul de utilizator cu cel mai mic privilegiu” (LUA).

Să luăm în considerare câteva exemple simple. Copiii tăi nu au adesea nevoie de acces la bucătărie. Așadar, instalați un dispozitiv de control al accesului, cum ar fi o poartă de siguranță, în diferite puncte din casa dvs. pentru a le permite să rătăcească în voie - cu excepția anumitor camere. Într-un spațiu public de coworking comun, vă deconectați de la laptop înainte de a pleca la prânz. Și, însoțitorul de parcare al restaurantului tău elegant va cere actul tău de identitate sau bilet înainte de a preda înapoi cheile mașinii tale. Controlul accesului previne deteriorarea proprietății dvs. și a utilizatorilor dvs., fie că este vorba despre un articol fizic sau garanție digitală.

Când și unde se aplică principiul privilegiului minim?

Răspunsul simplu este că se aplică peste tot: de la acel copil mic care vrea să urce scările până la utilizatorii de pe contul tău de găzduire a site-ului WordPress. Freelancerul dvs. financiar care trebuie să descarce facturile lunare nu are nevoie de același nivel de acces ca administratorul site-ului web. Același lucru este valabil și pentru tot felul de conturi de companie privilegiate, sisteme de gestionare a fișierelor, documentație de strategie de marketing sau manageri de parole.

Care sunt riscurile dacă nu se aplică PoLP?

Controlul accesului în anumite zone pare o idee deloc. În caz contrar, nu părăsiți site-ul în întregime la pofta oricărui utilizator conectat – inclusiv a celor care pot face greșeli nevinovate și involuntare și nici măcar nu sunt conștienți de faptul că le-au făcut și nici de rezultatele nedorite?

Gândiți-vă la următorii utilizatori posibili:

  • Noul utilizator începe cu puțină înțelegere a implicațiilor comerciale ale greșelilor pe un site web WordPress
  • Cei cu puțină experiență în administrarea WordPress
  • Fără cunoștințe despre implicațiile descărcării de noi versiuni WordPress sau pluginuri după bunul plac, sau ale actualizării lor fără a face mai întâi o copie de rezervă
  • Cei cu cunoștințe limitate de securitate creează noi utilizatori sau modifică permisiunile utilizatorilor existenți
  • Cei care nu știu cum să facă față erorilor raportate sau altor probleme
  • Contribuitori externi ai postărilor de blog, cum ar fi parteneri, liber profesioniști și clienți, cu probabil un pumn de cunoștințe despre WordPress, care pot chiar să descarce sau să actualizeze „util” plugin-uri pe site-ul dvs. – fără să întrebe

De asemenea, înseamnă că întregul dvs. backend WordPress este expus riscului ca o persoană altfel neautorizată, cum ar fi cineva cu niveluri de acces neadecvate, să adauge noi utilizatori și să le ofere acces la zone ale site-ului web unde pot cauza prejudicii deliberate .

Precum:

  • Modificarea temelor, a funcțiilor personalizate sau a conținutului site-ului public
  • Gestionarea greșită a stocurilor, a SKU-urilor sau a metadatelor produselor în magazinele de comerț electronic
  • Oferirea de reduceri neautorizate
  • Accesarea, modificarea, descărcarea sau ștergerea codului, șabloanelor de pagină, media, configurațiilor sau personalului, clienților și alte tipuri de fișiere
  • Accesarea datelor despre companie, clienți, sănătate sau financiare, de exemplu, pentru a utiliza greșit sau a vinde altor părți nefaste
  • Luarea site-ului și a produselor sau serviciilor sale offline

Indiferent dacă utilizați sau nu WordPress, oricare sau toate aceste probleme pot apărea atunci când principiul celui mai mic privilegiu pentru WordPress nu este adoptat în mod deliberat și consecvent în întreaga organizație.

SFAT: Utilizați un plugin de jurnal de activitate pentru WordPress pentru a păstra un jurnal al tuturor modificărilor pe care utilizatorii le fac pe site-ul dvs. WordPress. Ajută la responsabilitatea utilizatorului și ușurează depanarea.

De ce mulți proprietari de site-uri neglijează principiul cel mai mic privilegiu în WordPress?

Riscurile pe care le-am subliniat par destul de convingătoare, nu? Dar una dintre cele mai frecvente probleme raportate în urma auditurilor site-ului WordPress este că rolurile utilizatorilor WordPress într-un mediu tipic sunt încă configurate după cum urmează:

  • Rolul de administrator WordPress este acordat fiecărui utilizator, chiar și atunci când utilizatorul trebuie doar să introducă conținut scris de altcineva
  • Același lucru este valabil și pentru permisiunile de fișiere și directoare, toate fiind configurate cu permisiunile cele mai puțin restrictive

Am luat. Cu toții am avut experiență de lucru ca administratori de sistem și site-uri web la un moment dat în cariera noastră. În loc să facă legătura între utilizatori și permisiuni în primele zile, verificând ce trebuie să facă utilizatorul, administratorii preferă adesea să le atribuie pur și simplu și rolul de administrator (pare mai rapid, inițial).

Același lucru este valabil și pentru permisiunile de fișiere și directoare. De exemplu, unele pluginuri WordPress stochează fișiere cache sau alte date în sistemul de fișiere (adică în directoarele WordPress). Este mai ușor să configurați pur și simplu permisiunile 777 în directorul /wp-content/plugins/, deoarece toate pluginurile vor funcționa și nu este necesar să petreceți mai mult timp depanând și modificând permisiunile de fiecare dată când instalați un plugin nou. Dar, efectuarea unor cercetări la început pentru a determina zonele specifice ale aplicației sau directoarelor site-ului web – pentru a preveni accesul prea mare a utilizatorilor – reduce riscurile deja menționate. Și, are avantajul suplimentar de a permite tuturor să obțină acces la ceea ce au nevoie pentru a-și face treaba – fără alte intervenții din partea unui administrator.

Întrebări pe care le pun proprietarii și administratorii site-urilor web

Comoditatea merită riscul de securitate? Știți care ar fi răspunsul nostru la această întrebare. Pur și simplu nu are rost să instalați și să mențineți pluginuri de securitate pentru aplicații web robuste, protocoale de parole și alte măsuri, cum ar fi 2FA, dacă cel mai mare risc de securitate este că ați lăsat deja ușa din spate deschisă cu controale de acces amatori și laxe!

Cum se aplică principiul celui mai mic privilegiu pentru WordPress

Acum că vă concentrați să faceți aplicația pentru site-ul dvs. cât mai sigură, această secțiune vă oferă o listă cu unde și cum poate fi aplicat principiul cel mai mic privilegiu unui site web sau blog WordPress.

privilegii de utilizator al bazei de date WordPress

Să începem cu cel mai elementar loc – permisiunile sau privilegiile pentru baza de date a utilizatorilor WordPress.

Pentru operațiunile WordPress zilnice normale, cum ar fi scrierea și publicarea conținutului, utilizatorul bazei de date WordPress are nevoie doar de următoarele permisiuni pentru a le permite să gestioneze datele din baza de date:

  • Selectați
  • Introduce
  • Actualizați
  • Șterge

Aceste permisiuni nu permit utilizatorului bazei de date WordPress să modifice structura bazei de date.

Recomandări

Într-un mediu ideal, pentru a întări securitatea site-ului sau blogului dvs. WordPress, ar trebui să configurați privilegii securizate și restrictive ale bazei de date WordPress MySQL. Reveniți doar la atribuirea tuturor privilegiilor utilizatorilor care trebuie să instaleze un plugin nou care creează tabele noi în baza de date sau când WordPress a fost actualizat și există modificări ale schemei bazei de date WordPress.

O altă recomandare este să evitați acordarea accesului la alte baze de date decât cea WordPress pentru site-ul respectiv.

Pentru mai multe informații despre privilegiile bazei de date WordPress, puteți citi și De ce privilegiile minime ale bazei de date WordPress pentru utilizatorii MySQL îmbunătățesc securitatea, ceea ce explică repercusiunile configurației nesigure.

Rolurile și privilegiile utilizatorilor WordPress

Utilizatorii WordPress fac greșeli – chiar și administratorii. Și utilizatorilor le place, de asemenea, să exploreze setările și configurațiile. Dacă atribuiți utilizatorilor acces Super Admin sau Administrator, cei mai curioși dintre aceștia vor instala cel mai probabil pluginuri aleatorii. Acest lucru poate duce la o schimbare neintenționată a experienței utilizatorului, cum ar fi o modificare a funcționalității site-ului web.

WordPress are o serie de roluri de utilizator încorporate și capabilități conectate, așa cum sunt enumerate mai jos (de la cel mai mult la cel mai puțin).

  • Super Admin – administrator de rețea a site-ului
  • Administrator – administrator de rețea de site pentru un singur site
  • Editor – gestionează și publică postări, inclusiv postări ale altor utilizatori
  • Autor – gestionează și publică postările proprii
  • Contributor – scrieți și gestionați propriile postări, dar nu le publicați
  • Abonat – gestionați numai profilul

Un exemplu al modului în care funcționează acest lucru în practică este că, deși un Colaborator și un Autor pot împărtăși anumite capacități (de exemplu, editarea postărilor și ștergerea postărilor), un Colaborator nu poate face tot ce poate un Autor, cum ar fi să încarce fișiere sau să creeze blocuri utilizabile.

Crearea de roluri personalizate

Există, de asemenea, un număr bun de plugin-uri pe care le puteți folosi pentru a crea roluri WordPress noi și personalizate.

Iată câteva cazuri comune de utilizare:

  • În organizațiile mai mari, poate fi necesar să desemnați pe cineva din echipa dvs. de marketing să modereze, să aprobe și să răspundă la comentarii. Capacitatea de „comentări moderate” este găzduită în rolul Editor, dar acest rol atribuie și o serie întreagă de alte capabilități puternice. Deci, dacă asta este tot ce trebuie să poată face, atunci configurarea unui rol personalizat, cu această permisiune unică, este suficientă.
  • Dacă site-ul dvs. WordPress conține un plugin de comerț electronic, cum ar fi WooCommerce, sunteți limitat la două roluri inițiale: Manager magazin (permițând utilizatorului să gestioneze întregul magazin) și Client (permițând utilizatorului să-și vadă contul și comenzile). Administratorul are permisiuni suplimentare, cum ar fi „gestionarea setărilor” și „vizualizarea rapoartelor”. Dar, ce se întâmplă dacă utilizatorii dvs. - personalul care nu este de conducere, de exemplu - necesită ceva între ele, cum ar fi capacitatea de a adăuga și gestiona cantități de stoc sau SKU-uri sau doar procesa comenzi?
  • Pe site-ul nostru, folosim un plugin pentru articolele din baza noastră de cunoștințe. Acest lucru oferă echipei noastre de asistență acces pentru a crea și modifica articole din baza de cunoștințe, dar nu acces la paginile principale ale site-ului web și la postările de blog.

Recomandări

Pentru majoritatea utilizatorilor obișnuiți, rolul de Colaborator este suficient. Pentru liderii de echipă și managerii practicieni, se recomandă rolul Editor. Dar, ar trebui să restricționați rolurile de Super Admin și Administrator la utilizatorii cu experiență, responsabili, care chiar au nevoie de ele.

Pentru mai multe informații, consultați Cum să utilizați rolurile de utilizator WordPress pentru o securitate îmbunătățită WordPress.

Permisiuni pentru fișiere și directoare

Este ușor să configurați permisiunile pentru fișiere și directoare și există o documentație amplă disponibilă online care explică cum să întăriți permisiunile instalării dvs. WordPress. WordPress rulează pe orice sistem de operare care rulează PHP, de obicei Linux. În ceea ce privește grupurile, Linux are trei grupuri de permisiuni:

  • Proprietar – proprietar al fișierului/directorului, ale cărui permisiuni nu se aplică și nici nu afectează niciun alt utilizator
  • Grup – grup de utilizatori cărora li s-a atribuit acces la fișier/director, ale căror permisiuni nu se aplică și nici nu afectează niciun utilizator din afara grupului
  • Altele – ce niveluri de permisiuni au toți ceilalți pentru același fișier/director

Fiecăruia dintre acestea i se atribuie permisiunea Citire (vedeți conținutul), Scriere (scrieți sau modificați conținutul) sau Executare (rulați conținutul, cum ar fi un script). Aceste permisiuni sunt stocate ca o serie de numere și oferă acces la cod PHP, imagini și alte medii, fișiere HTML și javascript și pluginuri.

Implicația atribuirii de permisiuni greșite unui grup de permisiuni greșit ar putea însemna că un hacker rău intenționat ar putea profita și ar putea duce la o vulnerabilitate de nivel scăzut care se transformă într-un risc inacceptabil.

Recomandări

Când instalați WordPress, ar trebui să utilizați și PoLP, configurând cele mai puține permisiuni de fișiere și directoare posibile pentru ca WordPress să funcționeze.

Amintiți-vă că, prin întărirea permisiunilor pentru fișiere și director, ați putea, de asemenea, să restricționați funcționarea unor pluginuri WordPress. După cum am explicat mai devreme, este posibil să instalați pluginuri care trebuie să stocheze date în directorul lor de instalare. Dacă da, nu configurați pur și simplu permisiunile 777 pentru directorul pluginului (citire completă, scriere și executare pentru oricine are permisiuni pentru a-l controla). Aceasta este calea ușoară de ieșire. Dar ar trebui, de asemenea, să evitați limitarea acestuia atât de mult încât să împiedice utilizatorii relevanți să actualizeze WordPress, temele și pluginurile sale din interfața de utilizare web.

Pentru informații suplimentare, consultați permisiunile fișierelor WordPress: ghidul pentru configurarea permisiunilor securizate pentru site-ul web și serverul web.

Configurare pluginuri WordPress

Nu toți administratorii sunt egali. La fel ca multe sisteme și rețele, este obișnuit să existe un administrator principal printre un grup de administratori WordPress. De obicei, proprietarul site-ului web nu are altă opțiune decât să atribuie altor utilizatori acces de administrator. Rețineți că, în cazul pluginurilor de securitate WordPress, acestea pot stoca adesea date sensibile, cum ar fi un jurnal de audit de securitate WordPress, la care ar avea acces administratorii.

Recomandări

Pluginurile de securitate WordPress vă permit de obicei să restricționați accesul altor administratori WordPress. Folosirea unor astfel de funcții pare un control mic, dar uneori trecut cu vederea, care vă va ajuta să păstrați mai bine controlul asupra accesului utilizatorilor.

Pentru mai multe informații despre pluginurile individuale, contactați furnizorul de asistență și găzduire pentru pluginuri. Apoi, întrebați în ce directoare trebuie să scrie pluginul, astfel încât să puteți configura permisiunile special pentru acel director.

Acces FTP pentru contractori terți

Când angajați un designer sau echipa de asistență a unui plugin are nevoie de acces FTP la site-ul dvs., le puteți acorda acces complet la rădăcina site-ului dvs., nu? Acest lucru este inutil.

Recomandări

În cazul unui designer, tot ce are nevoie de acces este directorul temei, așa că restricționează accesul la acel director. Același lucru este valabil și pentru echipele de suport pentru pluginuri. Dacă au nevoie de acces pentru a verifica fișierele jurnal, acordați-le acces FTP la directorul pluginului sau la locația în care pluginul stochează fișierele jurnal. Evitați să depindeți de părți externe pentru a face diligența de securitate pentru dvs.

Mini studii de caz

Să ne uităm la câteva exemple despre cum funcționează acest lucru în practică și cum întrebările și deciziile de control al accesului pot conduce la aplicarea PoLP pentru a permite accesul corect pentru echipele și indivizii potriviti.

Aplicații pentru site-uri de comerț electronic

Aplicațiile de site-uri de comerț electronic, cum ar fi cele în care consumatorii achiziționează articole mari, cum ar fi frigidere-congelatoare, aspiratoare, camere sau laptop-uri, oferă diverse exemple de unde poate fi adoptat PoLP.

Unele dintre deciziile de control al accesului pentru dezvoltatorii de aplicații de site-uri de comerț electronic sunt evidente:

  • Departamentele de resurse umane probabil nu vor avea nevoie de acces la datele clienților sau la directoarele de fișiere care stochează pluginuri, dar vor avea nevoie de acces la majoritatea evidențelor personalului (deși poate că datele de sănătate, care se bucură adesea de un statut special în conformitate cu multe legislații de conformitate cu protecția datelor, pot să fie mai restrâns la baza nevoii de a ști)
  • Departamentele de marketing nu vor avea neapărat nevoie de acces la tabelele SKU sau la codurile de produse. Cu toate acestea, vor dori acces la tabelele din baza de date a produselor care listează numele, specificațiile și descrierile produselor

Unele sunt mai puțin evidente:

  • Consumatorii au nevoie de acces la toate datele lor tot timpul?
  • Ofițerii de conformitate PCI-DSS au nevoie de acces la toate datele consumatorilor?

Universități și instituții de învățământ

Dar instituțiile mai tradiționale și de lungă durată, unde securitatea aplicațiilor web și PoLP sunt inițial mai puțin evidente?

Unele dintre deciziile de control al accesului pentru portalurile universităților și colegiilor sunt evidente:

  • Departamentul de salarizare are nevoie de acces la evidențele personalului și ale contractorilor în aplicația site-ului web pentru a urmări zilele lucrătoare și pentru a efectua plăți
  • Departamentele administrative de diferite tipuri pot avea nevoie de acces la dosarele studenților, pentru a procesa ID-uri, cereri de cazare, facturi sau granturi

Unele sunt mai puțin evidente:

  • Ce furnizori terți, cum ar fi furnizorii de carduri cu glisare pentru clădiri, ar putea avea nevoie de acces intermitent la unele tabele de date ale studenților?

Site-uri de știri și bloguri

Web-ul este plin de site-uri web de știri, podcasturi și bloguri. Mulți proprietari de site-uri web depind de mai mulți administratori, colaboratori, editori, corectori și editori. În plus, există abonați și telespectatori de luat în considerare.

Unele dintre deciziile de control al accesului pentru aplicațiile de site-uri web de știri și blog sunt evidente:

  • În funcție de domeniile de activitate de responsabilitate, editorii pot avea nevoie de acces la o combinație de pagini, articole și postări de blog ale fiecăruia
  • Colaboratorii vor avea nevoie de acces doar la propriile postări de blog

Unele sunt mai puțin evidente:

  • Toți terții au nevoie de acces la fiecare tabel din baza de date WordPress? Acesta este locul în care controalele personalizate devin proprii.

Site-uri web bancare

Ultimul nostru exemplu este ceva pe care mulți dintre noi îl folosim zilnic, serviciile de site-uri bancare. Pe lângă informațiile de sănătate, datele financiare personale sunt, în mod firesc, unul dintre cele mai confidențiale tipuri.

Unele dintre deciziile de control al accesului pentru realizarea aplicațiilor site-ului web sunt evidente:

  • Niciun utilizator de servicii bancare nu ar trebui să aibă acces la contul altui utilizator, cu excepția consimțământului expres (probabil controlat de utilizator)
  • Conturile de utilizator ale personalului ar trebui să aibă acces la multe conturi de utilizatori de servicii, dar limitate doar la acele sarcini pe care trebuie să le îndeplinească ca parte a jobului lor

Unele sunt mai puțin evidente:

  • Cât de mult acces ar trebui să aibă departamentele de suport tehnic? Ar trebui să poată vizualiza și modifica totul, în caz de erori?

Vă recomandăm să gândiți și să planificați cazul de utilizare în afaceri pentru fiecare scenariu. În combinație cu grupurile dvs. de utilizatori și persoane fizice cu fișe unice de post. Harta-le mai intai. Abia atunci puteți începe să examinați protocoalele de control al accesului disponibile pe site-ul dvs. WordPress.

Trackere de sănătate și fitness

Dispozitivele de urmărire a sănătății sau a fitness-ului și tablourile de bord online conectate ale acestora colectează, stochează și partajează statistici fascinante despre utilizatori și despre datele de sănătate, activitatea, obiectivele și realizările acestora.

Unele dintre deciziile de control al accesului pentru mărcile de trackere de sănătate și fitness sunt evidente:

  • Ce echipe din cadrul organizației au nevoie de acces la ce date? Este logic că, dacă o echipă este responsabilă pentru proiectarea și dezvoltarea părții de urmărire a somnului a aplicației, nu are neapărat nevoie de acces la tabelele cu statistici de antrenament.
  • Majoritatea utilizatorilor vor dori ca PoLP (indiferent dacă știu sau nu despre el) să fie foarte restrictiv, astfel încât informațiile lor de sănătate nu sunt partajate cu toți ceilalți utilizatori. Deci, ce privilegii de acces ar trebui acordate rolului de utilizator normal și, prin urmare, ce date vor fi partajate pe un profil public (nume, imagine de profil și numai pași zilnici medii?).

Unele sunt mai puțin evidente:

  • Ce informații și cât de mult trebuie să fie accesibile altor utilizatori pentru a facilita caracteristicile comune de gamification ale unor astfel de instrumente?
  • Ar trebui dezvoltatorii să stabilească toate permisiunile de acces sau o parte din această luare a deciziilor ar trebui să fie transferată utilizatorilor?

Utilizarea principiului celui mai mic privilegiu pentru WordPress și nu numai

Cele de mai sus sunt doar o selecție a celor mai comune scenarii în care principiul celui mai mic privilegiu pentru WordPress este adesea trecut cu vederea, dar poate fi aplicat cu ușurință.

Pentru a începe să adoptați PoLP, începeți prin a vă gândi la ceea ce doriți să faceți cu privire la următoarele elemente:

  • Serverul web
  • Baza de date
  • Personalizări

Nu te sfii să aplici principiul cel mai mic privilegiu pur și simplu pentru că lucrurile nu merg imediat. Da, de cele mai multe ori trebuie să petreceți câteva ore configurând roluri personalizate de utilizator și depanând pluginuri. Reambalați acest lucru în minte ca o investiție pe termen lung în securitatea site-urilor dvs. WordPress.