Almacenar el historial de shell en la cadena de bloques

12

¿Sería posible almacenar de forma segura todos los comandos de shell emitidos ( .bash_history , etc.) en una cadena de bloques para evitar que los usuarios modifiquen su historial?

Me gustaría implementar esto para varios sistemas multiusuario, aunque me pregunto por qué nadie parece haber adoptado esta idea todavía. Muchos ataques que involucran el acceso de shell, de alguna manera u otra, podrían rastrearse mejor si el historial de comandos era preciso; los usuarios malévolos no pudieron ocultar sus acciones, y así sucesivamente.

    
pregunta Mo Friedrich 22.09.2016 - 13:39
fuente

1 respuesta

32

El shell es probablemente el lugar equivocado para realizar un registro de comandos. Un usuario podría simplemente ejecutar otro shell sin historial o ejecutar comandos leídos desde stdin sin dejar rastro en el historial. Por lo tanto, no protege mucho contra usuarios malévolos.

En lugar de asegurar el historial del shell, se deben registrar de forma segura los comandos ejecutados por un usuario, sin importar si estos son ejecutados por el shell o no. Y esto debe hacerse para que el usuario no pueda ejecutar ningún comando sin dejar rastro. En realidad, ya existe un marco de auditoría que puede hacer esto, consulte Sistema Auditoría en la documentación de RHEL.

Y mientras blockchain suena como una tecnología agradable (y exagerada): hay otras tecnologías que proporcionan la seguridad necesaria sin todos los gastos generales. Para registrar la actividad de un usuario sin privilegios, basta con hacer el registro como root. En caso de que uno teme la escalada de privilegios, se pueden usar los mecanismos existentes de syslog para iniciar sesión en un servidor remoto. Y algunas implementaciones de syslog también proporcionan una forma de firmar los mensajes para probar su origen.

    
respondido por el Steffen Ullrich 22.09.2016 - 14:17
fuente

Lea otras preguntas en las etiquetas