В нашей практике нередко бывают случаи, когда мы размечаем RCE как «не представляет опасности».
Про это и хотим рассказать — когда на первый взгляд опасный баг оказывается вовсе не опасным и как не потратить своё время зря.
Сценарии, где это актуально:
1. Режим «Исследовать» у Алисы
2. Виртуальные машины и платформы запуска скриптов в Практикуме / CodeRun / Contest
3. Виртуальные машины для игр
По умолчанию всё это отдельные изолированные окружения. Поэтому само по себе RCE там не несёт опасности без связки с другими мисконфигами.
😀На что стоит обратить внимание, если хочется поглубже копнуть и как доказать импакт?
1️⃣Агенты в режиме «Исследовать»
Запускаются в serverless-окружении, которое создаётся под одного пользователя и удаляется после формирования ответа. Попробуйте получить данные других пользователей — разумеется, своих тестовых аккаунтов.
Например: в отдельном аккаунте запустите аналогичный диалог с Алисой и, получив RCE в обоих диалогах, попробуйте повлиять на окружение второй учётной записи или раскрыть историю вопросов и ответов.
2️⃣Обратиться к ресурсам из внутренней сети Яндекса (SSRF)
Контейнеры должны быть сетевым образом изолированы. Если вы считаете иначе — проверьте это через SSRF-Sherif.
3️⃣Выход за пределы контейнера (sandbox escape)
Если вы считаете, что можете влиять на контейнеры других пользователей или получить привилегии уровня гипервизора — расскажите нам об этом.
Для игровой платформы: попробуйте выйти за пределы игры и получить доступ к «рабочему столу». Если удастся сохранить доступ к выделенной рабочей станции дольше, чем длится игровая сессия, — это вдвойне интересно.
4️⃣Секреты и токены доступа
Предполагается, что в «одноразовом» контейнере не должно быть ценных технических секретов. Если вы их обнаружили — постарайтесь определить, к чему они относятся. Особенно интересуют credentials для внутренних и облачных сервисов.
Удачи!
