BLACKBOXЦентр помощи

Сервер взломан или атакован: что делать

Признаки взлома, первые шаги в аккаунте и панели, проверки на сервере, чистое восстановление и действия при внешней атаке.

blackbox.md · app.blackbox.mdОбновлено 2026-10-09~12 мин чтения
На этой странице

Если вы подозреваете, что кто-то проник на ваш сервер или что сервер атакуют извне, выполните шаги ниже по порядку: защитите аккаунт blackbox.md, защитите доступ к серверу в панели app.blackbox.md (страница «Мои серверы», app.blackbox.md/my-servers, меню «Инфраструктура» → «Мои серверы»), проверьте сервер и разверните всё заново на чистом сервере. Команды выполняются на сервере по SSH от имени root (Подключение к серверу по SSH (Windows, macOS, Linux)).

Доступно: владельцу аккаунта blackbox.md, который заказал сервер. Команды проверки — всем, у кого есть доступ root по SSH к серверу. На карточках с пометкой «Обслуживается» кнопок панели нет — по таким серверам пишите нам напрямую.

Признаки взлома

Признак Как проверить
Неизвестные процессы загружают процессор, например майнеры криптовалют ps aux (шаг 3)
Необъяснимый исходящий трафик, соединения с неизвестными адресами ss -tunap (шаг 3)
Очередь писем растёт, хотя вы не делаете рассылок mailq, если работает почтовый сервер
Системные пользователи или задания cron, которых вы не создавали шаг 3
В разделе «Установленные ключи» есть ключ, который вы не добавляли карточка сервера (шаг 2)
Изменённые файлы сайта, чужие перенаправления, новые PHP-файлы find (шаг 3)
Успешные входы с незнакомых IP-адресов last (шаг 3)
BLACKBOX переслал вам жалобу на злоупотребление письмо от поддержки

Прежде чем искать чужие ключи, найдите два ключа, которые BLACKBOX добавляет на новые серверы: «Ключ управления (blackbox.md)» и ключ AI-агента с комментарием blackbox-agent-…. Это не признаки взлома: Ключи BLACKBOX на вашем сервере. Но учтите: комментарий к ключу задаёт тот, кто его добавляет, поэтому злоумышленник может подписать свой ключ так же. Если строк blackbox-agent-… несколько или вы сомневаетесь, удалите их (шаг 2): панель от ключа агента не зависит.

Что сделать в первую очередь

Если сервер прямо сейчас атакует другие системы или рассылает спам (жалоба от BLACKBOX, растущая очередь писем, большой исходящий трафик):

  1. На странице «Мои серверы» в карточке сервера нажмите «Остановить» и подтвердите «Остановить ИМЯ_СЕРВЕРА?».
  2. Сразу напишите в поддержку (раздел «Что отправить в поддержку» ниже).

Остановленный сервер по-прежнему оплачивается, а «Сбросить пароль», список «Установленные ключи» и удаление ключей не работают: для них сервер должен быть запущен. Запускайте его снова кнопкой «Запустить» только тогда, когда будете готовы выполнить шаги ниже: при запуске могут снова заработать и программы злоумышленника (Перезагрузка, остановка и запуск сервера).

В остальных случаях сервер не останавливайте: сначала выполните шаги 1 и 2, пока сервер работает и отвечает по SSH.

Шаг 1. Защитите аккаунт blackbox.md

  1. Смените пароль аккаунта: «Личный кабинет» → «Профиль» → раздел «Безопасность аккаунта» → «Пароль» → «Изменить пароль». Заполните «Текущий пароль» и «Новый пароль» и нажмите «Сохранить пароль». Появится «Пароль изменён. Пожалуйста, войдите снова.», и вы автоматически выйдете из аккаунта. Все сессии на blackbox.md завершатся, а все API-токены, созданные до смены пароля, перестанут работать (Смена пароля аккаунта).
  2. Войдите с новым паролем и откройте «API-токены». Если в столбце «Последнее использование» стоит недавняя дата, а вы этим токеном не пользовались, он попал в чужие руки. Нажмите «Отозвать» у каждого старого токена (список не показывает, что смена пароля их уже отключила) и подтвердите «Отозвать этот токен? Любой AI-клиент, использующий его, потеряет доступ немедленно.» Новые токены создавайте только для AI-клиентов, которыми пользуетесь (API-токены: создание, копирование и отзыв).
  3. В разделе «SSH-ключи» удалите кнопкой «Удалить» ключи, которые вы не узнаёте. Удаление здесь не убирает ключ с серверов (шаг 2).
  4. В разделах «Заказы» и «Баланс» убедитесь, что нет заказов или платежей, которых вы не делали.
  5. Откройте панель кнопкой «Открыть панель» (или пунктом «Панель управления» в меню аккаунта). В панели перейдите в «Настройки» → «Сессии», нажмите «Выйти везде» и подтвердите «Завершить все сессии этого аккаунта, включая текущую? Потребуется войти снова.» Все сессии в панели завершатся, а запомненные для 2FA устройства будут забыты. Затем снова откройте панель из аккаунта (Настройки панели: профиль, пароль и сессии).

Аккаунт создан через Google или GitLab

У такого аккаунта нет пароля на blackbox.md, поэтому раздела «Пароль» в профиле нет. Смените пароль аккаунта Google или GitLab, включите там двухфакторную аутентификацию и завершите активные сессии. API-токены автоматически не отключаются: отзовите их по одному кнопкой «Отозвать». Остальные шаги те же (Вход через Google или GitLab).

Шаг 2. Защитите доступ к серверу в панели

Работайте в карточке сервера на странице «Мои серверы». Если аккаунтом тоже мог воспользоваться кто-то другой, повторите шаги для каждого сервера.

  1. Нажмите «Сбросить пароль» и подтвердите «Сбросить пароль для ИМЯ_СЕРВЕРА? Текущий пароль перестанет работать немедленно.» Новый пароль root появится в карточке, в строках «Пользователь» и «Пароль»; сохраните его в менеджере паролей. Если появилось reset_failed, пароль не изменился: обычно это значит, что панель не смогла подключиться к серверу. См. Сброс пароля root и напишите нам.
  2. Нажмите «Добавить SSH-ключ» и проверьте каждую строку в разделе «Установленные ключи». Оставьте «Ключ управления (blackbox.md)» (у него нет кнопки «Удалить») и свои ключи. Для любого другого ключа, который вы не узнаёте, запишите отпечаток и комментарий, затем нажмите «Удалить» и подтвердите «Удалить ключ SHA256:… с этого сервера?». Появится «Ключ удалён.»
  3. Так же удалите ключ AI-агента (blackbox-agent-…), если вы не пользуетесь SSH-доступом через AI или если API-токены могли попасть в чужие руки: AI-ассистент с разрешением «Просматривать пароли/доступы к серверам» может получить этот ключ. Если SSH-доступ через AI вам нужен и дальше, после удаления запросите новый ключ с regenerate=true; без этого параметра вернётся старый ключ (SSH-доступ и SSH-ключи через AI-ассистента).
  4. Если вашего ключа на сервере ещё нет, добавьте его там же («Использовать сохранённый ключ» или «Вставить новый ключ» → «Добавить ключ»). Подключитесь с этим ключом в новом окне терминала и не закрывайте эту сессию (Добавление и удаление SSH-ключей на сервере).
  5. Убедившись, что ваш ключ работает, нажмите «Отключить вход по паролю» и подтвердите. В карточке появится «Только ключ» (Включение и отключение входа по паролю по SSH).

Важно Не удаляйте из authorized_keys ключ управления (в панели — «Ключ управления (blackbox.md)») и не ставьте PermitRootLogin no: и то и другое блокирует сброс пароля и управление ключами из панели. Веб-консоли и VNC у клиентов нет. Прежде чем менять настройки SSH или файрвола, держите открытой вторую SSH-сессию; если доступ потерян, напишите в поддержку.

Шаг 3. Проверьте сервер

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

Ubuntu и Debian

who
last -n 30
lastb -n 30
journalctl -u ssh --since "7 days ago" | grep -E "Accepted|Failed password|Invalid user"
ls -la /var/spool/cron/crontabs

AlmaLinux и CentOS Stream

who
last -n 30
lastb -n 30
journalctl -u sshd --since "7 days ago" | grep -E "Accepted|Failed password|Invalid user"
ls -la /var/spool/cron

who показывает, кто подключён сейчас, last — успешные входы, lastb — неудачные попытки (много неудачных попыток — это нормально). В журнале строки Accepted — успешные входы с указанием способа (password или publickey) и IP-адреса; для publickey в конце строки указан и отпечаток ключа (SHA256:…) — сравните его со списком «Установленные ключи». Если команды last нет, пользуйтесь только journalctl. Последняя команда показывает, у каких пользователей есть задания cron: каждый файл назван по имени пользователя.

Процессы и соединения

ps aux --sort=-%cpu | head -n 15
ls -l /proc/PID/exe
ss -tunap
ls -la /tmp /var/tmp /dev/shm

Замените PID числом из второго столбца подозрительного процесса: ссылка exe показывает настоящую программу. Путь в /tmp или /dev/shm либо пометка (deleted) — плохие признаки. В выводе ss ищите соединения ESTAB с незнакомыми адресами и портами и имя программы в users:((…)).

Задания по расписанию, службы, пользователи и ключи

crontab -l
cat /etc/crontab
ls -la /etc/cron.*
systemctl list-timers --all
systemctl list-units --type=service --state=running
awk -F: '$3 == 0 || $3 >= 1000 {print $1, $3, $6, $7}' /etc/passwd
getent group sudo wheel
cat /root/.ssh/authorized_keys
ls -la /home/*/.ssh/authorized_keys

UID 0 должен быть только у root. Учётные записи с UID от 1000 и выше — это обычные пользователи (nobody с UID 65534 — это нормально): убедитесь, что вы знаете их все, как и участников групп sudo и wheel. Подозрительны строки в cron и службах, которые скачивают и запускают скрипты (curl, wget).

Файлы сайта

find /var/www -type f -mtime -7 -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort | tail -n 50
find /var/www -path "*uploads*" -name "*.php"

Если сайт лежит в другом каталоге, замените /var/www; чтобы охватить больший период, увеличьте 7 (дней). PHP-файлы в каталогах загрузок (например, wp-content/uploads в WordPress) очень подозрительны: проверьте каждый.

Шаг 4. Разверните чистый сервер

Опасно Взломанному серверу больше нельзя доверять, даже если вы удалили всё, что нашли: могли остаться незамеченные ключи, пользователи, задания по расписанию или изменённые программы. Надёжный путь — сервер, установленный с нуля.

Кнопки переустановки операционной системы в панели нет. Порядок действий:

  1. Закажите новый сервер (Оформление заказа по шагам). На шаге «SSH-ключ для сервера» прикрепите свой ключ и оставьте отмеченным флажок «Отключить вход по паролю (только SSH-ключ)»: сервер будет принимать вход по SSH только по ключу (SSH-ключ при заказе и серверы «только по ключу»).
  2. Защитите его и установите пакеты из официальных источников дистрибутива (Защита нового сервера: чек-лист).
  3. Установите приложение из официального источника: CMS, модули и темы — от производителя, свой код — из git-репозитория. Не копируйте со старого сервера программы, скрипты, задания cron и конфигурации.
  4. Восстановите только данные (базы данных, загруженные файлы, контент) из резервной копии, сделанной до взлома. BLACKBOX не делает автоматических копий сервера; если более ранней копии нет, скопируйте данные со старого сервера и предварительно проверьте их (Стратегия резервного копирования для вашего сервера, Перенос сайта на сервер BLACKBOX).
  5. Смените все секреты приложения: пароли баз данных, API-ключи, учётные данные SMTP, секретные ключи в конфигурации, пароли администраторов сайта. Замените и приватные ключи, хранившиеся на старом сервере (например, для деплоя).
  6. Направьте домен на новый сервер (Как направить домен на сервер). Если вы подключили Cloudflare или GoDaddy, это можно сделать на странице «DNS» в панели (Управление DNS-записями из панели).
  7. Скопируйте со старого сервера всё, что ещё нужно, включая журналы, и удалите его красной кнопкой «Удалить» в карточке. Удаление выполняется после 24-часовой отсрочки, деньги за начатый период не возвращаются; до удаления сервер оплачивается. Сравнение с отменой заказа: Безвозвратное удаление сервера.

Если новый сервер вам не нужен, спросите в поддержке, можно ли переустановить операционную систему на этом же сервере. При переустановке все данные на сервере будут потеряны, поэтому сохраните их заранее; затем выполните шаги 2–5 из списка выше.

Шаг 5. Закройте путь проникновения

Прежде чем запускать новый сервер в работу, устраните причину, иначе атака повторится:

  • Устаревшие CMS, модули и темы. Обновите их, удалите неиспользуемые и включите автоматические обновления безопасности (Обновления системы и автоматические обновления безопасности).
  • Слабые или повторно используемые пароли. Используйте уникальные пароли из менеджера паролей для root, администрирования сайта и баз данных; для SSH используйте ключи.
  • Службы, доступные из интернета. Привяжите базы данных к 127.0.0.1 и ограничьте доступ к панелям администрирования (например, phpMyAdmin). Сетевой фильтр, которым управляет BLACKBOX, этих мер не заменяет (Файрвол: сетевая фильтрация и ufw/firewalld на сервере).
  • Панель. Включите двухфакторную аутентификацию в панели (Двухфакторная аутентификация (2FA) в панели).
  • Доступ BLACKBOX. Для root используйте PermitRootLogin prohibit-password, а не PermitRootLogin no, и не удаляйте «Ключ управления (blackbox.md)».

Затем пройдите весь список: Защита нового сервера: чек-лист.

Ваша ответственность

  • По Условиям использования, раздел 3, вы несёте полную ответственность за собственную деятельность и за деятельность всех, кому даёте доступ к услугам. За защиту паролей, SSH-ключей и API-токенов тоже отвечаете вы. BLACKBOX не несёт ответственности за использование ваших учётных записей третьими лицами, если не доказано нарушение безопасности систем BLACKBOX.
  • Раздел 2 Условий запрещает, в частности, спам и участие, «добровольное или по грубой неосторожности», в DoS- и DDoS-атаках (Политика допустимого использования: что запрещено).
  • При обнаружении нарушения, например по внешней жалобе, BLACKBOX может приостановить или прекратить предоставление услуг полностью или частично, с предварительным уведомлением или без него, в зависимости от серьёзности ситуации. Отвечайте поддержке быстро и сообщайте, что уже сделали.
  • Если на сервере были персональные данные ваших пользователей (например, покупателей интернет-магазина), оператором этих данных являетесь вы, и вы же отвечаете за соблюдение закона о защите данных (Условия, раздел 8). Оцените, нужно ли уведомить Национальный центр по защите персональных данных и затронутых людей (ст. 33–34 Закона № 195/2024). BLACKBOX как лицо, уполномоченное оператором, оказывает разумное содействие в той мере, в какой это технически возможно на уровне инфраструктуры хостинга: Соглашение об обработке данных (DPA) для компаний.

Внешняя атака: сервер не взломан

Если на шаге 3 вы не нашли чужих успешных входов, неизвестных процессов или ключей, скорее всего, сервер просто атакуют извне.

Подбор пароля SSH

Тысячи строк Failed password или Invalid user в журнале и длинный список в lastb — обычное дело для любого сервера с публичным IP-адресом: роботы постоянно сканируют интернет. Защититесь с помощью fail2ban (Защита от подбора паролей с помощью fail2ban) и входа только по ключу («Отключить вход по паролю», шаг 2).

Слишком много HTTP-запросов к сайту

  1. Пропустите домен через прокси Cloudflare (оранжевое облако). Если Cloudflare подключён в панели, отметьте «Прокси» у записей A, AAAA и CNAME сайта на странице «DNS» (Управление DNS-записями из панели); иначе включите прокси прямо в аккаунте Cloudflare. Веб-трафик пойдёт через Cloudflare, который может фильтровать запросы.

  2. Ограничьте число запросов с одного IP-адреса в nginx. Создайте файл /etc/nginx/conf.d/ratelimit.conf:

    limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
    limit_req_status 429;

    Добавьте в блок server { } сайта:

    limit_req zone=perip burst=20 nodelay;

    Проверьте конфигурацию и перезагрузите nginx:

    nginx -t
    systemctl reload nginx

    С каждого IP-адреса можно отправлять 10 запросов в секунду с запасом 20; лишние запросы получают ошибку 429. Подберите значения под свой сайт. За Cloudflare nginx видит адреса Cloudflare: сначала настройте получение реальных адресов посетителей (документация Cloudflare).

  3. Если атака продолжается или идёт напрямую на IP-адрес сервера, напишите в поддержку.

Что отправить в поддержку

Напишите на support@blackbox.md, создайте тикет («Личный кабинет» → «Помощь и поддержка», Создание тикета в поддержку) или в срочных случаях позвоните по номеру +373 78 003948 (пн–пт, 09:00–18:00 по времени Молдовы). Укажите:

  • IP-адрес сервера;
  • номер заказа (BBX-…);
  • когда вы заметили проблему (дата, время и часовой пояс);
  • что уже сделали (сервер остановлен, пароль сброшен, ключи удалены, заказан новый сервер);
  • что нашли на шаге 3, текстом: процессы, IP-адреса, строки из журналов, отпечатки удалённых ключей.

Безопасность Никогда не отправляйте пароли, приватные ключи и API-токены — даже в поддержку BLACKBOX. Отпечаток ключа и публичный ключ можно отправлять без риска.

Частые вопросы

Можно ли очистить сервер без переустановки? Попробовать можно, но вы не будете уверены, что нашли всё. Для сервера с сайтом или важными данными мы рекомендуем новый сервер (шаг 4).

Может ли BLACKBOX очистить сервер за меня? BLACKBOX не обращается к содержимому вашего приложения и не читает его, кроме технической поддержки по вашему прямому запросу и случаев, когда этого требует закон (Соглашение об обработке данных (DPA) для компаний). За помощью с очисткой или переносом на новый сервер обратитесь в поддержку: Профессиональные услуги по запросу: администрирование, DevOps, миграция.

Мне пришла жалоба на злоупотребление, но на сервере я ничего не нашёл. Что делать? Всё равно ответьте нам как можно скорее: расскажите, что проверили на шаге 3 и что нашли. Иногда источник — приложение на сервере, например контактная форма, через которую рассылают спам.

Можно ли получить другой IP-адрес? В панели IP-адрес не меняется. Новый заказанный сервер получает собственный IP-адрес; о других вариантах спросите нас.

Не нашли ответ?Напишите нам — служба поддержки ответит. support@blackbox.md
Открыть тикет