Întreabă ce ține un site în siguranță și vei primi adesea un singur răspuns: ține-l actualizat. E adevărat, și e cel mai important obicei, dar e doar un strat din mai multe. Un site care rămâne sigur ani la rând o face pentru că mai multe protecții independente își fac fiecare partea, astfel încât atunci când una e imperfectă, cum se întâmplă uneori cu orice protecție, alta stă deja în spatele ei. Oamenii de securitate numesc asta apărare în adâncime. Articolul parcurge straturile așa cum se aplică ele unui site de firmă, în termeni simpli, ca să știi din ce e făcut, concret, un site bine protejat.
Stratul unu: marginea rețelei
Înainte ca o cerere să ajungă la site-ul tău, trece printr-un edge: punctul în care traficul de pe internet intră în infrastructura ta. La edge terminăm TLS, astfel că fiecare conexiune e criptată cu certificate care se reînnoiesc automat. Rulăm un firewall de aplicații web care inspectează fiecare cerere după un set de reguli întreținut și le aruncă pe cele care se potrivesc cu tipare de atac cunoscute. Și aplicăm limite de rată, astfel că un script care bate într-o pagină de login sau într-o casetă de căutare e încetinit cu mult înainte să afecteze pe altcineva.
La edge se gestionează volumul. Cea mai mare parte din ce lovește orice site public e automatizată, și cea mai mare parte din asta e filtrată aici fără ca aplicația s-o vadă vreodată. Rezultatul e că site-ul tău Drupal își cheltuie capacitatea pe vizitatori.
Stratul doi: mediul de rulare
Site-ul tău rulează în containere pe care le construim noi din imagini minimale. Codul aplicației e montat doar pentru citire. Containerul nu are shell și nu are manager de pachete. Rulează ca utilizator neprivilegiat, cu puținele capabilități de care are nevoie și nimic mai mult. Conexiunile spre exterior sunt restrânse la destinațiile pe care site-ul le folosește legitim.
Nimic din toate astea nu se vede din afară, și toate schimbă ce ar putea face un atacator cu un punct de sprijin. Codul care nu poate fi modificat pe loc nu poate fi alterat pe furiș. Un proces care nu poate deschide un shell nu poate fi transformat într-o unealtă. Stratul de rulare e despre limitarea consecințelor, pornind de la premisa că niciun strat de deasupra sau de dedesubt nu e perfect.
Stratul trei: software la zi
Acesta e stratul pe care îl știe toată lumea. Echipa de securitate Drupal publică avize după un program săptămânal fix, iar noi aplicăm lansările de securitate pentru core și pentru modulele contribuite pe măsură ce apar. Aceeași disciplină acoperă PHP, baza de date, serverul web și sistemul de operare din imaginile noastre, pe care le reconstruim și le rescanăm pentru vulnerabilități cunoscute într-un ritm regulat, nu când apare un motiv.
A fi la zi e un obicei, nu un eveniment. Un site care își primește actualizările săptămânal e mereu la un pas mic de ultima lansare, ceea ce ține fiecare actualizare mică, cu risc scăzut și plictisitoare. Asta e ținta.
Stratul patru: aplicația în sine
Drupal a fost proiectat cu securitatea drept preocupare de prim rang. Stratul său de bază de date, sistemul de formulare și pipeline-ul de randare tratează implicit cele mai frecvente vulnerabilități web, astfel că un dezvoltator care scrie cod obișnuit primește protecție fără s-o ceară. Construim peste asta verificând fiecare modul contribuit înainte să ajungă pe un site, scriind codul personalizat în interiorul API-urilor Drupal și nu pe lângă ele, și scanându-ne codul cu analiză statică la fiecare lansare.
Configurația contează aici la fel de mult ca codul: ce formate de text sunt permise, ce fișiere pot fi încărcate și unde, cum sunt afișate erorile. Sunt setări mici cu efect disproporționat, și fac parte din fiecare listă de verificare la lansare.
Stratul cinci: oamenii și accesul
Cele mai multe incidente de oriunde pe web încep cu un cont, nu cu o vulnerabilitate. Așa că acest strat e despre cine se poate autentifica și ce poate face odată intrat. Fiecare cont aparține unei persoane cu nume. Rolurile acordă accesul minim care îi permite cuiva să-și facă treaba. Autentificarea în doi pași protejează fiecare cont care poate schimba conținut sau configurație. Foștii angajați își pierd accesul în ziua în care pleacă. Încercările de autentificare sunt limitate și înregistrate.
E stratul în care ne bazăm cel mai mult pe clienții noștri, și de aceea petrecem timp cu obiceiurile pe care le recomandăm fiecărei echipe. Tehnologia stabilește valorile implicite; oamenii le păstrează.
Stratul șase: să știi ce se întâmplă
Un site protejat e și un site supravegheat. Monitorizăm disponibilitatea, timpii de răspuns, ratele de eroare, expirarea certificatelor, autentificările eșuate și modificările aduse fișierelor care n-ar trebui să se schimbe niciodată. Alertele ajung la o persoană. Jurnalele sunt păstrate destul de mult ca să reconstituim ce s-a întâmplat și sunt stocate acolo unde site-ul însuși nu le poate altera.
Monitorizarea e ceea ce transformă un eveniment neobișnuit într-o poveste scurtă în loc de un mister. Ține și celelalte straturi cinstite, pentru că un filtru care nu mai funcționează sau un job care nu mai rulează e observat în aceeași zi.
Stratul șapte: capacitatea de a-ți reveni
La final, stratul pentru ziua în care ceva merge totuși prost. Backup-urile rulează după un program, sunt stocate separat de site, sunt păstrate conform unei politici de retenție și sunt restaurate în exerciții regulate, ca să știm cât durează recuperarea. Fiecare lansare e păstrată, astfel că revenirea la o versiune bună cunoscută e un singur pas. Ideea nu e că ne așteptăm să avem nevoie des de asta. Ideea e că a ști că recuperarea e rapidă schimbă felul în care se simte fiecare altă decizie.
De ce straturile contează mai mult decât oricare dintre ele
Fiecare strat de aici e obișnuit. Împreună, înseamnă că o problemă dintr-un loc e ținută în frâu de celelalte: o vulnerabilitate de modul exploatată înainte de aplicarea patch-ului se lovește în continuare de un firewall, de un mediu de rulare doar pentru citire, de permisiuni restrânse și de monitorizare. Adâncimea e ceea ce transformă o zi proastă într-una scurtă.
Fiecare site de pe platforma noastră administrată primește toate cele șapte straturi de la sine, iar fiecare site pe care îl întreținem e verificat în raport cu ele. Dacă vrei să vezi cum stă al tău, îl parcurgem cu plăcere împreună, strat cu strat.
