Ați avut o găzduire comună și ați fost îngrijorat de securitate? Iată ce trebuie să știți
Distribuirea de hosting. Este opțiunea ieftină, nu-i așa? Și pentru o imensă populație, totul va fi vreodată necesar pentru a-și găzdui site-ul sau aplicația web. Iar atunci când se face bine, gazdele partajate sunt scalabile, rapide și sigure.
Dar ce se întâmplă când nu se face bine?
Ei bine, atunci când problemele de securitate periculoase încep să se strecoare. Deci, atunci când site-ul dvs. este expus riscului de a fi defaimat, sau datele private deținute sunt scurgeri. Dar nu te îngrijora. Marea majoritate a gazdelor web au măsuri decente de securitate. Este vorba numai de gazdele de subsol, de la negustori, de care trebuie să fii precaut.
Vă recomandăm hostingul gazduit de InMotion Hosting cu spațiul de stocare SSD.
Vom explora problemele de securitate din jurul găzduirii comune. Dar, mai întâi, să vorbim despre ceea ce face ca o platformă de găzduire comună să fie sigură.
Ce face un gaz Web securizat
Există câteva considerații de securitate care trebuie făcute cu privire la găzduirea în comun.
- Fiecare utilizator de pe server ar trebui să fie izolat de alți utilizatori și nu ar trebui să poată accesa sau modifica fișierele altor utilizatori.
- O vulnerabilitate de securitate în logica unui site găzduit pe server nu ar trebui să aibă impact asupra altor utilizatori.
- Serverul este patched, actualizat și monitorizat în mod regulat pentru a aborda problemele de securitate arhitecturală.
- Fiecare utilizator ar trebui să aibă propriul acces la baza de date izolată și nu ar trebui să li se permită să facă schimbări în înregistrările stocate sau permisiunile de tabel ale altor utilizatori.
Din nou, majoritatea gazdelor web îndeplinesc aceste cerințe pentru ofertele lor comune. Dar dacă sunteți în căutarea de a găzdui mai multe site-uri web pe un singur server sau sunteți curios să vedeți cum vă găzduiește compania dvs. de găzduire sau chiar să vă gândiți să lansați propria companie de găzduire și sunteți dornici să vă pregătiți cum să vă asigurați utilizatorii, pe.
Dar mai întâi, o declarație de excludere
Înainte de a intra în carnea de a privi atacurile comune la nivel de găzduire comună, vreau doar să spun că acest post nu va fi (și nu ar trebui citit ca) o listă exhaustivă a problemelor potențiale de securitate.
Securitatea este, într-un cuvânt, mare. Există multe modalități prin care puteți compromite un site. Acest lucru merge dublu pentru găzduirea partajată. Acoperirea acestora intr-un singur articol nu a fost niciodata pe carduri.
Dacă sunteți paranoic cu privire la securitatea dvs., obțineți un server VPS sau dedicat. Acestea sunt medii în care aveți (în cea mai mare parte) control absolut asupra a ceea ce se întâmplă. Dacă nu sunteți sigur despre diferitele tipuri de găzduire web, consultați acest post Diferitele forme de găzduire a site-urilor explicate [Tehnologie explicată] Diferitele forme de găzduire a site-ului au fost explicate [Tehnologie explicată] Citiți mai multe de la colegul meu, James Bruce.
De asemenea, trebuie să subliniez că acest post nu trebuie interpretat ca un atac împotriva găzduirii în comun. Mai degrabă, este vorba despre o analiză pur academică a problemelor de securitate din jurul acestei categorii de găzduire web.
Directorul Traversal
Să începem cu traversarea directoarelor (adesea cunoscute sub numele de "traversal pe traseu"). Acest tip de atac vă permite să accesați fișiere și directoare stocate în afara radacinii web.
În engleză simplă? Să presupunem că Alice și Bob folosesc același server pentru a-și găzdui site-urile. Fișierele lui Alice sunt stocate în / var / www / alice, în timp ce documentele lui Bob pot fi găsite în / var / www / bob. În plus, să presupunem că există un alt dosar pe server (/ usr / crappyhosting / myfolder) care conține un fișier text necriptat (îl vom numi pwd.txt) care conține nume de utilizator și parole de sistem.
Cu mine până acum? Bun. Acum, să ne imaginăm că site-ul lui Bob servește fișiere PDF generate local, iar fișierul local este menționat în URL. Ceva asemănător cu:
http://example.com/file?=report.pdf
Ce s-ar întâmpla dacă am înlocuit raportul "report.pdf" cu anumiți parametri UNIX care schimbă directorul?
http://example.com/file?=.../ alice /
Dacă serverul este configurat incorect, acest lucru vă va permite să vedeți rădăcina documentului Alice. Interesant, dar suntem mult mai interesați de acest dosar de pașapoarte suculent. Accio parole!
http://example.com/file?=.../ ... / ... /usr/crappyhosting/myfolder/pwd.txt
Este într-adevăr la fel de ușor ca asta. Dar cum putem face acest lucru? Asta e ușor.
Ai auzit vreodată de un utilitar Linux puțin cunoscut chroot? Probabil ați ghicit deja ce face. Setează rădăcina Linux / UNIX într-un dosar arbitrar, ceea ce face imposibil ca utilizatorii să iasă din ea. Eficace, oprește atacurile de traversare a directoarelor în pistele lor.
E greu de spus dacă gazda ta are acest lucru fără a încălca legea. La urma urmei, pentru a testa, ați accesa sisteme și fișiere pe care nu aveți permisiunea de a accesa. Având în vedere acest lucru, poate că ar fi sensibil să vorbim cu gazda dvs. web și să întrebați cum își izolează utilizatorii de la ceilalți.
Operați propriul server de găzduire partajat și nu utilizați chroot pentru a vă proteja utilizatorii? Desigur, cromarea mediilor dvs. poate fi dificilă. Din fericire, există o multitudine de pluginuri care fac acest lucru ușor. Aruncati o privire la mod_chroot, in special.
Command Injection
Să ne întoarcem la Alice și Bob. Deci, știm că cererea de web a lui Bob are câteva ... Ahem ... Probleme de securitate în el. Una dintre acestea este vulnerabilitatea la injectarea comenzilor, care vă permite să executați comenzi arbitrare ale sistemului Un ghid rapid pentru a începe cu linia de comandă Linux Un ghid rapid pentru a începe cu linia de comandă Linux Puteți face o mulțime de lucruri uimitoare cu comenzi în Linux și nu este cu adevărat dificil de învățat. Citeste mai mult .
Site-ul Web Bob vă permite să rulați o interogare whois pe un alt site web care este afișat în browser. Există o casetă standard de intrare HTML care acceptă un nume de domeniu și apoi execută comanda sistemului whois. Această comandă este executată prin apelarea comenzii de sistem () PHP.
Ce s-ar întâmpla dacă cineva a introdus următoarea valoare?
example.com && cd ... / alice / && rm index.html
Ei bine, haideți să o despărțim. Unele dintre acestea ar putea fi cunoscute dacă ați citit "Ghidul de bază pentru Linux" Ghid de inițiere Ghidul de bază pentru Linux Ghidul Linux Ghidul de pornire al noului utilizator pentru Linux! Probabil că ați auzit despre Linux, sistemul liber de operare open-source care se îndreaptă împotriva Microsoft. Citiți mai multe cărți electronice, pe care le-am publicat anterior în 2010, sau ați aruncat o privire asupra liniei noastre de comandă a liniei de comandă Linux.
În primul rând, va rula o interogare whois pe example.com. Apoi ar schimba directorul curent de lucru la rădăcina documentului lui Alice. Apoi, s-ar elimina fișierul numit "index.html", care este pagina de index pe site-ul său. Asta nu e bine. Nu, domnule.
Deci, ca administratori de sistem, cum putem atenua acest lucru? Revenind la exemplul anterior, putem pune întotdeauna fiecare utilizator în propriul mediu izolat, dezinfectat, cromat.
De asemenea, putem aborda acest lucru dintr-un nivel de limbă. Este posibil (deși acest lucru poate sparge lucrurile) pentru a elimina în totalitate declarațiile de funcții din limbi. Adică, este posibil să eliminați funcționalitatea din limbile pe care utilizatorii le pot accesa.
Privind în special în PHP, puteți elimina funcționalitatea cu Runkit - setul de instrumente oficial al PHP pentru modificarea funcționalității limbii. Există o mulțime de documentații acolo. Citiți în ea.
De asemenea, puteți modifica fișierul de configurare al PHP (php.ini) pentru a dezactiva funcțiile care sunt adesea abuzate de hackeri. Pentru a face acest lucru, deschideți un terminal pe serverul dvs. și deschideți fișierul php.ini într-un editor de text. Îmi place să folosesc VIM, dar NANO este de asemenea acceptabil.
Găsiți linia care începe cu disable_functions și adăugați definițiile funcțiilor pe care doriți să le interziceți. În acest caz, ar fi exec, shell_exec și sistem, deși merită menționat că există și alte funcții încorporate care pot fi exploatate de hackeri.
disable_functions = exec, shell_exec, sistem
Atacuri bazate pe limbi și interpreți
Deci, haideți să ne uităm la PHP. Acesta este limbajul care conferă un număr uluitor de site-uri Web. De asemenea, vine cu o serie de idiosincrazii și comportamente ciudate. Asa.
PHP este de obicei utilizat împreună cu serverul web Apache. În cea mai mare parte, este imposibil să încărcați mai multe versiuni ale limbii cu această configurație.
De ce este o problemă? Să presupunem că aplicația web a lui Bob a fost construită inițial în 2002. Asta a fost cu mult timp în urmă. Asta intors cand Michelle Branch se afla inca in topuri, Michael Jordan juca in continuare pentru Wizards din Washington si PHP era un limbaj foarte diferit.
Site-ul lui Bob încă funcționează! Utilizează o grămadă de funcții PHP întrerupte și depreciate, dar funcționează! Folosirea unei versiuni moderne a PHP ar rupe în mod eficient site-ul lui Bob și de ce Bob trebuie să își rescrie site-ul pentru a satisface capriciile gazdei sale web?
Acest lucru ar trebui să vă dau o idee despre dilema cu care se confruntă unele gazde web. Ei trebuie să echilibreze păstrarea unui serviciu sigure și sigure din punct de vedere arhitectural, păstrând în același timp acest lucru în armonie cu asigurarea faptului că clienții plătitori sunt fericiți.
Ca rezultat, nu este neobișnuit să vedem gazdele mai mici, independente, care folosesc versiuni mai vechi ale interpretului PHP (sau al oricărui limbaj, de pildă).
Nu este neobișnuit să vedem gazdele mai mici, independente, care folosesc versiuni mai vechi ale PHP, care ar putea expune utilizatorii la riscuri de securitate.
De ce este un lucru rău? În primul rând, ar expune utilizatorii la o serie de riscuri de securitate. Ca majoritatea pachetelor software majore, PHP este în permanență actualizată pentru a aborda o mulțime de vulnerabilități de securitate care sunt în mod constant descoperite (și dezvăluite).
În plus, înseamnă că utilizatorii nu pot utiliza cele mai recente (și cele mai bune) funcții de limbă. De asemenea, înseamnă că funcțiile care au fost depreciate pentru un motiv rămân. În cazul limbajului de programare PHP, acesta include funcțiile mysql_ teribile (și recent depreciate) care sunt folosite pentru a interacționa cu MySQL Relational Database System și dl (), care permite utilizatorilor să importe propriile extensii de limbă.
În calitate de utilizator, ar trebui să puteți vedea ce versiune a unui interpret este difuzată în cadrul serviciului dvs. Dacă este depășită sau conține o serie de vulnerabilități de securitate, contactați-vă gazda.
Ce zici de sysadmins? Aveți câteva opțiuni aici. Primul (și cel mai promițător) este să utilizați Docker pentru fiecare utilizator. Docker vă permite să executați simultan mai multe medii izolate, la fel ca o mașină virtuală, chiar dacă nu trebuie să rulați un alt sistem de operare. Ca urmare, acest lucru este rapid. Foarte repede.
În engleză simplă? Puteți rula cea mai recentă și cea mai mare interpretare de sângerare pentru majoritatea utilizatorilor dvs., în timp ce clienții care folosesc aplicații vechi care folosesc interpreți anteriori, deputați, să facă acest lucru fără a compromite alți utilizatori.
Acest lucru are de asemenea avantajul de a fi agnostic. PHP, Python, Ruby. Indiferent de. Totul e la fel.
Nu ai coșmaruri.
Acest post a fost destinat să facă câteva lucruri. În primul rând, a fost să vă aducă la cunoștință numărul de probleme de securitate pe care companiile de găzduire web trebuie să le facă față pentru a asigura securitatea clienților și a datelor acestora.
Acesta a fost, de asemenea, destinat să vă arate cum site-urile găzduite pe același server se pot afecta reciproc. Vrei să pui o dentă în asta? Începeți să respectați standardele de codare bune, sigure. În special, începeți să vă dezinstalați intrările pe front și pe spate.
Un început bun este cu noua funcționalitate de validare a formularului HTML5. Am vorbit despre acest lucru înainte în ghidul HTML5. În mod colectiv, putem face site-urile mai sigure prin faptul că suntem mai buni, programatori mai conștienți.
Ca întotdeauna, sunt în căutarea gândurilor. Dă-mi un comentariu mai jos.
Photo Credit: Toată lumea are nevoie de un hacker (Alexandre Dulaunoy), fereastra de autocolant (Cory Doctorow), camera de server (Torkild Retvedt), cărți și reviste Linux (librarian_mistress), elefant PHP (Markus Tacker)
Explorați mai multe despre: Online Security, Web Hosting.