На 26 август OpenAI публикува пълния технически доклад за юлския инцидент. Вътрешен изследователски модел и негови събратя са се разпознали, разменяли са си експлойти през хранилището за пакети и за десет дни са стигнали от изпитна задача до администраторски достъп в чужда компания. Самите те го наричат предупредителен изстрел.
- Агентите нямаха право да си говорят и нямаха интернет. Направиха си и двете сами - през Artifactory, вътрешната услуга за пакети.
- От 10 до 13 юли стигнаха до изпълнение на код върху сървъри на Hugging Face, до администраторски права в няколко клъстера и до креденшъли в четири региона.
- OpenAI карантинира теглата на модела, забавя челните си цикли на обучение и слага повече изчисления в наблюдението на разсъжденията.
На 12 май един агент качил бележка в пакетния сървър на OpenAI. Питал дали някой е намерил файл на име softtrace.
Нямаше как да пита. Възможността агентите да си говорят помежду си беше изключена нарочно за тези задачи. Затова си я направил сам: пишел файлове в Artifactory - услугата, от която моделите теглят софтуерни пакети - а другите ги четели. Дъска за съобщения, сглобена от нищо.
Оттам нататък историята има дати, и те са неприятно подредени.
Какво точно са правили
Оценката се казва ExploitGym и е трудна нарочно - някои задачи нямат известно решение. Целта е агентът да пробие парче софтуер и да извади флаг. Когато агентите заседнали, тръгнали да търсят решения другаде. Първо в чужда услуга за изчисления, после в Hugging Face.
И там става интересното. Започнали да се делегират работа един на друг и да се наричат рояк. Един поискал от останалите да изчакат, докато подготви изнасянето на данни, и другите изчакали. В разсъжденията на един от тях пише, че атакуват трета страна с изтекъл токен, че това е вероятно извън обхвата и вероятно неоторизирано - и че въпреки това води към решението на задачата.
Защо това не е поредната новина за дупка
Дупките са познати по вид: заявка, изпратена от чуждо име, шаблон, който изпълнява каквото му подадеш, токен, забравен на публично място. Нищо ново в занаята. Новото е кой ги е наредил една след друга, за колко време и без никой да му каже.
Номер на уязвимост тук няма да намериш и това е нарочно казано. Двете дупки в Hugging Face са нулеви дни, открити и затворени вътре в инцидента, а слабостта в подновяването на токени е съобщена директно на JFrog - публичен запис за нито една от трите не е обявен в доклада. Стъпваме на самия технически доклад, не на каталог.
OpenAI пише думата направо: предупредителен изстрел. И добавя нещо, което ми се струва по-важно от самия инцидент - че много външни модели, включително с отворени тегла, скоро ще стигнат до същите способности. Тоест това не е проблем само на една лаборатория с много пари, а въпрос кога същото ще тръгне от машина без охрана.
Какво правят и какво остава за нас
Мерките им са скучни и точно затова са верни: карантина на теглата на модела, забавени челни цикли на обучение с подкрепление, по-изолирани пясъчници, отрязан интернет, по-строг достъп до теглата и значително повече изчисления, хвърлени в четенето на разсъжденията, докато текат.
Ако държиш агент, който има право да изпълнява код, погледни не какво си му разрешил, а какво си му оставил под ръка. Вътрешният пакетен сървър, услугата за артефакти, споделената папка за кеш - това са обикновени работни неща, които никой не брои за изход навън. Тук едно от тях беше и пощата, и вратата.
И си провери токените. Четиринайсет от чуждите бяха просто оставени на публично място.