Nepřeceňujte firewall a síť, identita je váš nový perimetr

Klasická bezpečnost byla o zdi mezi zlem a dobrem. Firewally, oddělené sítě, chytré síťové krabičky. Klíčem k zabezpečení "na vstupu" byl drát, způsob připojení. V dnešním světě mobility a cloudu se ale stává novým perimetrem identita. Velmi často se ocitám v diskusích na téma, že PaaS služby mají veřejné endpointy, a proto to prý není bezpečné. Azure nabízí možnosti jak přístupy síťově svázat a rád se o nich pobavím. Neměli bychom ale o dost víc energie věnovat raději novému perimetru, tedy identitě?

Obvyklý postup útoku už často není o hackování firewallu

Když si čtu jak dnes probíhá útok nejčastěji, je to jiné, než dříve. Většina případů nezačíná dírou na firewallu, prolomením serverů nebo zranitelností webové aplikace, ale útočník se orientuje na uživatele a jeho identitu. Používá phishing, podvodné emaily, atraktivní stránky s malware či podvodné volání (klasický telefonát - ahoj Tome, tady IT; tvůj účet byl napaden a potřebujeme si ověřit údaje, abychom předešli jeho zneužití ... stačí nám tvoje heslo, posíláme link na formulář :)  ).

Cílem útočníka v takovém případě není firewall, ale identita. Potřebuje se dostat k identitě uživatele. S tou následně pokračuje dál, například ji využije k sofistikovanějším phishing útokům (už jsou "zevnitř" firmy), scanuje aplikace, zkoumá na jaké další systémy se lze s účtem dostat a postupně se prokousává dál až k serverovým systémům a datům.

Identita vs. síť jako perimetr

Síťový přístup k perimetru se dá docela dobře realizovat v situaci, kdy uživatelé mají desktop v kanceláři a tím to končí. S tím ale už dnes nevystačíte. Uživatel má notebook a z hlediska produktivity požaduje i připojení v jídelně. Hmm, tak přidáte dobře zabezpečenou WiFi, že. Ale on chce i z domova. Fajn, tak asi nějakou VPN. Pak se ale přijde na to, že pro řízení HR bude skvělé pořídit nějakou SaaS aplikaci. Ta není uvnitř vašeho perimetru a možnost dotáhnout si vlastní VPN k SaaS providerovi většinou není. V takovém SaaS modelu dříve či později bude firma uvažovat o HR, účetnictví, emailech i modernější komunikaci, správě a sdílení dokumentů a jejich bezpečnosti, CRM, ERP, o marketingu. Ve svých firemních aplikacích bude dříve či později firma využívat i veřejný cloud a přestože IaaS dává velký smysl, postupně bude přicházet na to, že s využitím PaaS dokáže být daleko rychlejší a čas investovat raději do toho, co ji odlišuje od konkurence. Místo stavění a správy databázových serverů, kontejnerových clusterů, Hadoopů a Sparků, se pustí do řešení aplikací a dat a podvozek si vezme jako službu. PaaS služby jsou ale typicky postavené tak, že běží na public endpointech. Obvykle máte možnosti je nějak síťově svázat a dostat za váš síťový perimetr, typicky to má nějaká omezení ve funčknosti nebo vede k vyšší cenně (někdy můžete mít celou službu pro sebe ve svém VNETu, ale pak nevyužijete výnosů z rozsahu, tzn. je to o dost dražší).

Udržet síťový perimetr v éře mobility a cloudu a je čím dál složitější. Odpovědí je soustředit se na identitu.

Váš uživatel může být kdekoli - ve firmě, v kavárně, doma nebo v taxíku. Aplikace, které mu jako firma nabízíte, mohou být také kdekoli - ve vašem datovém centru, v privátní prostředí Azure, v platformní službě nebo u SaaS poskytovatele. Vaši zákazníci jsou asi také kdekoli - uvnitř partnerské firmy připojené k vám zabezpečeným způsobem, v jídelně, doma. Co tohle všechno spojuje je právě identita. To je brána k aplikacím. To je váš nový perimetr.

Identita není jen přihlášení

Jednotná identita

První co budeme chtít je jednotná identita. Pokud má váš uživatel deset hesel do různých aplikací, najdete v jeho peněžence deset lístečků se zapsanými hesly (což není moc bezpečné, že). Jednotnost identity ale není jen ve vztahu vašich zaměstnanců s aplikacemi, které využívají. Totéž platí pro identity vašich obchodních parnerů. Pokud jim "uděláte účet", najdete ho opět u nich v peněžence. Svatý grál je jednotná identita spravovaná mou domovskou organizací, která je použitelná pro přístup k partnerským řešením.

Pokud jsou obě organizace v cloudu, použijte Azure Active Directory B2B (a pro koncové zákazníky B2C). Nasaďte Cloud App Discovery pro nalezení aplikací, které jsou vhodným kandidátem na sjednocení přístupů.

Vícefaktor (MFA) a moderní přihlašování

Druhé co si o identitě řekněme je to, že to není jen klasické jméno o heslo. Pokud chcete mít perimetr opravdu bezpečný, použijte vícefaktorové ověření, kde prozrazené jméno a heslo nestačí. Odeslání kódu na SMS je na ústupu (z bezpečnostních důvodů), nicméně rozhodně dává smysl telefonát, autentizační aplikace na mobilu (třeba s otiskem prstu nebo PINem), bezpečnostní klíčenka apod. Kromě tradičních hesel můžete použít celou řadu dalších technik, například s Windows Hello - nějakou sekvenci tahů nad obrázkem, čtečka otisku prstů nebo rozeznání obličeje kamerou.

Použijte Azure MFA, je to velmi snadné. Zejména pro identity v Azure Active Directory je to otázka pouhého kliknutí. Windows klienti? Zkuste Hello.

Autorizace a práva

Moderní identita není jen o autentizaci, ale velký důraz je kladen na autorizaci, například s využitím protokolu OAuth 2.0. Všichni to známe velmi dobře z osobních životů. Už jste při registraci k nějaké službě místo vytvoření zase dalšího jména a hesla využili možnost přihlásit se svým Google, Facebook nebo Microsoft účtem? Pak to je přesně ono. A všimněte si, že po přihlášení schvalujete i autorizaci, tedy říkáte k čemu má mít služba přístup. Jak to funguje v případě Azure Active Directory? Aplikace do svého AAD zaregistrujete a ty pak budou využívat příslušné protokoly. Současně při registraci aplikace řeknete, jaká práva bude požadovat - například přečíst si plné jméno uživatele nebo požádat o token do Microsoft Graph (třeba pro možnost vygenerovat Excel dokument v Office365 a uložit ho na uživatelův OneDrive).

Využijte moderní autorizace ve svých aplikacích, například OAuth 2.0. Podívejte se na hotové integrace oblíbených SaaS poskytovatelů přímo s Azure Active Directory.

S čím a odkud mám mít přístup

Jeden podmíněný přístup už jsem popsal - vícefaktorové ověření. Dalšími možnostmi jsou zjištění z jakého zařízení a z jakého místa se uživatel snaží připojit. Ať už jde o počítač s Windows 10 nebo telefon s Android či iOS, může být ve správě Microsoft Intune. Pakliže máte citlivou aplikaci, můžete přístup do ní zakázat zařízením, která nemáte pod správou. Totéž můžete udělat s IP adresou, tedy pro některé aplikace omezit přístup jen z vnitřní sítě.

Azure Active Directory Premium podporuje podmíněné přístupy. Nasaďte je.

Sudo pro cloud aneb princip nejnižšího možného práva

Určitě už jste slyšeli, že do operačního systému se nemáte přihlašovat jako root v Linux a Administrator ve Windows. Bezpečnější je pracovat normálně s běžným účtem a pouze v okamžiku skutečné potřeby svoje práva eskalovat použitím sudo nebo Run as Administrator. Stejný koncept je vhodné aplikovat i do vašeho nového perimetru. Možná máte mimo jiné na starost dohlížet služby v Office 365 a vaše podnikové aplikace v Azure. Většinu času trávíte podporou vašich uživatelů, koukáte na logy, radíte jim a učíte využívat technologie efektivně. Na to nemusíte být hned administrátorem celé služby. Jenže občas potřebujete sáhnout do konfigurace - restartovat VM v Azure, přenastavit něco v Office 365. Sudo pro cloud funguje tak, že teprve v tento okamžik o eskalaci svých práv požádáte, dojde k jejich schválení (můžete na to mít celé procesní flow), zaprotokolování i detekci anomálních žádostí (viz dále). V tom je váš nový perimetr zajímavý. Dává totiž jen taková práva, jaká jsou aktuálně potřeba. U klasického zabezpečení typicky taková automatizace chybí - kdo je admin, je zkrátka admin - pořád. Zneužití jeho identity je automaticky průšvih.

Máte-li Azure Active Directory Premium P2, zvažte použití Priviledged Identity Management. Tohle sudo pro cloud mi dává velký smysl.

Anomálie a strojové učení pro moderní bezpečnost

Když se zpětně podíváte do úspěšných útoků, najdete většinou fakta, která by vám bývala napovídala, že se něco děje. Ale z těch milionů hlášek se to v normálním životě najít prostě nedá. Tady nastupuje strojové učení kombinované z historickou znalostí, širokou datovou základnou a skvělými mozky. Co tím mám na mysli? Microsoft provozuje identitu pro neuvěřitelné množství uživatelů a organizací a je jedním z nečastějších terčů útoků. Má tedy ohromné množství dat o způsobech útoků, o útočnících (kde zrovna jsou, jak se dají poznat, jaké techniky používají) a tým mozků, který na ochraně pracuje. Tohle všechno dáte dohromady se strojovým učením a získáte možnost reagovat na podezřelé situace. Některé jsou zřejmé a snadné - přístup z Prahy a o 20 minut později přístup z Číny. Je jasné, že to není normální. Systém ale dokáže i podstatně sofistikovanější věci a zejména jde o práci s kontextem. Jinak řečeno každý pokus o přihlášení nelze posuzovat samostatně, ale v kontextu předchozích přihlášení uživatele, trendů celé organizace, kontextu místa stanice a jejích předchozích pokusů o přihlášení či informace o konkrétním zařízení či prohlížeči. Každé přihlášení tak získává score rizikovosti. Nereálná cestovní rychlost, jiný OS a prohlížeč než obvykle, nestandardní místo, neobvyklý čas přístupu k této aplikaci a to vše z IP adresy, která se neúspěšně pokoušela přistupovat na vícero účtů v předchozí hodině? Hmm, to zní podezřele. Co s tím? Systém dokáže v reálném čase takové přihlášení zcela zablokovat nebo vynutit vícefaktorové ověření.

Pořiďte si Azure Active Directory Identity Protection. Budete mít za zády robota, bezpečnostní tým a neuvěřitelné množství dat, v nichž je klíč k vaší ochraně.

Předpokládejte průnik. Integrace identity do Azure Security Center

Jedna z nejzajímavějších změn přístupu k bezpečnosti je vlastně mentální. Občas někdo investuje do hradeb. Dá do toho všechen čas i peníze. Pokud ale útok přijde z jiné fronty nebo se někdo přes hradbu dostane, už tam jsou jen sedláci - dojde k totálnímu masakru. Modernější přístup spíše průnik předpokládá. Ano, stavíme co nejvíce prvků ochrany, ale nezapomínáme na to ostatní. Za jak dlouho budeme schopni poznat, že je v našem městečku útočník (statistiky mluví o dost šílených 144 dnech)? Jak zajistíme, že prolomení jednoho místa v hradbě nebude znamenat přímou cestu k zabití krále? Co potřebujeme je časová souslednost, kontext. Uspořádat všechny události do souvislostí, vytvořit jejich graf (myšleno jako graph a ne chart, čili vrcholy či chcete-li uzly a hrany či chcete-li vztahy mezi uzly). Zajímavou možností pro IT svět (vaše VM v Azure i on-premises) je Azure Security Center. Informace z perimetru, tedy identita a přístupy, jsou důležitý začátek. K tomu se přidávají pokusy o průnik přes RDP, FTP, podezřelé DNS dotazy, podezřelé procesy běžící ve VM, neovyklé dotazy, procesy běžící pod divným účtem, informace z firewallů a bezpečostních krabiček a tak podobně. Na základě toho můžete začít vyšetřovat - máte souvislosti i časovou souslednost a hlavně vás stroj sám informuje o podezřelých situacích, které našel.

Jedním z příkladů moderního přístupu k bezpečnosti je Azure Security Center, vyzkoušejte si.

 

Debata, jestli moje firemní webová aplikace může běžet v PaaS "přes Internet" nebo nutně musí být na privátních adresách mé sítě je jistě legitimní. Jen doporučuji si dát pozor, jestli příliš neodvádí pozornost od toho, co je dnes pro bezpečnost o důležitější. Myslím totiž, že identita je i váš perimetr, tak se na ni podívejme pořádně. Já to zde v dalších článcích udělám.

 

 



Federace tokenů GitHub Actions s Azure Active Directory pro přístup z vaší CI/CD do Azure bez hesel AAD
Federace vnitřních Kubernetes identit s Azure Active Directory pro přístup k cloudovým službám bez hesel AAD
Moderní autentizace: oprávnění pro procesy běžící v pozadí s AAD AAD
Moderní autentizace: delegovaná oprávnění s OAuth2 a AAD AAD
Moderní autentizace: ověřování zákazníků s OpenID Connect v AAD B2C AAD