Web je součást firemní infrastruktury. Pracuje s návštěvníky, formuláři, účty, měřicími nástroji a často i s dalšími systémy. Bezpečnost proto není jednorázový doplněk před spuštěním, ale průběžný proces. Rozumný základ kombinuje prevenci, včasné odhalení problému a schopnost obnovit službu.
1. Začněte inventářem a odpovědností
Sepište domény, subdomény, hosting, DNS, redakční systém, knihovny, moduly, formuláře, externí skripty a všechna napojení. U každé části určete vlastníka, správce a kontakt pro případ problému. Bez tohoto přehledu mohou zůstat zapomenuté testovací weby, staré účty nebo komponenty, které nikdo neaktualizuje.
Zaznamenejte, jaká data web přijímá a kam je odesílá. Veřejný prezentační web má jiný rizikový profil než zákaznický portál nebo e-shop, ale i jednoduchý formulář může být zneužit pro spam, phishing či zahlcení schránky.
2. Aktualizujte řízeně a bez zbytečného odkladu
Udržujte aktuální operační prostředí, server, redakční systém, šablonu, moduly i vlastní závislosti. Odebírejte bezpečnostní oznámení používaných technologií a stanovte, kdo nové opravy posoudí. Kritická zranitelnost vyžaduje jinou rychlost reakce než běžné funkční vydání.
Aktualizace nejprve ověřte mimo produkci, zejména u e-shopu nebo webu s integracemi. Po nasazení zkontrolujte formuláře, přihlášení a hlavní uživatelské scénáře. Nepoužívané moduly a účty raději odstraňte; vypnutá, ale přítomná součást může stále představovat problém podle způsobu nasazení.
3. Chraňte účty a oprávnění
Každý správce má mít vlastní účet s nejnižšími oprávněními potřebnými pro jeho práci. Sdílené přihlašování komplikuje audit i bezpečné odebrání přístupu. Používejte dlouhá unikátní hesla uložená ve správci hesel a vícefaktorové ověření všude, kde je dostupné.
- Pravidelně kontrolujte uživatele webu, hostingu, registrátora domény a analytických služeb.
- Po ukončení spolupráce přístupy neprodleně odeberte.
- Neposílejte hesla běžným e-mailem a nevkládejte je přímo do veřejného kódu.
- Oddělte produkční, testovací a vývojové účty i data.
Zvláštní pozornost věnujte registrátorovi domény a DNS. Jejich kompromitace může přesměrovat návštěvníky mimo váš server, i když je samotný web technicky v pořádku.
4. Vynucujte HTTPS a bezpečné nastavení prohlížeče
Celý web má být dostupný přes HTTPS s platným certifikátem a automatickým obnovením. Nezabezpečené varianty adres přesměrujte na HTTPS a odstraňte smíšený obsah načítaný přes nešifrované spojení. Cookies s citlivým účelem nastavujte s odpovídajícími atributy Secure, HttpOnly a SameSite.
Bezpečnostní HTTP hlavičky mohou omezit některé typy útoků. Patří mezi ně například Content-Security-Policy, ochrana proti vkládání stránky do cizího rámce a zákaz zbytečného určování typu obsahu. Jejich konkrétní hodnoty je nutné otestovat podle používaných skriptů, formulářů a externích služeb; příliš obecné nebo chybně nasazené pravidlo může rozbít legitimní funkce.
5. Formulář ověřujte na serveru
Kontrola polí v prohlížeči zlepšuje pohodlí, ale útočník ji může obejít. Server proto musí znovu ověřit typ, délku a povolené hodnoty každého vstupu. Výstup je nutné bezpečně kódovat podle kontextu a databázové dotazy parametrizovat. Omezte velikost i typ příloh a neukládejte je do veřejně spustitelného umístění.
Proti automatizovanému zneužití pomáhá omezení četnosti požadavků, nenápadné kontrolní pole a služba typu Cloudflare Turnstile. Ověření tokenu musí proběhnout na serveru a tajný klíč nesmí být v HTML ani JavaScriptu. Chybové odpovědi nemají zveřejňovat interní cesty, konfiguraci nebo hesla.
6. Záloha je užitečná až po ověření obnovy
Zálohujte soubory, databázi i důležitou konfiguraci v četnosti odpovídající tomu, kolik dat můžete přijít. Uchovávejte více bodů obnovy a alespoň jednu kopii odděleně od produkčního serveru. Přístup k zálohám chraňte stejně pečlivě jako web, protože mohou obsahovat osobní údaje a přihlašovací informace.
Pravidelně proveďte testovací obnovu a zaznamenejte postup. Ověřte nejen to, že záloha existuje, ale že je úplná, čitelná a kompatibilní s prostředím. Stanovte požadovaný čas obnovy a osobu, která rozhodne o jejím spuštění.
7. Sledujte dostupnost, změny a podezřelé události
Monitoring dostupnosti upozorní na výpadek, nikoli automaticky na všechny bezpečnostní problémy. Doplňte ho sledováním chyb aplikace, nezvyklých přihlášení, změn souborů, nárůstu požadavků a selhání formulářů. Logy mají obsahovat potřebné technické informace, ale ne hesla, celé tokeny nebo nadbytečné osobní údaje.
Nastavte rozumnou dobu uchování a ochranu před neoprávněnou změnou. Upozornění směrujte na kontakt, který je skutečně vyhodnocuje. Velké množství neřešených alarmů vede k tomu, že důležitá událost zanikne.
8. Omezte data a externí skripty
Sbírejte pouze údaje, které mají jasný účel, a uchovávejte je po nezbytnou dobu. Analytické a marketingové kódy spouštějte podle uděleného souhlasu. Pravidelně kontrolujte vložené skripty, tag manager i osoby s právem měnit měření; externí kód běží v kontextu vašeho webu a představuje další závislost.
Aktualizujte zásady ochrany osobních údajů podle skutečně používaných služeb. Právní základ a konkrétní povinnosti konzultujte s odborníkem, zejména pokud web zpracovává citlivější údaje nebo slouží ve více zemích.
9. Připravte si postup pro incident
Incidentní plán má určit kontakty, odpovědnosti, způsob izolace problému, uchování důkazů, obnovu a komunikaci. Při podezření nejprve omezte další škody a zachovejte relevantní logy; bezhlavé mazání může ztížit analýzu příčiny. Poté změňte kompromitované přístupy, opravte zranitelnost, obnovte důvěryhodnou verzi a sledujte opakování.
Pokud mohlo dojít k úniku osobních údajů, je nutné vyhodnotit povinnosti podle platných předpisů. Rozhodování je snazší, když firma předem ví, koho zapojit a kde má aktuální dokumentaci.
Praktické minimum pro pravidelnou kontrolu
- Máme aktuální inventář webů, technologií, účtů a vlastníků.
- Aktualizace mají odpovědnou osobu, termín a testovací postup.
- Účty jsou osobní, omezené a chráněné vícefaktorovým ověřením.
- HTTPS, cookies a bezpečnostní hlavičky odpovídají provozu webu.
- Formuláře se ověřují na serveru a mají ochranu proti automatizaci.
- Zálohy jsou oddělené a obnovení bylo prakticky otestováno.
- Monitoring a logy mají jasného příjemce a přiměřenou retenci.
- Existuje stručný, aktuální a dostupný incidentní plán.
Potřebujete posoudit konkrétní web nebo navrhnout bezpečnější provoz? Projděte si naše služby včetně kybernetické bezpečnosti a pošlete nám nezávaznou poptávku. Další návody postupně najdete na blogu OZIT.