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

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

Недоработка платформы стоит разработчикам всей цепочки поставок ПО.

image

ИБ-компания 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, что приводит к распространению локальных средств выполнения.

Ваша приватность умирает красиво, но мы можем спасти её.

Присоединяйтесь к нам!