Компрометация цепочки зависимостей PyTorch

Оригинал: Compromised PyTorch Dependency Chain

Пакеты Linux для предварительной версии PyTorch под названием Pytorch-nightly были скомпрометированы с 25 по 30 декабря 2022 года из-за вредоносного двоичного файла, загруженного в репозиторий кода Python Package Index (PyPI). Вредоносный двоичный файл имел то же имя, что и зависимость PyTorch, и менеджер пакетов PyPI (pip) установил этот вредоносный пакет вместо легитимного.

Эта атака на цепочку поставок, также известная как «dependency confusion», раскрыла чувствительную информацию Linux-машин с затронутыми версиями PyTorch-nightly, установленными через pip. 30 декабря 2022 года PyTorch объявил об инциденте и первых шагах по снижению риска, включая переименование и удаление зависимостей torchtriton.

Процедура

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

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

    Вредоносный пакет зависимости с именем torchtriton был загружен в репозиторий PyPI с тем же именем, что и пакет, поставлявшийся со сборкой PyTorch-nightly.

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

    Вредоносный torchtriton устанавливался вместо легитимного пакета, потому что PyPI имел приоритет над другими источниками. Подробнее см. этот GitHub issue.

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

    AML.T0037 Данные из локальной системы

    Вредоносный пакет обследовал затронутую систему для базового фингерпринтинга, включая IP-адрес, имя пользователя и текущий рабочий каталог, а также похищал дополнительные чувствительные данные:

    • DNS-серверы из /etc/resolv.conf

    • имя хоста из gethostname()

    • текущее имя пользователя из getlogin()

    • имя текущего рабочего каталога из getcwd()

    • переменные окружения

    • /etc/hosts

    • /etc/passwd

    • первые 1000 файлов в каталоге $HOME

    • $HOME/.gitconfig

    • $HOME/.ssh/*.

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

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

    Вся собранная информация, включая содержимое файлов, отправлялась через зашифрованные DNS-запросы на домен *[dot]h4ck[dot]cfd с использованием DNS-сервера wheezy[dot]io.

Источники

  1. PyTorch statement on compromised dependency
  2. Analysis by BleepingComputer