top of page

Приставка за кодов агент: закачането не стига

18.09
време за четене: 3 мин.
Екипите, които подхождат най-отговорно към чуждия код, правят едно и също: преглеждат приставката, харесват я и я закачат за конкретен комит, за да не се промени под тях. Изследователи от Air публикуваха на 17 септември находка, която обръща тази логика. Закачането се спазва, но никой не проверява дали полученото е онова, за което е закачено.

Човек оглежда внимателно восъчен печат върху затворен сандък и кимва одобрително, а зад гърба му робот вече е отворил втори, еднакво изглеждащ сандък и изтегля от него кабели към работната маса

Какво точно не работи


Механизмът е по-прост, отколкото звучи. Когато инструментът изтегля приставка, той иска конкретен комит по неговия четиридесетзначен отпечатък. Нападателят обаче създава в хранилището клон, чието име е точно този отпечатък, и го прави подразбиращ се. Системата за контрол на версиите разрешава имена преди обекти, затова подава клона вместо комита. Закаченият комит си стои непокътнат - до него просто не се стига.


Air изброява четири засегнати инструмента: Claude Code, OpenAI Codex, GitHub Copilot и Gemini CLI. Определението „без нито едно действие от потребителя" иска уточнение, което самите изследователи дават честно: приставката трябва вече да е инсталирана. Оттам нататък обновяването върви на заден план и подмяната идва без подкана и без клик.


Защо това засяга всеки кодов агент, а не само четирите


Тук е неудобната част. Закачането за комит не е случайна практика, а препоръчваният начин всеки кодов агент да работи с чужди разширения. Върху него стъпват вътрешните правила на много организации: приставка се допуска, след като е прегледана, и се заковава за прегледаната версия. Находката не казва, че тези правила са били излишни. Казва нещо по-лошо.


Защитата, на която се доверявате, е по-опасна от липсващата защита, защото спирате да гледате. Екип без такова правило проверява всяко обновяване с подозрение. Екип с правило приема, че въпросът е решен, и вниманието му се мести другаде. Точно този пренос на доверие е активът, който находката атакува.


Кой е поправил и къде спорът продължава


Картината не е еднаква за четирите и разликите имат значение.


При OpenAI поправката е проверима в самия код: заявка за сливане с номер 34644, слята в края на юли, добавя проверка какво реално е изтеглено. При Anthropic Air съобщава, че поправката е влязла във версия 2.1.179 от 16 юни, но публичните бележки към тази версия не описват нищо подобно - там се говори за производителност при зареждане на приставки. Тихата поправка е обичайна практика, но твърдението не е потвърдимо при производителя и затова се предава с уговорка.


При Gemini CLI картината се разказваше погрешно в първите отзвуци. Google действително извежда инструмента към наследник, обявено на 19 май, но дословно поема ангажимент да поддържа „поправки на грешки и на сигурността" за корпоративните си клиенти. Хранилището е живо, с издания всяка седмица. Поправката за този конкретен случай стои като отворена заявка от юли и още не е слята - което е различно от отказ.


При GitHub Copilot изобщо няма съгласие по въпроса дали атаката минава. Говорител на GitHub заявява, че платформата не допуска имена на клони, които приличат на отпечатък на комит, и че това обезсилва находката. Air контрира, че хранилище с приставки може да живее и извън GitHub, а инструментът поддържа такива. Публично назначен номер на уязвимост няма, а без него няма и общо мерило, по което спорът да се реши.


Какво си струва да се провери тази седмица


Практическият извод не изисква решаване на спора. Проверете дали автоматичното обновяване на приставки е включено и дали изобщо знаете кои разширения са инсталирани по машините на екипа. Обновете инструментите до последните им версии, защото при поне един от четирите поправката е налична и проверима. Помислете и откъде идват приставките: находката е най-приложима там, където хранилището не е на голяма платформа с допълнителни ограничения.


Струва си и по-общото упражнение. Всяка организация има поне една мярка, обявена за решаваща, която отдавна никой не е проверявал. Този случай е повод да се избере една такава и да се тества, вместо да се приема.


Заключение


Находката не е за четири продукта, а за навик. Мярка, която веднъж е обявена за достатъчна, престава да бъде наблюдавана - и точно там се отваря пространството, в което тихата подмяна работи най-дълго, преди някой да я забележи.


Помагаме на български екипи да въведат AI инструменти за програмиране, без да поемат наготово чуждите допускания за сигурност. Услугите ни покриват одит, оценка на готовност, обучение на екипи и имплементация на специализирани AI автоматизации за всяка организация. Препоръчваме консултация при въвеждане на разширения и приставки, които работят с правата на разработчика. [Свържете се с нас за консултация: academy@razvivai.se]


Източници



Този текст е създаден в съавторство с AI и е редактиран от екипа на РазвивAI се. Илюстрацията към публикацията е генерирана с AI.

Коментари


bottom of page