HachiGuard

Securitate și arhitectură

HachiGuard înseamnă monitorizarea integrității plăților cu recuperare automată pentru magazine online. Supraveghează fișierele și setările care hotărăsc unde ajunge o plată, raportează modificările neautorizate și, în condiții stricte, pune la loc o versiune curată verificată.

Trei părți, ținute separat

  • Senzorul rulează pe găzduirea dumneavoastră, din planificator, în afara folderului public. Nu are reguli proprii. Adună amprente și le trimite.
  • Serverul central păstrează regulile, compară fiecare raport cu ultima stare curată și decide. Lista fișierelor supravegheate se stabilește aici, nu de către senzor.
  • Copiile curate ale fișierelor dumneavoastră critice sunt păstrate pe infrastructura noastră, nu pe găzduirea dumneavoastră. Cineva care intră în contul de găzduire nu le poate înlocui.

Ce poate face senzorul

  • Rulează cu propriul dumneavoastră utilizator de găzduire. Nu are nevoie de acces root și nu instalează nimic pe server.
  • Citește fișiere de cod și, din baza de date, doar înregistrările administratorilor, setările de plată și câteva setări ale platformei, cum ar fi adresa site-ului și lista extensiilor.
  • Scrie într-un singur caz: când serverul central ordonă restaurarea unui fișier de plată.
  • Nu șterge niciodată un fișier. Înainte de a înlocui unul, păstrează versiunea înlocuită într-un folder privat.

Ce părăsește site-ul dumneavoastră și ce nu pleacă niciodată

  • Se trimit: amprentele fișierelor, conținutul fișierelor de cod critice care s-au modificat, numele de utilizator ale administratorilor și amprentele (nu valorile) e-mailurilor și parolelor administratorilor și ale setărilor de plată.
  • Nu se trimit niciodată: comenzi, clienți, numere de card și nicio pagină pe care o văd vizitatorii dumneavoastră.
  • Fiecare mesaj este semnat în ambele sensuri și poartă o marcă de timp și un număr de unică folosință, astfel încât nu poate fi modificat sau repetat.

Când este restaurat automat un fișier

Decizia este luată de reguli fixe, nu de inteligență artificială. Astfel, aceleași fapte dau întotdeauna aceeași decizie și fiecare poate fi explicată. Trebuie îndeplinite toate condițiile de mai jos:

  • fișierul este un fișier de plată sau de checkout,
  • modificarea adaugă o destinație de plată pe care nu o recunoaștem,
  • nu este în curs o actualizare a platformei sau a acelei extensii,
  • există o copie curată verificată.

Orice altă modificare este raportată și așteaptă aprobarea dumneavoastră. Nu este anulată.

Înainte de a scrie, senzorul verifică dacă fișierul de pe disc este încă exact cel analizat, dacă nu este o legătură către alt loc și dacă se află în interiorul site-ului dumneavoastră. Scrierea se face într-un singur pas, astfel încât să nu poată rămâne un fișier scris pe jumătate. Apoi senzorul confirmă rezultatul serverului central.

Versiunea modificată este păstrată ca dovadă. Dacă modificarea a fost a dumneavoastră, o puneți la loc din panou cu un singur buton. Fiecare restaurare automată este însoțită de o fișă a deciziei: regula, fișierul, destinația, dacă era în curs o actualizare și amprentele de dinainte și de după.

Un exemplu

Acesta este panoul unui magazin de test. Am schimbat noi înșine adresa de plată într-un fișier, cu o adresă care seamănă cu cea reală. La verificarea următoare modificarea a fost găsită, fișierul curat a fost pus la loc și senzorul a confirmat.

Panoul HachiGuard cu un fișier de plată restaurat, fișa deciziei și o alertă pentru un administrator nou
Exemplu dintr-un magazin de test, cu panoul în limba greacă. Modificarea a fost făcută de noi la 03:24 și găsită la verificarea de la 03:28 (pachet cu verificare la fiecare 5 minute).

Ce am testat

Teste controlate pe magazine de test, versiunea 1.12:

  • Timpul de la modificare până la restaurare, cu verificare în fiecare minut. Am schimbat adresa de plată într-un fișier de plată de 8 ori, în momente aleatorii din cadrul minutului. De fiecare dată din cele 8, modificarea a fost găsită și fișierul curat pus la loc chiar la verificarea următoare: între 8 și 57 secunde după modificare, în medie 33. Odată pornită verificarea, detectarea și restaurarea durează sub o secundă, așa că așteptarea este dată de intervalul pachetului dumneavoastră.
  • 100 modificări controlate de șase feluri, pe magazine de test OpenCart și WooCommerce. Toate cele 100 au fost găsite și fișierul curat a fost pus la loc. În aceeași serie am făcut 100 modificări obișnuite de dezvoltator: niciuna nu a fost anulată și niciuna nu a declanșat alarma.
  • Fișierul se schimbă din nou între analiză și restaurare. Restaurarea nu a fost aplicată, versiunea mai nouă a rămas la locul ei și a fost verificată la trecerea următoare.
  • Fișierul este înlocuit cu o legătură (symlink) înainte de restaurare. Senzorul a refuzat să scrie și a fost trimisă o alertă critică.
  • Același mesaj este trimis de două ori sau modificat pe drum. Al doilea a fost respins ca repetare, cel modificat pentru semnătură nevalidă.
  • Serverul central nu este disponibil. Senzorul nu a schimbat nimic pe site. Când serverul a revenit, modificarea făcută între timp a fost găsită și fișierul restaurat. Cât timp serverul nu răspunde, nu au loc verificări.
  • O parolă de panou furată. Autentificarea a fost posibilă, aprobarea unei modificări nu: este nevoie de codul trimis pe e-mailul proprietarului. Șase coduri ghicite au eșuat și proprietarul a fost anunțat.
  • Anularea unei restaurări din panou. Cu codul primit pe e-mail, modificarea a fost pusă la loc la verificarea următoare.
  • Este modificat chiar fișierul senzorului sau senzorul raportează dintr-odată mult mai puține fișiere. Alertă critică la verificarea următoare.
  • Pe pagina publică apar un script de la un domeniu care seamănă cu unul real și un formular care trimite date în altă parte. Verificarea din exterior a declanșat o alertă critică.
  • Sunt propriile noastre teste controlate pe magazine de test, pe aceeași mașină cu serverul central. Nu sunt un audit independent, iar într-o instalare reală se adaugă întârzierea rețelei.

Panoul dumneavoastră

  • Rapoartele și aprobările sunt disponibile doar după autentificare. Nu există linkuri de raport deschise.
  • Parolele sunt stocate sub formă de hash. După cinci încercări greșite, contul se blochează cincisprezece minute.
  • Pentru a aproba o modificare sau a anula o restaurare este nevoie și de un cod trimis în acel moment pe e-mailul dumneavoastră. O parolă de panou furată nu este de ajuns.
  • Fiecare aprobare și fiecare anulare este înregistrată împreună cu utilizatorul și adresa de la care a venit și este trimisă prin e-mail proprietarului și echipei noastre.

O a doua privire, din exterior

La fiecare șase ore, serverul nostru deschide și paginile dumneavoastră publice la fel ca un vizitator și compară domeniile externe pe care le încarcă cu cele de data trecută. Un script nou de la un domeniu care seamănă cu unul real sau de la un serviciu deschis de găzduire a codului, ori un formular care începe să trimită date în altă parte, declanșează o alertă. Această verificare nu depinde de senzor.

Cât timp păstrăm datele

  • Istoricul evenimentelor se păstrează 90 de zile.
  • Copiile curate se păstrează cât timp abonamentul este activ și se șterg când se încheie.

Limite pe care le spunem deschis

  • HachiGuard nu înlocuiește un firewall, un antivirus sau o scanare PCI. Este stratul care observă și anulează o modificare după ce cineva a intrat.
  • Un script încărcat pe pagina dumneavoastră de plată de pe serverul unui terț poate fi modificat pe acel server fără să se schimbe vreun fișier al dumneavoastră. Observăm un domeniu extern nou, dar nu o modificare în interiorul unui script care era deja acolo.
  • Dacă întregul cont de găzduire este preluat, un senzor care rulează în interiorul lui nu mai poate fi considerat pe deplin de încredere. De aceea copiile curate, regulile și deciziile se află în afara lui și de aceea un senzor care tace sau a fost modificat declanșează alarma.
  • Fișierele codificate nu pot fi citite. Le urmărim după amprentă și raportăm fiecare modificare, dar nu le restaurăm automat.
  • Prima verificare consideră curată starea actuală. Revedeți administratorii și adresele de plată înainte ca ea să ruleze.
  • Detectarea are loc la intervalul pachetului dumneavoastră. O modificare făcută imediat după o verificare este văzută la următoarea.