Model Vrátný (Gatekeeper)

Chrání aplikace a služby pomocí vyhrazené hostitelské instance, která slouží jako zprostředkovatel mezi klienty a aplikací nebo službou, ověřuje a upravuje požadavky a předává mezi nimi požadavky a data. Může tak zajišťovat další vrstvu zabezpečení a omezit prostor k útoku na systém.

Kontext a problém

Aplikace přijímáním a zpracováním požadavků vystavují své funkce klientům. Ve scénářích hostovaných v cloudu aplikace vystavují koncové body, ke kterým se klienti připojují, a obvykle zahrnují kód pro zpracování požadavků od klientů. Tento kód provádí ověřování, některé nebo veškeré zpracování požadavků a pravděpodobně jménem klienta přistupuje k úložišti a dalším službám.

Pokud uživatel se zlými úmysly dokáže ohrozit zabezpečení systému a získat přístup k hostingovému prostředí aplikace, budou mu vystaveny mechanismy zabezpečení, které aplikace používá, třeba přihlašovací údaje a klíče úložiště, i služby a data, k nimž přistupuje. V důsledku toho může uživatel se zlými úmysly získat neomezený přístup k citlivým informacím a dalším službám.

Řešení

Pokud chcete minimalizovat riziko, že klienti získají přístup k citlivým informacím a službám, oddělte hostitele nebo úlohy, které vystavují veřejné koncové body, od kódu, který zpracovává požadavky a přistupuje k úložišti. Toho se dá dosáhnout pomocí „fasády“ nebo vyhrazené úlohy, která komunikuje s klienty a pak požadavek předá — třeba prostřednictvím odděleného rozhraní — hostitelům nebo úlohám, které požadavek zpracují. Obrázek znázorňuje přehled vysoké úrovně tohoto modelu.

Přehled vysoké úrovně tohoto modelu

Model vrátného se dá použít k prosté ochraně úložiště nebo může sloužit jako komplexnější fasáda na ochranu všech funkcí aplikace. Důležité faktory jsou:

  • Řízené ověřování. Vrátný ověřuje všechny požadavky a ty, které podmínky ověření nesplňují, odmítne.
  • Omezené riziko a riziko ohrožení. Vrátný nemá přístup k přihlašovacím údajům nebo klíčům používaným důvěryhodným hostitelem pro přístup k úložišti a službám. Pokud dojde k ohrožení vrátného, útočník k přihlašovacím údajům nebo klíčům nezíská přístup.
  • Odpovídající zabezpečení. Vrátný běží v režimu omezeného oprávnění, zatímco zbytek aplikace běží v režimu úplného vztahu důvěryhodnosti, který je vyžadovaný pro přístup k úložišti a službám. Pokud dojde k ohrožení vrátného, nemá přímý přístup ke službám nebo datům aplikace.

Tento model funguje jako brána firewall v typické topografii sítě. Vrátný tak může zkoumat požadavky a rozhodnout se, jestli má požadavek předat důvěryhodnému hostiteli, který provádí požadované úlohy. Toto rozhodnutí obvykle vyžaduje, aby vrátný obsah požadavku před předáním důvěryhodnému hostiteli ověřil a sanitizoval.

Problémy a důležité informace

Když se budete rozhodovat, jak tento model implementovat, měli byste vzít v úvahu následující skutečnosti:

  • Ujistěte se, že důvěryhodní hostitelé, kterým vrátný předává požadavky, vystavují jenom interní nebo chráněné koncové body a připojují se jenom k vrátnému. Důvěryhodní hostitelé by neměli vystavovat žádné externí koncové body nebo rozhraní.
  • Vrátný musí běžet v režimu omezeného oprávnění. To obvykle znamená, že vrátný a důvěryhodný hostitel běží v samostatných hostovaných službách nebo virtuálních počítačích.
  • Vrátný nesmí provádět žádné zpracovávání týkající se aplikace nebo služeb ani přistupovat k žádným datům. Jeho funkcí je jenom ověřit a sanitizovat požadavky. Důvěryhodní hostitelé můžou potřebovat provést další ověření požadavků, ale základní ověření by měl provádět vrátný.
  • Pokud je to možné, mezi vrátným a důvěryhodnými hostiteli nebo úlohami používejte zabezpečený komunikační kanál (HTTPS, SSL nebo TLS). Některá hostitelská prostředí ale nepodporují HTTPS na interních koncových bodech.
  • Přidání další vrstvy do aplikace k implementaci modelu vrátného pravděpodobně bude mít dopad na výkon kvůli dalšímu zpracování a síťové komunikaci, které vyžaduje.
  • Instance vrátného může být kritickým prvkem způsobujícím selhání. Pokud chcete dopad selhání minimalizovat, zvažte nasazení dalších instancí a použití mechanismu automatického škálování, abyste zajistili zachování dostupnosti kapacity.

Kdy se má tento model použít

Tento model je vhodný pro:

  • Aplikace, které zpracovávají citlivé informace, vystavují služby, které musí mít vysoký stupeň ochrany před nebezpečnými útoky, nebo provádějí důležité operace, které se nesmí přerušit
  • Distribuované aplikace, kde je nezbytné provádět ověřování požadavků odděleně od hlavních úloh nebo toto ověřování centralizovat kvůli zjednodušení údržby a správy

Příklad

Ve scénáři hostování v cloudu se dá tento model implementovat oddělením role vrátného nebo virtuálního počítače od důvěryhodných rolí a služeb v aplikaci. Provedete to pomocí interního koncového bodu, fronty nebo úložiště jako mechanismu zprostředkující komunikace. Obrázek znázorňuje použití interního koncového bodu.

Příklad modelu s použitím webových a pracovních rolí Cloud Services

Při implementaci modelu vrátného může být důležitý také model osobního klíče. Při komunikaci mezi vrátný a důvěryhodnými rolemi je vhodné zvýšit zabezpečení pomocí klíčů nebo tokenů, které omezují oprávnění pro přístup k prostředkům. Tento model popisuje, jak používat token nebo klíč, který klientům poskytuje omezený přímý přístup ke konkrétnímu prostředku nebo službě.