Читаем Linux глазами хакера полностью

В гл. 4 мы будем подробно говорить о правах доступа. Это основа обеспечения безопасности, но и только, и надеяться на это нельзя. Необходимы дополнительные инструменты сохранения целостности системы, или, по крайней мере, вы должны следить за изменениями основных объектов ОС — файлами. В них хранится информация, а именно она необходима взломщикам. Хакеры стремятся прочитать, изменить или даже уничтожить информацию, поэтому вы должны уметь ее контролировать.

Дата изменения

Самый простейший способ контроля — наблюдение за датой редактирования. Допустим, что взломщик проник в вашу систему в 10:30. Чтобы узнать, что было изменено злоумышленником, можно запустить поиск всех файлов, у которых дата корректировки больше этого времени. Вроде легко, но не очень эффективно, потому что дату можно изменить с помощью команды touch. В общем виде команда выглядит следующим образом:

touch параметры ММДДччммГГ файл

Прописными буквами показаны параметры даты, а строчными — время. Формат немного непривычный, но запомнить можно. Год указывать необязательно, в этом случае будет использоваться текущий.

Рассмотрим пример. Допустим, что вы хотите установить на файл /etc/passwd дату изменения 21 января 11:40. Для этого выполняем следующую команду:

touch 01211140 /etc/passwd

Теперь воспользуйтесь командой ls -l /etc/passwd, чтобы убедиться, что дата и время изменения установлены верно.

С помощью команды touch можно и создавать файлы, сразу же указывая необходимую дату.

Несмотря на то, что дата корректировки легко изменяется, хакер может забыть или просто не успеть сделать это, а, возможно, ему просто не хватит прав.

Итак, найти все файлы, дата изменения которых больше 21 января 11:40 2005 года, можно следующим образом:

touch 0121114005 /tmp/tempfile

find /etc \(-newer /tmp/tempfile \) -ls

find /etc \(-cnewer /tmp/tempfile \) -ls

find /etc \(-anewer /tmp/tempfile \) -ls

В первой строке мы создаем файл во временной директории /tmp с необходимой датой изменения, по которой и будет происходить сравнение.

Следующие три строки производят поиск файлов. Каждая из них имеет следующую структуру:

find директория \( -сравнение файл \) -ls

Рассмотрим по частям эту строку:

□ find — программа поиска файлов;

□ директория — каталог, в котором нужно искать. В нашем случае я указал системный /etc, в котором хранятся все настроечные файлы;

□ параметр (-сравнение файл \) — состоит из файла для сопоставления и критерия поиска файлов, который может принимать различные значения:

 • -newer — дата изменения больше, чем у заданного файла в параметре файл;

 • -cnewer — состояние изменено позже, чем у сопоставляемого файла в параметре файл;

 • -anewer — дата последнего доступа превосходит, аналогичный параметр сравниваемого файла;

□ параметр -ls — отображает на экране список файлов (как при выполнении команды ls).

Контрольные суммы

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

md5sum /etc/*

Таким образом, подсчитывается контрольная сумма указанных в качестве параметра файлов. На экране вы получите результат выполнения команды примерно такого вида:

783fd8fc5250c439914e88d490090ae1 /etc/DIR_COLORS

e2eb98e82a51806fe310bffdd23ca851 /etc/Muttrc

e1043de2310c8dd266eb0ce007ac9088 /etc/a2ps-site.cfg

4543eebd0f473107e6e99ca3fc7b8d47 /etc/a2ps.cfg

c09badb77749eecbeafd8cb21c562bd6 /etc/adjtime

70aba16e0d529c3db01a20207fd66b1f /etc/aliases

c3e3a40097daed5c27144f53f37de38e /etc./aliases.db

3e5bb9f9e8616bd8a5a4d7247f4d858e /etc/anacrontab

fe4aad090adcd03bf686103687d69f64 /etc/aspldr.conf

...

Результат отображается в две колонки: первая содержит контрольную сумму, а вторая — имя файла. Контрольные суммы подсчитываются только для файлов. Для каталогов будет выведено сообщение об ошибке.

В данном случае указаны все файлы каталог а /etc/*. Результат расчета выводится на экран. Но запоминать эти данные неудобно, поэтому логично будет записать их в файл, чтобы потом использовать его содержимое для анализа изменений. Следующая команда сохраняет результат в файле /home/flenov/md:

Перейти на страницу:

Похожие книги