Комментарии 14
У меня тоже самое произошло. Правда в моем случае из-за майнера лег сайт. Если бы этого не произошло, я бы даже не заметил появления чужака в системе. Названия у скриптов для запуска майнера были смешные, сразу ясно происхождение хакера :)
Если проект на github лежит можно настроить dependabot, он будет сам делать pr с обновлениями. На разных языках в пакетных менеджерах есть проверка на уязвимости, в js вроде npm audit, в ci можно настроить задачу по расписанию. shift left security называется подобная деятельность. По поводу сервера будь там go, rust, js перед ним обычно ставят nginx, чтобы application не торчал наружу своими портами. А чтобы не палить свой vds есть такая штука как zero trust tunnel у cf. Но да в любом случае vds надо настраивать, голая система никак не защищена.
Спасибо за развернутый совет. dependabot у меня стоит, но я забил на него по своей лени. nginx тоже стоит. остальные моменты изучу. Думаю мне повезло, что у меня все работало в докер, хоть и под root, если бы все работало просто напрямую в ubuntu. как мне кажется, последствия могли быть хуже
В контейнере root — такой же root, если есть bind-volume. Граница между контейнером и системой сильно размыта. Даже без volume есть способы обойти изоляцию, потому что Docker тоже работает с привилегиями ядра. Рекомендую сделать аудит /srv/* и /tmp/* — там могли остаться артефакты или бэкдоры. Одним словом "аудит"... И сервисы и таймеры сервисов искать нужно... Жене делал тоже на реакте, без сервер рендеринг компонентов, уже втора неделя апдейта... Признаюсь честно - практически ноль в реакте, я от админа рос потому и докеризация и администрирование просто и понятно.
А нам просто бигет сам потушил все, закрыв все порты и сказав у вас майнер.
Тоже хлебнул проблем от этой уязвимости, причем дважды.
Последствия: пришлось переустанавливать ОС в облаке.
Несколько проектов крутилось в контейнерах, а один лендинг через root запускался через system.d. Как раз таки через лендинг злоумышленник попал на сервер, разместил монеро майнер, который постоянно восставал из мертвых при отключении процесса и перезагрузке. По итогу благодаря llm удалось побороть его. Просканил система и нашлись бэкдоры, которые оставил злоумышленник, бороться с этим уже было очень тяжело, было принято решение переустанавливать ОС.
В этот же день ещё до перестановки ОС майнер снова ожил. Когда во всех проектах обновили версии реакт пакетов, к сожалению пропустил один MR от разработчика и запустил проект с уязвимостью, но благо он был в докере и не смог вылезти за его пределы.
Благо у нас проекты такого характера, что простои в 1-2ч особо не влияют на клиентов, иначе было бы больно.
Приятно только что получен бесценный опыт и эта ситуация сподвигнула провести больше мероприятий по обеспечению безопасности сервера.
З Ы таймвеб предупреждал, что на сервере найдены уязвимости и следует обновить пакеты, но у сожалению это выпало на выходные дни, да и не придал большого значения этому.
Всем здоровья на ваших серверах)
Как мне повезло с ней столкнутся
Автор блин :(, "столкнутЬся". Что сделатЬ? Столкнуться.

Что сделала с моим nextjs сайтом React2Shell уязвимость