Přeskočit na hlavní obsah

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

  1. 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.
  2. 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.
  3. 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.
  4. 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ářů.

Kam dál