Jak na autorizaci, DDoS je jen špička ledovce, Reddit breach a další
Mezi nejčastější formy řízení přístupu patří RBAC a ABAC. Víte, kdy který z nich použít? Znáte 7 typických cloudových hrozeb, které nás v roce 2023 čekají?
Malá drobnost k formátu
- 💎 = tato informace je podle mě stěžejní
- 💡 = tato informace mi přišla zajímavá
🏆 Téma: Autorizace pomocí RBAC a ABAC
- = koncept řízení přístupu na základě oprávnění stanovených majitelem dat, aplikací nebo jinou politikou
- Anonymní uživatel má právo číst články na webu
- Redaktor má právo upravovat články, které sám napsal
- Synchronizační služba má oprávnění zapisovat do tabulky articles
- Autorizaci často předchází autentizace
- Je možné ji v aplikaci implementovat někoika způsoby, ale nejpoužívanější formy jsou RBAC a ABAC
- 💎 To, jakou formu řízení přístupu zvolíte, rozhodněte co nejdřív, nejlépe ve fázi návrhu aplikace
Co nabízí RBAC?
- Řídí přístup na základě rolí uživatele přiřazených uživatelům aplikace (Role Based Access Control)
- Přiřazuje oprávnění dané roli a entitě (uživateli), ta od ní tato oprávnění dědí
editor
má oprávnění psát a upravovat články → všichni uživatelé s touto rolí mají oprávnění psát a upravovat články
- Umožňuje entitě mít víc rolí (vztah many-to-many) a role mohou mít hierarchickou podobu
editor-in-chief
má stejné oprávnění jakoeditor
, ale navíc může vytvářet nové redaktory
- 💎 Je velmi agilní a jednoduchý na integraci
- 💡 Podporuje pravidlo Least Privilege (přidělování pouze minimálních oprávnění nezbytné pro dokončení práce na nezbytně nutnou dobu)
- Zjednodušuje administraci díky jednoduchosti rolí
- 💡 Umožňuje reprezentovat firemní strukturu díky rolím, které odpovídají např. pracovním pozicím
- Role se často pletou se skupinami, ale skupina je kolekce uživatelů, nikoli oprávnění, proto se role preferují
- 💎 Uživatel by neměl být součástí rolí, které se vzájemně vylučují (Separation of Duties)
- Má oprávnění pouze ke čtení dat, ale zároveň je admin, která má pravo zapisovat
Jak mu konkuruje ABAC?
- Povoluje požadavky na provedení operací na základě atributů (Attrubute Based Access Control)
- 💡 Řeší zásadní nedostatek RBAC:
editor
má oprávnění psát a upravovat články- Je správně, že má editor právo upravit článek svého kolegy?
- Je správně, že editor může upravit článek po jeho zveřejnění?
- = kontrola atributů (vlastností nebo rysů dané entity)
- Obecně se dá říct, že role je jeden z atributů řízení přístupu, RBAC a ABAC se často kombinují a doplňují
- 💎 Role se často používají v jednodušších projektech, pokud se ale projekt dále rozvíjí, dá se předpokládat, že bude vyžadovat komplexnější systém pro řízení přístupu
- Proto je v rané fázi projektu nutné zamyslet se nad požadavky, protože přepsání funkcionality v pozdějších fázích vývoje může být finančně a časově nákladné
- 💎 V praxi se doporučuje použití ABAC
Příklady
- Způsob povolení přístupu:
article.creatorId == editor.id
- Atributy entit: denní doba, název projektu, MAC adresa, datum vytvoření, autor …
Základní pravidla pro integraci rolí
- Zjistěte, jaké jsou požadavky na přístupová práva k jednotlivým zdrojům a datům (v rané fázi vývoje)
- Stanovte vhodnou formu řízení přístupu na základě zjištění z přechozího bodu
- Vynucujte least privilege
- Zajistěte deny-by-default (odmítnutí přístupu ve výchozím nastavení - pokud není přístup explicitně povolen, je zamítnut)
- Ověřujte oprávnění pro každý požadavek (např. middleware)
- Zkontrolujte autorizační logiku nástrojů a technologií, které používáte nebo chcete použít a případně implementujte logiku vlastní
- Preferujte autorizaci na základě atributů namísto rolí
- Preferujte centralizaci autorizační logiky (samostatný modul nebo služba)
- Napište integrační / jednotkové / end to end testy pro autorizační logiku (nejlépe 100% test coverage)
🎓 Učíme se společně
Co jsme se dozvěděli z přednášek, školení, čtení knih a dalších aktivit?
Getting API Security Right
- Speaker: Philippe De Ryck
- 💎 Většina lidí bere DDoS / DoS jako velký problém, ale pravdou je, že je to jen část problému = ostatní scénáře mají větší (přímý) dopad na API a data, řešit by se mělo hlavně následující:
- Limitace výpočetních zdrojů a zdrojů na infrastruktuře
- Aplikační validace vstupu (pagination)
- Přenesení zodpovědnosti na někoho jiného - využití služby nebo providera
- Hlavně v případě zpracování obrázků - zde je mnoho míst, kde může nastat problém
- Specifický rate limiting pro danou aplikaci - uživatel si může změnit fotku maximálně 3x za den
- 💎 Vstup validujeme hlavně na backendu (serveru)
- Často se stává, že se na frontendu zobrazí hláška, že uživatel překročil limit, ale když se dotáže API napřímo, tak se operace vykoná bez jakékoli chyby (podobný problém měl Twitter)
- API a klientská část není jedna aplikace = bezpečnost API nesmí být závislá na klientské aplikaci
- Tester by měl testovat jak API, tak klientskou část
- 💎 Dobrá praxe je oddělit citlivá data od ostatních dat
- Vlastní služba a patřičná ochrana dat
- Vlastní služba má nejnižší nutná oprávnění (least privilege), zvážit musíme také přístupnost služby k internetu atp.
- 💡 Manuální testování endpointů není udržitelné
- Používat OpenAPI specifikaci a definovat response schéma
- Swagger / OpenAPI není jen dokumentace, ale umožňuje i testování
📰 Co je nového
- Při útoku byl kompromitován kód Redditu, interní dokumenty, dashboardy a další systémy
- Vlivem phishingového útoku byly odcizeny credentials jednomu ze zaměstnanců
- Útočníci získali přístup k informacím o inzerentech a zaměstnancích
- 💎 Reddit uvedl, že uživatelská data nebyla ovlivněna a ani neunikla
- Severní Korea využívá útoky na zdravotnictví k financování další kybernetické kriminality
- Prostřednictvím ransomwaru Maui a H0lyGh0st využívají příjmy z výkupného k podpoře národních priorit včetně kyber operací
- Celé odvětví je útoky znepokojeno hlavně kvůli jejich množství a dopadu
- Aktéři využívají hlavně kryptoměn a spolupráce se zahraničními subjekty
- Nejčastěji se zaměřují na běžné zranitelnosti a využívají nejnovějších CVE
- Apache Log4j (Log4Shell) a chyby vzdáleného spuštění kódu v zařízeních SonicWall
- 7 kritických cloudových hrozeb, kterým čelí podnik v roce 2023
-
Rostoucí závislost na cloudu přináší bezpečnostní výzvy k již tak složitému systému
-
Otázkou není, zda k útoku dojde, ale kdy k němu dojde
- Rizika softwaru třetích stran a dodavatelského řetězce
- Cloudový ransomware
- APT - Advanced Persisted Threats
- Používání více cloudů
- Datové stíny (informace, které za sebou člověk neúmyslně zanechá)
- Nadměrná oprávnění v cloudu
- Lidská chyba, chybná konfigurace a zneužití dat
-
😂 Závěrečný ftípek: What’s a hacker’s favorite season? … Phishing season.
🔔 Sledujte nás na Twitteru a LinkedInu, kam pravidelně sdílíme další novinky a know-how.
🆘 S bezpečností vám rádi pomůžeme, klidně nám napište - školíme vývojáře i management, nastavujeme procesy, vyvíjíme bezpečné aplikace a poskytujeme další služby.