Взлом сервиса

С большим удивлением обнаружил что один из наших домашних сервисов был взломан (причём довольно давно) и данные зашифрованы криптором-вымогателем.

Есть у меня (точнее, был) старый сервис GitLab, которым я пользовался в те времена, когда у Github не было возможности хостить приватные репозитории, так же нравился его встроенный CI. Но уже лет пять как я использую только Github, а Гитлаб крутился просто для истории. В Ноябре мониторинг сказал что контейнер с Гитлабом жрёт аномально ресурсов (в первую очередь CPU) и я его, не разбираясь, просто погасил. Я тогда подумал что его взломали и он спам рассылает.

Сегодня вот решил немного прибраться и окончательно удалить его. Запустил его снова, что бы глянуть – не забыл ли чего, но работал он как-то криво, говорил что все проекты пустые. Какое же моё удивление было, когда оказалось что репозитории зашифрованы, а по папкам раскидан __$$RECOVERY_README$$__.html с настойчивой просьбой поделиться финансами. Я посмотрел по названиям, вроде ничего не потеряно, но осадочек, как говориться – остался. Да, конечно мы делаем бекапы, но как раз этот сервис я подчистил, оставив только последний снапшот при переносе на другой диск.

Выглядит примерно так:

ls -lah mp3-encoder.git/
total 120K
drwxr-sr-x 6 petro petro 4,0K Feb 20 15:33  ./
drwxr-s--- 7 petro petro 4,0K Feb 20 15:33  ../
-rw-r--r-- 1 petro petro  57K Feb 20 15:33 '__$$RECOVERY_README$$__.html'
-rw-r--r-- 1 petro petro  176 Feb 20 15:33  config.locked
-rw-r--r-- 1 petro petro   80 Feb 20 15:33  description.locked
-rw-r--r-- 1 petro petro 5,0K Feb 20 15:33  FETCH_HEAD.locked
-rw-r--r-- 1 petro petro   32 Feb 20 15:33  HEAD.locked
drwxr-sr-x 2 petro petro 4,0K Feb 20 15:33  hooks/
drwxr-sr-x 2 petro petro 4,0K Feb 20 15:33  info/
-rw-r--r-- 1 petro petro 9,6K Feb 20 15:33  language-stats.cache.locked
drwxr-sr-x 4 petro petro 4,0K Feb 20 15:33  objects/
-rw-r--r-- 1 petro petro  112 Feb 20 15:33  packed-refs.locked
drwxr-sr-x 5 petro petro 4,0K Feb 20 15:33  refs/

Мораль такова – делайте бекапы, если сервис не используется – то гасите его или продолжайте обслуживать и обновлять. Используйте современные методы деплоя и изоляции: Gitlab выполнялся в контейнере, который в свою очередь был изолирован в виртуалке, которая в свою очередь находится в DMZ. Таким образом взломщики смогли только подгадить никому не нужные данные, даже получив возможность выполнения произвольного кода.

Сама дыра: CVE-2021-22205, Gitlab был версии 13.3 (последний раз обновлял в Августе 2020).

Leave a Reply

Your email address will not be published. Required fields are marked *