Beveiliging en architectuur
HachiGuard is bewaking van de betaalintegriteit met automatisch herstel voor webwinkels. Het bewaakt de bestanden en instellingen die bepalen waar een betaling heen gaat, meldt ongeoorloofde wijzigingen en zet onder strikte voorwaarden een gecontroleerde schone versie terug.
Drie delen, van elkaar gescheiden
- De sensor draait op uw hosting, vanuit de planner, buiten de openbare map. Hij heeft geen eigen regels. Hij verzamelt vingerafdrukken en verstuurt ze.
- De centrale server beheert de regels, vergelijkt elk rapport met de laatste schone toestand en beslist. De lijst met te bewaken bestanden wordt hier vastgelegd, niet door de sensor.
- De schone kopieën van uw kritieke bestanden staan op onze infrastructuur, niet op uw hosting. Wie uw hostingaccount binnenkomt, kan ze niet vervangen.
Wat de sensor kan
- Hij draait als uw eigen hostinggebruiker. Hij heeft geen root-toegang nodig en installeert niets op de server.
- Hij leest codebestanden en uit de database alleen de beheerdersgegevens, de betaalinstellingen en enkele platforminstellingen, zoals het adres van de site en de lijst met extensies.
- Hij schrijft in één geval: wanneer de centrale server opdracht geeft een betaalbestand terug te zetten.
- Hij verwijdert nooit een bestand. Voordat hij er een vervangt, bewaart hij de vervangen versie in een privémap.
Wat uw site verlaat, en wat nooit
- Verstuurd worden: vingerafdrukken van bestanden, de inhoud van de kritieke codebestanden die zijn gewijzigd, gebruikersnamen van beheerders, en vingerafdrukken (niet de waarden) van e-mailadressen en wachtwoorden van beheerders en van betaalinstellingen.
- Nooit verstuurd worden: bestellingen, klanten, kaartnummers of welke pagina dan ook die uw bezoekers zien.
- Elk bericht is in beide richtingen ondertekend en draagt een tijdstempel en een eenmalig nummer, zodat het niet kan worden gewijzigd of herhaald.
Wanneer een bestand automatisch wordt teruggezet
De beslissing wordt genomen door vaste regels, niet door AI. Dezelfde feiten geven dus altijd dezelfde beslissing, en elke beslissing is uit te leggen. Al het volgende moet gelden:
- het bestand is een betaal- of afrekenbestand,
- de wijziging voegt een betaalbestemming toe die we niet herkennen,
- er loopt geen upgrade van het platform of van die extensie,
- er bestaat een gecontroleerde schone kopie.
Elke andere wijziging wordt gemeld en wacht op uw goedkeuring. Ze wordt niet teruggedraaid.
Voordat de sensor schrijft, controleert hij dat het bestand op schijf nog precies het geanalyseerde bestand is, dat het geen koppeling naar een andere plek is en dat het binnen uw site staat. Het schrijven gebeurt in één stap, zodat er geen half geschreven bestand kan achterblijven. Daarna bevestigt de sensor het resultaat aan de centrale server.
De gewijzigde versie wordt als bewijs bewaard. Was de wijziging van uzelf, dan zet u die vanuit uw paneel met één knop terug. Bij elk automatisch herstel hoort een beslisverslag: de regel, het bestand, de bestemming, of er een upgrade liep en de vingerafdrukken ervoor en erna.
Een voorbeeld
Dit is het paneel van een testwinkel. We hebben zelf het betaaladres in een bestand gewijzigd, in een adres dat op het echte lijkt. Bij de volgende controle werd de wijziging gevonden, werd het schone bestand teruggezet en bevestigde de sensor dat.

Wat we hebben getest
Gecontroleerde tests op testwinkels, versie 1.12:
- Tijd van manipulatie tot herstel, met elke minuut een controle. We hebben het betaaladres in een betaalbestand 8 keer gewijzigd, op willekeurige momenten binnen de minuut. Alle 8 keren werd de wijziging gevonden en het schone bestand bij de eerstvolgende controle teruggezet: tussen 8 en 57 seconden na de manipulatie, gemiddeld 33. Zodra een controle start, duren detectie en herstel minder dan een seconde; de wachttijd wordt dus bepaald door het interval van uw pakket.
- 100 gecontroleerde wijzigingen van zes soorten, op testwinkels met OpenCart en WooCommerce. Alle 100 werden gevonden en het schone bestand werd teruggezet. In dezelfde reeks deden we 100 gewone ontwikkelaarswijzigingen: geen enkele werd teruggedraaid en geen enkele gaf alarm.
- Het bestand verandert opnieuw tussen analyse en herstel. Het herstel werd niet uitgevoerd, de nieuwere versie bleef staan en werd bij de volgende ronde gecontroleerd.
- Het bestand wordt vóór het herstel vervangen door een koppeling (symlink). De sensor weigerde te schrijven en er werd één kritieke melding verstuurd.
- Hetzelfde bericht wordt twee keer verstuurd, of onderweg gewijzigd. Het tweede werd geweigerd als herhaling, het gewijzigde wegens een ongeldige handtekening.
- De centrale server is niet beschikbaar. De sensor veranderde niets op de site. Toen de server terug was, werd de tussentijdse wijziging gevonden en het bestand teruggezet. Zolang de server niet antwoordt, vinden er geen controles plaats.
- Een gestolen paneelwachtwoord. Inloggen lukte, een wijziging goedkeuren niet: daarvoor is de code nodig die naar de e-mail van de eigenaar gaat. Zes gegokte codes mislukten en de eigenaar kreeg bericht.
- Een herstel ongedaan maken vanuit het paneel. Met de code uit de e-mail werd de wijziging bij de volgende controle teruggezet.
- Het bestand van de sensor zelf wordt gewijzigd, of hij meldt plotseling veel minder bestanden. Kritieke melding bij de volgende controle.
- Op de openbare pagina verschijnen een script van een domein dat op een echt domein lijkt en een formulier dat gegevens elders heen stuurt. De buitencontrole gaf een kritieke melding.
- Dit zijn onze eigen gecontroleerde tests op testwinkels, op dezelfde machine als de centrale server. Het is geen onafhankelijke audit, en bij een echte installatie komt daar netwerkvertraging bij.
Uw paneel
- Rapporten en goedkeuringen zijn alleen beschikbaar na inloggen. Er zijn geen open rapportlinks.
- Wachtwoorden worden gehasht opgeslagen. Na vijf foute pogingen wordt het account vijftien minuten geblokkeerd.
- Voor het goedkeuren van een wijziging of het ongedaan maken van een herstel is ook een code nodig die op dat moment naar uw e-mail wordt gestuurd. Een gestolen paneelwachtwoord is niet genoeg.
- Elke goedkeuring en elke ongedaanmaking wordt vastgelegd met de gebruiker en het adres waar ze vandaan kwam, en per e-mail naar de eigenaar en ons team gestuurd.
Een tweede blik, van buitenaf
Elke zes uur opent onze server ook uw openbare pagina's zoals een bezoeker dat doet, en vergelijkt de externe domeinen die ze laden met de vorige keer. Een nieuw script van een domein dat op een echt domein lijkt of van een open codehostingdienst, of een formulier dat gegevens ergens anders heen begint te sturen, geeft een melding. Deze controle hangt niet af van de sensor.
Hoe lang we gegevens bewaren
- De gebeurtenisgeschiedenis wordt 90 dagen bewaard.
- Schone kopieën worden bewaard zolang het abonnement actief is en verwijderd wanneer het eindigt.
Grenzen die we openlijk benoemen
- HachiGuard vervangt geen firewall, antivirus of PCI-scan. Het is de laag die een wijziging opmerkt en terugdraait nadat iemand is binnengekomen.
- Een script dat uw afrekenpagina laadt vanaf de server van een derde, kan op die server worden gewijzigd zonder dat er een bestand van u verandert. We merken een nieuw extern domein op, maar geen wijziging in een script dat er al stond.
- Wordt uw hele hostingaccount overgenomen, dan is een sensor die daarbinnen draait niet meer volledig te vertrouwen. Daarom staan de schone kopieën, de regels en de beslissingen erbuiten, en daarom geeft een zwijgende of gewijzigde sensor alarm.
- Gecodeerde bestanden kunnen niet worden gelezen. We volgen ze via hun vingerafdruk en melden elke wijziging, maar zetten ze niet automatisch terug.
- De eerste controle neemt de huidige toestand als schoon aan. Controleer uw beheerders en betaaladressen voordat die draait.
- Detectie gebeurt met het interval van uw pakket. Een wijziging vlak na een controle wordt bij de volgende gezien.