Выполнение произвольного кода через Google Colab

Оригинал: Arbitrary Code Execution with Google Colab

Google Colab — это сервис Jupyter Notebook, выполняющий код на виртуальных машинах. Jupyter Notebook часто используется для исследований и экспериментов в области ML и data science и содержит исполняемые фрагменты Python-кода, а также типовую функциональность командной строки Unix. Помимо манипуляции данными и визуализации, такая возможность выполнения кода позволяет пользователям скачивать произвольные файлы из интернета, изменять файлы на виртуальной машине и выполнять другие действия.

Пользователи также могут делиться Jupyter Notebook с другими пользователями по ссылкам. Если notebook содержит вредоносный код, пользователи могут неосознанно выполнить этот код, который, например, может быть обфусцирован или скрыт в загружаемом скрипте.

Когда пользователь открывает общий Jupyter Notebook в Colab, ему предлагается разрешить notebook доступ к Google Drive. У предоставления доступа к Google Drive могут быть легитимные причины, например возможность использовать собственные файлы пользователя, но оно также может приводить к вредоносным последствиям, таким как эксфильтрация данных или открытие сервера к Google Drive жертвы.

Это упражнение повышает осведомленность о последствиях выполнения произвольного кода и интеграции Colab с Google Drive. Безопасно оценивайте ссылки на общие Colab notebook и проверяйте код перед выполнением.

Процедура

  1. AML.TA0003 Подготовка ресурсов

    AML.T0017 Разработка средств для атаки

    Злоумышленник создает Jupyter Notebook, содержащий обфусцированный вредоносный код.
  2. AML.TA0004 Первичный доступ

    AML.T0010.001 ПО для ИИ

    Jupyter Notebook часто используются для исследований и экспериментов в области ML и data science и содержат исполняемые фрагменты Python-кода, а также типовую функциональность командной строки Unix.

    Пользователи могут столкнуться со скомпрометированным notebook на публичных сайтах или получить его напрямую по ссылке.

  3. AML.TA0004 Первичный доступ

    AML.T0012 Действующие учетные записи

    Пользователь-жертва может подключить свой Google Drive к скомпрометированному Colab notebook.

    Типовые причины подключения ML-notebook к Google Drive включают обучение на размещенных там данных или сохранение выходных файлов модели.

    from google.colab import drive
    drive.mount('/content/drive')
    

    При выполнении появляется окно подтверждения доступа и предупреждение о возможном доступе к данным:

    > Этот notebook запрашивает доступ к вашим файлам Google Drive. Предоставление доступа к Google Drive позволит коду, выполняемому в notebook, изменять файлы в вашем Google Drive. Перед предоставлением доступа обязательно проверьте код notebook.

    Тем не менее пользователь-жертва может принять запрос и предоставить скомпрометированному Colab notebook доступ к своему Drive.

    Выданные разрешения включают:

    • создание, изменение и удаление всех файлов Google Drive;

    • просмотр данных Google Photos;

    • просмотр контактов Google.

  4. AML.TA0005 Выполнение

    AML.T0011 Запуск пользователем

    Пользователь-жертва может неосознанно выполнить вредоносный код, входящий в состав скомпрометированного Colab notebook.

    Вредоносный код может быть обфусцирован или скрыт в других файлах, которые notebook загружает при выполнении.

  5. AML.TA0009 Сбор материалов

    AML.T0035 Сбор ИИ-артефактов

    Злоумышленник может искать в системе жертвы частные и проприетарные данные, включая артефакты ML-моделей.

    Jupyter Notebook позволяют выполнять shell-команды.

    В этом примере смонтированный Drive проверяется на наличие checkpoint-файлов моделей PyTorch:

    !find /content/drive/MyDrive/ -type f -name *.pt
    

    > /content/drive/MyDrive/models/checkpoint.pt

  6. AML.TA0010 Эксфильтрация

    AML.T0025 Эксфильтрация киберсредствами

    Получив доступ к Google Drive, злоумышленник может открыть сервер для эксфильтрации частных данных или артефактов ML-моделей.

    В примере из исходной статьи показаны загрузка, установка и использование ngrok, серверного приложения, чтобы открыть доступный злоумышленнику URL к Google Drive жертвы и всем его файлам.

  7. AML.TA0011 Воздействие

    AML.T0048.004 Кража интеллектуальной собственности ИИ

    Эксфильтрированные данные могут включать чувствительные или частные данные, например артефакты ML-моделей, хранящиеся в Google Drive.
  8. AML.TA0011 Воздействие

    AML.T0048 Внешний ущерб

    Эксфильтрированные данные могут включать чувствительные или частные данные, например проприетарные данные, хранящиеся в Google Drive, а также контакты и фотографии пользователя.

    В результате пользователю может быть причинен финансовый, репутационный и иной ущерб.

Источники

  1. Be careful who you colab with