22.03.2004

Использование утилиты Afick для обнаружения вторжений.

Afick - это быстрая и доступная утилита, помогающая при обнаружении вторжений, а также позволяющая контролировать общую целостность системы. Эта утилита доступна для большинства платформ, как в двоичном, так и в исходном форматах. Ниже будут описаны основные сведения по установке и использованию afick.

Рик Николас, Перевод Алексей Антипов

Afick - это быстрая и доступная утилита, помогающая при обнаружении вторжений, а также позволяющая контролировать общую целостность системы. Эта утилита доступна для большинства платформ, как в двоичном, так и в исходном форматах. Ниже будут описаны основные сведения по установке и использованию afick.

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

Эта статья предназначена для пользователей, плохо знакомых с Linux системой и/или IDS (системой обнаружения вторжений). Компьютер, используемый в этом руководстве, находится под управлением ОС Fedora Core 1, поэтому, в зависимости от вашего Linux дистрибутива, могут возникнуть небольшие отличия.

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

Наконец, важно понимать, что Afick не сможет обеспечить 100% защиту. Лучшим средством является использование многоуровневой защитной стратегии, основанной на группе утилит, поддерживающих различные функции. Полная защита системы/сети, вне возможностей данной статьи, поэтому здесь не будут охвачены эти темы.

Теперь Вы узнали немного больше о Afick, давайте проведем установку и посмотрим, как работает эта программа!

Инсталляция

Самую полную версию Afick вы можете найти здесь

В этой статье мы использовали Afick 1.6-0, но можно скачать любую другую, подходящую вам, версию. Так как я использую Fedora, то в качестве примера мы будем использовать файл afick-1.6-0.noarch.rpm.

$su -
$password

Теперь инсталлируем скачанный нами .rpm файл:

#rpm -ivh afick-1.6-0.noarch.rpm

В результате вы увидите на экране что то типа такого:

warning: afick-1.6-0.noarch.rpm: V3 DSA signature: NOKEY, key ID cb6fa42a
Preparing... ########################################### [100%]
1:afick ########################################### [100%]
first install : we will initiate the database
Hash database created successfully. 36348 files entered.
-----------------------------------------------------------------
MD5 hash of /var/lib/afick/afick => 41daxskFuk22DZC+Z1eO3Q

Конфигурация

В процессе установки Afick формирует базу данных файлов, каталогов и их соответствующих им MD5 контрольных сумм. Файлы и каталоги, включенные в эту базу данных, выбираются соответственно входным данным из файла конфигурации Afick, называемого afick.conf, после того, как Afick установит этот файл в /etc каталог. Файл конфигурации afick.conf имеет простую синтаксическую структуру. По вашему усмотрению Вы можете очень быстро добавить или удалить типы файлов, каталоги, и т.д. Ниже приведено содержимое файла afick.conf. Обратите внимание, что элементы в файле конфигурации чувствительны к регистру.

# afick config sample file

# directives
############
database:=/var/lib/afick/afick Определяет какую базу данных будет использовать Afick

# report_url := stdout Определяет куда Afick будет выводить результаты своей работы
# verbose := no
# warn_dead_symlinks := no
# report_full_newdel := no
# warn_missing_file := no
# running_files := no
# timing := no
# text files
exclude_suffix := log LOG html htm HTM txt TXT xml Определяет, что Afick должен игнорировать текстовые файлы с такими расширениями.
# help files
exclude_suffix := hlp pod chm
Определяет, что Afick должен игнорировать файлы справки с такими расширениями
# old files
exclude_suffix := tmp old bak
Определяет, что Afick должен игнорировать временные файлы с такими расширениями
# fonts
exclude_suffix := fon ttf TTF
Определяет, что Afick должен игнорировать файлы шрифтов с такими расширениями

# images
exclude_suffix := bmp BMP jpg JPG gif png ico
Определяет, что Afick должен игнорировать файлы изображений с такими расширениями

# audio
exclude_suffix := wav WAV mp3 avi Определяет, что Afick должен игнорировать медиа файлы с такими расширениями

# macros
########
# used by cron
@@define MAILTO root Определяет пользователя, которому будут отсылаться отчеты по работе Afick.
@@define LINES 1000 Определяет максимальное количество строк в отчете
# list the file or directories to scan
# syntaxe :
# file action
# to have action on file (see below
# ! file
# to remove file from scan
# file with blank character have to be quoted
# action : a list of item to check
Ниже описаны опции, определяющие какие атрибуты файлов нужно контролировать.
# md5 : md5 checksum
# d : device
# i : inode
# p : permissions
# n : number of links
# u : user
# g : group
# s : size
# b : number of blocks
# m : mtime
# c : ctime
# a : atime
#R: p+d+i+n+u+g+s+m+c+md5
#L: p+d+i+n+u+g
# action alias may be configured with
# your_alias = another_alias|item[+item][-item]
# all is a pre-defined alias for all items except "a"

# alias :
#########
DIR = p+i+n+u+g

ETC = p+d+i+u+g+s+md5

Logs = p+n+u+

MyRule = p+d+i+n+u+g+s+b+md5+m .

# files to scan
##############

=/ DIR Проверка с использованием описанных выше правил для каталогов

#
/bin MyRule
/boot MyRule
!/boot/map
Игнорируется указанный каталог.
!/boot/System.map
Игнорируется указанный файл
/etc ETC
/etc/mtab ETC - i
/etc/adjtime ETC - md5
/etc/aliases.db ETC - md5
/etc/mail/statistics ETC - md5
!/etc/map
!/etc/webmin/sysstats/modules/
!/etc/cups/certs/0
/lib MyRule
/lib/modules MyRule -m
/root MyRule
!/root/.viminfo
!/root/.bash_history
!/root/.mc
/sbin MyRule
/usr/bin MyRule
/usr/sbin MyRule
/usr/lib MyRule
/usr/local/bin MyRule
/usr/local/sbin MyRule
/usr/local/lib MyRule
/var/ftp MyRule
/var/log Logs
/var/www MyRule

Как видно, файл конфигурации Afick довольно прост для понимания. Ниже приведен пример, в котором к проверке целостности Afick добавляется ваш основной каталог. К примеру, вам необходимо, чтобы файлы в этом каталоге проверялись на изменения при монопольном доступе, изменение прав доступа, изменения размера файлов и времени последнего обращения к файлу. Для начала нужно создать новый элемент, под разделом #alias в файле конфигурации afick.conf, как показано ниже:

HOME = u+g+p+m+s

Затем в разделе #files to scan необходимо добавить следующую строку:

/home/yourusername HOME

Теперь, при следующем запуске, Afick добавит ваш каталог в свою базу данных и будет контролировать находящиеся в нем файлы, согласно указанным вами критериям. Если вы хотите, чтобы ваши изменения применились немедленно, то можно запустить Afick вручную, используя следующую команду:

Afick -- update

Иначе, вам придется ждать запуска крон задачи Afick. Эта задача добавляется автоматически во время инсталляции программы и запускается один раз в день. Результаты работы данного задания вы получите по электронной почте на адрес, указанный в разделе MAILTO файла конфигурации afick.conf. Используя почтового клиента, вы сможете увидеть ежедневный отчет примерно в таком виде:

This is an automated report generated by Another File Integrity Checker on
+localhost.localdomain at 07:46:07 AM on 02/25/2004.
Output of the daily afick run:
new file : /var/log/afick/afick.log.2
new file : /var/log/afick/error.log.2
deleted file : /etc/sysconfig/iptables
changed file : /etc/adjtime
changed file : /etc/aliases.db
changed file : /etc/mail/statistics
changed file : /etc/prelink.cache
changed file : /etc/printcap
detailed changes
changed file : /etc/adjtime
MD5 : 7+bTDZQbxsTXEJXhyI2GCw ao6a/yDwoBR8GSL1AKlWXQ
changed file : /etc/aliases.db
MD5 :GT/eP5D+B8apNoa7L5CLRw soh7MnLDuQw4gI9KHlhpTA
changed file : /etc/mail/statistics
MD5 :oshq17jZ2a0o5pYhVBRgwQ vb69gMWXvpIEEZ4fmOl9/Q
changed file : /etc/prelink.cache
MD5 : SKh/403FRMUqBNdCIInQ9A zeC+5EPFfWBR4OeT7xZdbw
changed file : /etc/printcap
MD5 : b5e3g2//bGaxeCxVyRJqaw QFY1NJGy/kdt32B1YV0TXQ
filesize : 194 581

В примере выше Afick сообщает нам, что некоторые файлы были изменены, созданы или удалены. Также нам показываются начальные и текущие контрольные суммы файлов, и сообщается, что в одном из файлов был изменен его размер. Afick узнает об происходящих изменениях в файле, сравнивая его атрибуты с атрибутами, которые были сохранены при последнем запуске Afick. Примером этого могут служить файлы в папке /usr/bin, или в /sbin. Обычно эти файлы редко изменяются, если только вы не изменили их, обновляя программу (в противном случае они не должны изменяться). Если вы плохо знакомы с Linux, то вы не можете точно знать, являются ли эти изменения потенциальной проблемой, но вы всегда можете обратиться к более осведомленному человеку и более подробно узнать об этом.

В заключение стоит обратить внимание на то, где вы сохраняете вашу базу данных Afick (по умолчанию - /var/lib/afick/), потому что может возникнуть ситуация, когда ваша система была взломана, а вы об этом не узнаете, т.к. была нарушена целостность базы данных. Возможным решением данного вопроса может быть сохранение базы на защищенных от записи носителях (например, CD-ROM), после чего изменить файл конфигурации afick.conf, чтобы указать на выбранное вами место сохранения базы.

Мы подошли к концу нашего руководства. Afick является очень мощным средством, контролирующим целостность нашей системы. Чтобы узнать более подробно об этой программе, посетите сайт http://www.securitylab.ru/tools/41294.html Удачи!

comments powered by Disqus