Máte v infrastrukturní službě v Azure nasazenou aplikaci ve VM a chcete ji chránit před útoky na úrovni protokolu a aplikace jako SQL injection a podobně? Nebo chcete využít veřejného endpointu v cloudu pro ochranu vaší on premise aplikace? Podívejme se, jak Azure Security Center mimo jiné umí automatizovaně nasadit bezpečnostní řešení různých firem (Microsoft, F5, Imperva, Barracuda či Fortinet) - vytvořit i nakonfigurovat tak, že nemusíte být expertem na zmíněné technologie na to, abyste začali svou aplikaci chránit.
Azure shromažďuje věci kolem bezpečnosti v tomto centru, které je dostupné jak pro prostředky v Azure tak hybridním modelem pro VM umístěné kdekoli (Azure Security Center využívá prostředků OMS, o kterých už na tomto blogu byla mnohokrát řeč - tedy agentů nainstalovaných v OS ať běží kdekoli).
K dispozici máme doporučení v různých oblastech, ale nás teď budou zajímat ta aplikační. Moje aplikace (kromě jedné) nejsou chráněny webovým aplikačním firewallem.
Rozkliknu konkrétní aplikaci a dostávám doporučení nasadit WAFku.
Bezpečnostní centrum nám umožňuje na pár kliknutí nasadit WAFku. Já už jednu od F5 mám, tak bych ji mohl využít k přidání další aplikace (jedna WAFka tak může sloužit několika aplikacím), ale nejdřív se podívejme na průvodce nasazením nové.
Na výběr mám velmi známá a analytiky oceňovaná (ale finančně náročnější) řešení Imperva a F5 (lídři v Gartner MQ), dále jsou v nabídce velmi populární a cenově dostupné WAFky Fortinet a Barracuda a v neposlední řadě také nativní Azure řešení Application Gateway (to nabízí slušnou WAFku, ale především vysokou míru "cloudovosti" díky nativní funkci v Azure).
Já dnes zvolím F5, ale vy klidně použijte to, co vám vyhovuje nejvíc.
V průvodci vytvořím Resource Group.
Vybereme si verzi WAFky, vytvoříme jméno a heslo pro přístup a v tomto případě použijeme bring-your-own-license, takže zadáme svou F5 licenci.
Dále si vybereme síťařinu. Pokud chcete chránit aplikace tak, že samotné VM nebudou mít veřejnou IP (to bych doporučoval), vyberte si zde existující VNET - v něm nechť jsou vaše aplikace s privátními adresami případně VPN spojení do on-premises pro ochranu aplikací běžících tam. Druhá varianta je chránit aplikace běžící na veřejné IP adrese (DNS přesměrujete na public IP ve WAFce, takže uživatelé aplikace jdou tamtudy, a na úrovni aplikace použijete firewall, který bude propouštět pouze komunikaci přicházející z WAFky).
Na další stránce už jsou konfigurační parametry specifické pro F5.
Můžeme si vybrat režim ("rešifrování" s HTTPS, SSL offload apod.), vybíráme si i připravený F5 balíček pravidel, například pro WordPress.
Dále specifikujeme úroveň přísnosti a můžeme uploadovat certifikát pro HTTPS naší aplikace.
Pak už jen všechno potvrdíme a po chvilce je hotovo, stačí poslat DNSkou uživatele na aplikaci zkrz F5. Pokud následně vygenerujeme útok uvidíme tyto události přímo integrované do Azure Security Center.
Azure Security Center provedlo deployment virtuální F5 a souvisejících Azure zdrojů a také nakonfigurovalo F5 pro ochranu naší aplikace. Přesto do ní zůstává plný přístup, takže můžete jít přímo do WAFky a ladit si ji dle potřeby.
Podívejme se na všechny Azure zdroje, které průvodce nasadil.
Je tam samozřejmě VM s F5 a to v Availability Setu. Já jsem nasadil jen jednu, ale průvodce pro nás může udělat i redundantní cluster s balancovaným výkonem, což se jistě pro produkční nasazení hodí lépe.
Před samotnou F5 byl přidán Azure Load Balancer. Funguje to tak, že pokud teď přidáme ochranu další aplikace, Azure přidá další veřejnou IP na tento balancer a současně si vymyslí další nestandardní port, na kterém bude F5 poslouchat. Díky tomu na F5 stačí jeden interface pro větší množství aplikací. Všimněte si, že LB pravidlo poslouchá na standardních portech 80 a 443 a tyto směruje na WAFku na portech 880 a 8445.
Do WAFky se můžeme přihlásit a prohlédnout si nastavení tam. Uvidíme virtuální server poslouchající na portech 880 (ten zajišťuje redirect na HTTPS) a 8445 (ten posílá na mojí aplikaci).
Dále si můžeme všimnout pravidla pro logování, kdy F5 posílá hlášky přímo přes REST API do Azure Security Center.
Průvodce nám samozejmě také vytvořil příslušný backend (v mém případě na veřejné IP a aktuálně je offline, ale to na principu nic nemění).
Pokud vám nevyhovuje výchozí bezpečnostní politika, můžete si dle libosti upravit.
Výborně. Máme zabezpečeno a Azure Security Center si s F5 hezky popovídal.
Aplikační bezpečnost webových aplikací je zejména pro vaše veřejně dostupné služby jistě velmi důležitá. Využijte integrace s Azure Security Center ať už se rozhodnete pro základní řešení s Azure Application Gateway nebo pro pokročilé zabezpečení od třetích stran.