2012-02-05 10 views
5

¿Hay alguna forma de ver un nuevo proceso con el nombre 'X' que comienza en python (idealmente) o bash? Sé que puedo ver los procesos en ejecución, pero eso no es lo suficientemente rápido para mis necesidades. Lo único que creo que puedo pensar es cómo engancharme al nuevo proceso y registrarlo, pero ¿cómo?¿Python está mirando el inicio del proceso?

Más antecedentes: Formo parte de un equipo de CCDC (http://www.nationalccdc.org/) y estoy en el equipo azul. La premisa de la competencia es ofrecer a los estudiantes una red para defenderse contra los probadores profesionales de lápiz para ayudar a la próxima generación de expertos en seguridad a ser mejores. Lo que quiero hacer es cargar este script de python en los linux boxs y observar si hay ciertos comandos que se están ejecutando, que probablemente solo sean utilizados por el equipo rojo, por ejemplo, el comando 'chattr'. Idealmente, me gustaría poder proporcionar al script una lista de procesos para ver. Puedo descifrar esa parte pero no sé cómo observar un proceso de desove.

Se aprecia cualquier dirección. Gracias.

Respuesta

4

No conozco ninguna forma de notificar un proceso que no tiene privilegios de administrador cuando se inicia un proceso por cualquier medio en un sistema Linux totalmente en ejecución. Si las encuestas no son lo suficientemente rápidas, vas a tener que hacer hackeos serios.

Si tiene root, esto es posible. Si no, no puedo verlo.

Con root, puede establecer un reemplazo de todo el sistema de las llamadas al sistema fork y exec que le proporciona la notificación deseada. Esto podría estar en el núcleo, o podría ser un hack LD_PRELOAD.

Esto se aplica no solo a Python; incluso con un programa C, no conozco un "inotify para la creación de procesos".

+0

¡Gracias por la dirección! Esto suena como lo que quiero hacer. Tenemos acceso de root a los cuadros. Toda la competencia se ejecuta a través de máquinas virtuales. – Trcx

+0

@Trcx Ooh, si tiene root puede implementar un sistema MAC como SELinux y mantenerlos fuera. – Borealid

+0

El problema es que no tengo los conocimientos de programación sobre cómo hacerlo, pero para eso está Google. > _> Gracias. – Trcx

1

No he probado esta idea, pero en Linux se dé a cada proceso un directorio bajo /proc/<it's process id>/ Si ha abierto un inotify en la creación de directorios en /proc es posible que pueda realizar un seguimiento de creación de directorios de proceso y luego ver si /proc/<dir>/cmdline coincide con el proceso de tu buscando Esto es solo un pensamiento, ¡espero que ayude!

+2

Esto fue mi pensamiento también. Desafortunadamente, parece que, dado que procfs no es un fs real, no se trata de nuevos directorios :( – nfirvine

Cuestiones relacionadas