Funkce
Agent, který nic nenainstaluje
digiWatcher Agent je malý plugin pro WordPress, který běží na webech vašich klientů. Proto na jeho mezích záleží víc než na funkcích. Tady je, co smí, co nikdy nedělá a jak to hlídá kód.
Co agent smí a co ne
Ve výchozím stavu jen čte
digiWatcher se agenta po připojení webu každou hodinu ptá na údaje, které zvenku zjistit nejdou: verzi WordPressu a PHP, počty čekajících aktualizací, soupis pluginů a šablon s verzemi, stav naplánovaných úloh a databáze, volné místo na disku a to, jestli web návštěvníkům vypisuje ladicí chyby. V databázi agent nemění nic kromě vlastního nastavení. Adresa, na které agent tyto údaje vydává, bez platného tokenu nevydá nic, ani přihlášenému správci webu. Soupis pluginů a šablon může správce webu v nastavení pluginu vypnout; ostatní údaje chodí dál.
Aktualizace jen se svolením
Zápis je vypnutý, dokud ho správce webu nezapne, a kdykoli ho může zase vypnout. Se zapnutým zápisem agent přijme čtyři podepsané pokyny k aktualizacím: zjistit dostupné aktualizace, aktualizovat jeden plugin, šablonu nebo jádro WordPressu, vrátit soubory ze záchranného bodu a potvrdit, že aktualizace prošla. Pokyn k aktualizaci nenese adresu balíčku. Agent aktualizuje jen na verzi, kterou v tu chvíli nabízí vlastní zdroj aktualizací WordPressu, tedy na tentýž balíček jako tlačítko Aktualizovat v administraci. Na multisite a u hostingů, kde WordPress neumí zapisovat soubory přímo, aktualizace z digiWatcheru neběží.
Co nikdy nedělá
- Nikdy neinstaluje nový plugin ani šablonu.
- Nikdy nenahrává ZIP a nikdy nepoužívá editor souborů.
- Nemůže měnit nastavení webu.
- Údaje pro monitoring neobsahují cesty na disku serveru ani hesla; kontrola souborů hlásí cesty uvnitř webu, nikdy obsah souborů.
I ukradený klíč pro zápis by útočníkovi dovolil nejvýš to, co WordPress udělá sám při automatické aktualizaci. Jak aktualizace běží napříč weby, popisuje stránka Hromadné aktualizace WordPressu.
Podepsané pokyny a podepsaný balíček pluginu
Krátce: web přijme od digiWatcheru jen podepsané pokyny a plugin si nainstaluje jen vlastní aktualizaci podepsanou provozovatelem. Podrobnosti pro technicky zaměřené čtenáře jsou níže.
Každý pokyn je podepsaný
digiWatcher podepisuje každý pokyn k aktualizaci klíčem, který zná jen digiWatcher a ten jeden web. Klíč pro zápis je jiný než token pro čtení. Pokyn nese čas a jednorázové číslo: pokyn o víc než pět minut mimo se odmítne a zachycený pokyn nejde poslat podruhé.
Plugin si ověřuje vlastní aktualizace
Nové verze pluginu digiWatcher Agent se podepisují klíčem Ed25519, který zůstává na stroji, kde se verze vydávají; server digiWatcheru ho vůbec nemá. Plugin nese jen veřejnou část klíče, zapsanou v kódu, ne v nastavení, takže ji nikdo nepřepíše z administrace WordPressu. Adresa, odkud plugin aktualizace bere, je v kódu také napevno.
Když WordPress plugin aktualizuje, agent si balíček stáhne sám a k rozbalení ho předá, jen když sedí podpis. Bez podpisu, se špatným podpisem nebo bez rozšíření PHP sodium, kterým se podpis ověřuje, se nenainstaluje nic. Verze uvnitř ověřeného balíčku navíc musí být vyšší než nainstalovaná a stejná jako nabízená, takže nejde podstrčit starší podepsaný balíček se známou chybou.
Přístup podle role v digiWatcheru
Účet v digiWatcheru má dvě role. Správce účtu spravuje weby, kontakty, uživatele, klientské přístupy a předplatné. Obsluha vidí všechny weby, spouští a pozastavuje kontroly, přebírá incidenty a píše poznámky, ale nemůže mazat weby, měnit nastavení ani číst kontakty.
Všechno, co mění web na WordPressu, smí jen správce účtu: jednotlivé i hromadné aktualizace, pravidla automatických aktualizací, nastavení zápisu a jednorázové přihlášení do administrace WordPressu. Roli kontroluje server u každého takového požadavku. Skrytá položka v menu se za řízení přístupu nepovažuje: stránka, na kterou role nemá, uživatele vrátí na Přehled a kontroly v API platí bez ohledu na to.
Před jednorázovým přihlášením musí správce účtu potvrdit heslo, a používá-li dvoufázové přihlášení, i kód, pokud to neudělal v posledních 10 minutách. Samotná ukradená cookie relace tak do administrace klientského WordPressu nestačí.
Co agent posílá o uživatelích
Pro monitoring a bezpečnostní deník agent uživatele WordPressu označuje číslem účtu. Deník zapisuje nové a odebrané správce, změnu e-mailu správce a adresy webu a přihlášení správců. O uživatelích posílá číslo účtu a datum založení, e-mail správce jen jako otisk, nikdy čitelně. Pro tyto účely jména, e-maily ani IP adresy neposílá a neúspěšná přihlášení hlásí jen jako počet. Bezpečnostní deník může správce webu v nastavení pluginu vypnout.
Výjimky, které zapíná správce webu
Jednorázové přihlášení do administrace WordPressu je v nastavení pluginu samostatná volba. Ve výchozím stavu je vypnutá a nezapne ji ani připojení webu k monitoringu, ani povolení aktualizací: správce webu ji musí zaškrtnout sám. Funguje jen přes HTTPS a ne na multisite.
Když je povolené, může si správce účtu v digiWatcheru vybrat, za kterého správce WordPressu se přihlásí. Aby mu digiWatcher mohl výběr nabídnout, požádá web o seznam správců a agent u každého vrátí zobrazované jméno a přihlašovací jméno, nejvýš 100 účtů. Tento dotaz je podepsaný samostatným klíčem pro přihlášení a digiWatcher si uloží jen číslo vybraného účtu. Každé přihlášení je jednorázový požadavek, který vyprší do minuty. Změna nastavení ve WordPressu zruší dosud nepoužité požadavky, ale už otevřené relace WordPressu neukončí. Pokud jména správců nemají opustit web, nechte jednorázové přihlášení vypnuté.
Odesílání šifrovaných kopií webu do digiWatcheru je ve výchozím stavu vypnuté, nastavení pluginu ho nenabízí a digiWatcher ho na dálku nezapne. Pokud ho správce webu ve WordPressu přesto zapne, kopie obsahuje celou databázi webu včetně tabulky uživatelů; otevřít ji umí digiWatcher.
Co tato stránka neslibuje
Tyto meze popisují, jak je agent postavený. Nejsou zárukou, že napadený WordPress nebo server nejde zneužít, a nenahrazují vaše vlastní bezpečnostní opatření. digiWatcher nemá firewall ani čištění malwaru.
Readme pluginu vyjmenovává všechny služby, se kterými se agent spojuje, a co jim posílá. Jak web připojit krok za krokem, najdete v kapitole manuálu o WordPressu. Jak digiWatcher zapadá do každodenní práce týmu, popisuje stránka Správa WordPressu.
Časté otázky
Může digiWatcher přidat na můj web plugin?
Ne. Agent nikdy neinstaluje pluginy ani šablony, nenahrává ZIP a nepoužívá editor souborů. Se zapnutým zápisem umí jen aktualizovat to, co nabízí sám WordPress.
Je po připojení webu zapnutý zápis?
Ne. Agent jen čte, dokud správce webu v nastavení pluginu nezapne zápis, a kdykoli ho může zase vypnout.
Posílá agent jména nebo e-maily uživatelů WordPressu?
Pro monitoring a bezpečnostní deník ne: uživatele označuje číslem účtu a e-mail správce jen otiskem. Výjimkou je jednorázové přihlášení, které je ve výchozím stavu vypnuté. Když ho správce webu povolí, digiWatcher si může vyžádat zobrazovaná a přihlašovací jména správců, aby si správce účtu vybral, za koho se přihlásí. Odesílání šifrovaných kopií webu do digiWatcheru je ve výchozím stavu vypnuté, nastavení pluginu ho nenabízí a digiWatcher ho na dálku nezapne. Pokud ho správce webu ve WordPressu přesto zapne, kopie obsahuje celou databázi webu včetně tabulky uživatelů; otevřít ji umí digiWatcher.
Kdo z týmu smí aktualizovat weby nebo se přihlásit do WordPressu?
Jen správce účtu. Obsluha vidí všechny weby a řeší incidenty, ale aktualizace nespustí a do administrace WordPressu se z digiWatcheru nepřihlásí.
Co když aktualizace pluginu digiWatcher Agent nemá platný podpis?
Nenainstaluje se nic. Agent ověří podpis vlastní aktualizace dřív, než WordPress balíček rozbalí, a starší verzi odmítne, i když je podepsaná.
Vyzkoušejte digiWatcher na svých webech
Prvních 30 dní máte tarif Start zdarma a bez platební karty. Pozvánky klientům e‑mailem, plánované reporty e‑mailem a víc než 3 klientské přístupy odemkne první platba.