Инсталляция и использование AIDE |
ВведениеЕсли ваша система была взломана, то есть шанс, что хакер, кракер, "троян", "червь" или кто-то еще могли либо заменить системные файлы, либо установить новые. Как правило, ими оказываются программы, имеющие "черный ход" (backdoors) и/или другой деструктивный по отношению к вашей системе код. Представьте себе подменённую версию программы для входа в систему, которая после ввода специального пароля впускает кого-то с правами суперпользователя (magic password -- неотъемлимая часть большинства rootkits [Набор утилит, которые взломщик устанавливает на компьютере. Более подробно смотрите сделанный Ингой Захаровой перевод статьи на эту тему. Прим.перев.] ). Или представьте содержащий "трояна" ssh-клиент, сообщающий по электронной почте информацию о пользователе (логин и пароль) -- очень напоминает ту ситуацию, что случилась в прошлом году с один солидным сайтом. Программы проверки целостности файлов могут нам помочь, регулярно сохраняя контрольные или хеш-суммы и другие произвольные атрибуты файлов (размер, владелец, группа, права доступа и прочее) в базе данных и позднее сравнивая свежеполученную информацию на предмет изменений. И, если программа входа в систему была заменена или был создан каталог /tmp/.hidden/backdoord, вы будете об этом предупреждены. Эта статья объяснит, как установить и использовать AIDE -- свободно распространяемая система обнаружения вторжений (IDS -- Intrusion Detection System), ориентированная на работу на конкретном компьютере-хосте (host-based type) или, если хотите, программа проверки целостности файлов. Цитата с сайта AIDE: AIDE (Advanced Intrusion Detection Environment -- Среда для Обнаружения Вторжений с Расширенными Возможностями) является свободной заменой Tripwire. Она может делать все, что и "наполовину" свободный Tripwire (Автор имеет ввиду, что открытая редакция Tripwire существует только для Linux. Прим. перев.) и кое-что сверх этого. Полная инсталляция AIDE помещается на одной дискете. В программе
есть возможность проверять различные изменения в файлах и каталогах,
временами доходящая до степени легкой параноидальности. На такого
рода контроль требуется много времени и иногда возможны ложные срабатывания,
но программа делает контроль над изменениями менее сложным (но не
менее безопасным!). Настроив собственную конфигурацию (вы можете начать
с моего примера) и поработав пару недель, вы поймете, что именно нужно
изменить в настройках. Помните, что диск надо будет монтировать каждый
раз, когда вы захотите сделать проверку. Это требует больше времени,
чем обычно, но, если атакующий уже "внутри", то он не сможет: а) изменить
вашу базу данных и б) не будет знать, что вы регулярно проверяете
систему при помощи AIDE. ИнсталляцияВо-первых, необходимо создать файловую систему на дискете (соответствия обозначений между DOS и Linux: диск A: -- /dev/fd0, диск B: -- /dev/fd1): root@pc2:~# root@pc2:~# mkfs /dev/fd0 mke2fs 1.22, 22-Jun-2001 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 184 inodes, 1440 blocks 72 blocks (5.00%) reserved for the super user First data block=1 1 block group 8192 blocks per group, 8192 fragments per group 184 inodes per group Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@pc2:~# далее подмонтируйте дискету и создайте на ней директорию "aide"... root@pc2:~# root@pc2:~# mount /dev/fd0 /mnt/floppy root@pc2:~# root@pc2:~# mkdir /mnt/floppy/aide root@pc2:~# Возьмите исходники AIDE, скомпилируйте во временном каталоге и установите систему на флоппи-диске (если хотите что-то изменить, то воспользуйтесь ключом --prefix при запуске скрипта настройки конфигурации configure ); Прежде чем выполнять инсталляцию на дискету, "ужмите" двоичные файлы утилитой strip и не забудьте удалить временную директорию. (И место освободите, и следы за собой "заметёте". 8-) Прим. перев.). Вывод программ распаковки и сборки "изрядно подсокращен" -- прим. редактора... root@pc2:~# root@pc2:~# mkdir /tmp/aide root@pc2:~# root@pc2:~# cd /tmp/aide root@pc2:/tmp/aide# root@pc2:/tmp/aide# wget http://www.cs.tut.fi/~rammer/aide-0.7.tar.gz --12:54:47-- http://www.cs.tut.fi/%7Erammer/aide-0.7.tar.gz => `aide-0.7.tar.gz' Connecting to www.cs.tut.fi:80... connected! HTTP request sent, awaiting response... 200 OK Length: 219,837 [application/x-tar] 0K .......... .......... .......... .......... .......... 23% @ 34.84 KB/s 50K .......... .......... .......... .......... .......... 46% @ 50.97 KB/s 100K .......... .......... .......... .......... .......... 69% @ 65.45 KB/s 150K .......... .......... .......... .......... .......... 93% @ 46.38 KB/s 200K .......... .... 100% @ 7.17 MB/s (Вот это КАНАЛ! 8-) Прим. перев.) 12:54:52 (50.40 KB/s) - `aide-0.7.tar.gz' saved [219837/219837] root@pc2:/tmp/aide# Теперь создадим очень простой конфигурационный файл, который позволит проверять изменения в выбранных каталогах (включая все файлы, находящиеся "ниже") по следующим признакам: права доступа, номер индексного дескриптора (inode), количество символических ссылок, имя владельца, имя группы, размер, время модификации, время создания и контрольная сумма (md5). И сгенерируем базу данных... root@pc2:/tmp# root@pc2:/tmp# cd /mnt/floppy/aide/bin/ root@pc2:/mnt/floppy/aide/bin# root@pc2:/mnt/floppy/aide/bin# cat aide.conf database=file:/mnt/floppy/aide/bin/aide.db database_out=file:/mnt/floppy/aide/bin/aide.db.new /vmlinuz R /boot R /etc R /bin R /usr/bin R /usr/local/bin R /sbin R /usr/sbin R /usr/local/sbin R /var/log R /tmp R /var/tmp R root@pc2:/mnt/floppy/aide/bin# root@pc2:/mnt/floppy/aide/bin# ./aide --config=./aide.conf --init root@pc2:/mnt/floppy/aide/bin# root@pc2:/mnt/floppy/aide/bin# mv aide.db.new aide.db root@pc2:/mnt/floppy/aide/bin# Это только "рабочий" пример конфигурационного файла, я использую именно такой, но вы, конечно, можете (и должны!) приспособить его под свои нужды. Помните, что база данных должна постоянно находиться на дискете! В конце этого документа есть ссылка на пример aide.conf. Размонтируйте флоппи-диск -- у вас есть готовый к использованию экземпляр AIDE. Регулярное использование (проверки и обновления)Теперь у нас есть дискета с базой данных, и мы можем регулярно использовать ее для проверки изменений в файлах, которые нужно контролировать. Я создам файл в подкаталоге /tmp, чтобы показать на его примере как действует AIDE... root@pc2:/# root@pc2:/# cat > /tmp/.hidden hidden root@pc2:/# root@pc2:/# mount /dev/fd0 /mnt/floppy/ root@pc2:/# cd /mnt/floppy/aide/bin/ root@pc2:/mnt/floppy/aide/bin# ./aide --config=./aide.conf --check AIDE found differences between database and filesystem!! (Обнаружены различия между базой данных и фаловой системой!!) Start timestamp: 2002-01-21 15:22:56 Summary: Total number of files=1443,added files=1,removed files=0,changed files=1 Added files: added:/tmp/.hidden Changed files: changed:/tmp Detailed information about changes (подробнее об изменениях): File: /tmp Mtime: old = 2002-01-21 13:36:25, new = 2002-01-21 15:22:03 Ctime: old = 2002-01-21 13:36:25, new = 2002-01-21 15:22:03 root@pc2:/mnt/floppy/aide/bin# Всё предельно ясно, сделали изменения -- получите извещение. 8-) Теперь представьте следующую ситуацию: файл /tmp/.hidden был создан, AIDE сообщила об этом, вы проверили его и выяснили, что никакого "криминала" в нем нет и быть не может и вы не хотите, чтобы предупреждения об этом в дальнейшем вас беспокоили. Для этого вам нужно обновить базу данных AIDE. (Прежде чем сделать это, необходимо убедиться в том, что все изменения в файловой системе проконтролированы. Прим. перев.) root@pc2:/mnt/floppy/aide/bin# root@pc2:/mnt/floppy/aide/bin# ./aide --config=./aide.conf --update AIDE found differences between database and filesystem!! Start timestamp: 2002-01-21 15:28:58 Summary: Total number of files=1443,added files=1,removed files=0,changed files=1 Added files: added:/tmp/.hidden Changed files: И, наконец, ... выводы, файлы, ссылки, прочее.Помните, что вам следует: не забывать сохранять всю важную, относящуюся
к AIDE информацию на дискете; не оставлять примонтированый флоппи-диск
и удалять все следы AIDE из системы (если таковые имеются), для того,
чтобы атакующий не знал об использовании вами системы аудита файлов;
измените пример конфигурационного файла так, как нужно вам. Приветствуется
чтение руководства по AIDE, помните -- это очень гибкая программа.
И, наконец, цитата из раздела 'Общее руководство по безопасности':
Пример конфигурационного файла aide.conf: misc/maiorano/aide.conf.txt Домашняя страница проекта AIDE: http://www.cs.tut.fi/~rammer/aide.html Здесь вы можете взять архив исходников AIDE: http://www.cs.tut.fi/~rammer/aide-0.7.tar.gz (На момент перевода статьи, текущей версией была 0.8, поэтому лучше воспользоваться домашней страницей проекта. Прим. перев.) Домашняя страница Tripwire, более известной альтернативы AIDE: http://www.tripwire.org Несколько заметок и статей для будущего чтения... Интересная статья на securityfocus.com озаглавленная 'Вас, возможно, уже взломали': http://www.securityfocus.com/columnists/12 Статья на linuxsecurity.com озаглавленная 'Начиная работу с Tripwire (Open Source Linux Edition)': http://www.linuxsecurity.com/feature_stories/feature_story-81.html Еще одна интересная статья для чтения: 'Сравнение сетевых и хост-ориентированных систем обнаружения вторжения -- руководство по технологии обнаружения вторжений' от ISS: http://secinf.net/info/ids/nvh_ids/ Коммерческая точка зрения на эту проблему от NetworkWorldFusion: 'Снижение количества сетевых нарушителей': http://www.nwfusion.com/reviews/1004trends.html Ariel MaioranoЯ -- независимый программист из Аргентины. Занимаюсь, как правило, разработкой для web и в области безопасности. Copyright (C) 2002, Ariel Maiorano.
|
Вернуться на главную страницу |