Habiendo creado una aplicación web basada en una pila de PHP que se implementa en un servidor, me gustaría tener una forma de proporcionar acceso a ella sin conexión. Hay una base de datos de pacientes y citas que deben consultarse para el acceso de lectura cuando una conexión no está disponible o no está disponible. El acceso a la aplicación web requiere un inicio de sesión de cuenta.
La preocupación es que, dada la naturaleza sensible de los datos, tanto en términos de código como de base de datos, la implementación local de la aplicación web en su forma original definitivamente no es una opción.
Me preguntaba si reunir una VM encriptada junto con la aplicación web y un servidor web proporcionaría suficiente seguridad. Se le solicitará una contraseña al cliente, ejecute la máquina virtual y conéctese a la aplicación web utilizando una dirección local, de la misma manera que lo haría con el servidor remoto.
Mis expectativas en términos de seguridad serían que un atacante con acceso al sistema local no:
- poder iniciar sesión en la máquina virtual
- tener acceso al código real de la aplicación web mientras la VM se está ejecutando
- tener acceso a los datos de la base de datos mientras se ejecuta la máquina virtual
- no puede inferir información confidencial a través del volcado de memoria mientras se ejecuta la máquina virtual
- incluso si copian la imagen, no podrán usarla sin la contraseña
¿Se puede lograr esto con una máquina virtual y cuánta protección ofrece el cifrado? Por lo que he visto, el tipo de información que los proveedores están dispuestos a proporcionar es más en términos de pasos de configuración y menos en términos de capacidades de seguridad.
También me preguntaba si proporcionar una versión recortada de la aplicación web como un cliente ejecutable ofuscado (que tendría que volver a implementar desde cero y mantenerla sincronizada con la aplicación web real) y una base de datos cifrada serviría para Una mejor solución.