¿Cómo hago un seguimiento de la limpieza del historial de bash?

7

Me gustaría capturar eventos cuando se limpia el historial de bash o se eliminan algunas líneas. ¿Existen prácticas recomendadas o herramientas de auditoría con esta capacidad?

    
pregunta inx 24.07.2017 - 17:02
fuente

2 respuestas

9

La supervisión del historial de Bash se realiza fácilmente con un script de shell, pero solo comprobar si hay cambios inesperados puede no ser una medida de seguridad efectiva, sino más bien saturar sus registros con falsos positivos.

Una forma obvia de monitorear los eventos del sistema de archivos asociados con su archivo .bash_history sería usando inotify API . Por ejemplo, esto desencadena eventos de modificación de archivos:

$ inotifywait -m -e modify ~/.bash_history

Luego, puede comparar el contenido cada vez para determinar los cambios, o simplemente comparar el número de líneas para detectar si las entradas se han eliminado con una sobrecarga menor. (El solo hecho de verificar el tamaño del archivo no funcionará si el historial ha alcanzado su longitud máxima y se eliminan las entradas antiguas).

Pero tenga en cuenta que es trivial para un atacante solucionarlo. Debes esperar que cualquier intruso razonablemente experto inmediatamente deshabilite la historia , en lugar de eliminar las entradas sospechosas después. Además, hay muchas formas económicas de omitir Bash por completo sin provocar entradas de registro (cambiar al shell Bourne, ejecutar desde vi, etc.).

En general, consideraría que monitorear el historial de Bash para una posible manipulación demasiado poco confiable y propenso a errores sea una medida de seguridad útil. En su lugar, primero me aseguraré de cubrir los registros donde sea más fácil identificar incidentes relevantes para la seguridad ( /var/log/auth.log , etc.).

    
respondido por el Arminius 24.07.2017 - 17:42
fuente
3

Supongo que quieres detectar cuándo las personas han ingresado algún tipo de información privada en su shell y ahora están tratando de eliminarla del historial de bash.

Desde el punto de vista del atacante, sería fácil simplemente crear constantemente copias del archivo .bash_history y verificar si se eliminan las entradas.

Si está haciendo esto para evitar la fuga accidental de datos, le sugiero que lo resuelva mediante una política y que los usuarios informen de tales errores e invaliden la información. Por lo tanto, si se ingresó una contraseña accidentalmente, la contraseña debería cambiarse.

Si realmente quieres seguir adelante con esto, existen herramientas no relacionadas con la seguridad para monitorear los cambios en los archivos.

Editar: Creo que para detectar atacantes que borran sus pistas, este es un método bastante débil, ya que es bastante fácil de desactivar o evitar el historial de bash.

    
respondido por el Elias 24.07.2017 - 17:19
fuente

Lea otras preguntas en las etiquetas