8 základních tipů pro zabezpečení webového aplikačního serveru

Ve většině případů musí být webové aplikační servery veřejně přístupné, což znamená, že jsou vystaveny všem druhům hrozeb.

Mnohé z těchto hrozeb jsou předvídatelné a lze se jim snadno vyhnout, zatímco jiné jsou neznámé a mohou vás zaskočit. Abychom minimalizovali možnost tohoto druhého případu, nabízíme seznam základních tipů, jak udržet webové aplikační servery co nejbezpečnější.

Než začnete se seznamem tipů, musíte pochopit, že webový aplikační server není ostrov. Server je centrální komponentou farmy webových aplikací, která umožňuje hosting a provoz webové aplikace. Pro zabezpečení tedy musíte vzít v úvahu všechny komponenty, které jej obklopují a zabezpečit celé prostředí webové aplikace.

Základní prostředí pro hostování a provoz webových aplikací zahrnuje operační systém (Linux, Windows), software webserveru (Apache, Nginx), databázový server. Pokud se některá z těchto součástí prolomí, útočníci by mohli získat přístup a provést všechny škodlivé akce, které chtějí.

Prvním a základním tipem pro zabezpečení prostředí, jako je to popsané výše, je přečíst si bezpečnostní pokyny a seznam osvědčených postupů pro každou z komponent. Jak již bylo řečeno, podívejme se na řadu obecných bezpečnostních pokynů, které platí pro téměř každé prostředí webových aplikací.

Firewall demystifikován

Možná budete v pokušení rychle zkontrolovat tuto položku a pomyslet si: „Mám štěstí, už mám firewall, který chrání mou síť.“ Ale raději si drž koně.

Váš firewall se může starat o hranice vaší sítě, držet padouchy venku a ty dobré uvnitř, ale určitě nechává dveře dokořán pro útočníky, aby se dostali do vašeho webového aplikačního serveru.

Jak?

Jednoduché: váš síťový firewall musí povolit alespoň příchozí provoz na portech 80 a 443 (to je HTTP a HTTPS) a neví, kdo nebo co těmito porty prochází.

K ochraně své aplikace potřebujete bránu firewall webových aplikací (WAF), která specificky analyzuje webový provoz a blokuje jakýkoli pokus o zneužití zranitelnosti, jako je skriptování mezi stránkami nebo vkládání kódu. WAF funguje jako typický antivirus a antimalware: hledá známé vzory v datovém toku a zablokuje je, když detekuje škodlivý požadavek.

Aby byl WAF efektivní, potřebuje mít svou databázi neustále aktualizovanou o nové vzory hrozeb, aby je bylo možné blokovat. Problém s prevencí útoků na základě vzorů je v tom, že vaše webová aplikace může být jedním z prvních cílů nové hrozby, o které vaše WAF ještě neví.

Z těchto důvodů vaše webová aplikace potřebuje kromě síťového firewallu další ochranné vrstvy.

Vyhledejte zranitelnosti specifické pro web

Opět si nemyslete, že váš webový aplikační server je bez zranitelnosti jen proto, že to říká váš bezpečnostní skener.

Síťové skenery nemohou detekovat zranitelnosti specifické pro aplikaci. K odhalení a odstranění těchto zranitelností musíte aplikace podrobit řadě testů a auditů, jako jsou penetrační testy, skenování černé skříňky a auditování zdrojového kódu. Žádná z těchto metod však není neprůstřelná. V ideálním případě byste jich měli provést co nejvíce, abyste odstranili všechny zranitelnosti.

Například bezpečnostní skenery, jako Invictizajistit, aby se do produkčního prostředí nedostal žádný zneužitelný kód. Mohou však existovat logické chyby zabezpečení, které lze odhalit pouze ručním auditováním kódu. Ruční audit, kromě toho, že stojí hodně, je lidskou metodou, a proto je náchylná k chybám. Dobrý nápad, jak provádět tento druh auditu bez plýtvání spoustou peněz, je začlenit jej do vývojového procesu, většinou prostřednictvím vzdělávání vašich vývojářů.

Vzdělávejte své vývojáře

Vývojáři mají tendenci si myslet, že jejich aplikace běží v ideálních světech, kde jsou zdroje neomezené, uživatelé nedělají chyby a neexistují lidé s nelítostnými úmysly. Bohužel v určitém okamžiku musí čelit skutečným problémům, zejména těm, které se týkají bezpečnosti informací.

Při vývoji webových aplikací musí kodéři znát a implementovat bezpečnostní mechanismy, aby zajistili, že nebudou zranitelná. Tyto bezpečnostní mechanismy by měly být součástí příručky osvědčených postupů, kterou musí vývojový tým dodržovat.

K zajištění souladu s osvědčenými postupy se používá audit kvality softwaru. Osvědčené postupy a auditování jsou jedinými způsoby, jak odhalit logické chyby zabezpečení, jako je (například) předávání nezašifrovaných a viditelných parametrů uvnitř adresy URL, které by útočník mohl snadno změnit, aby dělal, co chce.

Vypněte nepotřebné funkce

Za předpokladu, že webové aplikace jsou pokud možno bez chyb a webová farma je zabezpečená, podívejme se, co lze udělat na samotném serveru, aby byl chráněn před útoky.

Základním, zdravým tipem je snížit počet potenciálně zranitelných vstupních bodů. Pokud útočníci mohou zneužít některou z komponent webového serveru, může být ohrožen celý webový server.

Udělejte si seznam všech otevřených portů a spuštěných služeb nebo démonů na vašem serveru a zavřete, deaktivujte nebo vypněte ty nepotřebné. Server by neměl být používán k žádnému jinému účelu než ke spuštění vašich webových aplikací, proto zvažte přesunutí všech dalších funkcí na jiné servery ve vaší síti.

Používejte samostatná prostředí pro vývoj, testování a produkci

Vývojáři a testeři potřebují oprávnění k prostředí, ve kterém pracují, a neměli by mít na živém aplikačním serveru. I když jim slepě věříte, jejich hesla by mohla snadno uniknout a dostat se do nechtěných rukou.

Kromě hesel a oprávnění se ve vývojových a testovacích prostředích obvykle vyskytují zadní vrátka, soubory protokolu, zdrojový kód nebo jiné ladicí informace, které by mohly odhalit citlivá data, jako jsou uživatelská jména a hesla databáze. Proces nasazení webové aplikace by měl provádět administrátor, který musí zajistit, aby po instalaci aplikace na živý server nebyly odhaleny žádné citlivé informace.

Stejný koncept segregace musí být aplikován na data aplikace. Testeři a vývojáři vždy preferují práci s reálnými daty, ale není dobré jim udělovat přístup k produkční databázi nebo dokonce k její kopii. Kromě zřejmých obav o soukromí by databáze mohla obsahovat konfigurační parametry, které odhalují interní nastavení serveru – jako jsou adresy koncových bodů nebo názvy cest.

Udržujte software serveru aktualizovaný

Ač se to může zdát zřejmé, jde o jeden z nejvíce přehlížených úkolů. SUCURI zjistilo, že 59 % aplikací CMS bylo zastaralých, což je vystaveno riziku.

Nové hrozby se objevují každý den a jediný způsob, jak jim zabránit v ohrožení vašeho serveru, je vždy nainstalovat nejnovější bezpečnostní záplaty.

Již dříve jsme zmínili, že síťové firewally a síťové bezpečnostní skenery nestačí k zabránění útokům na webové aplikace. Jsou však nezbytné k ochraně vašeho serveru před běžnými hrozbami kybernetické bezpečnosti, jako jsou útoky DDoS. Ujistěte se tedy, že takové aplikace máte vždy aktualizované a že účinně chrání vaši obchodní aplikaci.

Omezit přístup a oprávnění

Základním bezpečnostním opatřením je udržovat provoz vzdáleného přístupu – jako je RDP a SSH – šifrovaný a tunelovaný. Je také dobré udržovat omezený seznam IP adres, ze kterých je povolen vzdálený přístup, a ujistěte se, že jakýkoli pokus o vzdálené přihlášení z jakékoli jiné IP adresy je blokován.

Správci občas udělují servisním účtům všechna možná oprávnění, protože vědí, že „všechno bude fungovat“. To však není dobrý postup, protože útočníci mohou využít zranitelnosti ve službách k proniknutí na server. Pokud tyto služby běží s oprávněními správce, mohou zabavit celý server.

Dobrá rovnováha mezi zabezpečením a praktičností vyžaduje, aby každý účet – jak přihlašovací účty, tak servisní účty – měl oprávnění, která potřebuje k provádění své práce, a nic jiného.

Můžete například definovat různé účty pro správce, aby prováděl různé úkoly: jeden pro vytváření záloh, druhý pro čištění souborů protokolu, další pro změnu konfigurace služeb a tak dále. Totéž platí pro databázové účty: aplikace obvykle potřebuje pouze oprávnění ke čtení a zápisu dat, nikoli k vytváření nebo odstraňování tabulek. Proto by měl běžet s účtem s oprávněními omezenými na provádění úkolů, které potřebuje.

Sledujte protokoly serveru

Soubory protokolu existují z nějakého důvodu.

Správci by je měli pravidelně sledovat, aby odhalili jakékoli podezřelé chování dříve, než způsobí škodu. Analýzou souborů protokolu můžete odhalit mnoho informací, které vám pomohou lépe chránit aplikaci. Pokud by k útoku došlo, soubory protokolu vám mohou ukázat, kdy a jak začal, což pomáhá lépe kontrolovat poškození.

Musíte mít také automatizovaný postup pro odstranění starých souborů protokolu nebo odstranění zastaralých informací, abyste jim zabránili spotřebovat veškerý dostupný úložný prostor na serveru.

Bonusový tip: buďte informováni

Na internetu je spousta bezplatných a užitečných informací, které můžete využít ve prospěch své webové aplikace. Nenechte si ujít žádný nový příspěvek na renomovaných bezpečnostních blozích (jako je tento) a zůstaňte informováni o tom, co se děje v bezpečnostním a webovém průmyslu.

Tutoriály, kurzy, videa a knihy jsou také zdrojem užitečných znalostí. Procvičte si jednu nebo dvě hodiny týdně, abyste byli informováni o novinkách v oboru — Dá vám to klid, když budete vědět, že děláte správnou věc, abyste zajistili své aplikace.