Как я обнаружил скрытую учетную запись пользователя на моем сервере Ubuntu (и что я с этим сделал)
Это перевод оригинальной статьи How I Found a Hidden Backdoor User Account on My Ubuntu Server (And What I Did About It)
Подписывайтесь на телеграм-канал usr_bin, где я публикую много полезного по Linux, в том числе ссылки на статьи в этом блоге.
Введение:
Даже защищённые серверы могут быть незаметно скомпрометированы, и иногда злоумышленники не оставляют очевидных следов, таких как запущенное вредоносное ПО или исходящий трафик. В этой публикации я расскажу, как я обнаружил скрытую учётную запись бэкдора на одном из своих серверов Ubuntu, и о конкретных шагах, которые я предпринял для её обнаружения, исследования и блокировки.
1. Почему я начал расследование
- Немного более высокая загрузка CPU ночью
- Активность входов в
auth.logв неурочное время - Отсутствие тасков cron или перебора паролей SSH
2. Команда аудита, которая раскрыла подозрения
cut -d: -f1,3 /etc/passwd | sort -t: -k2 -n | less
Это помогло мне обнаружить нового пользователя с UID выше 1000, которого я никогда не создавал, — с подозрительным именем backupadmin.
3. Подтверждение подозрительной активности
Я проверил последние входы в систему:
lastlog | grep backupadmin
grep 'backupadmin' /var/log/auth.log'backupadmin' /var/log/auth.log
Пользователь вошел в систему через SSH, но никто из моей команды не создавал его.
4. Отключение и блокировка учетной записи
Я сразу же заблокировал аккаунт:
sudo passwd -l backupadmin
Затем отключил доступ к оболочке:
sudo usermod -s /usr/sbin/nologin backupadmin
Наконец, сделал резервную копию и удалил:
sudo tar -czvf /root/backupadmin_home.tar.gz /home/backupadmin sudo userdel -r backupadmin
5. Как была создана эта учетная запись
Я проверил файлы .bash_history, /var/log/apt/history.log, но ничего не нашёл. Тогда я понял: злоумышленник использовал скрипт, чтобы зачистить следы, и обошёл ведение логов bash, очистив переменную $HISTFILE.
Единственная подсказка появилась при проверке системного журнала:
journalctl | grep useradd
Бум — скрипт добавил его несколько недель назад.
6. Меры усиления безопасности, которые я предпринял немедленно
- Включил auditd для мониторинга будущих изменений учётных записей.
- Настроил email-оповещения для команд
useraddиusermodчерезaudit.rules - Проверил все ключи SSH в
/home/*/.ssh/authorized_keys - Установил fail2ban и ужесточил настройки SSH
- Проверил файл sudoers на наличие мошеннических записей
Заключение:
Атака была негромкой. Она была тихой, терпеливой и незаметной. Поэтому даже «безопасные» системы требуют регулярного аудита. Никогда не предполагаете, что ваш сервер безопасен только потому, что он выглядит неактивным.
awk -F: '$3 >= 1000 {print $1}' /etc/passwd'$3 >= 1000 {print $1}' /etc/passwdНа этом все! Спасибо за внимание! Если статья была интересна, подпишитесь на телеграм-канал usr_bin, где будет еще больше полезной информации.