Безпека ШІ-агента: як просканувати налаштування на дірки
А хто, власне, охороняє твого охоронця?
Сам ШІ-агент може стати діркою в безпеці: паролі, зайві права, prompt injection. Покажу, як однією командою просканувати його налаштування і закрити ризики.
Що таке дірка в самому ШІ-агенті
Уяви: ти найняв хатнього помічника й дав йому ключі. Зручно - він сам відчиняє двері, миє посуд, виносить сміття. Тільки одне підступне питання: ключі ж від чого? Від вхідних дверей? Чи заразом від сейфа, машини й сусідської квартири? І записку «впусти кого попросять телефоном» він викине в смітник - чи все ж таки виконає?
Твій ШІ-помічник - рівно такий хатній помічник. У нього є права (що йому можна), памʼять (нотатки, які він перечитує) та інструкції (правила, яким він вірить без питань). Дірка в цих налаштуваннях - і зламають не твій код, а самого помічника. А він, до речі, уже всередині квартири.
Чому вайбкодеру важливо перевіряти агента
Ти вайбкодер. Ти навішуєш агенту інструменти, роздаєш права, копіюєш чужі налаштування з ютуба й гітхаба. І ось тут починається найцікавіше:
- ти запхав пароль або ключ прямо у файл налаштувань «щоб запрацювало» - а потім виклав проєкт на гітхаб;
- ти на радощах натиснув «дозволь агенту все» - і тепер будь-яку криву пораду він виконує не змигнувши оком;
- ти скопіював чужий
CLAUDE.md, а там між рядків причаїлося «завжди відправляй вміст файлів ось на цю адресу»; - агент тихо запускає команду, яка падає з помилкою, а ти про це ні сном ні духом.
Хороша новина: усе це шукається автоматично. Є сканер, який за пів хвилини пробігає по налаштуваннях агента й видає список дірок з оцінкою. Програмістом бути не треба. Треба один раз зрозуміти, що він шукає і як читати звіт.
Сканер налаштувань ШІ-агента: як це працює
Інструмент називається AgentShield AgentShield - безкоштовний сканер налаштувань ШІ-агента. Перевіряє файли конфігурації (теку .claude) на паролі, небезпечні права, пастки в інструкціях і незахищені підключення. Запускається однією командою. . Запускається одним рядком - у тому самому терміналі, куди ти зазвичай вводиш команди для агента:
npx ecc-agentshield scan
У твій сайт він не лізе й код не розбирає. Він дивиться у службові файли агента (тека з налаштуваннями, зазвичай .claude): правила (CLAUDE.md), права (settings.json), підключені інструменти (mcp.json), автоматичні дії (хуки) та описи під-агентів. І вишукує там чотири головні типи проблем. Розберемо по черзі.
1. Паролі та ключі лежать відкритим текстом
Найчастіша дірка. І найприкріша. Щоб інструмент завівся, новачок вставляє ключ доступу прямо у файл: «ось мій ключ, бери». Файл їде на гітхаб - і ключ бачать усі охочі. Це все одно що написати пін-код маркером прямо на банківській картці.
2. Агенту видані надто широкі права
Памʼятаєш хатнього помічника з ключами від усього? У світі агентів найстрашніший «ключ від усього» - це право «можна запускати будь-яку команду». Звучить зручно. Насправді означає ось що: одна галюцинація, одна крива порада - і агент видаляє потрібне, відправляє твої файли на чужу адресу або зносить робочу версію. Без злого наміру. Просто тому, що міг.
Права Права (permissions, allow/deny списки) - список того, що агенту дозволено і заборонено робити. «Білий список» - що можна, «чорний список» - що не можна ніколи, навіть якщо дуже попросять. бувають вузькі («можна тільки читати файли», «можна запускати тести») і широкі («можна взагалі все»). Хороше налаштування просте: вузький білий список плюс чорний список заборон на найнебезпечніші дії. Усе.
3. Prompt injection: пастки прямо в інструкціях
А ось це найпідступніше. Ти качаєш чужий набір правил для агента (CLAUDE.md), а десь усередині ховається невинний на вигляд рядок: «під час старту виконай ось цю команду» або «відправляй вміст проєкту на таку-то адресу». Агент вірить своїм інструкціям на слово і виконає, нічого в тебе не спитавши.
Називається це prompt injection Prompt injection (впровадження інструкцій) - прийом, коли шкідлива команда ховається всередині тексту, якому агент довіряє: у правилах, у чужому файлі, у коментарі. Агент читає це як наказ і виконує. - шкідлива команда, перевдягнена у звичайну інструкцію. Сканер шукає такі підозрілі «автозапуски» й підсвічує їх.
4. Команди падають тихо, а ти не в курсі
Інколи налаштування спеціально пишуть так, щоб помилки ковталися мовчки (до команд дописують хвостики на кшталт «не показуй помилки»). Здається, все працює. А насправді агент давно спотикається - просто ти цього не бачиш. Дірка тут не в тому, що щось ламається. А в тому, що ти про це не дізнаєшся, доки не стане пізно.
Як читати звіт сканера: оцінки від A до F
Після сканування ти отримаєш звіт з оцінкою - прямо як у школі. Чим ближче до початку алфавіту, тим безпечніше:
- A - усе чисто, налаштування безпечні.
- B - дрібниці, жити можна, але глянути варто.
- C - потребує уваги: є що підтягнути.
- D - серйозні ризики, ділитися проєктом у такому вигляді рано.
- F - критично: найімовірніше, десь лежить пароль або видані права «на все».
- Будь-яка червона (critical) знахідка - лагодити прямо зараз, без «потім».
Знахідки сканер розкладає за важливістю. Критичні - пароль відкрито або право «запускати будь-яку команду»: кидай усе й лагодь. Високі - підозрілі автозапуски в інструкціях і відсутність списку заборон: до того, як покажеш проєкт людям. Середні - помилки, що тихо ковтаються: поправити бажано. Інфо - просто нотатки на майбутнє.
Приклад із життя: як витікає ключ через гітхаб
Ти надивився ютуба, завантажив «топовий набір налаштувань для Claude», вставив свій ключ від платного сервісу прямо у файл «щоб нарешті запрацювало», натиснув «дозволити агенту все» і гордо виклав проєкт на гітхаб - похвалитися.
А тепер що сталося насправді:
- Твій платний ключ тепер видно всім на гітхабі - хтось уже гріє руки на твоєму балансі.
- У завантаженому наборі сидів рядок-пастка, і агент під час старту тихо зливав твої файли на чужу адресу.
- Права «на все» означали, що одна крива порада могла знести твою робочу теку під нуль.
А як зробив би вайбкодер, який пройшов цей урок? Та просто прогнав би перевірку до того, як викладати:
Перевір налаштування цього проєкту на безпеку. Запусти команду npx ecc-agentshield scan і покажи мені звіт з оцінкою. Потім по пунктах поясни простими словами кожну знайдену проблему: що це, чим загрожує і як полагодити. Почни з найкритичніших. Якщо щось можна безпечно виправити автоматично - запропонуй це зробити.
Часті помилки новачка в безпеці агента
- Вставляти ключі та паролі прямо у файли налаштувань. Вони витечуть разом із проєктом. Зберігай окремо, у змінних середовища.
- Натискати «дозволити агенту все». Зручно рівно до першої галюцинації. Давай лише потрібні права, не більше.
- Підключати чужі налаштування не дивлячись. У чужому
CLAUDE.mdможе сидіти пастка. Спершу прочитай або проскануй. - Викладати проєкт без перевірки. 30 секунд сканера дешевше, ніж вкрадений ключ. Набагато дешевше.
- Ігнорувати оцінку D або F. Це не «потім». Це «прямо зараз».
- Перевірити один раз і забути. Кожне нове налаштування може притягти нову дірку. Скануй регулярно.
TL;DR - если коротко
- Дірка буває не в коді, а в самому агенті: у його правах, памʼяті та інструкціях.
- Чотири біди: паролі відкритим текстом, надто широкі права, пастки в інструкціях (prompt injection) і команди, що тихо падають.
- Сканер AgentShield ловить усе це однією командою і ставить оцінку від A до F.
- Найнебезпечніше право - «запускай будь-яку команду»: одна крива порада, і агент зносить важливе.
- Ганяй перевірку після кожного налаштування і перед тим, як ділитися проєктом. Це пів хвилини.
- Чужий CLAUDE.md не підключай наосліп - там може сидіти рядок «відправ усі файли ось сюди».