¿Cómo registro todo lo que está haciendo un determinado programa?

8

Tengo un programa que es bastante simple. Es solo un simple formulario de inicio de sesión.

¿Existe alguna posibilidad de registrar lo que está haciendo este programa (tal vez a qué archivo está accediendo y a qué sitio web está visitando (también qué está devolviendo este sitio web)?

Me refiero a un programa que está registrando a qué archivo está accediendo este programa y a qué sitios web (o consultas) está enviando este programa a un sitio web.

Realmente agradecería tu ayuda.

    
pregunta planIT 14.11.2011 - 16:54
fuente

2 respuestas

7

En caso de que esté utilizando Windows, puede usar Process Monitor para averiguar qué archivos y registro Entradas a las que accede el software. Y para los sitios que está visitando (solicitud y respuestas), puede usar algún proxy, personalmente prefiero Fiddler . También puede usar la TCPView para verificar las conexiones activas abiertas por el SW.

También puede usar Wireshark para monitorear la actividad de la red y establecer un filtro para mostrarle solo la comunicación con el servidor que desea. O puede usar Microsoft Network Monitor , que puede mostrar la comunicación para un proceso específico.

    
respondido por el bretik 14.11.2011 - 18:18
fuente
5

La intercepción de llamadas del sistema puede ayudarlo aquí. Advertencia: le permitirá registrar el hecho de que un proceso se comunicó con un demonio / servicio, pero si el demonio / servicio no está sujeto al registro, entonces no registrará de forma transitiva las acciones que realiza el demonio / servicio, por lo que no puede exponer todo lo confuso. problemas de diputados.

De la página de manual strace man

  

En el caso más simple, strace ejecuta el comando especificado hasta que sale. Intercepta y registra las llamadas del sistema que son llamadas por un proceso y las señales que son recibidas por un proceso. El nombre de cada llamada al sistema, sus argumentos y su valor de retorno se imprimen en el error estándar o en el archivo especificado con la opción -o.

Dado que el acceso al sistema de archivos y la creación de socket de red se realizan mediante syscalls, el registro de esas llamadas le permitirá reconstruir a qué archivos y recursos de red está accediendo su programa.

Si desea comprender a qué recursos se está accediendo y luego asegurarse de que el proceso nunca tenga acceso a más de eso, incluso si está subvertido, consulte systrace .

  

Para aplicaciones complicadas, es difícil conocer la política correcta antes de ejecutarlas. Inicialmente, Systrace notifica al usuario acerca de todas las llamadas al sistema que una aplicación intenta ejecutar. El usuario configura una política para la llamada específica al sistema que causó la advertencia. Después de unos minutos, se genera una política que permite que la aplicación se ejecute sin ninguna advertencia. Sin embargo, los eventos que no están cubiertos todavía generan una advertencia. Normalmente, eso es una indicación de un problema de seguridad. Systrace mejora la seguridad cibernética al proporcionar prevención de intrusiones.

     

Alternativamente, las políticas se pueden aprender automáticamente. En muchos casos, las políticas aprendidas automáticamente se pueden utilizar para el sandboxing inmediatamente. A veces, es necesario un posprocesamiento manual mínimo.

Advertencia: strace no fue diseñado para la seguridad de la forma en que systrace era tan propenso a condiciones de carrera explotables alrededor de los parámetros de syscall. Vea el comentario de D.W. Para conocer los puntos sobre cómo endurecer strace .

No sé mucho sobre la intercepción de syscall en Windows, pero STraceNT y vtrace parece ser un buen punto de partida.

  

StraceNT es un System Call Tracer para Windows. Proporciona una funcionalidad similar a la de strace en Linux. Puede rastrear todas las llamadas realizadas por un proceso a las funciones importadas desde una DLL. StraceNT puede ser muy útil para depurar y analizar el funcionamiento interno de un programa.

     

VTrace recopila datos sobre procesos, subprocesos, mensajes, operaciones de disco, operaciones de red y dispositivos. La técnica utiliza una DLL cargada en el espacio de direcciones de cada proceso para interceptar las llamadas al sistema Win32; establece funciones de enlace para las llamadas al sistema del kernel de Windows NT; modifica el código de cambio de contexto en la memoria para registrar cambios de contexto; y utiliza filtros de dispositivos para registrar accesos a dispositivos.

    
respondido por el Mike Samuel 14.11.2011 - 18:01
fuente

Lea otras preguntas en las etiquetas