Vydávání se za někoho jiného
- Aplikační uživatel = uživatel, který se zaregistruje a používá apliakci vytvořenou na low-code / no-code platformě
- Pro vývoj v platformě se často používá jeden vývojářský účet, který je “sdílený” s aplikačními uživateli.
- To umožňuje útočníkovi skrýt se za identitu tohoto uživatele a obejít tak bezpečnostní kontroly.
- → Uživatel má větší oprávnění, než by měl mít.
- Platforma by měla umožňovat vytvoření speciálních identit.
- Identity spadají pod organizaci nebo hlavní účet.
- Každá identita má vlastní oprávnění a je sdílená mezi týmy (např. databázové credentials, service account).
- Absence identity způsobuje skrytí uživatele před monitorovacími systémy.
- Jakýkoli uživatel se tak vydává za vlastníka aplikace nebo jiný účet (vývojářský).
- Neexistuje způsob, jak odlišit útočníka např. od vlastníka aplikace.
Jak zranitelnosti předcházet
🔴 Dodržujte zásadu nejmenších oprávnění (least privilege) při zajišťování připojení k databázi, službě, SaaS atd.
🔴 Používejte aplikační účty namísto uživatelských účtů platformy.
🔴 Používejte konzistentní identitu pro všechna připojení, nikoli pro každé připojení jinou identitu.
- Používejte vyhrazený aplikační účet.
🔴 Logujte a auditujte aktéra, který stojí za akcemi prováděnými prostřednictvím sdíleného připojení.
Příklad zneužití zranitelnosti
- Vývojář vytvoří aplikaci pro prohlížení databázových dat.
- Pomocí své identity se přihlásí do databáze a vytvoří spojení s aplikací.
- Každá akce, kterou uživatelé v aplikaci provedou, skončí dotazem k databázi s identitou vývojáře.
- Útočník pomocí aplikace zobrazí, upraví nebo smaže záznamy ke kterým by neměl mít přístup.
- Aplikační logy ukazují, že všechny dotazy provedl vývojář aplikace.
- Vývojář vytvoří aplikaci, která umožňuje zaměstnancům vyplňovat formuláře s jejich údaji.
- K ukládání odpovědí vývojář používá svůj osobní email.
- Uživatelé nemají možnost zjistit, že aplikace ukládá data na osobní účet vývojáře.
- Vývojář vytvoří aplikaci a sdílí ji s administrátorem.
- Platforma umožňuje vložení skriptu nebo instrukce, která zvýší oprávnění.
- Vývojář tuto funkcionalitu nakonfiguruje.
- Poté, co se admin přihlásí, nevědomě zvýší oprávnění vývojáři, který se stane administrátorem.