Перейти к основному содержимому
Вернуться в категорию

Сервер взломан: Экстренное реагирование и восстановление

Шаги экстренного реагирования при взломе сервера: обнаружение, изоляция, криминалистический анализ и очистка.

Время чтения: 18 мин Устранение неполадок
взломбезопасностькриминалистикаизоляцияочисткавосстановлениереагирование

Содержание

Введение

Обнаружение взлома сервера — стрессовая ситуация, но следуя правильным шагам, вы можете минимизировать ущерб и восстановить систему. В этом руководстве мы подробно рассмотрим весь процесс от обнаружения взлома до очистки и усиления безопасности.

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

Типичные признаки компрометации сервера:

  • Неизвестные процессы или сервисы
  • Аномальное использование CPU/RAM (майнинг криптовалют)
  • Созданы неизвестные учётные записи
  • Неизвестные ключи в SSH authorized_keys
  • Неизвестные задачи в crontab
  • Изменённые системные файлы
  • Аномальный исходящий сетевой трафик
  • Дефейс сайта или перенаправления
  • Рассылка спама

Шаг 1: Не паникуйте и документируйте

hljs bash
# Сохранить текущее состояние
date > /tmp/incident_$(date +%Y%m%d_%H%M%S).log
who >> /tmp/incident_*.log
w >> /tmp/incident_*.log
last -20 >> /tmp/incident_*.log
ps auxf >> /tmp/incident_*.log
netstat -tlnp >> /tmp/incident_*.log
ss -tlnp >> /tmp/incident_*.log

Не выключайте и не перезагружайте сервер немедленно! Криминалистические улики могут быть утеряны.

Шаг 2: Изоляция

Сетевая изоляция

hljs bash
# Заблокировать все исходящие соединения (кроме SSH)
sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -j DROP

Завершение активных сессий

hljs bash
# Проверить активные SSH-сессии
who
w

# Завершить подозрительные сессии
sudo pkill -u подозрительный_пользователь

Шаг 3: Криминалистический анализ

Проверка учётных записей

hljs bash
# Список всех пользователей
cat /etc/passwd | grep -v nologin | grep -v false

# Проверка пользователей с UID 0 (права root)
awk -F: '($3 == 0) {print}' /etc/passwd

# Недавно созданные пользователи
ls -lt /home/

# Пользователи с правами sudo
grep -v '^#' /etc/sudoers
ls -la /etc/sudoers.d/

# Проверка SSH authorized_keys
for user_home in /home/*; do
    if [ -f "$user_home/.ssh/authorized_keys" ]; then
        echo "=== $user_home ==="
        cat "$user_home/.ssh/authorized_keys"
    fi
done
cat /root/.ssh/authorized_keys

Анализ процессов

hljs bash
# Все запущенные процессы в виде дерева
ps auxf

# Поиск подозрительных процессов
ps aux | grep -E '(mine|xmr|crypto|kinsing|kdevtmpfsi)'

# Процессы с высоким использованием CPU
top -b -n 1 | head -20

# Проверка скрытых процессов
ls -la /proc/*/exe 2>/dev/null | grep deleted

# Проверка путей файлов процессов
ls -la /proc/[0-9]*/exe 2>/dev/null | grep -v '/usr\|/bin\|/sbin\|/lib'

Проверка crontab

hljs bash
# Crontab root
crontab -l

# Crontab всех пользователей
for user in $(cut -f1 -d: /etc/passwd); do
    crontab -l -u $user 2>/dev/null | grep -v '^#'
done

# Системные cron-директории
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
cat /etc/crontab

# Таймеры systemd
systemctl list-timers --all

Анализ сетевых соединений

hljs bash
# Проверка активных соединений
ss -tanp
netstat -tanp

# Исходящие соединения
ss -tanp | grep ESTABLISHED | grep -v '127.0.0.1'

# Прослушиваемые порты
ss -tlnp

# Соединения с подозрительными IP
netstat -an | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

Анализ файловой системы

hljs bash
# Файлы, изменённые за последние 24 часа
find / -mtime -1 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null

# Файлы, созданные за последние 7 дней
find / -ctime -7 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null

# Проверка SUID/SGID файлов
find / -perm -4000 -type f 2>/dev/null
find / -perm -2000 -type f 2>/dev/null

# Подозрительные файлы в /tmp
ls -la /tmp/
ls -la /var/tmp/
ls -la /dev/shm/

Анализ логов

hljs bash
# Попытки входа по SSH
grep 'Failed password' /var/log/auth.log | tail -50
grep 'Accepted' /var/log/auth.log | tail -50

# Успешные SSH-входы
last -20
lastlog

# Системные логи
journalctl --since "24 hours ago" | grep -i -E '(error|warning|fail|denied)'

Шаг 4: Очистка

Остановка вредоносных процессов

hljs bash
# Завершить подозрительные процессы
sudo kill -9 <PID>

# Найти и завершить процессы майнеров
sudo pkill -9 -f 'xmr\|mine\|crypto\|kinsing'

# Отключить подозрительные сервисы
sudo systemctl stop подозрительный_сервис
sudo systemctl disable подозрительный_сервис

Удаление вредоносных пользователей

hljs bash
# Заблокировать подозрительного пользователя
sudo usermod -L подозрительный_пользователь

# Удалить пользователя
sudo userdel -r подозрительный_пользователь

# Сменить пароль root
sudo passwd root

Очистка SSH-ключей

hljs bash
# Проверить и очистить все файлы authorized_keys
find / -name authorized_keys -exec cat {} \;

# Оставить только свой ключ
echo "ssh-rsa ВАШ_КЛЮЧ" > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

Шаг 5: Усиление безопасности

Безопасность SSH

hljs bash
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
AllowUsers имя_пользователя

sudo systemctl restart sshd

Установка Fail2ban

hljs bash
sudo apt install fail2ban -y

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600
findtime = 600

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Обновление системы

hljs bash
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install unattended-upgrades -y

Шаг 6: Восстановление из резервной копии

Если очистка недостаточна, может потребоваться чистая установка:

hljs bash
# 1. Резервное копирование важных данных
tar -czf /tmp/backup_data.tar.gz /var/www/ /home/

# 2. Переустановка ОС через панель REXE
# my.rexe.tr > Услуги > Переустановка ОС

# 3. Усиление безопасности после чистой установки
# 4. Восстановление только файлов данных (НЕ конфигурационных файлов)

При восстановлении из резервной копии НЕ восстанавливайте конфигурационные файлы! Злоумышленник мог добавить в них бэкдоры.

Заключение

При инцидентах взлома сервера критически важна быстрая и систематическая реакция. Последовательно выполняйте шаги: документирование, изоляция, криминалистический анализ, очистка и усиление безопасности. Для предотвращения подобных инцидентов в будущем проводите регулярные аудиты безопасности и применяйте строгий контроль доступа.