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