Arranque automático y protección de un servidor Linux con un sistema de archivos cifrados

16

Estoy configurando algunos nuevos servidores Ubuntu, y me gustaría asegurar los datos en ellos contra el robo. El modelo de amenaza son los atacantes que desean el hardware o, más bien, los atacantes ingenuos que desean los datos.


Por favor tome nota de esta sección.

El modelo de amenaza no incluye atacantes inteligentes que desean los datos; Supongo que harán uno o más de los siguientes:

  1. Empalme un UPS en el cable de alimentación para mantener la máquina funcionando continuamente.

  2. Inserte un par de puentes Ethernet entre la computadora y el punto de terminación de la red que tenderá un puente sobre el tráfico a través de una red inalámbrica de rango suficiente para que el host mantenga la conectividad de la red.

  3. Abra la caja y use una sonda en el bus de memoria para tomar cosas interesantes.

  4. Use dispositivos TEMPEST para sondear lo que está haciendo el host.

  5. Usar medios legales (como una orden judicial) para obligarme a revelar los datos

  6. Etcétera etcétera.


Entonces, lo que quiero es tener algunos, o idealmente todos, los datos en el disco en una partición encriptada, con el material clave necesario para acceder a ellos en medios externos de algún tipo. Dos métodos que puedo pensar para almacenar el material clave son:

  1. Almacénelo en un host remoto accesible a través de la red y configure suficiente red para recuperarlo durante el proceso de arranque. La recuperación solo se permitiría a la dirección IP asignada al host seguro (por lo tanto, no se permite el acceso a los datos cifrados si se iniciaron en otra conexión de red) y los administradores podrían desactivarla si se descubriera que la máquina fue robada.

  2. Guárdelo en un dispositivo de almacenamiento USB que de alguna manera sea mucho más difícil de robar que el propio host. Ubicarlo alejado del host, como al final de un cable USB de cinco metros que conduce a otra esquina de la habitación, o incluso a otra habitación, probablemente reduciría significativamente las posibilidades de que los atacantes lo tomen. Asegurarlo de alguna manera, como encadenarlo a algo inmóvil, o incluso ponerlo en una caja fuerte, funcionaría aún mejor.

Entonces, ¿cuáles son mis opciones para configurar esto? Como dije antes, preferiría tener todo (aparte de quizás una pequeña partición de arranque que no contenga / etc) encriptada, para no tener que preocuparme de dónde estoy colocando los archivos, o dónde están ' re aterrizando accidentalmente.

Estamos ejecutando Ubuntu 9.04, si hace alguna diferencia.

Curt J. Sampson
fuente
1
¿Su modelo de amenaza usa uniformes con tres letras? :)
Sven
No visten uniformes. :-) Pero en serio, no; es probable que cualquier agencia gubernamental, encubierta o no, sea lo suficientemente inteligente como para tomar todo el hardware, no solo lo que puede tomar rápidamente.
Curt J. Sampson el
1
Su pregunta parece contradecirse a sí misma. Primero dices "Me gustaría proteger los datos sobre ellos contra el robo", luego dices "no incluye a los atacantes inteligentes que desean los datos". ¿Te importan los datos o no?
Zoredache el
1
Me importa si. Si puede, por un costo similar, asegurarlo contra atacantes inteligentes y tontos, genial, lo haré. Si no, al menos evito la situación en la que alguien compra un disco usado en una tienda de reciclaje y descubre todos los datos de mis clientes en él.
Curt J. Sampson el
+1 por pensar realmente en el modelo de amenaza, algo que muchas personas con una pregunta similar olvidan hacer.
sleske

Respuestas:

8

Sé de una variante inteligente de la Opción 1 llamada Mandos.

Utiliza una combinación de un par de claves GPG, Avahi, SSL e IPv6, todo agregado a su disco RAM inicial para recuperar de forma segura la contraseña clave de su partición raíz. Si el servidor Mandos no está presente en la LAN, su servidor es un bloque cifrado o el servidor Mandos no ha visto un latido del software del cliente Mandos durante un período determinado de tiempo, ignorará las solicitudes futuras para ese par de claves y el servidor es un ladrillo encriptado la próxima vez que arranque.

Página de Mandos

Mandos README

Haakon
fuente
1
Idea interesante. Supongo que estaría PXE iniciando los clientes para que el par de claves público / privado no estuviera en el disco duro. Aún así, puede espiar el par de llaves del cable y luego usarlo, en combinación con un olfateo de la transmisión de la clave de cifrado en masa por parte de la computadora del servidor, para descifrar la unidad. Todo el "servidor no entregará una clave si no ha escuchado un latido en la ventana de tiempo xxx" también suena como una buena forma de hacer que un humano entre en el bucle. Proyecto aseado. No es demasiado difícil de vencer si tienes acceso físico, pero ordenado.
Evan Anderson el
2
Evan, quieres leer las Preguntas Frecuentes en el LÉAME de Mandos, creo ...
Curt J. Sampson el
Hm. No tengo claro por qué Mandos solo se ejecuta en una LAN. ¿Es porque no puede configurar una dirección IP y rutas para usar Internet?
Curt J. Sampson el
1
En resumen, Mandos utiliza direcciones locales de enlace ipv6 para comunicarse, que se limita a la LAN local. Sin embargo, sí significa que no necesita ninguna configuración externa (dhcp) o conflictos con otros servidores en la misma LAN. en.wikipedia.org/wiki/…
Haakon
1
Como coautor de Mandos, solo puedo estar de acuerdo con Haakon. En realidad, hay una manera para que Mandos use direcciones IPv4 globales usando el kernel ip=y los mandos=connectparámetros, vea este correo: mail.fukt.bsnet.se/pipermail/mandos-dev/2009-February/… pero tenga en cuenta que esto es algo frágil ya que los clientes solo intentarán conectarse al servidor especificado una vez y, de lo contrario, fallarán irrevocablemente. La configuración recomendada es a través de la LAN. También puedo mencionar que Mandos está disponible en Ubuntu desde 9.04 (y también en las pruebas de Debian)
Teddy
6

Si solo busca protegerse contra atacantes no técnicos, creo que su mejor opción es una mejor seguridad física.

Mi pensamiento es así:

Si está buscando una bota que no requiera interacción humana para ingresar el material clave, entonces no encontrará ninguna solución que esté a salvo incluso del robo casual de un atacante con habilidades técnicas (o, más apropiadamente, el capacidad de pagar a alguien con habilidades técnicas).

Poner material clave en algo así como una memoria USB no ofrecería ninguna seguridad real. El atacante podría leer la llave de la memoria USB. La memoria USB no puede saber si la computadora en la que se ha conectado es la computadora del servidor o la computadora portátil del atacante. Todo lo que el atacante tiene que hacer es asegurarse de que se llevan todo, o en el caso de su llave USB en el extremo de un cable extendo USB de 15 pies de largo pegado dentro de una caja fuerte, simplemente conecte el cable extendo a su PC y lea la clave.

Si va a transferir la clave a través de la red, probablemente la "cifrará". Todo lo que el atacante tiene que hacer es espiar el proceso de codificación, robar el servidor y luego aplicar ingeniería inversa a cualquier "encriptación" que hiciste cuando enviaste la clave a través de la red. Por definición, la computadora servidor que recibe una clave "encriptada" de toda la red tiene que poder "desencriptar" esa clave para poder usarla. Entonces, realmente, no estás encriptando la clave, solo la estás codificando.

En última instancia, necesita un presente de inteligencia (¿artificial?) Para ingresar la clave en el servidor. Uno que puede decir "Sé que no estoy divulgando la clave a nadie más que a la computadora del servidor, y sé que no ha sido robada". Un humano puede hacer esto. Una memoria USB no puede. Si encuentra otra inteligencia que pueda hacerlo, creo que tendrá algo comercializable. > sonrisa <

Es muy probable, creo, que pierda la clave y destruya sus datos sin obtener seguridad. En lugar de su estrategia con los juegos de cifrado, creo que es mejor tener una seguridad física más sólida.

Editar:

Creo que estamos trabajando a partir de diferentes definiciones del término "modelo de amenaza", tal vez.

Si su modelo de amenaza es el robo de hardware, entonces su solución propuesta en relación con el cifrado de disco es, como lo veo, no hacer nada para contrarrestar la amenaza. Su solución propuesta parece una contramedida contra el robo de datos, no el robo del hardware.

Si desea evitar que el hardware sea robado, debe atornillarlo, encerrarlo, encerrarlo en concreto, etc.

Ya he dicho lo que quería decir sobre el robo de datos, por lo que no volveré a insistir en eso, excepto para decir: si vas a poner la llave en un dispositivo físico y no puedes proteger el equipo servidor no es robado, entonces tampoco puede proteger el dispositivo clave de ser robado.

Supongo que su mejor solución "barata" es manipular algún tipo de intercambio de claves basado en la red. Pondría a uno o más humanos en el bucle para autenticar la "liberación" de la clave en caso de reinicio. Causaría un tiempo de inactividad hasta que el humano "liberara" la llave, pero al menos le daría la oportunidad de averiguar por qué se solicitaba una "liberación" de la llave y decidir si hacerlo o no.

Evan Anderson
fuente
Esta es una buena adición al análisis de seguridad, por lo que le he dado un voto positivo, pero no es una respuesta a mi pregunta porque está utilizando un modelo de amenaza diferente. Tenga en cuenta lo que dije en la pregunta sobre contra quién estoy y no estoy defendiendo.
Curt J. Sampson el
1
En cuanto a una mejor seguridad física, me gustaría ver primero las opciones menos costosas. En nuestro entorno actual, nos costaría muchos miles de dólares instalar algo que no podría ser derrotado rápidamente por alguien con un par de cortadores de pernos.
Curt J. Sampson el
Al volver a leer esto, no estoy seguro de que tenga claro que mi modelo de amenaza no es el robo de hardware en , que es básicamente un inconveniente, sino el robo concomitante de datos que lo acompaña. Esa es precisamente la razón por la cual mi solución propuesta es una contramedida contra el robo de datos, en lugar del robo de hardware.
Curt J. Sampson
Es interesante ver un comentario sobre una pregunta de casi 8 años. Si su solución funciona para usted, ciertamente me alegra.
Evan Anderson el
Estaba pensando "No debería necropost", entonces vi estos últimos comentarios. Creo que el modelo de amenaza de Curt es el mismo que el mío ... para proteger los datos contra alguien que robe el hardware. Varios comentarios sobre esto y publicaciones similares han dicho que la gente podría simplemente "espiar" el proceso clave y descubrirlo más tarde. Solo un proceso realmente ridículamente malo podría romperse por cualquier tipo de repetición. Además ... "todo lo que el atacante tiene que hacer es" ... "aplicar ingeniería inversa a cualquier cifrado que haya hecho" ... ¿De quién estamos hablando? ¿Cuáles son las posibilidades de que un ladrón común tenga esa habilidad ... o incluso desee hacerlo?
darron