Бесплатно Экспресс-аудит сайта:

20.01.2024

Минусы открытого кода: как взломать TensorFlow с помощью одного запроса

ИБ-компания Praetorian обнаружила в среде машинного обучения TensorFlow неправильные настройки системы непрерывной интеграции и доставки (continuous integration/continuous deployment, CI/CD), которые могли быть использованы для организации атак на цепочку поставок.

Согласно отчету Praetorian, неправильные настройки могли быть использованы для компрометации выпусков TensorFlow на GitHub и PyPi путем атаки на агентов сборки TensorFlow через вредоносный запрос на слияние ( Pull request ).

Успешное использование уязвимостей позволило бы удаленному атакующему загружать вредоносные релизы в репозиторий GitHub, достигать удаленного выполнения кода (Remote Code Execution, RCE ) на локальном автономном инструменте выполнения GitHub ( self-hosted runner ) и даже получить токен личного доступа GitHub (Personal Access Token, PAT ) пользователя tensorflow-jenkins.

TensorFlow использует GitHub Actions для автоматизации процесса сборки, тестирования и развертывания программного обеспечения. Средства выполнения, которые выполняют задания в рамках рабочего процесса GitHub Actions, могут быть размещены как самостоятельно, так и в GitHub.

Praetorian обнаружила рабочие процессы TensorFlow, выполняемые на self-hosted runner-ах, и нашла запросы на слияние от предыдущих участников, которые автоматически запускали соответствующие рабочие процессы CI/CD без необходимости одобрения. При этом разрешения GITHUB_TOKEN связанные с рабочим процессом, предоставляли обширные права на запись данных.

После ответственного раскрытия информации 1 августа 2023 года, недостатки были устранены разработчиками проекта к 20 декабря 2023 года следующими методами:

  • требование одобрения для рабочих процессов, представленных из всех запросов на слияние форков, включая запросы от предыдущих участников;
  • изменение разрешений GITHUB_TOKEN на «только для чтения» для рабочих процессов, выполняемых на самостоятельно размещенных средствах выполнения.

Исследователи отмечают, что атаки подобного рода на CI/CD растут, поскольку всё больше организаций автоматизируют свои процессы CI/CD. Компании, занимающиеся ИИ и машинным обучением особенно уязвимы, так как их рабочие процессы требуют значительных вычислительных мощностей, недоступных в раннерах GitHub, что приводит к распространению локальных средств выполнения.