Autorizace
- Proces ověření, zda má dotyčný dostatečná oprávnění pro vykonání dané akce.
- Checklist pomáhá s ověřením autorizačního mechanismu aplikace jako jsou access controls a jejich architektura.
Architektura access controls
- Ověřte, zda důvěryhodné body (access control gateway, servery, serverless funkce…) vynucují řízení přístupu. Nikdy nevynucujte řízení přístupu na klientovi.
- Ověřte, zda je zvolené řešení řízení přístupu dostatečně flexibilní, aby splňovalo aplikační požadavky.
- Ověřte dodržování principu nejmenších oprávnění ve funkcích, datových souborech, URL, řadičích, službách a dalších. Tzn. ochrana proti elevation of privilege.
- Ověřte, zda aplikace používá pro přístup k chráněným datům a prostředkům jediný a dobře ověřený mechanismus řízení přístupu. Všechny požadavky musí procházet tímto jediným mechanismem.
- Ověřte použití řízení přístupu založeného na atributech nebo funkcích, přičemž kód kontroluje oprávnění uživatele pro danou funkci / datovou položku, a nikoli pouze jeho roli.
Access control
-
Seznam oprávnění daného subjektu a mechanismus jeho ověření oproti danému objektu nebo akci, kterou se pokouší vykonat.
-
Ověřte vynucování pravidel řízení přístupu ke službě na serveru i klientovi.
-
Ověřte, že není možná neoprávněná manipulace s daty a jejich atributy nebo s access control pravidly.
-
Ověřte existenci principu nejmenšího oprávnění.
-
Ověřte existenci deny-by-default zásady.
- Všichni začínají s minimálním oprávněním, dokud jim není výslovně přidělen vyšší přístup.
-
Ověřte, zda kontroly řízení přístupu selhávají bezpečně včetně případů, kdy dojde k výjimce.
-
Ověřte, zda jsou citlivá data a API rozhraní chráněna před neoprávněným vytvářením, čtením, aktualizací a mazáním dat.
-
Ověřte použití silného anti-CSRF mechanismu.
-
Ověřte použití vícefaktorového ověřování.
-
Ověřte, zda je zakázáno procházení adresářů.
-
Ověřte, zda nejsou zpřístupněny soubory nebo adresáře s metadaty, jako jsou
.git
,.svn
, atp.