Articulo de referencia

Tripwire de código abierto

{{cite web |title=LICENSE |url=https://github.com/Tripwire/tripwire-open-source/blob/master/LICENSE |website=Github |accessdate=5 September 2019}} "},"website":{"wt":"{{URL|http...

Tripwire, de código abierto, es una herramienta de seguridad e integridad de datos de software libre para monitorear y alertar sobre cambios específicos en archivos en diversos sistemas [ 2 ] [ 3 ] desarrollada originalmente por Eugene H. Spafford y Gene Kim . [ 4 ] El proyecto se basa en código aportado originalmente por Tripwire, Inc. en 2000. [ 5 ] [ 6 ] Se publica bajo los términos de la Licencia Pública General GNU . [ 1 ] [ 7 ] , pero ya no recibe mantenimiento. La última actualización fue en 2018. [ 8 ]

Funciona creando una base de datos de referencia y comparando periódicamente el estado del sistema de archivos con dicha base de datos. Si detecta cambios (por ejemplo, la adición o modificación de algunos archivos), los incluye en su informe para que los administradores de seguridad puedan verificarlos. [ 2 ]

Historia

Tripwire fue creado por el Dr. Eugene Spafford y Gene Kim en 1992 en respuesta a una serie de intrusiones sigilosas ocurridas a principios de 1991. Estos ataques eludieron los sistemas de seguridad existentes infectando las bibliotecas compartidas de tal manera que sus sumas de verificación CRC permanecieron inalteradas. Tripwire fue diseñado para utilizar funciones de resumen de mensajes de diferentes familias de hash (por ejemplo, MD5 y Snefru ) para mantener su fiabilidad incluso después de que uno de los algoritmos de hash se vea comprometido. [ 4 ]

El nombre "Tripwire" proviene de los archivos trampa o de detección que alertan a los administradores cuando son accedidos por intrusos. [ 9 ] [ 10 ] : 4 Spafford recuerda:

Escuchamos varias historias donde se establecieron archivos trampa, según nuestra intención original, que se utilizaron para detectar a personas internas que husmeaban en archivos y directorios que no tenían motivo para explorar. Al menos uno de esos usos nos fue relatado como un detonante que descubrió un fraude perpetrado por alguien con información privilegiada. [ 4 ]

Tripwire fue escrito en C y su diseño enfatizó la portabilidad del programa y la base de datos . El 2 de noviembre de 1992, se lanzó para pruebas beta . En diciembre de 1993, se realizó el lanzamiento formal después de identificar y corregir varios errores. Las primeras versiones se desarrollaron en un estilo de sala limpia , donde Gene Kim se encargó del desarrollo y Eugene Spafford dirigió las pruebas de aceptación . [ 4 ]

Tripwire fue inicialmente gratuito y de código abierto, pero se comercializó en 1997. Open Source Tripwire se lanzó en octubre de 2000, [ 6 ] bajo la Licencia Pública General de GNU. [ 7 ]

El 4 de mayo de 2015, el código fuente se trasladó de SourceForge a GitHub . [ 11 ]

Descripción general

Diagrama del modelo de operación de alto nivel del Tripwire [ 10 ] : 10

Durante la instalación, Open Source Tripwire solicita al usuario que configure las contraseñas de la clave de sitio y la clave local . La contraseña de la clave de sitio cifra los archivos de política y configuración que se comparten entre varios sistemas. La contraseña local se utiliza para proteger los archivos en una máquina específica. El archivo de política contiene la lista de archivos y directorios que se deben escanear y las reglas (por ejemplo, qué atributos del árbol de directorios se deben examinar). [ 2 ]

Open Source Tripwire solicita posteriormente la contraseña local al crear una base de datos inicial con firmas de archivos . Ejecuta el primer escaneo del sistema y guarda el resultado en la base de datos. A continuación, realiza comprobaciones de integridad y compara el resultado con la base de datos. Por ejemplo, si se crea un archivo nuevo, aparecerá en el informe de comprobación de integridad posterior. [ 3 ] Open Source Tripwire puede configurarse para ejecutar comprobaciones de integridad periódicamente y enviar correos electrónicos con informes al administrador del sistema . [ 12 ] La base de datos debe inicializarse antes de que el sistema corra el riesgo de ser comprometido.

El usuario puede crear archivos de rastreo que parezcan contener información valiosa (por ejemplo, el archivo llamado master-password.txt) y configurar Open Source Tripwire para rastrear estos archivos y así detectar intrusos fisgones. Cuando el intruso lee estos archivos, sus marcas de tiempo de acceso se actualizan y los administradores de seguridad reciben una notificación sobre este incidente. [ 4 ]

A diferencia de Tripwire Enterprise, Open Source Tripwire no está disponible para Windows y solo tiene políticas básicas. [ 13 ] Los usuarios de Windows pueden ejecutar Open Source Tripwire usando Cygwin , pero no escaneará atributos específicos de Windows como el Registro de Windows . [ 14 ]

Detalles

Archivo de políticas

El archivo de política se llama twpol.txt[ 12 ] (o tw.configen versiones anteriores) e indica qué archivos y directorios deben supervisarse. Admite el preprocesamiento, lo que permite a los administradores escribir un único archivo de política para varias máquinas. En el archivo de política, junto con cada archivo o directorio, hay una máscara de selección que indica qué atributos ignorar y cuáles informar. Por ejemplo, la máscara de selección podría configurarse para informar sobre cambios en la marca de tiempo de modificación, el número de enlaces , el tamaño del archivo, los permisos y los modos , pero ignorar los cambios en la marca de tiempo de acceso. Además, existe la opción de especificar si Tripwire debe realizar una búsqueda recursiva en un directorio, es decir, comprobar los subdirectorios, los subdirectorios de esos subdirectorios, etc. [ 15 ] [ 10 ] : 11–12

Ejemplo del archivo de política: [ 15 ]

# binarios del sistema SYSBIN = +pngu+sm ;/usr/local/bin/pwgen -> $( SYSBIN ) ; /usr/bin -> $( SYSBIN ) ; /usr/sbin -> $( SYSBIN ) ;/etc/security -> +pug (recurse = -1 ) ;# ignorar el último registro !/etc/security/lastlog;# registros SYSLOGS = +p-lum ;/var/adm/messages -> $( SYSLOGS ) ; /opt -> $( SYSBIN ) ; # ignorar estos no escanear !/opt/dump; !/opt/freeware;

El siguiente ejemplo del archivo de política de "The Design and Implementation of Tripwire: A File System Integrity Checker" de Spafford y Kim utiliza el lenguaje de preprocesamiento. Aquí se usa para ignorar el directorio con los registros de impresora en un host específico, y este directorio se escaneará en todos los demás hosts. Por lo tanto, el preprocesamiento permite usar el mismo archivo de política en este host específico y en otros hosts; de lo contrario, el usuario tendría que escribir archivos de política separados. [ 10 ] : 12

# file/dir selection-mask /etc R # todos los archivos en /etc @@ifhost solaria.cs.purdue.edu !/etc/lp # excepto los registros de impresora SVR4 @@endif /etc/passwd R+12 # nunca se puede ser demasiado cuidadoso /etc/mtab L # archivos dinámicos /etc/motd L /etc/utmp L = /var/tmp R # solo el directorio, no su contenido

Archivo de configuración

El archivo de configuración se llama twcfg.txty contiene información sobre las rutas al archivo de políticas, al archivo de base de datos, al archivo de informes, etc. También tiene entradas para la configuración de correo (por ejemplo, qué programa usar para enviar un correo electrónico con el informe). [ 15 ] [ 16 ] Ejemplo del archivo de configuración: [ 15 ]

ROOT = /opt/freeware/sbin POLFILE = /etc/tripwire/tw.pol DBFILE = /var/lib/tripwire/ $( HOSTNAME ) .twd REPORTFILE = /var/lib/tripwire/report/ $( HOSTNAME ) - $( DATE ) .twr SITEKEYFILE = /etc/tripwire/site.key LOCALKEYFILE = /etc/tripwire/ $( HOSTNAME ) -local.key EDITOR = /usr/bin/vi LATEPROMPTING = false LOOSEDIRECTORYCHECKING = false MAILNOVIOLATIONS = true EMAILREPORTLEVEL = 3 REPORTLEVEL = 3 MAILMETHOD = SENDMAIL SYSLOGREPORTING = false MAILPROGRAM = /usr/sbin/sendmail -oi -t 

Archivo de base de datos

El archivo de base de datos es único para cada máquina, a diferencia de los archivos de política y configuración, que pueden compartirse entre varias máquinas. Almacena los permisos de archivo, las fechas de modificación y las firmas de los archivos. Para cada archivo, la base de datos puede almacenar hasta diez firmas. La base de datos no almacena el contenido en sí, ya que almacenar el contenido de los archivos consumiría demasiado espacio en disco. [ 10 ] : 13–15 El archivo de base de datos es legible para humanos , y el usuario puede verificar las propiedades de los archivos individuales y comprobar la base de datos en busca de posibles manipulaciones. [ 4 ] [ 10 ] : 7

Cuando la comprobación de integridad detecta un archivo nuevo, pero su ruta no tiene una entrada en el archivo de políticas, Tripwire elige la entrada del antecesor más cercano y copia su máscara de selección, o utiliza la máscara de selección predeterminada si no se encuentra ninguna entrada. Tripwire cuenta con un modo de actualización interactiva que simplifica el proceso de revisión de cada archivo actualizado. Para cada archivo creado, eliminado o modificado, pregunta si se debe cambiar la entrada correspondiente en la base de datos. [ 10 ] : 13–15

Firmas

Para minimizar el impacto de las colisiones de hash (es decir, que la firma no cambie aunque se modifique el archivo) en la seguridad, Tripwire utiliza varios algoritmos de hash diferentes para calcular múltiples firmas para cada archivo. [ 4 ] Debido a que los distintos algoritmos de hash tienen rendimientos diferentes , Tripwire permite configurar qué firmas usar y con qué frecuencia. Por ejemplo, el sistema podría configurarse para comparar firmas CRC32 cada hora y firmas MD5 cada día. De esta forma, las comprobaciones de integridad horarias se ejecutarían más rápido, e incluso si algún archivo se modifica sin cambiar su suma de comprobación CRC32, se informará durante la comprobación de integridad diaria. [ 10 ] : 7,15 Tripwire proporciona una interfaz genérica para las rutinas de firma, de modo que el usuario puede incluir sus propios métodos de suma de comprobación. [ 10 ] : 15

Véase también

Referencias

  1. 1 2 "LICENCIA" . Github . Consultado el 5 de septiembre de 2019 .
  2. 1 2 3 Michael Kwaku Aboagye (18 de enero de 2018). "Protegiendo el sistema de archivos de Linux con Tripwire" . opensource.com . Archivado del original el 6 de mayo de 2023. Recuperado el 14 de enero de 2024 .
  3. 12Li, Hui; McGinty, Michael; Fu, Xinwen (2012). "Monitor and Secure Linux System with Open Source Tripwire"(PDF). University of Massachusetts Lowell. Archived(PDF) from the original on January 14, 2024. Retrieved January 14, 2024.
  4. 1234567Spafford, Eugene H."Tripwire: Pioneering Integrity Scanning for Cybersecurity"(PDF). Purdue University. Archived(PDF) from the original on February 4, 2023. Retrieved January 14, 2024.
  5. "Open Source Tripwire on SourceForge". 21 October 2018. Retrieved January 14, 2024.
  6. 12Bauer, Mick (July 1, 2001). "Paranoid penguin: intrusion detection for the masses". Linux Journal. 2001 (87). Archived from the original on January 14, 2024. Retrieved January 14, 2024.
  7. 12Mellem, Erik; Olsen, Frode (June 2004). "Real time Integrity Control of Operating systems"(PDF). Agder University College. Retrieved January 17, 2024.
  8. "Tripwire Open Source".
  9. DeMara, Ronald F; Rocke, Adam J (February 2004). "Mitigation of network tampering using dynamic dispatch of mobile agents". Computers & Security. 23 (1): 31–42. doi:10.1016/S0167-4048(04)00068-9.
  10. 123456789Kim, Gene H.; Spafford, Eugene H. (November 19, 1993). "The design and implementation of tripwire: A file system integrity checker". Proceedings of the 2nd ACM Conference on Computer and communications security - CCS '94. pp. 18–29. doi:10.1145/191177.191183. ISBN 0-89791-732-4. Archived from the original on March 22, 2016. Retrieved January 14, 2024.
  11. "Initial commit of code from Sourceforge repository". GitHub. Retrieved January 14, 2024.
  12. 12Lynch, William (March 21, 2001). "Getting Started with Tripwire (Open Source Linux Edition)". LinuxSecurity. Retrieved January 17, 2024.
  13. Sen, Kaushik (October 17, 2021). "Tripwire Enterprise vs Free Tripwire Open Source". UpGuard. Archived from the original on January 19, 2022. Retrieved January 14, 2024.
  14. Jauhiainen, Juho (December 2021). "Ensuring system integrity and security on limited environment systems"(PDF). University of Turku. p. 18. Retrieved January 17, 2024.
  15. 1234Tansley, David (December 13, 2011). "Running with Tripwire: Using Tripwire to monitor file changes". IBM developerWorks. Archived from the original on May 3, 2012.
  16. Natarajan, Ramesh (December 8, 2008). "Tripwire Tutorial: Linux Host Based Intrusion Detection System". The Geek Stuff. Retrieved January 17, 2024.
  • Tripwire, Inc.
  • tripwire-open-source on GitHub