HachiGuard

Bezpieczeństwo i architektura

HachiGuard to monitorowanie integralności płatności z automatycznym przywracaniem dla sklepów internetowych. Pilnuje plików i ustawień, które decydują, dokąd trafia płatność, zgłasza nieautoryzowane zmiany i, przy spełnieniu ścisłych warunków, przywraca zweryfikowaną czystą wersję.

Trzy części, trzymane osobno

  • Czujnik działa na Twoim hostingu, z harmonogramu zadań, poza folderem publicznym. Nie ma własnych reguł. Zbiera odciski i je wysyła.
  • Serwer centralny przechowuje reguły, porównuje każdy raport z ostatnim czystym stanem i decyduje. Lista pilnowanych plików jest ustalana tutaj, nie przez czujnik.
  • Czyste kopie Twoich krytycznych plików są przechowywane w naszej infrastrukturze, nie na Twoim hostingu. Ktoś, kto dostanie się na konto hostingowe, nie może ich podmienić.

Co może czujnik

  • Działa jako Twój własny użytkownik hostingu. Nie potrzebuje dostępu root i niczego nie instaluje na serwerze.
  • Czyta pliki z kodem, a z bazy danych tylko rekordy administratorów, ustawienia płatności i kilka ustawień platformy, takich jak adres strony i lista rozszerzeń.
  • Zapisuje tylko w jednym przypadku: gdy serwer centralny nakaże przywrócenie pliku płatności.
  • Nigdy nie usuwa pliku. Zanim jakiś zastąpi, zachowuje zastępowaną wersję w prywatnym folderze.

Co opuszcza Twoją stronę, a co nigdy

  • Wysyłane są: odciski plików, zawartość krytycznych plików z kodem, które się zmieniły, nazwy użytkowników administratorów oraz odciski (nie wartości) adresów e-mail i haseł administratorów oraz ustawień płatności.
  • Nigdy nie są wysyłane: zamówienia, klienci, numery kart ani żadna strona, którą widzą odwiedzający.
  • Każda wiadomość jest podpisana w obu kierunkach i zawiera znacznik czasu oraz jednorazowy numer, więc nie da się jej zmienić ani powtórzyć.

Kiedy plik jest przywracany automatycznie

Decyzję podejmują stałe reguły, nie sztuczna inteligencja. Dzięki temu te same fakty zawsze dają tę samą decyzję i każdą można wyjaśnić. Muszą być spełnione wszystkie poniższe warunki:

  • plik jest plikiem płatności lub zamówienia,
  • zmiana dodaje cel płatności, którego nie rozpoznajemy,
  • nie trwa aktualizacja platformy ani tego rozszerzenia,
  • istnieje zweryfikowana czysta kopia.

Każda inna zmiana jest zgłaszana i czeka na Twoją akceptację. Nie jest cofana.

Zanim czujnik zapisze plik, sprawdza, czy plik na dysku jest nadal dokładnie tym, który został przeanalizowany, czy nie jest dowiązaniem do innego miejsca i czy znajduje się w obrębie Twojej strony. Zapis odbywa się w jednym kroku, więc nie może pozostać plik zapisany w połowie. Następnie czujnik potwierdza wynik serwerowi centralnemu.

Zmieniona wersja jest zachowywana jako dowód. Jeśli zmiana była Twoja, przywracasz ją ze swojego panelu jednym przyciskiem. Każdemu automatycznemu przywróceniu towarzyszy zapis decyzji: reguła, plik, cel, informacja, czy trwała aktualizacja, oraz odciski przed i po.

Przykład

To panel sklepu testowego. Sami zmieniliśmy adres płatności w jednym pliku na adres podobny do prawdziwego. Przy następnym sprawdzeniu zmiana została wykryta, czysty plik wrócił na miejsce, a czujnik to potwierdził.

Panel HachiGuard z przywróconym plikiem płatności, zapisem decyzji i alertem o nowym administratorze
Przykład ze sklepu testowego, z panelem w języku greckim. Zmiany dokonaliśmy sami o 03:24, a wykryto ją przy sprawdzeniu o 03:28 (pakiet ze sprawdzeniem co 5 minut).

Co przetestowaliśmy

Kontrolowane testy na sklepach testowych, wersja 1.12:

  • Czas od zmiany do przywrócenia, przy sprawdzaniu co minutę. Zmieniliśmy adres płatności w pliku płatności 8 razy, w losowych momentach w obrębie minuty. Za każdym z 8 razy zmiana została wykryta, a czysty plik wrócił na miejsce przy najbliższym sprawdzeniu: od 8 do 57 sekund po zmianie, średnio 33. Od chwili rozpoczęcia sprawdzenia wykrycie i przywrócenie trwają mniej niż sekundę, więc czas oczekiwania wynika z odstępu w Twoim pakiecie.
  • 100 kontrolowanych zmian sześciu rodzajów, na sklepach testowych OpenCart i WooCommerce. Wszystkie 100 zostały wykryte, a czysty plik wrócił na miejsce. W tej samej serii wykonaliśmy 100 zwykłych zmian programisty: żadna nie została cofnięta i żadna nie wywołała alarmu.
  • Plik zmienia się ponownie między analizą a przywróceniem. Przywrócenie nie zostało wykonane, nowsza wersja pozostała na miejscu i została sprawdzona w następnym przebiegu.
  • Plik zostaje podmieniony na dowiązanie (symlink) przed przywróceniem. Czujnik odmówił zapisu i wysłano jeden alert krytyczny.
  • Ta sama wiadomość zostaje wysłana dwa razy albo zmieniona po drodze. Druga została odrzucona jako powtórzenie, zmieniona jako nieprawidłowy podpis.
  • Serwer centralny jest niedostępny. Czujnik niczego nie zmienił na stronie. Gdy serwer wrócił, zmiana dokonana w międzyczasie została wykryta, a plik przywrócony. Dopóki serwer nie odpowiada, sprawdzenia się nie odbywają.
  • Skradzione hasło do panelu. Zalogowanie było możliwe, zaakceptowanie zmiany nie: wymaga kodu wysyłanego na e-mail właściciela. Sześć zgadywanych kodów nie zadziałało, a właściciel został powiadomiony.
  • Cofnięcie przywrócenia z panelu. Po podaniu kodu z e-maila zmiana wróciła na miejsce przy następnym sprawdzeniu.
  • Zmieniony zostaje plik samego czujnika albo czujnik nagle zgłasza znacznie mniej plików. Alert krytyczny przy następnym sprawdzeniu.
  • Na publicznej stronie pojawiają się skrypt z domeny podobnej do prawdziwej oraz formularz wysyłający dane gdzie indziej. Sprawdzenie z zewnątrz wywołało alert krytyczny.
  • To nasze własne kontrolowane testy na sklepach testowych, na tej samej maszynie co serwer centralny. Nie są niezależnym audytem, a w rzeczywistej instalacji dochodzi opóźnienie sieci.

Twój panel

  • Raporty i akceptacje są dostępne dopiero po zalogowaniu. Nie ma otwartych linków do raportów.
  • Hasła są przechowywane w postaci skrótu. Po pięciu błędnych próbach konto blokuje się na piętnaście minut.
  • Zaakceptowanie zmiany lub cofnięcie przywrócenia wymaga też kodu wysyłanego w tej chwili na Twój e-mail. Samo skradzione hasło do panelu nie wystarczy.
  • Każda akceptacja i każde cofnięcie jest zapisywane wraz z użytkownikiem i adresem, z którego pochodziło, oraz wysyłane e-mailem do właściciela i do naszego zespołu.

Drugie spojrzenie, z zewnątrz

Co sześć godzin nasz serwer otwiera też Twoje publiczne strony tak, jak robi to odwiedzający, i porównuje zewnętrzne domeny, które ładują, z poprzednim razem. Nowy skrypt z domeny podobnej do prawdziwej lub z otwartego serwisu hostingu kodu, albo formularz, który zaczyna wysyłać dane gdzie indziej, wywołuje alert. To sprawdzenie nie zależy od czujnika.

Jak długo przechowujemy dane

  • Historia zdarzeń jest przechowywana przez 90 dni.
  • Czyste kopie są przechowywane, dopóki abonament jest aktywny, i usuwane po jego zakończeniu.

Granice, o których mówimy otwarcie

  • HachiGuard nie zastępuje zapory, antywirusa ani skanu PCI. To warstwa, która zauważa i cofa zmianę po tym, jak ktoś już się dostał do środka.
  • Skrypt ładowany na Twojej stronie płatności z serwera firmy trzeciej może zostać zmieniony na tamtym serwerze bez zmiany jakiegokolwiek Twojego pliku. Zauważamy nową zewnętrzną domenę, ale nie zmianę wewnątrz skryptu, który już tam był.
  • Jeśli całe konto hostingowe zostanie przejęte, czujnikowi działającemu w jego obrębie nie można już w pełni ufać. Dlatego czyste kopie, reguły i decyzje znajdują się poza nim, a milczący lub zmieniony czujnik wywołuje alarm.
  • Zakodowanych plików nie da się odczytać. Śledzimy je po odcisku i zgłaszamy każdą zmianę, ale nie przywracamy ich automatycznie.
  • Pierwsze sprawdzenie przyjmuje bieżący stan jako czysty. Przejrzyj administratorów i adresy płatności, zanim zostanie uruchomione.
  • Wykrywanie odbywa się w odstępach wynikających z Twojego pakietu. Zmiana dokonana tuż po sprawdzeniu zostanie zauważona przy następnym.