Zneužití autorizace
- Většina Low-code / No-code platforem má zabudovanou velkou sadu konektorů.
- Ty umožňují rychlé a snadné připojení.
- Ve většině platforem lze konektory a uživatelské credentials sdílet mezi aplikacemi, s ostatními uživateli nebo s celými organizacemi.
- Mnoho platforem zneužívá OAuth autorizaci - ukládají refresh tokeny a opakovaně je používají dle libosti.
- Tím se zvyšuje produktivita a zkracuje doba dodání.
- Zároveň to ale umožňuje nastavit připojení bez přemýšlení o secrets nebo oprávněních.
- Přestože jsou tokeny navrženy jako krátkodobé, jejich platnost je většinou několik měsíců nebo let.
- Díky tomu může připojení přetrvat dlouhou dobu a často je používáno jinými uživateli a k jiným účelům, než byl původní záměr.
- Rozsah oprávnění řídí přístup ke zdrojům a aktivům.
- Vývojáři dávají přednost širokému rozsahu autorizace aplikací, aby byly co nejobecnější.
- = Rychlé a snadné nastavení aplikace.
- Široký rozsah = riziko zneužití autorizace.
Jak zranitelnosti předcházet
🔴 Zakažte a sledujte používání implicitně sdílených připojení.
🔴 Dodržujte zásadu nejmenších oprávnění (least privilege) u sdílených připojení.
🔴 Monitorujte nadměrný počet sdílených připojení.
🔴 Vzdělávejte zaměstnance o rizicích sdílení připojení a vztahu ke sdílení credentials.
🔴 Pravidelně obnovujte OAuth tokeny opětovným ověřováním.
🔴 Kontrolujte rozsah oprávnění, která aplikace vyžaduje.
Příklad zneužití zranitelnosti
- Vývojář vytvoří připojení k firemnímu emailovému účtu.
- Neúmyslně klikne na možnost “Sdílet se všemi” - udělí oprávnění k používání, nebo plné vlastnictví.
- Každý zaměstnanec včetně dodavatelů získá přístup ke svému účtu.
- Útočník spustí “zapomenuté heslo” a pomocí připojení dokončí proces, čímž získá kontrolu nad účtem.
- Vývojář vytvoří aplikaci pro zobrazení databázových záznamů.
- Nakonfiguruje ji tak, aby každý uživatel mohl zobrazit související záznamy.
- Základní databázové připojení je však sdíleno s uživatelem aplikace.
- Uživatel může použít připojení napřímo a získat plný přístup ke všem datům.
- Admin připojí aplikaci ke svému GitHubu.
- Poskytnutý účet má neomezený přístup ke všem repozitářům (bezproblémová integrace).
- Kdokoli může toto připojení zneužít k přístupu k repozitářům, ke kterým by běžně přístup neměl.
- Vývojář vytvoří aplikaci pro odesílání formulářů z jedné platformy na druhou.
- Aplikace vyžaduje oprávnění k úpravám a mazání formulářů.
- Mělo by však stačit pouhé oprávnění na vytváření formulářů.