zisky:
- Schopnost oddělit autentizaci a autorizaci a použít minimální autorizaci s RBAC/ABAC
- Schopnost vyhnout se smíšenému riziku proxy spuštěním modelu v kontextu uživatele
- Schopnost ukládat a otáčet klíče API pomocí systému správy tajných informací
Významná část útoků na systém umělé inteligence nezačíná „oklamáním“ modelu, ale odcizeným klíčem API nebo nadměrně autorizovaným účtem. Tato vrstva zabezpečení pochází z klasické informační bezpečnosti, ale přidává nová rizika v kontextu AI: model volá jízdu jménem někoho jiného, servisní účet má přístup ke všem datům, klíč uniká na GitHub. V této lekci se naučíme, jak zúžit přístup k systému AI s autentizací, autorizací (RBAC/ABAC), minimální autorizací a správou tajemství.
Rozdíl mezi autentizací a autorizací
Tyto dva pojmy se často zaměňují:
- Autentizace: "Kdo jsi?" — prokázání, že uživatel/služba je skutečně tím, za koho se vydává (heslo, token, certifikát, MFA).
- Autorizace: "Co můžete dělat?" — určit, ke kterému prostředku/akci má ověřená strana přístup.
The critical subtlety in AI systems is this: when the model is performing work on behalf of a user, is it operating with the authority of that user or with a broad service account? To druhé je nebezpečné — protože model oklamaný injekcí získá plný přístup k účtu služby.
Upozornění: Problém „Zmatený zástupce“: uživatel s nízkou autoritou nepřímo přistupuje k datům, ke kterým nemá přístup, prostřednictvím outsourcingu modelu s vysokou autoritou. Model by měl vždy fungovat v kontextu oprávnění uživatele, nikoli jeho vlastní široké pravomoci.
RBAC a ABAC
- RBAC (Role-Based Access Control): Přístup závisí na roli uživatele. Role „specialista podpory“ může číst poznámky zákazníků, ale nemůže je mazat. Jednoduché a běžné.
- ABAC (Attribute-Based Access Control): Access depends on attributes: the user's department, the privacy label of the data, the time of day, the network from which the request comes. Jemnější, ale složitější.
Většina organizací začíná s RBAC a prohlubuje se na ABAC pro citlivá data. Rule of thumb for AI: the model should filter every agent it calls and every data it accesses based on the role/attributes of the user making the request.
Krok za krokem: Uplatňování minimální autority
- Proveďte inventuru. Jaké nástroje model volá, k jakým datům přistupuje? Vyjmenujte je všechny.
- Zdůvodněte každý přístup. "Opravdu potřebuje tento asistent oprávnění k odstranění?" V opačném případě jej odstraňte.
- Výchozí nastavení pouze pro čtení. Model by měl být standardně schopen číst; Vyžadovat zápis/mazání samostatného tokenu s úzkým rozsahem.
- Přesunout kontext uživatele. Volejte vozidlo s oprávněním uživatele, nikoli pomocí servisního účtu.
- Krátkodobé pověření. Místo dlouhodobých klíčů používejte žetony s krátkou životností, které se automaticky obnovují.
Tajná správa
Tajemství jsou přihlašovací údaje, které musí zůstat tajné, jako je klíč API, heslo, token nebo certifikát. Nejčastější nehoda v projektech AI je, když je klíč API poskytovatele modelu vložen do kódu a prosakuje do správy verzí (Git).
Správná aplikace:
- Nikdy nevkládejte klíče do kódu; Použijte proměnnou prostředí nebo tajný systém správy (službu, která ukládá zašifrované klíče a řídí přístup).
- Rotace: Obnovujte klíče v pravidelných intervalech (např. každých 90 dní); Pokud máte podezření na únik, okamžitě zrušte.
- Redukce rozsahu: Každý přepínač má pouze požadovanou službu a požadované oprávnění.
- Audit: Zaznamenejte, kdo, kdy a kde klíč použil.
Čtyři kopírovatelné šablony
Výzva pro kontrolu přístupu:
Pro každý nástroj v níže uvedeném seznamu nástrojů vyhodnoťte:- Je tento nástroj POTŘEBNÝ k provádění práce tohoto asistenta? (ano/ne) - Je to jen pro čtení nebo zápis/mazání? - Je tento nástroj volán pomocí uživatelského oprávnění nebo servisního účtu? Označte nepotřebné nebo nadměrně autorizované jako „ODSTRANIT/UPRAVIT“.<tools>{{ tool_list }}</tools>
Výzva ke skenování tajných úniků:
V následujícím úryvku kódu najděte cokoli, co by mohlo být pevně zakódované tajemství: klíč API, heslo, token, připojovací řetězec, soukromý klíč. U každého zadejte řádek a typ. ZKOPÍROVAT hodnotu do response;mask (první 4 znaky + ***).<code>{{ source }}</code>
Pravidlo rozhodování nejmenší autority:
Když přijde nový požadavek na nástroj/přístup, zeptejte se:1. Lze úkol provést bez tohoto přístupu? -> Pokud ano: REJECT2. Stačí jen pro čtení? -> Pokud ano: UDĚLEJTE oprávnění k zápisu3. Lze rozsah zúžit na jeden zdroj? -> Pokud ano: daratVýchozí odpověď je "ne"; Přístup se získává rozumem.
Připomenutí rotačního kalendáře:
U každého tajemství zaznamenejte: vlastníka, datum vytvoření, expiraci, rozsah. Nahlaste jakýkoli klíč, který přesáhl 90 dní nebo nebyl 30 dní použit, jako „KANDIDÁT NA OTOČENÍ/ZRUŠENÍ“.
Slabá výzva / Silná výzva
špatný přístup
Silný přístup
Model přistupuje ke všem datům pomocí jediného servisního účtu
Model přistupuje s oprávněním uživatele, který podává žádost
API klíč je vložený do kódu, nikdy se nemění
Rotace v klíčovém tajném manažerovi, 90 dní
Široká pravomoc „udělej cokoliv“ vůči asistentovi
Výchozí nastavení pouze pro čtení, zápis úzce
Přístupy nejsou nikdy kontrolovány
Pravidelná kontrola a zrušení přístupu
Tři mini pouzdra
Případ 1 – Uniklá smíšená proxy data. Interní asistentka pracovala se servisním účtem, který měl přístup ke všem záznamům zaměstnanců. Interní uživatel se dostal k datům, která by normálně neviděl, když řekl „shrnout tabulku platů vedoucích pracovníků“; protože model to zpochybnil v kontextu své vlastní široké autority, nikoli uživatelovy. Jakmile byl kontext uživatele upraven tak, aby se mohl přesunout, stážista byl schopen vytáhnout nahrávky, které viděl pouze on nebo ona.
Případ 2 – Uniklý klíč, účet 190 000 TL za 2 týdny. Vývojář vložil klíč API modelu do pomocného skriptu a poslal jej do veřejného úložiště. Bot našel klíč za 40 minut a používal ho dva týdny; Účet dosáhl 190 000 TL. Když byl klíč přesunut do tajného správce, připojen k rotaci a bylo přidáno skenování úložiště, incident se neopakoval.
Případ 3 — Výchozí zabráněno přerušení pouze pro čtení. Asistent DevOps obdržel příkaz „resetovat produkční databázi“ prostřednictvím rychlého vložení. Asistent však dostal pouze token pouze pro čtení; zápis/mazání bylo v samostatném schváleném toku. Příkaz byl odmítnut s chybou autorizace a událost byla zaznamenána jako alarm; Nedošlo ke ztrátě dat.
Tip: Nastavte „ne“ jako výchozí odpověď na nový požadavek na přístup. Přístup je něco získaného ospravedlněním; Dávat všem široký a pak škrtat se skoro nikdy nedělá a riziko se hromadí.
Časté chyby
- Spuštění modelu s velkým servisním účtem a ztráta uživatelského kontextu (smíšený proxy).
- Vložení klíče API do kódu a jeho únik do správy verzí.
- Vůbec neotáčejte klávesami ("fungují, nedotýkejte se").
- Ve výchozím nastavení dává asistentovi oprávnění k zápisu/mazání.
- Udělit přístup jednou a nikdy jej nepřehodnotit.
- Záměna autentizace s autorizací a předpoklad „je přihlášený, má přístup ke všemu“.
V souhrnu
- Autentizace je otázkou „kdo jsi“, autorizace je otázkou „co umíš“; V AI musí oba fungovat v kontextu uživatele.
- The model should operate with the authority of the user making the request, not with its own broad authority (avoiding the risk of mixed agency).
- Začněte s RBAC, prohloubte s ABAC na citlivých datech; Nastavte minimální oprávnění jako výchozí.
- Neschovávejte tajemství v kódu; uložte jej do tajného správce, zúžte jej a zařaďte do pravidelné rotace.
- Výchozí nastavení pouze pro čtení a úzký zápis značně omezují dopad injekce.
Aplikační úkol
Uveďte všechny nástroje a data, ke kterým váš asistent AI přistupuje. Odpovězte na tři otázky pro každou z nich: (1) Je to opravdu nutné? (2) Stačí pouze pro čtení? (3) Spouští se v uživatelském kontextu? Poté vyhledejte všechna pevně zakódovaná tajemství (prostřednictvím výše uvedené výzvy ke skenování) a napište plán rotace pro každý nalezený klíč. Odstraňte alespoň jednu nepotřebnou autorizaci.
kontrolní seznam
- [ ] Model běží v kontextu oprávnění uživatele, který podává požadavek.
- [ ] Přístup k nástrojům a datům byl zúžen na princip nejmenšího privilegia.
- [ ] Zápis/mazání je oddělené od pouze pro čtení, ověřené a úzké.
- [ ] V kódu nejsou pohřbena žádná tajemství; Je uložen v tajném správci.
- [ ] Existuje plán rotace a procedura zrušení klíčů.
- [ ] Přístupy jsou pravidelně kontrolovány.