Введение
В этой лабораторной работе вы научитесь использовать Tripwire — мощную систему обнаружения вторжений на уровне хоста (HIDS) — для мониторинга целостности файлов. Принцип работы Tripwire заключается в создании эталонной базы данных файлов вашей системы и последующем периодическом сканировании для обнаружения любых добавлений, удалений или модификаций. Этот процесс имеет решающее значение для выявления несанкционированных изменений и обеспечения безопасности системы.
Вы пройдете через весь процесс: от первоначальной настройки ключей безопасности до настройки политик мониторинга, создания контрольной точки, обнаружения изменений и анализа отчетов.
Настройка ключей Tripwire
Добро пожаловать на практическое занятие. Пакет tripwire уже предустановлен в вашей среде для экономии времени. Ваша первая задача — настроить криптографические ключи, которые Tripwire использует для защиты своей базы данных и конфигурационных файлов. Эти ключи гарантируют, что злоумышленник не сможет подделать собственные файлы Tripwire, чтобы скрыть свои следы.
Сначала убедитесь, что Tripwire установлен, проверив его версию.
tripwire --versionВы должны увидеть вывод с информацией об установленной версии Tripwire.
Tripwire(R) 2.4.3.7 (i686-pc-linux-gnu) ...Затем вручную создайте криптографические ключи с помощью
twadmin. Вам необходимо создать site key (ключ сайта) и local key (локальный ключ). Ключ сайта защищает файлы политик и конфигурации, а локальный ключ защищает базу данных на конкретной машине.Сначала создайте ключ сайта:
sudo twadmin --generate-keys --site-keyfile /etc/tripwire/site.keyЕсли файл ключа уже существует, вам будет предложено перезаписать его. Введите
yи нажмите Enter для подтверждения.Когда появится запрос пароля для ключа сайта (passphrase), введите
labex-passwordи нажмите Enter. Затем подтвердите пароль, введя его еще раз.Примечание: Ввод пароля скрыт в целях безопасности — вы не увидите символов при наборе, но система фиксирует ваш ввод.
Далее создайте локальный ключ:
sudo twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.keyЕсли снова появится запрос на перезапись существующего файла ключа, введите
yи нажмите Enter.Когда появится запрос пароля для локального ключа, введите
labex-passwordи нажмите Enter. Подтвердите пароль. Помните, что ввод пароля не отображается на экране.После ввода паролей оба ключа будут созданы и сохранены в директории
/etc/tripwire/. Процесс генерации ключей может занять несколько минут.
Настройка политики мониторинга
Перед созданием исходной базы данных (эталона) необходимо настроить, какие файлы и директории Tripwire должен отслеживать. Из-за проблем совместимости со стандартным файлом политики, которые могут вызвать ошибки сегментации при инициализации, вы создадите упрощенную политику, ориентированную на основные системные файлы и вашу рабочую директорию.
Сначала создайте резервную копию оригинального файла политики.
sudo cp /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bakСоздайте новый упрощенный файл политики, исключающий проблемные виртуальные файловые системы.
sudo nano /etc/tripwire/twpol-simple.txtДобавьте в файл следующее содержимое. Эта упрощенная политика отслеживает важные системные файлы и вашу директорию проекта, избегая путей, которые могут вызвать ошибки инициализации:
# ## Simplified Tripwire Policy File for Lab Environment # @@section GLOBAL TWBIN = /usr/sbin; TWETC = /etc/tripwire; TWVAR = /var/lib/tripwire; @@section FS SEC_CRIT = $(IgnoreNone)-SHa ; SEC_BIN = $(ReadOnly) ; SEC_CONFIG = $(Dynamic) ; SEC_LOG = $(Growing) ; SEC_INVARIANT = +tpug ; SIG_LOW = 33 ; SIG_MED = 66 ; SIG_HI = 100 ; ( rulename = "Tripwire Binaries", severity = $(SIG_HI) ) { $(TWBIN)/siggen -> $(SEC_BIN) ; $(TWBIN)/tripwire -> $(SEC_BIN) ; $(TWBIN)/twadmin -> $(SEC_BIN) ; $(TWBIN)/twprint -> $(SEC_BIN) ; } ( rulename = "Tripwire Data Files", severity = $(SIG_HI) ) { $(TWVAR)/$(HOSTNAME).twd -> $(SEC_CONFIG) -i ; $(TWETC)/tw.pol -> $(SEC_BIN) -i ; $(TWETC)/tw.cfg -> $(SEC_BIN) -i ; $(TWETC)/$(HOSTNAME)-local.key -> $(SEC_BIN) ; $(TWETC)/site.key -> $(SEC_BIN) ; $(TWVAR)/report -> $(SEC_CONFIG) (recurse=0) ; } ( rulename = "Critical system files", severity = $(SIG_HI) ) { /bin -> $(SEC_BIN) ; /sbin -> $(SEC_BIN) ; /etc/passwd -> $(SEC_CONFIG) ; /etc/shadow -> $(SEC_CONFIG) ; } ( rulename = "Lab Project Files", severity = $(SIG_HI) ) { /home/labex/project -> $(SEC_BIN) ; }Сохраните файл и выйдите из
nano, нажавCtrl + O, затемEnter, и наконецCtrl + X.Замените оригинальный файл политики вашей упрощенной версией.
sudo cp /etc/tripwire/twpol-simple.txt /etc/tripwire/twpol.txt
Теперь вы создали упрощенную политику мониторинга, которая будет надежно работать в лабораторной среде. На следующем этапе вы используете эту политику для создания исходной базы данных.
Инициализация базы данных Tripwire
После настройки упрощенной политики вы готовы к созданию базы данных Tripwire. Эта база данных служит «эталонным снимком» вашей системы в заведомо исправном состоянии. Tripwire будет сравнивать текущее состояние ваших файлов с этим эталоном для обнаружения любых изменений.
Сначала пересоздайте конфигурационный файл с вашим новым ключом сайта для обеспечения совместимости.
sudo twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txtВам будет предложено ввести пароль для ключа сайта. Введите
labex-passwordи нажмите Enter.Преобразуйте текстовый файл политики в подписанный бинарный формат, который использует Tripwire.
sudo twadmin --create-polfile /etc/tripwire/twpol.txtСнова введите пароль для ключа сайта (
labex-password) при появлении запроса.Инициализируйте базу данных. Эта команда сканирует все файлы и директории, указанные в вашей политике, и записывает их криптографические подписи и атрибуты.
sudo tripwire --initВам будет предложено ввести пароль для локального ключа. Введите
labex-passwordи нажмите Enter.Во время инициализации вы можете увидеть предупреждение о том, что файл базы данных изначально отсутствует:
#### Warning: File system error. #### Filename: /var/lib/tripwire/68b1139d06fc790d9895e107.twd #### No such file or directory #### Continuing...Это нормальное и ожидаемое поведение при первой инициализации. Процесс продолжится и создаст файл базы данных.
После завершения процесса убедитесь, что файл базы данных был создан.
ls -l /var/lib/tripwire/Вы должны увидеть файл, названный в честь имени хоста вашей машины с расширением
.twd(например,68b1139d06fc790d9895e107.twd). Наличие этого файла подтверждает, что ваша эталонная база данных успешно создана.total 8 -rw-r--r-- 1 root root 4164 Aug 29 11:00 68b1139d06fc790d9895e107.twd drwxr-xr-x 2 root root 6 Nov 11 2021 report
Ваша система Tripwire теперь должным образом инициализирована с эталонной базой данных. Любые будущие изменения в отслеживаемых файлах будут обнаружены при запуске проверки целостности.
Обнаружение и отчет об изменениях файлов
Теперь, когда у Tripwire есть эталон, вы можете протестировать его способность обнаруживать изменения. Вы создадите новый файл в директории вашего проекта, чтобы увидеть, как Tripwire реагирует на модификации в отслеживаемых зонах.
Сначала создайте новый файл в директории
project. Это директория, которую вы явно добавили в политику мониторинга.touch ~/project/test_file.txtПосле внесения изменений запустите проверку целостности. Tripwire просканирует систему и сравнит ее с эталонной базой данных.
sudo tripwire --checkВам будет предложено ввести пароль для локального ключа. Введите
labex-passwordи нажмите Enter.После завершения сканирования Tripwire создаст отчет и выведет сводку в консоль. В сводке будут выделены объекты, которые были добавлены или изменены. Вы должны увидеть вывод, похожий на этот:
=============================================================================== Rule Summary: =============================================================================== Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Tripwire Binaries 100 0 0 0 Critical system files 100 0 0 0 * Tripwire Data Files 100 1 0 0 * Lab Project Files 100 1 0 1 (/home/labex/project) Total objects scanned: 16 Total violations found: 3 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------- Rule Name: Lab Project Files (/home/labex/project) Severity Level: 100 ------------------------------------------------------------------------------- Added: "/home/labex/project/test_file.txt" Modified: "/home/labex/project"Отчет показывает, что Tripwire обнаружил:
- Added (Добавлено): Новый файл
test_file.txtв директории вашего проекта. - Modified (Изменено): Сама директория
/home/labex/project(поскольку ее содержимое изменилось). - Tripwire Data Files: Файл базы данных также был помечен как «добавленный», так как это первая проверка после инициализации.
- Added (Добавлено): Новый файл
Этот вывод подтверждает, что Tripwire успешно зафиксировал внесенные вами изменения в файловой системе.
Анализ отчета о целостности
Сводка команды --check дает хороший обзор, но для детального анализа вы можете просмотреть полный файл отчета. Эти отчеты хранятся в бинарном формате и должны читаться с помощью утилиты twprint.
Сначала просмотрите содержимое директории с отчетами, чтобы найти имя самого последнего отчета. В именах файлов отчетов указывается метка времени.
sudo ls -lt /var/lib/tripwire/report/В выводе будут перечислены файлы отчетов, самый новый из которых находится сверху. Запишите его имя, которое обычно соответствует формату
hostname-YYYYMMDD-HHMMSS.twr.total 4 -rw------- 1 root root 3456 Aug 29 11:02 68b1139d06fc790d9895e107-20250829-110252.twrИспользуйте команду
twprintдля просмотра отчета в удобном для чтения формате. Замените[REPORT_FILENAME]на реальное имя файла, которое вы получили из предыдущей команды.sudo twprint --print-report --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]Например:
sudo twprint --print-report --twrfile /var/lib/tripwire/report/68b1139d06fc790d9895e107-20250829-110252.twrПодробный отчет содержит ту же информацию, что и сводка, но с дополнительными метаданными:
Report created on: Fri Aug 29 11:02:52 2025 Database last updated on: Never Host name: 68b1139d06fc790d9895e107 Host IP address: 172.18.0.8 Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/68b1139d06fc790d9895e107.twd Command line used: tripwire --checkОтчет предоставляет исчерпывающие сведения о каждом изменении, включая временные метки, свойства файлов и контрольные суммы. Такой уровень детализации крайне важен для криминалистического анализа, чтобы точно понять, какие изменения произошли в вашей системе.
Вы также можете просмотреть более подробную версию с атрибутами файлов, используя флаг
--verbose:sudo twprint --print-report --verbose --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]Это покажет дополнительную информацию, такую как права доступа к файлам, владельца, размер и различные криптографические хэши для каждого обнаруженного изменения.
Умение читать эти отчеты необходимо системным администраторам для расследования потенциальных инцидентов безопасности и поддержания целостности системы.
Резюме
В этой лабораторной работе вы изучили основы использования Tripwire для мониторинга целостности файлов. Вы успешно настроили ключи безопасности Tripwire, адаптировали политику мониторинга для включения конкретной директории проекта и создали эталонную базу данных состояния файлов вашей системы.
Кроме того, вы отработали основной рабочий процесс системного администратора: намеренно изменили файлы, запустили проверку целостности для обнаружения этих изменений и проанализировали подробный отчет, чтобы понять, что именно было изменено. Эти навыки являются фундаментальными для обеспечения безопасности системы и обнаружения несанкционированной активности.



