Хакеры встроили rm -rf прямо в preinstall. Взлом Toptal поставил под угрозу тысячи систем

Хакеры встроили rm -rf прямо в preinstall. Взлом Toptal поставил под угрозу тысячи систем

Программисты думали, что обновляют софт. А на деле — запустили цифровую гильотину.

image

Хакеры получили доступ к аккаунту организации Toptal на GitHub и использовали его для распространения вредоносного программного обеспечения через официальные каналы. В результате были опубликованы десять заражённых пакетов в репозитории Node Package Manager (NPM).

Toptal известна как платформа для найма фрилансеров в сфере разработки, дизайна и финансов. Помимо основного сервиса, компания также публикует собственные инструменты и компоненты для разработчиков, включая фреймворк под названием Picasso. Эти наработки размещаются в открытом доступе через GitHub и NPM, что и стало уязвимым звеном.

Компрометация началась 20 июля, когда злоумышленники получили контроль над Toptal на GitHub. Почти сразу после этого были раскрыты все 73 репозитория, включая приватные проекты. Вскоре хакеры модифицировали исходный код Picasso, внедрив в него вредоносные изменения, а также выпустили десять заражённых пакетов в NPM, маскируя их под легитимные обновления.

Опасные версии включали:

  • @toptal/picasso-tailwind (v3.1.0)
  • @toptal/picasso-charts (v59.1.4)
  • @toptal/picasso-shared (v15.1.0)
  • @toptal/picasso-provider (v5.1.1)
  • @toptal/picasso-select (v4.2.2)
  • @toptal/picasso-quote (v2.1.7)
  • @toptal/picasso-forms (v73.3.2)
  • @xene/core (v0.4.1)
  • @toptal/picasso-utils (v3.2.0)
  • @toptal/picasso-typography (v4.1.4)

Примерно 5 тысяч загрузок этих пакетов успели произойти до того, как угроза была обнаружена. Заражение происходило через модифицированные файлы package.json, в которые были добавлены два скрипта. Первый, запускающийся на стадии установки (preinstall), собирал GitHub-токены из среды выполнения и отправлял их на удалённый сервер, контролируемый злоумышленниками. Второй скрипт, исполнявшийся после установки (postinstall), инициировал полное удаление данных с устройства. В Linux использовалась команда sudo rm -rf --no-preserve-root /, на Windows — рекурсивное и бесшумное удаление через PowerShell.

Команда безопасности Socket сообщила , что 23 июля заражённые версии были помечены как устаревшие, а в публичный доступ вернулись безопасные сборки. Однако официального предупреждения от Toptal не последовало — компания никак не уведомила пользователей, которые гипотетически могли пострадать от использования этих версий.

Как именно хакеры получили доступ к GitHub-организации, пока остаётся неясным. Socket рассматривает сразу несколько возможных сценариев: от фишинга, направленного против внутренних разработчиков, до инсайдерской атаки или кражи токенов доступа.


Обновлено: по уточнённым данным Toptal, компрометация стала возможной из-за учётных данных, утёкших ещё несколько лет назад в результате инцидента с LastPass. Вредоносный код находился в публичном доступе всего несколько часов, после чего был оперативно удалён.

В Toptal подчёркивают, что заражённые пакеты Picasso и Xene почти не использовались за пределами компании и, по имеющимся данным, не затронули ни одного стороннего пользователя. Большинство зафиксированных загрузок, по словам представителей Toptal, были инициированы автоматизированными сканерами безопасности, а не реальными клиентами.