kdpv — Reuters
Si has alquilado un servidor, no tienes control total sobre él. Esto significa que en cualquier momento pueden venir personas especialmente capacitadas para solicitar al proveedor de hosting cualquier dato tuyo. Y el proveedor lo entregará, si la solicitud está debidamente formalizada según la ley.
No quieres que los registros de tu servidor web o los datos de los usuarios caigan en manos de terceros. No es posible construir una protección ideal. Protegerse de un proveedor de hosting que posee el hipervisor y te proporciona una máquina virtual es casi imposible. Sin embargo, es posible mitigar un poco los riesgos. El cifrado de las máquinas alquiladas no es tan inútil como parece a primera vista. También echaremos un vistazo a las amenazas de extracción de datos de los servidores físicos.
Modelo de amenazas
Por lo general, el proveedor de hosting intentará proteger al máximo los intereses del cliente, en la medida en que la ley lo permita. Si en una carta de las autoridades oficiales solo se solicitaron los registros de acceso, el proveedor no entregará los volúmenes de todas tus máquinas virtuales con bases de datos. Al menos no debería. Si se solicita toda la información, el proveedor copiará los discos virtuales con todos los archivos y tú no te enterarás.
Independientemente del escenario que se desarrolle, tu tarea principal es hacer que el ataque sea demasiado complicado y costoso. Generalmente hay tres opciones principales de amenaza.
Oficial
Con mayor frecuencia, se envía una carta en papel a la oficina oficial del proveedor de hosting con la solicitud de proporcionar los datos necesarios de acuerdo con la resolución correspondiente. Si todo está debidamente formalizado, el proveedor entrega los registros de acceso necesarios y otros datos a las autoridades oficiales. Por lo general, solo se solicita que envíen los datos requeridos.
Ocasionalmente, si es realmente necesario, los representantes de las fuerzas del orden vienen en persona al centro de datos. Por ejemplo, cuando tienes tu propio servidor dedicado y los datos solo pueden ser extraídos físicamente.
En todos los países, para obtener acceso a una propiedad privada, realizar una búsqueda y llevar a cabo otras actividades, se requiere evidencia de que los datos pueden contener información importante para la investigación de un crimen. Además, se necesita una orden de registro debidamente formalizada. Aquí puede haber matices relacionados con las particularidades de la legislación local. Lo principal que hay que entender es que, si se siguen los procedimientos oficiales correctos, los representantes del centro de datos no permitirán que nadie pase más allá del control de acceso.
Además, en la mayoría de los países no se puede simplemente retirar equipo en funcionamiento. Por ejemplo, en Rusia, hasta finales de 2018, según el artículo 183 del Código de Procedimiento Penal de la Federación Rusa, parte 3.1, se garantizaba que, al llevar a cabo la incautación, la extracción de soportes electrónicos de información se realizaba con la participación de un especialista. A solicitud del propietario legítimo de los soportes electrónicos incautados o del poseedor de la información contenida en ellos, el especialista que participaba en la incautación, en presencia de testigos, copia la información de los soportes electrónicos incautados a otros soportes electrónicos de información.
Luego, desgraciadamente, este punto fue eliminado del artículo.
Secreto y no oficial
Esto ya es territorio de la actividad de agentes especialmente capacitados de la NSA, el FBI, el MI5 y otras organizaciones de tres letras. Con mayor frecuencia, la legislación de los países prevé amplios poderes para tales estructuras. Además, casi siempre hay una prohibición legal sobre cualquier divulgación directa o indirecta del hecho mismo de la colaboración con tales cuerpos de fuerza. En Rusia existen normas similares. .
En caso de tal amenaza a sus datos, casi con seguridad serán extraídos. Además de la simple incautación, se pueden utilizar todo el arsenal no oficial de puertas traseras, vulnerabilidades de día cero, extracción de datos de la memoria RAM de su máquina virtual y otras sorpresas. El proveedor de servicios estará obligado a ayudar en la medida de lo posible a los especialistas de las fuerzas del orden.
Empleado deshonesto
No todas las personas son igualmente buenas. Algunos de los administradores del centro de datos pueden decidir ganar un poco de dinero y vender tus datos. Lo que suceda después depende de sus permisos y accesos. Lo más preocupante es que un administrador con acceso a la consola de virtualización tiene control total sobre tus máquinas. Siempre se puede tomar una instantánea junto con todo el contenido de la memoria RAM y examinarla sin prisa después.
VDS
Así que tienes una máquina virtual que te proporcionó el anfitrión. ¿Cómo puedes organizar el cifrado para protegerte? En realidad, prácticamente no hay manera. De hecho, incluso un servidor dedicado de otra persona puede convertirse al final en una máquina virtual en la que se asignan los dispositivos necesarios.
Si la tarea del sistema remoto no es solo almacenar datos, sino realizar algún tipo de cálculos, la única opción para trabajar con una máquina no confiable será implementar . De este modo, el sistema realizará cálculos sin la posibilidad de entender qué es exactamente lo que está haciendo. Desafortunadamente, los gastos generales para implementar tal cifrado son tan altos que su uso práctico en este momento está limitado a tareas muy específicas.
Además, en el momento en que la máquina virtual está encendida y realiza alguna acción, todos los volúmenes cifrados están en un estado accesible, de lo contrario, el sistema operativo simplemente no podrá trabajar con ellos. Esto significa que al tener acceso a la consola de virtualización, siempre puedes tomar una instantánea de la máquina en funcionamiento y extraer todas las claves de la memoria RAM.
Muchos proveedores han intentado organizar la cifrado de hardware para RAM para que incluso el anfitrión no tenga acceso a estos datos. Por ejemplo, la tecnología Intel Software Guard Extensions, que crea áreas en el espacio de direcciones virtuales, protegidas contra la lectura y escritura por otros procesos, incluyendo el núcleo del sistema operativo. Desafortunadamente, no podrás confiar plenamente en estas tecnologías, ya que estarás limitado a tu máquina virtual. Además, ya existen ejemplos de a esta tecnología. Aun así, cifrar máquinas virtuales no es tan absurdo como puede parecer.
Ciframos datos en VDS
Primero aclaro que todo lo que hagamos a continuación no proporciona una protección completa. El hipervisor permitirá realizar las copias necesarias sin detener el servicio y de manera imperceptible para usted.
- Si el proveedor envía una imagen 'fría' de su máquina virtual a solicitud, estará relativamente seguro. Este es el escenario más común.
- Si el proveedor entrega una instantánea completa de la máquina en funcionamiento, la situación es bastante mala. Todos los datos se montarán en el sistema en claro. Además, se abrirá la posibilidad de examinar la RAM en busca de claves privadas y datos similares.
Por defecto, si ha desplegado el sistema operativo desde una imagen estándar, el proveedor no tiene acceso de root. Siempre se puede montar un medio con una imagen de rescate y cambiar la contraseña de root, haciendo chroot en el entorno de la máquina virtual. Pero esto requerirá un reinicio, lo que será notado. Además, todas las particiones encriptadas montadas estarán cerradas.
Sin embargo, si el despliegue de la máquina virtual no proviene de una imagen estándar, sino de una previamente preparada, el proveedor a menudo puede agregar una cuenta privilegiada para ayudar en situaciones de emergencia del cliente. Por ejemplo, para cambiar una contraseña de root olvidada.
Incluso en el caso de una instantánea completa, no es tan desalentador. El atacante no obtendrá archivos encriptados si los ha montado desde un sistema de archivos remoto de otra máquina. Sí, en teoría se puede examinar el volcado de la memoria RAM y extraer las claves de encriptación de allí. Pero en la práctica, esto es bastante complicado y es muy poco probable que el proceso vaya más allá de la simple transferencia de archivos.
Solicitamos una máquina

Para nuestros objetivos de prueba, tomamos una máquina simple en . No necesitamos muchos recursos, así que tomaremos la opción de pago por los megahercios y el tráfico efectivamente utilizados. Justo lo suficiente para experimentar.
El clásico dm-crypt en toda la partición no funcionó. El disco se entrega por defecto en un solo bloque, con root en toda la partición. Reducir la partición con ext4 en root montado garantiza, prácticamente, un ladrillo en lugar de un sistema de archivos. Lo intenté) El tambor no ayudó.
Creamos un contenedor criptográfico
Por lo tanto, no codificaremos la sección completa, sino que utilizaremos contenedores criptográficos de archivos, específicamente VeraCrypt, que ha pasado auditorías y es confiable. Para nuestros propósitos, esto es suficiente. Primero, descargamos e instalamos el paquete con la versión CLI desde el sitio oficial. También puedes verificar la firma.
wget https://launchpad.net/veracrypt/trunk/1.24-update4/+download/veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
dpkg -i veracrypt-console-1.24-Update4-Ubuntu-18.04-amd64.deb
Ahora crearemos el contenedor en algún lugar de nuestro home, para montarlo manualmente tras el reinicio. En la variante interactiva, especifica el tamaño del contenedor, la contraseña y los algoritmos de cifrado. Puedes elegir el cifrado patriótico Kuznechik y la función hash Stribog.
veracrypt -t -c ~/my_super_secretAhora instalemos nginx, montemos el contenedor y subamos la información secreta.
mkdir /var/www/html/images
veracrypt ~/my_super_secret /var/www/html/images/
wget https://upload.wikimedia.org/wikipedia/ru/2/24/Lenna.pngAjustemos /var/www/html/index.nginx-debian.html para obtener la página deseada y podamos verificar.
Conectémonos y verifiquemos.

El contenedor está montado, los datos están disponibles y se entregan.

Aquí está la máquina después del reinicio. Los datos están seguros en ~/my_super_secret.
Si es absolutamente necesario y deseas un enfoque extremo, puedes cifrar todo el sistema operativo, de modo que tras el reinicio requiera conexión por ssh e ingreso de contraseña. Esto también será suficiente en el escenario simple de extracción de 'datos fríos'. Aquí está y el cifrado remoto de discos. Aunque en el caso de VDS es complicado y excesivo.
Bare metal
No es tan fácil instalar un servidor propio en un centro de datos. Un dedicado ajeno puede resultar ser una máquina virtual donde se hayan configurado todos los dispositivos. Pero algo interesante en términos de protección comienza cuando tienes la posibilidad de colocar tu servidor físico de confianza en el centro de datos. Aquí ya se puede utilizar a plenitud el tradicional dm-crypt, VeraCrypt o cualquier otro cifrado de tu elección.
Hay que entender que al implementar un cifrado total, el servidor no podrá iniciarse por sí mismo después de un reinicio. Se necesitará establecer una conexión al interfaz local IP-KVM, IPMI u otro análogo similar. Después de lo cual ingresaremos manualmente la clave maestra. El esquema se ve un tanto inadecuado en términos de continuidad y resistencia a fallos, pero no hay muchas alternativas si los datos son tan valiosos.

Módulo de Seguridad de Hardware NCipher nShield F3
Una opción más suave implica que los datos están cifrados y que la clave se encuentra directamente en el servidor, en un módulo de seguridad de hardware (HSM) especial. Por lo general, son dispositivos muy funcionales que no solo proporcionan criptografía de hardware, sino que también cuentan con mecanismos para detectar intentos de acceso físico no autorizado. Si alguien comienza a desmontar su servidor con una amoladora, el HSM, con una fuente de alimentación independiente, borrará las claves que tiene almacenadas en su memoria. Al atacante solo le quedará un Revuelto cifrado. Además, el reinicio puede ocurrir automáticamente.
Eliminar claves es una opción mucho más rápida y humanitaria que activar una trampa de termita o un detonador electromagnético. Sus vecinos en el centro de datos estarán enojados con usted durante mucho tiempo por tales dispositivos. Más aún, en caso de usar el cifrado en los propios soportes, prácticamente no experimentará ningún overhead. Todo esto ocurre de forma transparente para el sistema operativo. Sin embargo, se debe confiar en un Samsung condicional y esperar que tenga AES256 honesto y no un simple XOR.
No hay que olvidar que todos los puertos innecesarios deben estar físicamente desconectados o completamente sellados con compuesto. De lo contrario, le da la oportunidad a los atacantes de llevar a cabo . Si tiene un PCI Express o Thunderbolt expuesto, incluyendo USB con su soporte, usted es vulnerable. Un atacante podrá realizar un ataque a través de estos puertos y obtener acceso directo a la memoria con las claves.

En una variante muy sofisticada, el atacante podrá realizar un ataque de cold boot. En este caso, simplemente vierte una buena cantidad de nitrógeno líquido en su servidor, extrae bruscamente los módulos de memoria congelados y toma un volcado de ellos con todas las claves. A menudo, para llevar a cabo el ataque, basta con un spray de refrigeración común y temperaturas alrededor de -50 grados. Hay una opción más cuidadosa. Si no ha desactivado el arranque desde dispositivos externos, el algoritmo del atacante será aún más simple:
- Congelar los módulos de memoria sin abrir la carcasa
- Conectar su unidad USB de arranque
- Utilizar utilidades especiales para extraer datos de la memoria RAM que sobrevivieron al reinicio, gracias a la congelación.
Divide y conquistarás
Está bien, solo tenemos máquinas virtuales, pero queremos reducir los riesgos de fuga de datos de alguna manera.
En principio, se podría considerar revisar la arquitectura y distribuir el almacenamiento de datos y el procesamiento en diferentes jurisdicciones. Por ejemplo, el frontend con las claves de cifrado en un proveedor en Chequia, y el backend con datos cifrados en algún lugar de Rusia. En caso de un intento estándar de incautación, es extremadamente improbable que las fuerzas del orden puedan realizar esto simultáneamente en diferentes jurisdicciones. Además, esto nos protege parcialmente de un escenario de eliminación de snapshots.
O se puede considerar una opción totalmente diferente: cifrado de extremo a extremo. Por supuesto, esto excede los límites del pliego de condiciones y no implica realizar cálculos en la máquina remota. Sin embargo, es una opción totalmente aceptable si se trata de almacenamiento y sincronización de datos. Por ejemplo, esto se implementa muy cómodamente en Nextcloud. Además, la sincronización, el versionado y otras características del lado del servidor no desaparecerán.
Total
No existen sistemas perfectamente seguros. La tarea consiste únicamente en hacer que el ataque sea más costoso que la posible recompensa.
Se puede lograr una reducción del riesgo de acceso a datos en entornos virtuales combinando cifrado y almacenamiento separado en diferentes proveedores.
Una opción más o menos confiable es utilizar un servidor propio.
No obstante, al proveedor de hosting hay que confiarle de alguna manera. Así es como se sostiene toda la industria.
Fuente: habr.com
