Přeskočit na hlavní obsah

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

  1. 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.
  2. 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.
  3. 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.

Kam dál