Jednotka 4 / 11

Kontrola prístupu, správa identity a tajomstiev

zisky:

  • Schopnosť oddeliť autentifikáciu a autorizáciu a použiť minimálnu autorizáciu s RBAC/ABAC
  • Schopnosť vyhnúť sa zmiešanému riziku proxy spustením modelu v kontexte používateľa
  • Schopnosť ukladať a otáčať API kľúče pomocou tajného systému správy

Značná časť útokov na systém AI nezačína „oklamaním“ modelu, ale ukradnutým kľúčom API alebo nadmerne autorizovaným účtom. Táto vrstva zabezpečenia pochádza z klasickej informačnej bezpečnosti, ale pridáva nové riziká v kontexte AI: model volá jazdu v mene niekoho iného, ​​servisný účet má prístup ku všetkým údajom, kľúč uniká na GitHub. V tejto lekcii sa naučíme, ako zúžiť prístup k systému AI pomocou autentifikácie, autorizácie (RBAC/ABAC), minimálnej autorizácie a správy tajomstiev.

Rozdiel medzi autentifikáciou a autorizáciou

Tieto dva pojmy sa často zamieňajú:

  • Autentifikácia: "Kto si?" — preukázanie, že používateľ/služba je skutočne tým, za koho sa vydáva (heslo, token, certifikát, MFA).
  • Autorizácia: "Čo môžete urobiť?" — určiť, ku ktorému zdroju/akcii má overená strana prístup.

V systémoch AI je kritická jemnosť: keď model vykonáva prácu v mene používateľa, pracuje s autoritou tohto používateľa alebo so širokým účtom služby? To druhé je nebezpečné – pretože model oklamaný injekciou získa plný prístup k účtu služby.

Upozornenie: Problém „zmätený zástupca“: používateľ s nízkou autoritou nepriamo pristupuje k údajom, ku ktorým nemá prístup, prostredníctvom outsourcingu modelu s vysokou autoritou. Model by mal vždy fungovať v kontexte oprávnenia používateľa, nie jeho vlastnej širokej autority.

RBAC a ABAC

  • RBAC (Role-Based Access Control): Prístup závisí od roly používateľa. Rola „špecialista podpory“ môže čítať poznámky zákazníkov, ale nemôže ich vymazať. Jednoduché a bežné.
  • ABAC (Attribute-Based Access Control): Prístup závisí od atribútov: oddelenie používateľa, štítok ochrany osobných údajov údajov, čas dňa, sieť, z ktorej žiadosť prichádza. Jemnejšie, ale komplexnejšie.

Väčšina organizácií začína s RBAC a prehĺbi sa na ABAC pre citlivé údaje. Základné pravidlo pre AI: model by mal filtrovať každého agenta, ktorého volá, a všetky údaje, ku ktorým pristupuje, na základe roly/atribútov používateľa, ktorý zadáva požiadavku.

Krok za krokom: Uplatňovanie minimálnej autority

  1. Vykonajte inventúru. Aké nástroje model volá, k akým údajom pristupuje? Uveďte ich všetky.
  2. Zdôvodnite každý prístup. "Naozaj potrebuje tento asistent oprávnenie na mazanie?" V opačnom prípade ho odstráňte.
  3. Predvolená možnosť iba na čítanie. Model by mal byť štandardne schopný čítať; Vyžadovať zápis/vymazanie samostatného tokenu s úzkym rozsahom.
  4. Presuňte kontext používateľa. Volajte vozidlo s oprávnením používateľa, nie so servisným účtom.
  5. Krátkodobé poverenie. Namiesto kľúčov s dlhou životnosťou používajte žetóny s krátkou životnosťou, ktoré sa automaticky obnovujú.

Tajný manažment

Tajomstvo sú poverenia, ktoré musia zostať tajné, ako napríklad kľúč API, heslo, token alebo certifikát. Najčastejšou nehodou v projektoch AI je, keď je kľúč API poskytovateľa modelu vložený do kódu a uniká do správy verzií (Git).

Správna aplikácia:

  • Nikdy nevkladajte kľúče do kódu; Použite premennú prostredia alebo tajný systém správy (službu, ktorá uchováva šifrované kľúče a riadi prístup).
  • Rotácia: Obnovujte kľúče v pravidelných intervaloch (napr. každých 90 dní); Ak máte podozrenie na únik, okamžite zrušte.
  • Zníženie rozsahu: Každý prepínač má iba požadovanú službu a požadované oprávnenie.
  • Audit: Zaznamenajte, kto, kedy a kde použil kľúč.

Štyri kopírovateľné šablóny

Prístupová výzva na kontrolu kontroly:

Pre každý nástroj v zozname nástrojov nižšie vyhodnoťte:- Je tento nástroj POTREBNÝ na vykonávanie práce tohto asistenta? (áno/nie) - Je to len na čítanie alebo zápis/vymazanie? - Volá sa tento nástroj s oprávnením používateľa alebo kontom služby? Označte nepotrebné alebo nadmerne autorizované ako „ODSTRÁNIŤ/UPRAVIŤ“.<tools>{{ tool_list }}</tools>

Výzva na skenovanie tajných únikov:

V nasledujúcom úryvku kódu nájdite čokoľvek, čo by mohlo byť pevne zakódované tajomstvo: kľúč API, heslo, token, reťazec pripojenia, súkromný kľúč. Pre každý uveďte riadok a typ. KOPÍRUJTE hodnotu do odpovede; maska (prvé 4 znaky + ***).<code>{{ zdroj }}</code>

Pravidlo rozhodovania najmenšej autority:

Keď príde nový nástroj/požiadavka na prístup, opýtajte sa:1. Dá sa úloha vykonať bez tohto prístupu? -> Ak áno: ODMIETNUŤ2. Stačí len na čítanie? -> Ak áno: UDELTE povolenie na zápis3. Dá sa rozsah zúžiť na jeden zdroj? -> Ak áno: daratPredvolená odpoveď je "nie"; Prístup sa získava rozumom.

Pripomenutie rotačného kalendára:

Ku každému tajomstvu zaznamenajte: vlastníka, dátum vytvorenia, expiráciu, rozsah. Nahláste každý kľúč, ktorý presiahol 90 dní alebo sa 30 dní nepoužíval, ako „KANDIDÁT NA OTOČENIE/ZRUŠENIE“.

Slabá výzva / silná výzva

zlý prístup

Silný prístup

Model pristupuje ku všetkým údajom pomocou jediného servisného účtu

Model pristupuje s oprávnením používateľa, ktorý podáva žiadosť

API kľúč je vložený do kódu, nikdy sa nemení

Rotácia v správcovi tajných kľúčov, 90 dní

Široká právomoc asistenta „urobiť čokoľvek“.

Predvolená možnosť iba na čítanie, písať úzko

Prístupy sa nikdy nekontrolujú

Pravidelná kontrola a zrušenie prístupu

Tri mini puzdrá

Prípad 1 – Uniknuté zmiešané proxy údaje. Interný asistent pracoval so servisným účtom, ktorý mal prístup ku všetkým záznamom zamestnancov. Interný používateľ sa dostal k údajom, ktoré by za normálnych okolností nevidel, vyslovením „sumarizujte tabuľku platov vedúcich pracovníkov“; pretože model to spochybnil v kontexte svojej vlastnej širokej autority, nie užívateľa. Akonáhle bol kontext používateľa upravený tak, aby sa mohol presunúť, stážista bol schopný stiahnuť nahrávky, ktoré videl iba on alebo ona.

Prípad 2 – Uniknutý kľúč, účet 190 000 TL za 2 týždne. Vývojár vložil kľúč API modelu do pomocného skriptu a poslal ho do verejného úložiska. Robot našiel kľúč za 40 minút a používal ho dva týždne; Účet dosiahol 190 000 TL. Keď bol kľúč presunutý do tajného manažéra, pripojený k rotácii a bolo pridané skenovanie úložiska, incident sa už neopakoval.

Prípad 3 – Predvolená možnosť len na čítanie zabráni prerušeniu. Asistent DevOps dostal príkaz „resetovať produkčnú databázu“ prostredníctvom rýchlej injekcie. Asistent však dostal len token na čítanie; zápis/vymazanie bolo v samostatnom schválenom toku. Príkaz bol odmietnutý s chybou autorizácie a udalosť bola zaznamenaná ako alarm; Nedošlo k strate údajov.

Tip: Nastavte „nie“ ako predvolenú odpoveď na novú žiadosť o prístup. Prístup je niečo získané ospravedlnením; Dať všetkým široký a potom škrtať sa takmer nikdy nerobí a riziko sa kumuluje.

Časté chyby

  • Spustenie modelu s veľkým účtom služby a strata používateľského kontextu (zmiešaný proxy).
  • Vloženie kľúča API do kódu a jeho únik do správy verzií.
  • Vôbec sa neotáčajú klávesy ("fungujú, nedotýkajte sa").
  • V predvolenom nastavení udeľuje asistentovi povolenia na zápis/vymazanie.
  • Udelenie prístupu raz a nikdy ho neprehodnotiť.
  • Zamieňanie autentizácie s autorizáciou a predpoklad „je prihlásený, má prístup ku všetkému“.

V súhrne

  • Autentifikácia je otázkou „kto si“, autorizácia je otázkou „čo dokážeš“; V AI musia obe fungovať v kontexte používateľa.
  • Model by mal fungovať s právomocou používateľa, ktorý podáva žiadosť, nie s vlastnou širokou právomocou (aby sa predišlo riziku zmiešanej agentúry).
  • Začnite s RBAC, prehĺbte s ABAC na citlivých údajoch; Minimálne oprávnenie nastavte ako predvolené.
  • Nepochovávajte tajomstvá v kóde; uložte ho do tajného manažéra, zúžte ho a zaraďte ho do pravidelnej rotácie.
  • Predvolené nastavenie len na čítanie a úzky zápis výrazne obmedzujú vplyv injekcie.

Aplikačná úloha

Uveďte všetky nástroje a údaje, ku ktorým má váš asistent AI prístup. Pre každú odpovedzte na tri otázky: (1) Je to naozaj potrebné? (2) Stačí len na čítanie? (3) Beží v používateľskom kontexte? Potom vyhľadajte všetky pevne zakódované tajomstvá (prostredníctvom výzvy na skenovanie vyššie) a napíšte plán rotácie pre každý kľúč, ktorý nájdete. Odstráňte aspoň jednu nepotrebnú autorizáciu.

kontrolný zoznam

  • [ ] Model beží v kontexte oprávnení používateľa, ktorý zadáva požiadavku.
  • [ ] Prístup k nástrojom a údajom sa zúžil na princíp najmenšieho privilégia.
  • [ ] Zápis/vymazanie je oddelené od iba na čítanie, overené a úzke.
  • [ ] V kóde nie sú pochované žiadne tajomstvá; Uchováva sa v tajnom správcovi.
  • [ ] Existuje plán rotácie a postup zrušenia kľúčov.
  • [ ] Prístupy sa pravidelne prehodnocujú.