Mantener la información en la RAM puede mejorar la seguridad, si se hace correctamente y si los requisitos lo permiten. Voy a mostrar dos arquitecturas de seguridad en las que mantener los datos en la RAM proporciona un beneficio de seguridad. Estos son escenarios bastante específicos; la mayoría de las veces, mantener los datos en la RAM no ayuda.
Protección contra ataques de volcado de archivos
Considere una aplicación web que manipula archivos en el servidor. Un tipo de vulnerabilidad que podría tener es permitir que los usuarios descarguen archivos que se supone que no deben exponerse de forma remota. Si una parte de los datos críticos solo se almacena en la memoria de algunos procesos (en este caso no es la RAM lo que es relevante, sino la memoria virtual en oposición al sistema de archivos), entonces no será revelada por una vulnerabilidad de exposición del archivo.
Por supuesto, los datos pueden revelarse a través de otras vulnerabilidades, por ejemplo, con una cadena de ataques que primero organiza la escritura de los datos confidenciales en un archivo (como un volcado de errores de algún tipo) y luego el archivo de volcado. expuesta.
Mantener los datos en la memoria solo ayuda si no se carga desde un archivo en primer lugar. ¿De dónde sacas los datos después del arranque? Los datos se pueden almacenar encriptados, pero eso requiere que alguien ingrese la clave de descifrado después de un reinicio; Esto no es bueno para la mayoría de las aplicaciones web, ya que no pueden permitirse el tiempo de inactividad. Los datos se pueden almacenar en un archivo que requiere privilegios adicionales que el servidor web no tiene: el proceso del servidor web comenzaría con privilegios elevados, leer el archivo y luego soltar privilegios. Esto eleva el estándar para un atacante, ya que tendrían que encontrar una vulnerabilidad de escalada de privilegios locales además de la vulnerabilidad remota que les daba una base. El beneficio sigue siendo pequeño porque muchos ataques que le dan al atacante acceso local sin privilegios también proporcionan una forma de inspeccionar la memoria de los procesos activos.
Defensa contra algunos ataques con acceso físico
La información en la RAM desaparece si la RAM está apagada. Por lo tanto, si el atacante solo puede controlar el sistema de destino al apagarlo, tendrá más problemas para acceder a los datos si está solo en la memoria RAM. Sin embargo, almacenar los datos en la RAM no servirá de mucho por sí solo, ya que RAM tiene alguna remanencia de datos de De unos segundos a unos minutos. (Consulte también Recupere los contenidos anteriores de ¿RAM de una PC apagada? ). Esto es suficiente para reiniciar la computadora en un sistema operativo controlado por el atacante o para transferir las memorias RAM a otra computadora. (Consulte también ¿Hay volátiles? ¿Chips de memoria que no retienen datos después de apagarlos? )
El cifrado de los datos ayuda, pero tienes que almacenar la clave de cifrado en algún lugar. Y si va a cifrar los datos, puede hacerlo en un disco de todos modos. El cifrado de la mayoría de los datos confidenciales ayuda en que si el atacante tiene la mala suerte de perder la clave, los datos están seguros.
Entonces, para almacenar los datos en la memoria RAM para mejorar la seguridad, debe haber medidas de seguridad física adicionales. Si la memoria RAM está dentro de una caja a prueba de manipulaciones que hace que se apague la alimentación si se abre, podría ser suficiente para superar la remanencia de la memoria RAM. Para obtener mejores resultados, los intentos de manipulación deben hacer que la placa base ponga a cero la memoria RAM antes de apagar la alimentación (lo que significa que la placa base debe tener una batería pequeña). Encriptar los datos ayuda porque entonces solo es necesario poner a cero la clave, lo que lleva menos tiempo. Incluso si las medidas anti-manipulación pueden ser derrotadas con herramientas suficientemente buenas, hace que el ataque sea más difícil que un simple pase y arranque (un intruso con un cortador de pernos es más notable que un atacante con una placa de circuito dentro de una caja de teléfono móvil) ).
Yendo más allá, puede valer la pena cifrar la RAM y asegurarse de que la clave se mantenga en la caché del procesador o registros . El atacante normalmente tiene que reiniciar para intentar obtener la clave; reiniciar lo suficientemente rápido como para encontrar un caché prístino y sin obstruir el caché es más difícil, y desconectar la CPU es más difícil que desconectar la RAM.
Por supuesto, siempre existe el problema de dónde se cargan los datos (o si están cifrados, donde se almacena la clave). Algunos casos de uso valoran la confidencialidad sobre la disponibilidad y pueden permitirle a alguien que ingrese una clave después de cada reinicio (por ejemplo, un centro de datos grande puede tener a alguien disponible para hacerlo las 24 horas del día, en caso de que un intruso llegue tan lejos). Esta medida de seguridad también puede beneficiar a los sistemas que procesan datos pero no los almacenan.