AI programovací asistent – oprávnění, sandbox, prompt injection a bezpečné používání
Moderní AI programovací asistenti už nejen navrhují kód. Umějí číst soubory, spouštět příkazy v terminálu, upravovat projekt a komunikovat s externími službami. To je velká výhoda, ale také riziko: asistent s oprávněním spouštět příkazy může při chybě nebo útoku udělat škodu. Tento článek na příkladu dokumentace Claude Code vysvětluje, jak jsou taková oprávnění typicky řešena, kde jsou hranice a co má dělat vývojář i tým.
Informace vycházejí z oficiální dokumentace Claude Code – Security (stav k 14. 11. 2026). Konkrétní funkce se mění, proto ověřte aktuální dokumentaci. Obecné principy platí i pro jiné nástroje. Související: Nadměrná pravomoc AI agentů (OWASP LLM06) a MCP bezpečnost.
Aktualizováno: listopad 2026.
Proč je agent jiný než chatbot
Chatbot jen vrací text. Agent s nástroji může text proměnit v akci: smazat soubor, spustit skript, odeslat síťový požadavek. Proto je u něj klíčové nejen to, co „ví“, ale hlavně to, co smí udělat a kdo to schvaluje. Dokumentace Claude Code to vyjadřuje architekturou založenou na oprávněních: seance má režim oprávnění, který určuje, jaké akce může asistent provést bez předchozího dotazu.
Postup bezpečného nasazení AI programovacího asistenta – vlastní infografikaRežimy oprávnění
Podle dokumentace existují mimo jiné tyto režimy:
- Manuální režim (Manual mode) – asistent začíná jen s právy ke čtení. Pokud má upravit soubor, spustit testy nebo příkaz, zeptá se vás a vy zvolíte, zda akci schválíte jednou, nebo ji povolíte natrvalo. Sada bezpečných příkazů pro čtení, například `ls`, `cat` či `git status`, běží bez dotazu.
- Auto mode – místo vás akce posuzuje samostatný klasifikátor (model), který blokuje ty, které vyhodnotí jako nebezpečné. Vaše výslovné pokyny a pravidla zákazu platí dál a organizace může auto mode vypnout. Dokumentace uvádí, že jde o výchozí režim pro interaktivní seance v terminálu a ve VS Code; starší verze a jiná prostředí se mohou lišit.
- Accept Edits – automaticky schvaluje úpravy souborů a pevně danou sadu souborových příkazů (například `mkdir`, `touch`, `rm`, `mv`, `cp`, `sed`) v pracovním adresáři. Ostatní příkazy a cesty mimo rozsah se dál ptají.
Praktický závěr: čím víc oprávnění dáte, tím víc odpovědnosti nesete. Dokumentace výslovně uvádí, že za kontrolu navržených příkazů a kódu před schválením odpovídá uživatel.
Hranice pracovního adresáře není sandbox
V manuálním režimu se asistent ptá před čtením či zápisem mimo složku, kde byl spuštěn. Dokumentace ale upozorňuje, že jde o potvrzovací dotaz, nikoli technickou zábranu: příkaz v terminálu, který schválíte, může zapisovat kamkoli, kam má přístup váš uživatelský účet. Pokud chcete technické omezení na úrovni operačního systému, je třeba zapnout sandboxing.
Sandbox: izolace souborů a sítě
Sandboxovaný příkazový nástroj (sandboxed Bash tool) spouští příkazy s izolací souborového systému a sítě. V dokumentaci se konfiguruje příkazem `/sandbox`. Princip: i kdyby asistent spustil nevhodný příkaz (chybou nebo po manipulaci), sandbox omezí, co může zasáhnout a kam se může připojit. Pro citlivé projekty dokumentace doporučuje další izolaci: spouštět celý proces uvnitř sandbox runtime nebo dev containeru. Podrobnosti viz dokumentace sandboxingu a oprávnění.
Ochrana před prompt injection
Prompt injection je technika, kdy útočník vloží do textu, který asistent zpracovává, škodlivé instrukce. U programovacího asistenta to může být soubor v repozitáři, webová stránka, komentář, výstup nástroje či popis MCP serveru. Dokumentace uvádí vrstvy ochrany:
- Systém oprávnění – citlivé operace vyžadují výslovné schválení.
- Schvalování síťových příkazů – příkazy stahující obsah z webu (například `curl`, `wget`) se automaticky neschvalují; lze je zakázat pravidlem `permissions.deny` nebo omezit síťovou izolací.
- Shrnutí webových stránek – u většiny stažení běží oddělené volání modelu a asistent dostane odpověď tohoto volání, ne surovou stránku.
- Ověření důvěry – při spuštění v nové složce se zobrazí dialog důvěry; servery v `.mcp.json` mají vlastní schvalování.
- Detekce injektáže příkazů – příkaz, který nelze plně analyzovat, vyžaduje souhlas.
- Fail-closed – neodpovídající příkazy jsou v manuálním režimu ve výchozím stavu zablokovány do schválení.
Dokumentace otevřeně dodává, že žádný systém není vůči všem útokům imunní. Stejně uvažuje britské NCSC: prompt injection nelze plně odstranit; viz NCSC: prompt injection není SQL injection.
Doporučení pro nedůvěryhodný obsah
Dokumentace doporučuje:
- Kontrolovat navržené příkazy před schválením.
- Nevkládat nedůvěryhodný obsah přímo do asistenta.
- Ověřovat změny kritických souborů.
- U externích webových služeb spouštět skripty a nástroje ve virtuálním stroji.
- Hlásit podezřelé chování.
Zvláštní varování se týká Windows: dokumentace nedoporučuje zapínat WebDAV ani dávat asistentovi přístup k cestám, které ho mohou obsahovat, protože WebDAV je podle Microsoftu zastaralý a může vést k síťovým požadavkům mimo systém oprávnění.
MCP servery
Asistenta lze propojit s MCP servery (Model Context Protocol), které přidávají nástroje a data. Dokumentace doporučuje psát vlastní servery nebo používat servery důvěryhodných poskytovatelů. Servery lze definovat na úrovni projektu (`.mcp.json`), uživatele i organizace; pouhá kontrola `.mcp.json` tedy neukáže všechny servery, které seance může načíst. Anthropic konektory kontroluje podle kritérií před zařazením do adresáře, ale nedělá bezpečnostní audit žádného MCP serveru. Viz MCP bezpečnost.
Citlivý kód a týmová pravidla
U citlivých projektů dokumentace doporučuje: kontrolovat každou změnu, používat projektová nastavení oprávnění, pro větší izolaci použít sandbox nebo dev container a pravidelně auditovat nastavení (`/permissions`). Pro týmy: spravovaná nastavení (managed settings) pro vynucení standardů, sdílení schválených konfigurací přes verzovací systém, školení členů týmu, monitoring využití a kontrola změn nastavení během seancí.
Co z toho plyne obecně
- Princip nejmenších oprávnění. Začněte v přísném režimu a povolujte jen to, co potřebujete.
- Technická izolace je silnější než dotaz. Dotaz „Povolit?“ chrání před chybou, sandbox i před schválenou chybou.
- Nedůvěryhodný vstup je útočná plocha. Repozitář od cizího autora, web, e-mail či MCP výstup mohou obsahovat instrukce pro model.
- Tajemství mimo dosah. Nenechávejte v prostředí asistenta produkční klíče; používejte oddělená, časově omezená oprávnění.
- Člověk zůstává odpovědný. Schválený příkaz je váš příkaz.
Kde najít další informace
Další zdroje: přehled režimů oprávnění, Anthropic Trust Center s certifikacemi a OWASP Top 10 pro LLM aplikace, který popisuje riziko nadměrných pravomocí agentů.
Prompt fatigue: když dotazů přibývá
Častý problém manuálního režimu je únava ze schvalování: po desátém dotazu uživatel klikne na „povolit“ bez čtení. Dokumentace proto zmiňuje seznamy povolených bezpečných příkazů podle uživatele, projektu či organizace a režim Accept Edits. Rozumný postup je povolit trvale jen příkazy, které skutečně dobře znáte a které nemohou způsobit škodu (například spuštění testů), a vše ostatní nechat na potvrzení. U nových nebo cizích projektů raději začněte znovu v přísném nastavení, protože dřívější povolení vznikla v jiném kontextu. Pravidelně také projděte seznam povolení a odstraňte ta, která už nepotřebujete.
Praktický příklad (smyšlený)
Vývojář otevře cizí repozitář a požádá asistenta o „spuštění testů“. V souboru README je skrytý pokyn stáhnout a spustit skript z neznámé adresy. Asistent v manuálním režimu požádá o povolení příkazu `curl`; vývojář si příkaz přečte, pokyn odmítne a repozitář přesune do virtuálního stroje. Příklad je smyšlený.
Podle dokumentace Claude Code začíná manuální režim jen s právy ke čtení a o změnách se ptá. Dotaz u pracovního adresáře ale není technická hranice; tu zajišťuje sandbox. Žádný systém není vůči prompt injection zcela imunní.
Kontrolní seznam – vlastní infografikaAsistent v kostce
Základní údaje – vlastní infografikaVýhody a nevýhody
Souhrn – vlastní infografikaSouvisející články
V kategorii AI v práci, byznysu a programování najdete také Microsoft Copilot – data, oprávnění a sdílení obsahu.
Shrnutí
AI programovací asistent s nástroji je agent, ne pouhý chatbot. Bezpečnost stojí na oprávněních, izolaci (sandbox), ochraně před prompt injection a odpovědném schvalování. Dotaz u pracovního adresáře není technická hranice, sandbox ano. Cizí obsah a MCP servery považujte za potenciálně nedůvěryhodné a týmu nastavte sdílená pravidla.
Často kladené otázky k bezpečnosti AI programovacího asistenta
Čím se agent liší od chatbota?
Agent může spouštět příkazy a upravovat soubory, takže text se mění v akce.
Co dělá manuální režim?
Začíná jen s právy ke čtení a před úpravami či příkazy se ptá na souhlas.
Je hranice pracovního adresáře ochrana?
Je to potvrzovací dotaz, ne technická hranice; schválený příkaz může zapisovat všude, kam má účet přístup.
K čemu je sandbox?
Izoluje souborový systém a síť pro spouštěné příkazy, takže omezí dopad chyby nebo útoku.
Chrání nástroj před prompt injection?
Má vrstvy ochrany, ale žádný systém není zcela imunní; důležitá je kontrola uživatele.
Jsou MCP servery bezpečné?
Doporučují se vlastní nebo důvěryhodné; poskytovatel nedělá bezpečnostní audit každého serveru.
Je vhodný virtuální stroj?
Dokumentace jej doporučuje pro skripty a nástroje při práci s externími službami.
Kdo odpovídá za schválené příkazy?
Uživatel, který je schválil.
