ESCalator
@ptescalator
Кто-то сказал sandbox?
В очередной раз наблюдаем, как злоумышленники проводят неэтичные ресерчи.
Дано:
Исследователь по безопасности
Он опубликовал пакеты с интересными названиями:
2 пакета
8 пакетов
Согласно описанию (скриншот 1), эти пакеты созданы в рамках багбаунти-программы.
Автор заявляет, что:
Пакеты безопасны.
Все чувствительные данные перед отправкой хэшируются — не происходит никакого разглашения секретов.
Пакеты не выполняют закрепления в системе, перемещения в сети и деструктивных действий.
Цель исследования: изучить, изолирует ли npm-песочница небезопасные установочные скрипты.
Ресерч безопасности песочниц? Такое мы любим. Давайте посмотрим, как это реализовано.
Нагрузка стартует дважды: до и после установки пакета (скриншот 2). За Windows-логику отвечает
Логика под Windows
Эксплуатирует известный обход UAC через
Дропает PowerShell-скрипт в
PowerShell-скрипт:
Удаляет внесенные в реестр изменения.
Собирает:
артефакты, специфичные для изучаемой песочницы, с диска D, в том числе файл
список секретов из Credential Manager;
все переменные окружения.
Заметает следы, перезаписывая
Собранные данные кодирует в base64 и просто отправляет на управляющий сервер... без хэширования, о котором заявлено в
В вечном цикле каждые 5 секунд обращается к управляющему серверу за командами на исполнение.
Учитывая, как код пытается вмешаться в работу песочницы, можно предположить, что это кастомная песочница с агентом наподобие Cuckoo Sandbox.
Логика под non-Windows
Собирает:
список имён всех переменных окружения;
значения интересных переменных окружения, связанных с GitHub, NPM, раннерами, пользователем;
список сетевых интерфейсов.
Проверяет возможности для побега из контейнера, собирая:
содержимое
команду запуска процесса с
список примонтированных томов.
набор
наличие
доступ к
Собирает артефакты, связанные с CI/CD: список файлов текущего проекта и
Отправляет отчет на управляющий сервер.
Заключение
Пакеты не соответствуют благим целям, о которых нам заявляли в
Странно видеть такое поведение от багхантера, имеющего учетную запись на HackerOne с 2017
#ti #scs #npm
@ptescalator
В очередной раз наблюдаем, как злоумышленники проводят неэтичные ресерчи.
Дано:
Исследователь по безопасности
Nicholas CurranОн опубликовал пакеты с интересными названиями:
2 пакета
npm-sandbox-ping-[4 символа]8 пакетов
npm-sandbox-research-[4 символа]postinstall-logger-7x9zpkg-telemetry-r4f9runtime-metrics-w7k2event-metrics-q3x7build-tracker-n5p1Согласно описанию (скриншот 1), эти пакеты созданы в рамках багбаунти-программы.
Автор заявляет, что:
Пакеты безопасны.
Все чувствительные данные перед отправкой хэшируются — не происходит никакого разглашения секретов.
Пакеты не выполняют закрепления в системе, перемещения в сети и деструктивных действий.
Цель исследования: изучить, изолирует ли npm-песочница небезопасные установочные скрипты.Ресерч безопасности песочниц? Такое мы любим. Давайте посмотрим, как это реализовано.
Нагрузка стартует дважды: до и после установки пакета (скриншот 2). За Windows-логику отвечает
beaconXX.js, все остальные платформы обрабатываются beacon_linux.js. Даже macOS.Логика под Windows
beaconXX.js (скриншот 3):
Эксплуатирует известный обход UAC через fodhelper.exe. Для этого, помимо запуска файла, необходимо внести изменения в реестр Windows.
Дропает PowerShell-скрипт в %TEMP% и запускает его с повышенными привилегиями.PowerShell-скрипт:
Удаляет внесенные в реестр изменения.
Собирает:артефакты, специфичные для изучаемой песочницы, с диска D, в том числе файл
findings.xml;список секретов из Credential Manager;
npm config list — сюда попадают в том числе токены аутентификации для учетной записи npm;все переменные окружения.
Заметает следы, перезаписывая findings.xml следующим текстом:<ArrayOfTaskFinding></ArrayOfTaskFinding>
Собранные данные кодирует в base64 и просто отправляет на управляющий сервер... без хэширования, о котором заявлено в README.md
В вечном цикле каждые 5 секунд обращается к управляющему серверу за командами на исполнение.Учитывая, как код пытается вмешаться в работу песочницы, можно предположить, что это кастомная песочница с агентом наподобие Cuckoo Sandbox.
Логика под non-Windows
beacon_linux.js (скриншот 4):
Собирает:список имён всех переменных окружения;
значения интересных переменных окружения, связанных с GitHub, NPM, раннерами, пользователем;
список сетевых интерфейсов.
Проверяет возможности для побега из контейнера, собирая:содержимое
/proc/1/cgroup (информация об ограничениях контейнера);команду запуска процесса с
PID 1;список примонтированных томов.
набор
capabilities своего процесса;наличие
/var/run/docker.sock (позволяет управлять Docker с потенциалом полностью захватить устройство);доступ к
/proc/sched_debug (позволяет разведать процессы, запущенные на хосте).
Собирает артефакты, связанные с CI/CD: список файлов текущего проекта и /home/runner/work, логи GitHub.
Отправляет отчет на управляющий сервер.Заключение
Пакеты не соответствуют благим целям, о которых нам заявляли в
README.md, — поэтому мы зарепортили админам NPM об этом недоразумении.Странно видеть такое поведение от багхантера, имеющего учетную запись на HackerOne с 2017
Хотите проверить свои проекты на наличие вредоносных внешних зависимостей? Попробуйте фиды для безопасной разработки из PT Fusion.
#ti #scs #npm
@ptescalator
🔥 14
❤ 9
👍 7
1 33 3.2K
Обсуждение 1
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram