Ghost AcademySecLearn// Seguridad Informática
🔐 File Integrity Monitoring · IDS · Linux · Blue Team
Tripwire FIM
// File Integrity Monitoring — detecta cambios no autorizados en archivos críticos

Tripwire es la herramienta de referencia para la Monitorización de Integridad de Archivos (FIM) en sistemas Linux. Crea una línea base criptográfica del sistema y detecta cualquier modificación posterior — rootkits, malware, cambios no autorizados.

tripwire --init · --check · --update twprint --print-report · site.key · local.key FIM · IDS · Rootkit Detection PCI DSS · HIPAA · SOX · Compliance
🔐
¿Qué es Tripwire?
Herramienta de Monitorización de la Integridad de Archivos (FIM — File Integrity Monitoring) de código abierto. Detecta cualquier cambio no autorizado o malicioso en archivos críticos del sistema.

Tripwire está disponible en los repositorios por defecto de Ubuntu y Debian. Es la solución FIM de referencia en entornos de Blue Team, análisis forense y cumplimiento normativo. También existe en versión comercial con características avanzadas.

PASO 1
📸
Línea Base
tripwire --init
Crea un snapshot criptográfico del estado "limpio" del sistema: hashes, permisos, propietarios y fechas.
PASO 2
🔍
Comprobación
tripwire --check
Compara el estado actual del sistema con la línea base. Genera informe de discrepancias.
PASO 3
✅
Actualización
tripwire --update
Tras cambios legítimos verificados, actualiza la base de datos aceptando solo los cambios conocidos.
⚙️
Cómo Funciona Tripwire (FIM)
Tripwire usa hashes criptográficos para detectar cualquier modificación, adición o eliminación de archivos comparando con la línea base registrada.
Estado inicial
→
Tripwire calcula hashes criptográficos, registra permisos, propietarios y fechas de modificación de cada archivo monitoreado.
Base de datos (tw.dat)
→
Almacena la instantánea del sistema en /var/lib/tripwire/, cifrada con las claves de sitio y local.
Comprobación periódica
→
Compara el estado actual de cada archivo con el almacenado. Cualquier diferencia genera una alerta en el informe.
Informe (.twr)
→
Archivo cifrado en /var/lib/tripwire/report/. Detalla archivos modificados, añadidos o eliminados. Visible con twprint.
🔑 Dos claves de seguridad: Tripwire protege su base de datos y configuración con dos capas: la Site Key (protege archivos de configuración compartidos) y la Local Key (protege la base de datos del sistema local). Ambas son esenciales — no las pierdas.
📦
1. Instalación de Tripwire
Tripwire está en los repositorios por defecto de Ubuntu/Debian. Durante la instalación se configuran las claves de seguridad.
bash — instalar Tripwire
# Actualizar el índice de paquetes
sudo apt update

# Instalar Tripwire (iniciará asistente de configuración)
sudo apt install tripwire

Durante la instalación se configuran:

A
Configuración de Correo (MTA)
Si quieres alertas por email, selecciona "Internet Site" y configura tu nombre de dominio. En máquinas locales puedes aceptar el valor por defecto.
B
Site Key (Clave de Sitio)
Protege los archivos de configuración de Tripwire. Elige una passphrase fuerte y guárdala en lugar seguro — sin ella no podrás actualizar la configuración.
C
Local Key (Clave Local)
Protege la base de datos de integridad de este sistema concreto. Necesaria para inicializar y actualizar la DB. ¡No la olvides!
🔑 Crítico: Las passphrases (Site Key y Local Key) son la columna vertebral de la seguridad de Tripwire. Si las pierdes, tendrás que reinstalar y reinicializar toda la base de datos desde cero.
🗄️
2. Verificar Claves e Inicializar la Base de Datos
Verificar que las claves se generaron correctamente e inicializar la base de datos con el estado "limpio" del sistema.
bash — verificar claves e inicializar DB
# Verificar que las claves existen en /etc/tripwire/
cd /etc/tripwire/
ls # deberías ver: site.key  machine-local.key  tw.pol  twcfg.txt

# Inicializar la base de datos (instantánea del sistema actual)
# Pedirá la Site Key y después la Local Key
sudo tripwire --init

# Verificar que se creó la base de datos
ls /var/lib/tripwire/
# Deberías ver: .twd  (el archivo tw.dat)
⏳ Tiempo: El comando --init puede tardar varios minutos dependiendo del número de archivos monitoreados. Es normal — está calculando hashes de todos los archivos del sistema definidos en la política (tw.pol).
🔍
3. Ejecutar una Comprobación de Integridad
Compara el estado actual del sistema con la base de datos. Cualquier diferencia aparece en el informe como violación.
bash — comprobar integridad
# Ejecutar comprobación de integridad completa
sudo tripwire --check

# Tripwire cargará la política:
# Parsing policy file: /etc/tripwire/tw.pol

# El informe generado se guarda en:
# /var/lib/tripwire/report/-.twr
📌 Primera ejecución: En la primera comprobación tras --init no debería haber cambios — salvo quizás en la propia base de datos de Tripwire. Si aparecen muchas violaciones inesperadas, revisa la configuración de la política.
📋
4. Leer los Informes de Tripwire
Los informes se guardan cifrados en /var/lib/tripwire/report/. Se leen con twprint para ver el texto en claro.
bash — leer informe generado
# Ir al directorio de informes
cd /var/lib/tripwire/report/

# Listar informes disponibles (formato: hostname-YYYYMMDD-HHMMSS.twr)
ls
# Ejemplo: feval-VirtualBox-20251103-090910.twr

# Ver el contenido del informe en texto claro
sudo twprint --print-report -r /var/lib/tripwire/report/feval-VirtualBox-20251103-090910.twr

# Redirigir informe a archivo de texto para análisis
sudo twprint --print-report -r /var/lib/tripwire/report/<nombre>.twr > /tmp/informe_tripwire.txt
📁 Nombre del informe: El formato es hostname-YYYYMMDD-HHMMSS.twr. Reemplaza <nombre_del_reporte>.twr con el archivo más reciente listado por ls.
🔄
5. Actualizar la Base de Datos tras Cambios Legítimos
Tras un apt upgrade o cambios de configuración, el informe mostrará "violaciones" de cambios legítimos. Hay que actualizar la DB para que Tripwire los reconozca.
🔍
Comprobar
Ejecutar --check para generar un informe con todos los cambios detectados.
›
👀
Revisar
Leer el informe con twprint. Identificar qué cambios son legítimos y cuáles son sospechosos.
›
✅
Aceptar/Rechazar
Durante --update aceptar solo cambios legítimos (tecla a). Rechazar cualquier cambio no reconocido.
›
🗄️
Nueva DB
Los cambios aceptados se integran en la nueva base de datos. Los rechazados siguen como alerta.
bash — actualizar base de datos
# 1. Generar nuevo informe con los cambios recientes
sudo tripwire --check

# 2. Actualizar la base de datos usando el informe generado
#    Reemplaza <nombre> con el nombre del archivo .twr más reciente
sudo tripwire --update --twrfile /var/lib/tripwire/report/<nombre>.twr

# Durante el proceso:
#   → Tecla [a] para ACEPTAR un cambio legítimo
#   → No aceptar cambios que no reconozcas (posible intrusión)
⚠️ Atención: Durante la actualización, rechaza cualquier cambio que no puedas explicar. Un cambio no autorizado en /bin/ls, /bin/ps o /sbin/netstat puede indicar un rootkit instalado por un atacante.
📁
Archivos y Rutas Clave de Tripwire
Mapa de todos los archivos importantes de la instalación de Tripwire.
Archivo / RutaDescripción
/etc/tripwire/tw.polArchivo de política — define qué archivos monitorizar y con qué nivel de sensibilidad
/etc/tripwire/site.keyClave de sitio — protege los archivos de configuración compartidos
/etc/tripwire/machine-local.keyClave local — protege la base de datos de integridad de este sistema
/etc/tripwire/twcfg.txtArchivo de configuración principal de Tripwire (texto plano)
/var/lib/tripwire/*.twdBase de datos de integridad (tw.dat) — el snapshot cifrado del sistema
/var/lib/tripwire/report/*.twrInformes generados por --check — cifrados, leer con twprint
🎯
Casos de Uso Principales
Tripwire es una herramienta versátil en el arsenal de Blue Team y análisis forense.
🦠 Detección de Rootkits e Intrusos
Binarios modificados: Detecta si un atacante reemplazó ls, ps o netstat para ocultar su presencia.
Alerta temprana: Detecta intrusiones antes de que sean visibles en los logs de red o del sistema.
Binarios críticos: Monitoriza /bin, /sbin, /usr/bin y archivos de configuración de servicios.
⚙️ Seguimiento de Cambios de Config
Control de versiones: Registro claro de qué cambió en /etc/ssh/sshd_config, /etc/httpd/httpd.conf, etc.
Post-mortem: Si un servicio falla inesperadamente, Tripwire muestra qué archivo fue modificado justo antes.
Auditoría Ops: Permite a equipos de operaciones auditar el entorno de producción con trazabilidad completa.
📜 Cumplimiento Normativo
PCI DSS: Exige FIM en todos los componentes del sistema para tarjetas de pago.
HIPAA: Demuestra que los datos de configuración y controles de seguridad no han sido manipulados.
SOX: Mantiene la integridad y auditoría de controles internos relacionados con informes financieros.
🔬 Detección de Malware
Scripts modificados: Si un malware modifica un script de inicio o del sistema, Tripwire lo marca como violación de integridad.
Auto-protección: Monitoriza sus propios archivos de configuración y base de datos para detectar si la herramienta ha sido manipulada.
Complemento: No reemplaza a un antivirus — lo complementa con detección basada en integridad, no en firmas.
📜
Normativas y Cumplimiento (Compliance)
Tripwire es esencial para cumplir con varios estándares de seguridad gubernamentales e industriales que exigen FIM.
PCI DSS
Payment Card Industry Data Security Standard
Exige específicamente FIM en todos los componentes del sistema que procesan datos de tarjetas de pago. Detecta modificaciones no autorizadas en tiempo real.
HIPAA
Health Insurance Portability and Accountability Act
Ayuda a demostrar que los datos de configuración y controles de seguridad del sector sanitario no han sido manipulados por accesos no autorizados.
SOX
Sarbanes-Oxley Act
Permite a las organizaciones mantener la integridad y la auditoría de los controles internos relacionados con los informes financieros corporativos.
✅ Ciclo de vida recomendado: Inicializa la base de datos en un sistema limpio y conocido → Comprueba periódicamente (programar con cron) → Actualiza la base de datos solo después de cambios legítimos y verificados. Este ciclo es la clave para mantener Tripwire útil a largo plazo.