В данной заметке я
рассмотрю сервер с точки зрения хакера, что даст администратору представление
о том, на что стоит обратить внимание при защите системы или уже после ее
взлома.
Сразу стоит сказать, что одни вообще не ведут логов, другие их не
смотрят, а третьи только этим и занимаются. Отбросив все это, мы просто
рассмотрим пример защиты от ведения логов — сделаем обзор
logwriter'ов.
Итак, второе, что делает хакер после взлома системы, — это
модификация или удаление логов. А логов может быть вагон и маленькая тележка.
Это, например, всем известный демон syslogd. Потом еще и файл bash_history.
Демон cron тоже помогает в этом (для примера, можно копировать выводы команд
w, who, last, lastlog через каждую минуту на отдельную машину). Также имеет
место установка специализированного софта для слежения за системой. Ну, а
грамотная настройка файрволла/IDS'а с ведением логом для хакера тоже может
плохо закончиться. Что в таком случае делать? Убедившись, что поблизости не
наблюдается админа или других полномочных юзеров, можно начать
работу.
Первое, что нужно сделать, — проанализировать ваш недавний взлом.
Обратите внимание на использованные при этом "дырявые" сервисы (ftp, http,
ssh, sendmail, pop3 и др.). Возможно, стоит посмотреть файлы
/var/log/[сервис]. После этого нужно немедленно заняться стандартным демоном,
таким как syslogd. Для этого и нужны logwriter'ы. Потом можно удалить файл
bash_history (или соответствующий используемой оболочке). Не забудьте
посмотреть /var/log/secure (это лог-файл TcpWrapper'а, который занимается
подключениями).
Из дополнительного софта чаще всего ставится tripwire.
Приемы противодействия можно найти на http://www.void.ru. Стоит сказать, что
здесь все зависит от вашей смекалки и обширности знаний в этой области:
программы ведения логов сейчас очень продвинулись, в списке процессов их не
видно, и в скрытых папках лежат.
Умные админы часто применяют различные
фичи. Например, syslogd сообщения можно перенаправить на отдельную станцию, на
консоль root'а, всем пользователям, что и делается. Таким штучкам довольно
трудно противостоять. Очень многие усиленно используют cron, выполняя им,
скажем, резервное копирование логов куда-либо. Из этого следует, что лучше все
тщательно проверять.
Стоит рассказать о IDS/Firewall. Что это такое?
Firewall фильтрует пакеты по определенным правилам, а IDS предотвращает
записанные в его базу (известные) атаки. Исходя из этого, следует, что такая
связка может попортить хакеру много нервных клеток. Разберемся с файрволлом.
Во-первых, он редко бывает грамотно настроен. Ну, а если и так, то все правила
можно спокойно сбросить, да и обычно все логируется в syslog. С IDS'ом тоже
обычно проблем не возникает, так как его мало кто ставит, также сложная его
настройка многих админов просто убивает. Во-вторых, IDS известны только атаки,
содержащиеся в его базе, а как часто админ ее обновляет? А если хакер придумал
что-то новое, то ему беспокоиться вообще не придется.
И все же основная
часть модификации логов — logwriter'ы. Правда, многие используют logwriter'ы
наугад, даже не удостоверившись в их работоспособности. Ниже приведен список
программ подобного рода, наиболее часто используемых взломщиками:
1. remove
— очищает (очищает — это не удаляет, а просто модифицирует) файлы wtmp, utmp,
lastlog.
2. marry — очищает utmp, wtmp, syslog.
3. utclean — очищает
wtmp, utmp.
4. zap[2] — очищает lastlog, wtmp.
5. displant.c — очищает
utmp.
6. cloak[2] — очищает lastlog, utmp, wtmp.
7. wtmped — очищает
wtmp.
8. wzap — очищает wtmp.
9. utmp — очищает utmp.
10. ucloak —
очищает lastlog, utmp.
11. sysfog — добавляет поддельные записи в
syslogd.
12. stealth — очищает utmp.
13. logwedit — очищает wtmp по
номеру tty.
14. logutmpeditor — очищает utmp.
15. logcloak — очищает
wtmp, utmp, lastlog.
16. lastlog — очищает lastlog.
17. wipe — очищает
wtmp, lastlog, utmp.