¿Los administradores de contraseñas pierden información con la memoria de intercambio?

9

La publicación Cómo encontrar contraseñas en la memoria ( administradores de contraseñas) concluyó, que las contraseñas son visibles en texto simple si inicia sesión en un sitio web. Los administradores de contraseñas tienden a almacenar las contraseñas cifradas en la memoria, pero necesitan descifrarlas para iniciar sesión.

Un volcado de memoria requiere que la máquina de destino se esté ejecutando y la víctima inicie sesión en una cuenta. La contraseña podría estar expuesta en texto sin formato y se podría crear un volcado de memoria (con un ataque de arranque en frío o de alguna otra manera).

Pero ¿qué pasa con el intercambio? Generalmente se usa, si la memoria RAM se queda sin capacidad y la memoria se subcontrata al disco. Las capacidades subcontratadas podrían contener una contraseña no cifrada, que se almacenará "persistentemente" en el disco hasta que se sobrescriba. Con un poco de suerte, un atacante podría analizar el intercambio de una computadora más tarde sin el requisito de que el objetivo la use.

Entonces, ¿es un intercambio vulnerable a este tipo de ataque?

Después de leer las respuestas, investigué un poco más y encontré una publicación similar en Askubuntu que sugiere cifrar la partición de intercambio. Esto debería evitar los problemas relacionados con la información filtrada en la memoria de intercambio.

    
pregunta user3147268 10.08.2015 - 09:45
fuente

2 respuestas

5

Como ya señalé en mi comentario anterior , este ataque ha sido previsto y ya ha sido contrarrestado (por la mayoría de las aplicaciones de criptografía).

La forma en que lo hace es que usted (el desarrollador) le dice al sistema operativo (OS) que no cambie esta sección particular de la memoria. El sistema operativo generalmente respetará eso y "hará una nota" en algún lugar del administrador de memoria para no intercambiar esto. Sin embargo, incluso esta área marcada puede intercambiarse (si se declaran demasiados datos como "no intercambiables" o si un programa en modo kernel necesita "demasiada" memoria), es mejor que no hacer nada (y dejar que sea inmutable) pero aún así no es perfecto y le dice que no marque todo lo que no se puede cambiar.

Como le preocupa el intercambio de datos secretos en el disco, también le puede preocupar el estado de hibernación que ofrecen muchos sistemas operativos, en el que realmente escribe la RAM actual en el disco para que pueda iniciarse. Más rápido en un momento posterior y puede reanudar su trabajo. Este escenario de ataque es menos común, pero se debe contrarrestar con un tratamiento cuidadoso (- > borrar todas las claves / contraseñas de texto simple en hibernación / apagado) y el cifrado de datos adecuado.

Tal como se solicita en los comentarios a la otra pregunta, también proporcionaré rápidamente (algunos) información general sobre dónde comprobar si el programa utilizado (fuente abierta) es vulnerable.

Windows: debe inspeccionar la porción de memoria (administración de contraseñas) del código y buscar específicamente VirtualLock() y VirtualUnlock

Sistemas similares a Unix: inspeccione la misma parte del código que para Windows pero ahora busque mlock() y munlock() . También busque mlockall() en cualquier momento en el código, ya que esto globalmente bloquea la memoria en la RAM.

    
respondido por el SEJPM 10.08.2015 - 16:51
fuente
1

Usted tiene razón al respecto: un atacante podría analizar el intercambio de un disco duro buscando las contraseñas. Es por esta razón que los administradores de contraseñas escritas decentemente se aseguran de que la contraseña siempre se mantenga en la RAM y nunca se intercambie en la memoria virtual.

    
respondido por el dr01 10.08.2015 - 11:41
fuente

Lea otras preguntas en las etiquetas