Demostrando la ceroización

3

¿Hay alguna forma de probar que un programa no deja claves en la memoria después de que existe?

Algunos programas están diseñados para reducir el tamaño de los campos confidenciales después de su uso. Si conociera los valores de estos campos, puede buscarlos en la memoria después de que exista el programa si pudiera evitar causar una falla de segmentación.

Un enfoque que he imaginado es piratear el sistema operativo, de modo que usted controlara la misma memoria que usaba el programa. Luego simplemente busque en la memoria los valores de campo. Suponiendo que los campos fueran lo suficientemente largos, los falsos positivos serían como ir a la lotería.

Si esto está reinventando la rueda, por favor, dime cómo se llama esta rueda o si estoy complicando esto.

Claro que no puedes probar que nunca dejará llaves, pero podrías probar que no lo hizo durante una carrera en particular. Solo busco una prueba razonable que los desarrolladores puedan usar para verificar.

    
pregunta candied_orange 17.11.2016 - 03:06
fuente

2 respuestas

1

En un entorno de desarrollo, solo deberías adjuntar un depurador, interrumpir justo antes de salir y buscar en la memoria.

No puedo imaginar una buena razón para hacer esto en producción, así que probablemente sea suficiente.

    
respondido por el Reid Rankin 17.11.2016 - 04:47
fuente
1

Cualquier proceso que usted controle, puede descargar la memoria y luego buscar cadenas.

En * nix

Hay una gran pregunta en ServerFault Volcar la memoria de un proceso Linux para archivar que menciona una serie de herramientas que puede usar, por ejemplo, aquí le indicamos cómo hacerlo usando gdb :

$ gdb --pid [pid]
(gdb) dump memory /root/output 0x00621000 0x00622000

Luego puede buscar en el archivo de volcado utilizando la herramienta strings .

En Windows

Puede tomar un volcado de memoria de cualquier programa desde el Administrador de tareas. Parece que hay varias formas de analizar un archivo de volcado; una búsqueda rápida en google me encontró el depurador de Windows (WinDbg): [1] , [2] . También parece que puede abrir un archivo de volcado en Visual Studio [3] .

Cuidado: las claves a veces se confunden en la memoria

También tenga en cuenta que es posible que no pueda encontrar claves en el archivo de volcado con un simple ctrl + f porque una aplicación inteligente las ofuscará con una máscara de bits almacenada en algún otro lugar en la memoria del proceso, o trucos similares. Para probar realmente que un programa no deja las claves en la memoria, debe conocer ese programa bastante bien.

    
respondido por el Mike Ounsworth 17.11.2016 - 16:01
fuente

Lea otras preguntas en las etiquetas