Защита информации в Интернет

         

Очистка системных журналов



Очистка системных журналов

Не желая предоставлять вам (а тем более — правоохранительным органам) каких-либо сведений о факте получения доступа к системе, взломщик, как правило, постарается очистить системные журналы от следов своего присутствия. В настоящее время существует много утилит очистки журналов, которые в большинстве случаев входят в набор отмычек. К таким программам, в частности, относятся zap, wzap, wted и remove. Однако обычно вполне достаточно даже простого текстового редактора, такого как vi или emacs.
Конечно, при удалении следов своей деятельности первый шаг злоумышленника заключается в изменении системных журналов регистрации. Для определения соответствующей методики достаточно взглянуть на конфигурационный файл /etc/syslog.conf. Например, из показанного ниже файла syslog.conf видно, что большинство системных журналов регистрации находится в каталоге /var/log/.

[quake]# cat /etc/syslog.conf
# Регистрация всех консольных сообщений уровня ядра.
# В процессе регистрации экран сильно
засоряется избыточной информацией.
#kern.* /dev/console
# Регистрация всех сообщений
(кроме почтовых) уровня info или выще.
# Не пытайтесь регистрировать
сообщения личной аутентификации!
#.info;mail.none;authpriv.none /var/log/messages
# Доступ к файлу authpriv ограничен.


authpriv.* /var/log/secure
# Регистрация всех почтовых сообщений в одном файле.
mail.* /var/log/maillog
# Everebody получает сообщения об опасности, плюс их регистрация
# на другой машине.
# . erne r g *
# Сохранение сообщений об ошибках почты и новостей уровня err и выше
# в специальном файле.
uucp,news.crit /var/log/spooler

Обладая этой информацией, злоумышленнику достаточно просмотреть содержимое каталога /var/log, чтобы найти в нем основные файлы журналов. Выведя на экран содержимое каталога, мы найдем в нем файлы журналов всех типов, включая сгоп, maillog, messages, spooler, secure (журналы TCP-оболочек), wtmp и xf erlog.
Взломщику понадобится изменить много файлов, в том числе messages, secure, wtmp и xf erlog. Поскольку журнал wtmp имеет двоичный формат (и обычно используется только командой who), для его изменения взломщик, как правило, прибегнет к помощи одной из отмычек. Программа wzap предназначена специально для удаления из этого журнала информации о заданном пользователе. Для того чтобы воспользоваться этой программой, достаточно ввести, например, следующую команду.

[quake]# who./wtmp
joel ftpd!7264 Jul 1 12:09 (172.16.11.204)
root ttyl Jul 4 22:21
root ttyl Jul 9 19:45
root ttyl Jul 9 19:57
root ttyl Jul 9 21:48
root ttyl Jul 9 21:53
root ttyl Jul 9 22:45
root ttyl Jul 10 12:24
joel ttyl Jul 11 09:22
stuman ttyl Jul 11 09:42
root ttyl Jul 11 09:42
root ttyl Jul 11 09:51
root ttyl Jul 11 15:43
joel ftpd841 Jul 11 22:51 (172.16.11.205)
root ttyl Jul 14 10:05
joel ftpd3137 Jul 15 08:27 (172.16.11.205)
joel ftpd82 Jul 15 17:37 (172.16.11.205)
joel ftpd945 Jul 17 19:14 (172.16.11.205)
root ttyl Jul 24 22:14
[quake]# /opt/wzap
Enter username to zap from the wtmp: joel
opening file...
opening output file...
working...
[quake]# who ./wtmp.out
root ttyl Jul 4 22:21
root ttyl Jul 9 19:45
root ttyl Jul 9 19:57
root ttyl Jul 9 21:48
root ttyl Jul 9 21:53
root ttyl Jul 9 22:45
root ttyl Jul 10 12:24
stuman ttyl Jul 11 09:42
root ttyl Jul 11 09:42
root ttyl Jul 11 09:51
root ttyl Jul 11 15:43
root ttyl Jul 14 10:05
root ttyl Jul 24 22:14
root ttyl Jul 24 22:14

Как видно из приведенного листинга, в новом журнале (файл wtmp.out) пользователь joel отсутствует. Теперь осталось скопировать файл wtmp.out поверх файла wtmp, и взломщик сможет скрыть факт своего присутствия в системе. Некоторые программы, такие как zap (для SunOS 4.x), на самом деле меняют лишь время последней регистрации в системе (эту информацию можно увидеть, например, обратившись с запросом finger и указав в качестве параметра имя интересующего вас пользователя). Теперь осталось вручную (точнее с помощью редактора, такого как vi или emacs) модифицировать файлы журналов secure, messages и xferlog, чтобы удалить последние следы своего пребывания в системе.
Одним из последних этапов очистки журналов является удаление данных об использованных командах. Многие командные оболочки UNIX ведут журналы введенных ранее команд (history), что обеспечивает дополнительные удобства при повторном вводе команд. Например, оболочка BASH (Bourne again shell) (/bin/bash) сохраняет соответствующий файл в рабочем каталоге пользователя (во многих случаях и в каталоге пользователя root). Этот файл журнала, содержащий список недавно введенных команд, называется .bash_history. Обычно перед тем, как покинуть систему, злоумышленник очищает этот журнал. Например, в файле .bash_history может содержаться следующая информация.

tail -f /var/log/messages
vi chat-ppp0
kill -.9 1521
logout < здесь находятся записи о регистрации злоумышленника и начале его
работы >
id pwd
cat /etc/shadow » /tmp/.badstuff/sh.log
cat /etc/hosts » /tmp/.badstuff/ho.log
cat /etc/groups » /tmp/.badstuff/gr.log
netstat -na » /tmp/.badstuff/ns.log
arp -a » /tmp/.badstuff/a.log
/sbin/ifconfig » /tmp/.badstuff/if.log
find / -name -type f -perm -4000 »
/tmp/.badstuff/suid.log
find / -name -type f -perm -2000 »
/tmp/.badstuff/sgid.log

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

unset HISTFILE; unset SAVEHIST

Кроме того, взломщик может создать ссылку .bash_history на файл /dev/null.

[rumble]# In -s /dev/null ~/.bash_history
[rumble]# Is -1 .bash_history
Irwxrwxrwx 1 root root 9 Jul 26 22:59 .bash_history ->
/dev/null

Контрмеры: защита от очистки журналов


Файлы журналов очень важно сохранять на таком носителе, на котором их трудно было бы модифицировать. К таким носителям, в частности, относятся файловые системы, поддерживающие расширенные атрибуты, такие как флаг "только для добавления" (append-only). Таким образом, в каждый файл журнала будет только дописываться новая информация, и злоумышленники не смогут ее изменить. Однако это вовсе не панацея, поскольку существует вероятность того, что при наличии времени, желания и соответст-вуюшего опыта злоумышленник сможет обойти этот механизм. Второй метод заключается в регистрации важных событий на защищенном узле. Одним из примеров реализации такого подхода является применение безопасной утилиты syslog компании Core Labs (http://www.core-sdi.com/english/freesoft.html). В этой утилите алгоритмы шифрования используются наряду с возможностью удаленной регистрации событий, что позволяет защитить самые важные журналы. Помните, что если злоумышленнику удалось проникнуть в вашу систему, то к имеющимся журналам нужно относиться с осторожностью, поскольку ему ничего не стоит их подделать.



Содержание раздела