Autenticación de proceso para Linux

7

¿Existe alguna posibilidad de autenticar un proceso en ejecución en Linux para asegurarse de que este es el original / correcto?

Sé que un sistema operativo Linux es tan seguro como la forma en que lo usas. Por ejemplo: Digamos que estoy usando Ubuntu Linux e instalo cualquier software a través de un PPA, ese software obtiene los derechos para hacer todo lo que quiera en mi sistema, porque tengo que instalarlo con derechos sudo. ( Los PPA son, en general, un problema de seguridad en Ubuntu, creo)

Supongamos que el "software codificado de tipo malo" instala las cosas para hacer el trabajo que esperaba, por ejemplo, un Gnome-Theme, un fondo de pantalla dinámico. Pero también reemplaza cualquier proceso de mi sistema Ubuntu con un registrador de teclas o cualquier otro tipo de malware y se ejecuta en mi sistema.

¿Hay alguna posibilidad de verificar un proceso en ejecución en Linux si es el original?

Los procesos en ejecución son fáciles de obtener y descubrir, y los procesos del sistema operativo y también los procesos de un repositorio de Ubuntu apt son conocidos, así que supongo que podría haber una posibilidad para comparar el código de los procesos en ejecución con cualquier base de datos de software / procesos de repositorio de Ubuntu conocidos y software / procesos de Linux conocidos.

¿Es posible algún tipo de proceso de autenticación o está disponible para Linux / Ubuntu?

    
pregunta Jan Koester 16.01.2013 - 20:05
fuente

2 respuestas

4

Puede saber si un archivo ha sido modificado al verificar un hash seguro de su contenido. Puede hacerlo manualmente, o puede usar su administrador de paquetes; con RPM es rpm -V , con apt usted usa debsums .

Luego es una cuestión de verificar si el proceso se inició usando ese archivo. Ese bit también es simple: verifique la entrada proc . Esto hace un seguimiento no solo de la ruta al archivo, sino también de su número de inodo, por lo que si el archivo se reemplaza, no coincidirá. Observar:

[tylerl@tyler-11 ~]$ ./foo &
[1] 26157
[tylerl@tyler-11 ~]$ ls -l /proc/26157/exe 
lrwxrwxrwx 1 tylerl tylerl 0 2013-01-16 12:31 /proc/26157/exe -> /home/tylerl/foo
[tylerl@tyler-11 ~]$ ls -l /home/tylerl/foo
-rwxr-xr-x 1 tylerl tylerl 8.3K 2013-01-16 12:31 /home/tylerl/foo
[tylerl@tyler-11 ~]$ echo 1 >> foo
-bash: foo: Text file busy
[tylerl@tyler-11 ~]$ rm foo
rm: remove regular file 'foo'? y
[tylerl@tyler-11 ~]$ echo 1 > foo
[tylerl@tyler-11 ~]$ ls -l /proc/26157/exe 
lrwxrwxrwx 1 tylerl tylerl 0 2013-01-16 12:31 /proc/26157/exe -> /home/tylerl/foo (deleted)
[tylerl@tyler-11 ~]$ ls -l /home/tylerl/foo
-rw-r--r-- 1 tylerl tylerl 2 2013-01-16 12:32 /home/tylerl/foo

Tenga en cuenta dos cosas: (a) el archivo no puede modificarse mientras se está ejecutando, y (b) mientras puede eliminarlo y reemplazarlo, la nueva entrada del directorio corresponderá a un diferente ejecutable, y la entrada proc dirá (deleted) para advertirle de la diferencia.

Tenga en cuenta que podría recuperar el archivo original simplemente ejecutando cp /proc/26157/exe ./orig_exe , y luego podría examinarlo según sea necesario. Los archivos no se eliminan realmente del disco hasta que se cierra la última referencia.

    
respondido por el tylerl 16.01.2013 - 20:40
fuente
0

los debsums pueden ayudar, pero no es la respuesta final.

Por ejemplo, un paquete podría instalar un archivo completamente nuevo en / usr / local / sbin, y luego revisar los archivos .profile de los usuarios que encuentra y agregar una línea para ejecutar ese proceso.

los debsums no se quejarían, no se ha modificado ningún archivo que pertenezca a un paquete. Además, los archivos en / etc se instalan por paquetes, pero deben modificarse. Pero realmente no hay necesidad de manipular otros paquetes para hacer algo desagradable.

Por ejemplo, un paquete podría instalar un servicio, el paso de configuración configuraría esa secuencia de comandos para ejecutarse en el momento del arranque, con privilegios de raíz. No hay absolutamente ninguna necesidad de modificar los binarios existentes, excepto que quizás sea un poco más obvio detectarlos.

    
respondido por el LtWorf 09.02.2013 - 22:12
fuente

Lea otras preguntas en las etiquetas