Чтение онлайн

ЖАНРЫ

Linux глазами хакера

Флёнов Михаил Евгеньевич

Шрифт:

rpm -i пакет

Для обновления уже установленного пакета можно выполнить команду с параметром

– U
:

rpm -U пакет

Для того чтобы видеть ход инсталляции, можно указать еще и ключ

– v
. Таким образом, команда установки будет выглядеть следующим образом:

rpm -iv пакет

which

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

which
с именем программы в качестве параметра, которая проверит основные
каталоги, содержащие исполняемые файлы. Например, чтобы определить, где находится программа просмотра содержимого каталогов
ls
, выполните следующую команду:

which ls

В результате вы увидите путь /bin/ls. Если ваша ОС поддерживает псевдонимы (alias) команд, то можно будет увидеть и его. Таким образом, после выполнения команды на экране выведется:

alias ls='ls -color=tty' /bin/ls

3.1.2. Безопасность файлов

В гл. 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:

md5sum /etc/* >> /home/flenov/md

Чтобы сравнить текущее состояние файлов директории /etc с содержимым файла /home/flenov/md, необходимо выполнить команду:

md5sum -с /home/flenov/md

На экране появится список всех файлов, и напротив каждого должна быть надпись "Success" (Успех). Это означает, что изменений не было. Давайте модифицируем какой-нибудь файл, выполнив, например, следующую команду:

groupadd test

Поделиться с друзьями: