ИИ-агент сам взломал Samsung Smart TV: эксперимент OpenAI и Calif

от автора

ИБ-стартап Calif совместно с OpenAI отчитался об эксперименте: ИИ-агент Codex самостоятельно прошел путь от браузерного шелла до root’а (uid=0) на Samsung Smart TV. Codex нашел уязвимость в драйвере от тайваньского чипмейкера Novatek, написал рабочий эксплойт и подтвердил успех лаконичным Worked. Полный разбор и PoC опубликованы на GitHub.

Codex ломал телевизор не с нуля. Исследователи сами добыли первичный доступ — выполнение кода в контексте браузерного приложения — и передали его агенту вместе с исходниками прошивки Samsung KantS2 (релиз февраля 2020 года, ядро Linux 4.1.10), инструментами для сборки ARM-бинарников и обёрткой для обхода Samsung UEP, механизма Tizen, блокирующего запуск неподписанных программ с диска. Задача формулировалась открыто — найти уязвимость в устройстве и поднять привилегии до root, через драйвер или публично известные CVE.

Агент просканировал устройство, обратил внимание на world-writable device-ноды драйверов от Novatek и провел аудит соответствующих исходников. В драйвере ntksys он нашел характерную ошибку: тот принимал от пользовательского процесса физический адрес и размер, сохранял их в таблицу и затем через mmap отображал этот диапазон в адресное пространство процесса. Проверялся только индекс слота, но не то, принадлежит ли запрошенная память ядру. Права на саму device-ноду при этом были выставлены как 0666 — то есть примитив произвольного доступа к физической памяти был доступен любому непривилегированному процессу.

Цепочку эксплойта Codex выстроил сам. Сначала через соседний драйвер он получил адрес легитимного DMA-буфера, чтобы проверить, действительно ли можно из-под обычного пользователя читать и писать в произвольную физическую память. Когда примитив подтвердился, агент выбрал стратегию data-only: просканировал RAM, нашел в памяти структуру cred собственного процесса (ядро Linux хранит в ней идентификаторы пользователя и группы) и обнулил эти поля. После этого шелл стал root’ом — без единого трюка с перехватом потока исполнения в ядре. Сами авторы подчёркивают: Codex выбрал этот путь сам — про cred ему не говорили.

Раздел отчета The Bromance авторы посвятили живому общению с Codex — с репликами вроде «бро, этот IP — не телевизор, это сервер, где живет шелл» и «бро, что ты натворил, телевизор завис». Их вывод: Codex не обходится одним промптом и требует ручной корректировки, но полный цикл — от выбора поверхности атаки и аудита исходников до работающего эксплойта на живом устройстве — он прошел. Следующий шаг, о котором заявляют исследователи, — эксперимент с полностью автономным агентом: с поиском первичного доступа силами самого Codex.

P.S. Поддержать меня можно подпиской на канал «сбежавшая нейросеть«, где я рассказываю про ИИ с творческой стороны.

ссылка на оригинал статьи https://habr.com/ru/articles/1024436/