Мониторинг файлов с помощью Tripwire

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

Введение

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

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

Настройка ключей Tripwire

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

  1. Сначала убедитесь, что Tripwire установлен, проверив его версию.

    tripwire --version
    

    Вы должны увидеть вывод с информацией об установленной версии Tripwire.

    Tripwire(R) 2.4.3.7
    (i686-pc-linux-gnu)
    ...
    
  2. Затем вручную создайте криптографические ключи с помощью twadmin. Вам необходимо создать site key (ключ сайта) и local key (локальный ключ). Ключ сайта защищает файлы политик и конфигурации, а локальный ключ защищает базу данных на конкретной машине.

    Сначала создайте ключ сайта:

    sudo twadmin --generate-keys --site-keyfile /etc/tripwire/site.key
    

    Если файл ключа уже существует, вам будет предложено перезаписать его. Введите y и нажмите Enter для подтверждения.

    Когда появится запрос пароля для ключа сайта (passphrase), введите labex-password и нажмите Enter. Затем подтвердите пароль, введя его еще раз.

    Примечание: Ввод пароля скрыт в целях безопасности — вы не увидите символов при наборе, но система фиксирует ваш ввод.

  3. Далее создайте локальный ключ:

    sudo twadmin --generate-keys --local-keyfile /etc/tripwire/$(hostname)-local.key
    

    Если снова появится запрос на перезапись существующего файла ключа, введите y и нажмите Enter.

    Когда появится запрос пароля для локального ключа, введите labex-password и нажмите Enter. Подтвердите пароль. Помните, что ввод пароля не отображается на экране.

    После ввода паролей оба ключа будут созданы и сохранены в директории /etc/tripwire/. Процесс генерации ключей может занять несколько минут.

Настройка политики мониторинга

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

  1. Сначала создайте резервную копию оригинального файла политики.

    sudo cp /etc/tripwire/twpol.txt /etc/tripwire/twpol.txt.bak
    
  2. Создайте новый упрощенный файл политики, исключающий проблемные виртуальные файловые системы.

    sudo nano /etc/tripwire/twpol-simple.txt
    
  3. Добавьте в файл следующее содержимое. Эта упрощенная политика отслеживает важные системные файлы и вашу директорию проекта, избегая путей, которые могут вызвать ошибки инициализации:

    #
    ## 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) ;
    }
    
  4. Сохраните файл и выйдите из nano, нажав Ctrl + O, затем Enter, и наконец Ctrl + X.

  5. Замените оригинальный файл политики вашей упрощенной версией.

    sudo cp /etc/tripwire/twpol-simple.txt /etc/tripwire/twpol.txt
    

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

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

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

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

    sudo twadmin --create-cfgfile --site-keyfile /etc/tripwire/site.key /etc/tripwire/twcfg.txt
    

    Вам будет предложено ввести пароль для ключа сайта. Введите labex-password и нажмите Enter.

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

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

    Снова введите пароль для ключа сайта (labex-password) при появлении запроса.

  3. Инициализируйте базу данных. Эта команда сканирует все файлы и директории, указанные в вашей политике, и записывает их криптографические подписи и атрибуты.

    sudo tripwire --init
    

    Вам будет предложено ввести пароль для локального ключа. Введите labex-password и нажмите Enter.

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

    #### Warning: File system error.
    #### Filename: /var/lib/tripwire/68b1139d06fc790d9895e107.twd
    #### No such file or directory
    #### Continuing...
    

    Это нормальное и ожидаемое поведение при первой инициализации. Процесс продолжится и создаст файл базы данных.

  5. После завершения процесса убедитесь, что файл базы данных был создан.

    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 реагирует на модификации в отслеживаемых зонах.

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

    touch ~/project/test_file.txt
    
  2. После внесения изменений запустите проверку целостности. Tripwire просканирует систему и сравнит ее с эталонной базой данных.

    sudo tripwire --check
    

    Вам будет предложено ввести пароль для локального ключа. Введите labex-password и нажмите Enter.

  3. После завершения сканирования 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"
    
  4. Отчет показывает, что Tripwire обнаружил:

    • Added (Добавлено): Новый файл test_file.txt в директории вашего проекта.
    • Modified (Изменено): Сама директория /home/labex/project (поскольку ее содержимое изменилось).
    • Tripwire Data Files: Файл базы данных также был помечен как «добавленный», так как это первая проверка после инициализации.

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

Анализ отчета о целостности

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

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

    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
    
  2. Используйте команду 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
    
  3. Подробный отчет содержит ту же информацию, что и сводка, но с дополнительными метаданными:

    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
    

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

  4. Вы также можете просмотреть более подробную версию с атрибутами файлов, используя флаг --verbose:

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

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

Умение читать эти отчеты необходимо системным администраторам для расследования потенциальных инцидентов безопасности и поддержания целостности системы.

Резюме

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

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