Sdílet prostřednictvím


Vylepšení zabezpečení pomocí principu nejnižších oprávnění

Princip zabezpečení informací s nejnižšími oprávněními tvrdí, že uživatelé a aplikace by měli mít přístup pouze k datům a operacím, které vyžadují k provádění svých úloh. Postupujte podle pokynů, které vám pomůžou snížit prostor pro útok aplikace a dopad porušení zabezpečení ( poloměr výbuchu) v aplikaci integrované na platformě Microsoft Identity Platform.

Doporučení na první pohled

  • Zabránit přeprivilegovaným aplikacím odvoláním nepoužívaných a reduciovatelných oprávnění
  • Použijte rámec souhlasu platformy Identity, který vyžaduje, aby člověk souhlasil s požadavkem aplikace na přístup k chráněným datům.
  • Vytvářejte aplikace s minimálními oprávněními během všech fází vývoje.
  • Pravidelně auditujte nasazené aplikace a identifikujte ty, které jsou nadprivilegované.

Přeprivilegované aplikace

Každá aplikace, která má udělené nepoužívané nebo opakované oprávnění, se považuje za neprivilegovanou. Nepoužitá a znovu použitelná oprávnění mají potenciál poskytnout neoprávněný nebo nezamýšlený přístup k datům nebo operacím, které aplikace nebo její uživatelé nevyžadují k provádění svých úloh. Vyhněte se rizikům zabezpečení způsobeným nepoužívanými a opětovně použitelnými oprávněními tím, že udělíte pouze příslušná oprávnění. Příslušná oprávnění jsou ta s nejméně podmíněným přístupem vyžadovaným aplikací nebo uživatelem k provádění požadovaných úloh.

Nepoužitá oprávnění

Nepoužívané oprávnění je oprávnění, které bylo uděleno aplikaci, ale jehož rozhraní API nebo operace vystavené tímto oprávněním není volána aplikací, pokud je použita jako zamýšlená.

  • Příklad: Aplikace zobrazí seznam souborů uložených na OneDrivu přihlášeného uživatele voláním rozhraní Microsoft Graph API pomocí oprávnění Files.Read . Aplikace má ale také udělené oprávnění Calendars.Read , ale neposkytuje žádné funkce kalendáře a nevolá rozhraní API kalendářů.

  • Riziko zabezpečení: Nepoužitá oprávnění představují riziko zabezpečení eskalace horizontálních oprávnění . Entita, která zneužije ohrožení zabezpečení v aplikaci, může použít nepoužívané oprávnění k získání přístupu k rozhraní API nebo operaci, která není normálně podporovaná nebo povolená aplikací, pokud je použita podle očekávání.

  • Zmírnění: Odeberte všechna oprávnění, která se nepoužívají ve voláních rozhraní API provedených aplikací.

Redukovatelná oprávnění

Snížené oprávnění je oprávnění, které má nižší privilegované oprávnění, jež by stále poskytovalo aplikaci a jejím uživatelům přístup potřebný k provádění požadovaných úloh.

  • Příklad: Aplikace zobrazí informace profilu přihlášeného uživatele voláním rozhraní Microsoft Graph API, ale nepodporuje úpravy profilu. Aplikace však byla udělena oprávnění User.ReadWrite.All . Oprávnění User.ReadWrite.All je zde považováno za omezitelné, protože méně přísné oprávnění User.Read.All uděluje dostatečný přístup jen pro čtení k datům profilu uživatele.

  • Bezpečnostní riziko: Omezitelná oprávnění představují riziko zabezpečení vertikální eskalace oprávnění. Entita, která zneužije ohrožení zabezpečení v aplikaci, by mohla použít opakované oprávnění pro neoprávněný přístup k datům nebo k provádění operací, které tato role entity normálně nepovoluje.

  • Zmírnění: Nahraďte každé redukovatelné povolení v aplikaci svým nejméně permisivním protějškem, který stále umožňuje zamýšlenou funkčnost aplikace.

Většina aplikací vyžaduje přístup k chráněným datům a vlastník těchto dat musí souhlasit s tímto přístupem. Souhlas lze udělit několika způsoby, včetně správce tenanta, který může vyjádřit souhlas pro všechny uživatele v tenantovi Microsoft Entra, nebo uživateli aplikace, kteří sami můžou udělit přístup.

Kdykoli aplikace spuštěná v zařízení požádá o přístup k chráněným datům, měla by aplikace před udělením přístupu k chráněným datům požádat o souhlas uživatele. Aby mohl aplikace pokračovat, musí uživatel udělit (nebo odepřít) souhlas s požadovaným oprávněním.

Nejnižší oprávnění během vývoje aplikací

Zabezpečení aplikace a uživatelských dat, ke kterým přistupuje, je zodpovědností vývojáře.

Při vývoji aplikací dodržujte tyto pokyny, abyste se vyhnuli přeprivilegování:

  • Plně porozumíte oprávněním požadovaným pro volání rozhraní API, která aplikace potřebuje provést.
  • Seznamte se s nejméně privilegovanými oprávněními pro každé volání rozhraní API, které aplikace potřebuje k používání Graph Exploreru.
  • Vyhledejte odpovídající oprávnění od nejmenších po nejvíce privilegovaných.
  • Odeberte všechny duplicitní sady oprávnění v případech, kdy aplikace provádí volání rozhraní API, která mají překrývající se oprávnění.
  • Použití pouze nejméně privilegované sady oprávnění pro aplikaci výběrem nejméně privilegovaného oprávnění v seznamu oprávnění.

Nejnižší oprávnění pro nasazené aplikace

Organizace často váhají upravovat spuštěné aplikace, aby se vyhnuly dopadu na běžné obchodní operace. Organizace by ale měla vzít v úvahu zmírnění rizika bezpečnostního incidentu umožněného nebo zhoršeného použitím nadprivilegovaných oprávnění, což si zaslouží plánovanou aktualizaci aplikace.

Nastavte v organizaci tyto standardní postupy, které vám pomůžou zajistit, aby nasazené aplikace byly neprivilegované a v průběhu času se nepřetěžovaly:

  • Vyhodnoťte volání rozhraní API prováděná aplikacemi.
  • Pro požadovaná a nejméně privilegovaná oprávnění použijte Graph Explorer a dokumentaci k Microsoft Graphu .
  • Oprávnění auditu udělená uživatelům nebo aplikacím
  • Aktualizujte aplikace pomocí sady oprávnění s nejnižšími oprávněními.
  • Pravidelně kontrolujte oprávnění a ujistěte se, že jsou všechna oprávnění stále relevantní.

Další kroky