Riadenie prístupu na základe atribútov (Attribute-Based Access Control)

Aktualizované

Riadenie prístupu na základe atribútov (ABAC) je model autorizácie, ktorý rozhoduje o prístupe vyhodnocovaním atribútov aktéra, prostriedku, požadovanej akcie a prostredia voči bezpečnostným pravidlám. Pri audite softvéru vytvoreného pomocou AI (vibe-coded) odhaľuje, či sú tieto atribúty dôveryhodné, úplné a konzistentne vyhodnocované pri každej chránenej operácii.

Riadenie prístupu na základe atribútov, označované ako ABAC, rozhoduje o prístupe na základe faktov o požiadavke. Tieto fakty môžu popisovať používateľa, záznam, operáciu alebo aktuálne prostredie. Bezpečnostné pravidlá ich vyhodnotia spoločne pred spustením chránenej akcie.

Čo obsahuje rozhodnutie ABAC

Pravidlo ABAC dokáže vyjadriť podmienky, ktoré samotná rola pokryť nedokáže. Pracovník podpory môže čítať záznam iba vtedy, ak patrí do jeho regiónu a prípad je priradený jeho tímu. Služba môže aktualizovať objekt iba vo svojom vlastnom prostredí a počas definovaného stavu procesu.

Zdroj atribútuPríkladOtázka pri audite
AktérTím, účet, bezpečnostná previerkaKto vytvoril a aktualizuje danú hodnotu?
ProstriedokVlastník, tenant, klasifikáciaJe hodnota načítaná z dôveryhodných dát?
AkciaČítanie, schválenie, exportOznačujú pravidlá skutočnú operáciu?
ProstredieČas, sieť, nasadenieMôže odosielateľ požiadavky ovplyvniť podmienku?

Bezpečnostné pravidlá sú len také spoľahlivé, aké spoľahlivé sú tieto vstupy. Dôveryhodná rola z overenej relácie sa líši od identifikátora účtu skopírovaného priamo z požiadavky. Audit preto pred vyhodnotením samotného pravidla sleduje každý atribút až k jeho zdroju.

Ako sa bezpečnostné pravidlá trieštia

Vygenerované funkcie často vyjadrujú kontextové pravidlá ako lokálne podmienky. Jeden handler overuje tím používateľa, druhý vlastníka záznamu a hromadná akcia neoveruje ani jedno. Každá podmienka môže sama osebe vyzerať rozumne, zatiaľ čo produktu chýba jednotná politika riadenia prístupu.

Audit softvéru vytvoreného pomocou AI zoskupuje ekvivalentné operácie a porovnáva ich atribúty, logiku pravidiel a správanie pri zamietnutí prístupu. Kontrola hľadá predvolené nastavenia, ktoré povolia prístup v prípade chýbajúceho atribútu, zastarané hodnoty skopírované do tokenov a alternatívne cesty načítavajúce iné dáta prostriedkov.

Kontrola prebieha v pevne stanovenom poradí:

  1. Definovanie chránenej akcie: Presne pomenujte operáciu a prostriedok.
  2. Zoznam požadovaných atribútov: Identifikujte vstupy pre aktéra, prostriedok, akciu a prostredie.
  3. Sledovanie každého zdroja: Potvrďte, že hodnotu poskytuje dôveryhodný kód.
  4. Lokalizácia vynucovania: Nájdite každú cestu, úlohu a nástroj, ktoré môžu spustiť danú akciu.
  5. Otestovanie ciest zamietnutia: Otestujte chýbajúce, nepravdivé, zastarané a konfliktné atribúty.

ABAC a prístup založený na rolách

Riadenie prístupu na základe rolí môže poskytnúť jeden atribút: rolu priradenú aktérovi. ABAC pridáva kontext, ak rozhodnutie závisí aj od vlastníctva, tenanta, stavu, lokality alebo inej vlastnosti. Systém môže používať oba modely súčasne bez akýchkoľvek konfliktov, ak sú kombinované pravidlá explicitné.

Problémy nastávajú, keď implementácia skrýva kontextové pravidlá do názvov rolí. Roly ako eu-manager alebo approved-customer-editor sa môžu rýchlo množiť, pretože každý názov v sebe kóduje niekoľko meniacich sa vlastností. Audit tieto vlastnosti oddeľuje, aby revízori videli, ktorý fakt reálne riadi každé rozhodnutie.

Ako vyzerá overené vynucovanie

Výstup auditu spája každú citlivú akciu s bezpečnostným pravidlom, atribútmi, ktoré spracováva, a kódom, ktorý ho vynucuje. Testy využívajú aktérov a prostriedky so zámerne odlišnými atribútmi. Potvrdzujú, že zmena jednej požadovanej podmienky zmení aj rozhodnutie a že zamietnutie prístupu zabráni akýmkoľvek vedľajším účinkom.

Tieto dôkazy podporujú kontrolu kódu vygenerovaného pomocou AI v produkcii. ABAC nevyžaduje konkrétny nástroj na správu pravidiel. Vyžaduje rozhodnutie, ktorého vstupy, pravidlá a body vynucovania je možné kontrolovať a testovať.