Один из простых, но эффективных способов обнаружить компрометацию системы - сравнение контрольных сумм бинарей с эталонным списком. Если кто-то подменил ls, sudo или ssh, мы это заметим.
1️⃣ Создание whitelist-файла. Собираем хеши всех бинарников в
/usr/bin:
find /usr/bin -type f -executable -exec sha256sum {} \; > /root/usrbin.sha256
Лучше делать это на только что установленной и проверенной системе.
2️⃣ Скрипт для проверки целостности
#!/bin/bash
WHITELIST="/root/usrbin.sha256"
LOG="/var/log/usrbin_integrity_check.log"
TMP=$(mktemp)
echo "[INFO] Проверка целостности /usr/bin — $(date)" >> "$LOG"
find /usr/bin -type f -executable -exec sha256sum {} \; > "$TMP"
DIFF=$(diff -u "$WHITELIST" "$TMP")
if [[ -n "$DIFF" ]]; then
echo "[ALERT] Обнаружены изменения!" >> "$LOG"
echo "$DIFF" >> "$LOG"
else
echo "[OK] Изменений не найдено." >> "$LOG"
fi
rm "$TMP"
Не забудьте сделать его исполняемым:
chmod +x /usr/local/bin/check_usrbin.sh
3️⃣ Настройка периодической проверки. Добавьте cron-задание:
sudo crontab -e
И вставить:
0 3 * * * /usr/local/bin/check_usrbin.sh
Проверка будет происходить каждый день в 03:00, лог - в
/var/log/usrbin_integrity_check.log.⭐️ Что ещё можно сделать:
- Добавить /usr/sbin, /bin, /sbin — аналогично.
- Сравнивать не только hash, но и размер, время изменения (через stat).
- Использовать aide или tripwire для более продвинутого контроля.
BashTex 📱 #security