Мониторинг файлов в Tripwire

Beginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

Установка Tripwire

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

Когда Tripwire запускается позже, он сравнивает текущее состояние файлов с сохраненными отпечатками. Если обнаруживаются какие-либо изменения (даже внесенные авторизованными пользователями), Tripwire генерирует оповещения. Это особенно полезно для мониторинга безопасности и обнаружения возможных нарушений системы.

Поскольку мы используем виртуальную машину LabEx на основе Debian, мы будем использовать пакетный менеджер apt для установки. Процесс включает следующие четкие шаги:

  1. Сначала нам нужно обновить локальный индекс пакетов. Это гарантирует, что мы установим самую последнюю доступную версию Tripwire:

    sudo apt update
  2. Теперь установите Tripwire с помощью этой команды. Флаг -y автоматически подтверждает установку:

    sudo apt install -y tripwire
  3. Во время установки вы увидите запросы на настройку. Выберите «Да» для обоих вопросов:

    • Первый вопрос спрашивает, хотите ли вы настроить Tripwire прямо сейчас.
    • Второй вопрос касается генерации шифровальных ключей (используемых для защиты базы данных Tripwire).
  4. После завершения установки убедимся, что все прошло успешно, проверив установленную версию:

    tripwire --version

Вы должны увидеть вывод, показывающий номер версии, как в этом примере:

Tripwire(R) 2.4.3.7

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

Инициализация базы данных

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

Перед началом важно понимать, что инициализация базы данных требует файла политики, который мы создали ранее. Этот файл политики сообщает Tripwire, какие файлы и каталоги нужно отслеживать и какие атрибуты проверять.

Следуйте этим шагам для инициализации базы данных:

  1. Сначала нам нужно сгенерировать фактический файл политики из отредактированной текстовой версии. Запустите эту команду:

    sudo twadmin --create-polfile /etc/tripwire/twpol.txt

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

  2. Теперь мы создадим начальный снимок базы данных с помощью этой команды:

    sudo tripwire --init

    Это может занять некоторое время, так как Tripwire сканирует все файлы, указанные в политике. Он вычисляет контрольные суммы и записывает атрибуты файлов для всего, что мы хотим отслеживать.

  3. Во время инициализации вы можете увидеть предупреждения, такие как:

    ######## Warning: File system error.
    #### Filename: /proc/XXXX/XXXX
    #### No such file or directory
    #### Continuing...

    Эти предупреждения о файлах в каталоге /proc являются нормальными и могут быть проигнорированы. Каталог /proc содержит динамическую системную информацию, которая часто меняется, поэтому Tripwire по умолчанию пропускает эти файлы.

  4. Убедимся, что база данных была успешно создана, проверив ее расположение:

    sudo ls -l /var/lib/tripwire/$(hostname).twd

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

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

Добавление файлов для мониторинга

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

Следуйте этим шагам, чтобы добавить мониторинг определенных файлов:

  1. Сначала сделайте резервную копию исходного файла политики. Это мера безопасности на случай, если вы допустите ошибку при редактировании:

    sudo cp /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bak
  2. Откройте файл политики для редактирования с помощью nano, простого текстового редактора. Мы используем sudo, так как это системный файл конфигурации:

    sudo nano /etc/tripwire/twpol.txt
  3. Прокрутите файл вниз, чтобы найти раздел, начинающийся с ( rulename = "User Binaries", (примерно на строке 200). Именно здесь мы добавим новое правило. Следующий блок определяет новое правило с именем "Lab Project Files", которое будет отслеживать все файлы в каталоге /home/labex/project:

    (
      rulename = "Lab Project Files",
      severity = $(SIG_HI)
      {
        /home/labex/project - > $(SEC_BIN)
      }
    )
  4. Сохраните файл, нажав Ctrl+O (записать), затем Enter для подтверждения, и выйдите из nano с помощью Ctrl+X.

  5. Теперь нам нужно обновить политику Tripwire в соответствии с внесенными изменениями. Команда twadmin компилирует текстовый файл политики в бинарный формат, который может использовать Tripwire:

    sudo twadmin -m P /etc/tripwire/twpol.txt

    Вам будет предложено ввести локальную парольную фразу - это пароль, который вы установили при установке Tripwire.

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

    sudo tripwire --update --database /var/lib/tripwire/$(hostname).twd

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

Проверка целостности файлов

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

Перед началом разберемся, что происходит во время проверки целостности:

  1. Tripwire сканирует все файлы, которые настроены для мониторинга.
  2. Он сравнивает текущее состояние каждого файла с исходным снимком, хранящимся в его базе данных.
  3. Любые различия (добавления, удаления или модификации) помечаются в отчете.

Следуйте этим шагам, чтобы проверить целостность файлов:

  1. Сначала создайте тестовый файл в каталоге проекта, который будет отслеживаться Tripwire. Это поможет нам увидеть, как Tripwire обнаруживает новые файлы:

    touch ~/project/test_file.txt
  2. Теперь запустите команду проверки целостности. Требуется sudo, так как Tripwire нуждается в правах root для доступа ко всем системным файлам:

    sudo tripwire --check
  3. Сканирование может занять несколько минут, так как Tripwire проходит через несколько этапов. Вы увидите вывод, похожий на следующий:

    #### Phase 1: Reading configuration file
    #### Phase 2: Generating file list
    #### Phase 3: Creating file information database
    #### Phase 4: Searching for inconsistencies
    #### Phase 5: Generating report
  4. Tripwire сгенерирует отчет, показывающий все обнаруженные изменения. Поскольку мы только что создали новый файл, вы должны увидеть запись, подобную этой, в выводе, что означает, что Tripwire заметил новый файл:

    Added:
    "/home/labex/project/test_file.txt"
  5. Чтобы просмотреть полный отчет, нам нужно проверить последний файл отчета, хранящийся в каталоге отчетов Tripwire. Эта команда выводит список отчетов, отсортированных по времени, начиная с самого последнего:

    sudo ls -lt /var/lib/tripwire/report/ | head -n 2

    Обратите внимание на имя файла самого последнего отчета в выводе (оно будет похоже на labex-hostname-YYYYMMDD-HHMMSS.twr).

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

Просмотр отчета о целостности

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

Пройдемся по процессу пошагово:

  1. Сначала нам нужно найти самый свежий файл отчета. Tripwire хранит свои отчеты в определенной директории, и имена файлов содержат временные метки:

    sudo ls -lt /var/lib/tripwire/report/ | head -n 2

    Команда ls -lt выводит файлы, отсортированные по времени изменения (сначала новые), а head -n 2 показывает только первые две строки (заголовок и самый свежий файл). Ищите имя файла в формате your-hostname-YYYYMMDD-HHMMSS.twr.

  2. Теперь мы используем встроенный просмотрщик отчетов Tripwire для изучения содержимого. Опция --report-level 4 дает нам наиболее подробный вид:

    sudo twprint --print-report --report-level 4 --twrfile /var/lib/tripwire/report/[REPORT_FILENAME]

    Не забудьте заменить [REPORT_FILENAME] на фактическое имя файла, найденное на шаге 1.

  3. Полный отчет содержит несколько важных разделов, которые помогают понять, что изменилось:

    • Добавленные файлы: Это новые файлы, которых не было в исходной базе данных.
    • Удаленные файлы: Файлы, которые были в базе данных, но теперь отсутствуют.
    • Измененные файлы: Существующие файлы, содержимое или атрибуты которых были изменены.
    • Сводка об ошибках: Любые проблемы, возникшие во время проверки.
  4. Если вы хотите получить только быструю сводку изменений без всех деталей, вы можете отфильтровать отчет:

    sudo twprint --print-report --report-level 4 --twrfile /var/lib/tripwire/report/[REPORT_FILENAME] | grep -A 10 "Report Summary"

    Команда grep -A 10 показывает строку "Report Summary" и следующие 10 строк контекста.

  5. Типичный вывод сводки выглядит так:

    Report Summary:
    --------------------------------------------------------------------------
    Added objects:   1
    Removed objects: 0
    Modified objects: 0

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

  6. Когда вы закончите просматривать отчет, вы можете выйти, нажав q, если в вашем терминале используется постраничный просмотр, или просто дождаться завершения вывода.

Резюме

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

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