¿Hay una manera de asegurar una máquina con Linux de manera que nadie más (excepto yo) pueda acceder a su contenido? [cerrado]

-4

Y quiero decir, incluso si alguien intenta rootear un Live CD, incluso si uno quita el disco duro y lo conecta en otro lugar, etc ...

Quiero poder darle a un cliente una máquina con un servicio en ejecución, pero no quiero permitir que se eche un vistazo dentro de ella, en absoluto.

Editar: bueno, solo para aclarar, el usuario no va a utilizar la computadora directamente, el servicio está expuesto a través de un puerto TCP y así es como interactúan con él.

Escenario más amplio: proporciono un servicio a través de Internet, ya que los datos de mis usuarios son un tanto confidenciales, muchos de ellos me pidieron que les proporcionara un servidor que pudieran tener localmente y mantenerse frescos porque sus datos no salen. el edificio. Estoy bien con eso, pero no quiero que revisen mi código fuente y lo roben / modifiquen.

    
pregunta almosnow 11.03.2016 - 22:31
fuente

3 respuestas

2

Si el usuario tiene acceso físico a la máquina, todas las apuestas están desactivadas.

El método más obvio para intentar asegurar la máquina sería cifrar el disco duro. El problema con esto es que una máquina en ejecución DEBE contener la clave de cifrado en algún lugar de la memoria, de lo contrario el sistema operativo no puede funcionar. Dado que la clave de descifrado está en la memoria, eres vulnerable a un ataque de arranque en frío

Además, hay otras vulnerabilidades que el acceso físico le daría. BadUSB es un ejemplo.

    
respondido por el Steve Sether 11.03.2016 - 23:03
fuente
1

Depende mucho de a lo que te enfrentas (tu escenario ).

Se podría confiar en un usuario "normal" con una máquina sin cabeza y una instalación de Linux cerrada, simplemente cerrando GRUB. Esto y un contrato / licencia adecuados serían suficientes. Puede desconectar el teclado y el mouse de la placa base, sellar la unidad y solo exportar su servicio y SSH.

El siguiente nivel es el cifrado de disco: un tipo más sofisticado pero que sigue mojado detrás de las orejas solo intentará montar el disco desde otra máquina, y tal vez ni siquiera sepa que existe tal cosa como ext4 o NTFS. - posiblemente "¡El disco debe estar formateado!" será suficiente para asustarlo o lo intentará con un lector extfs y no podrá acceder a la partición cifrada.

Esto es más o menos donde querrás parar. Ir más allá agrega complejidad y aún así no puede lograr la seguridad total .

El siguiente nivel es un usuario lo suficientemente inteligente como para comprender que si el disco está cifrado y aún así se inicia , significa que la secuencia de inicio tiene acceso a la clave de descifrado. He oído hablar de controladores experimentales (que trabajan principalmente en la oscuridad) que ocultan la clave en lugares extraños, desde la memoria CMOS no utilizada hasta las EEPROM externas, pero como dice el chiste anterior, ya hemos establecido cómo terminará esto, ahora simplemente regateamos sobre el precio : la cantidad de esfuerzo que requerirá un pirata informático determinado con acceso completo al hardware para ingresar. Si él está lo suficientemente determinado, él se entrará.

Hay controladores (y dispositivos de hardware no detectables, y métodos de virtualización) que permiten interceptar tanto el puerto paralelo como el tráfico USB. Al controlar el reloj de hardware y la E / S, es posible un ataque de repetición que permita el inicio en un sistema manipulado, permitiendo el acceso al disco descifrado desde el "exterior" de una máquina virtual o iniciando servicios adicionales que permitan el mismo. Por lo tanto, tendría que agregar sofisticados mecanismos de autocomprobación para evitar esto.

En este punto, revisa las respuestas al nuevo problema y considere usar una PC especialmente diseñada donde el disco duro no puede ser removido. Tenga en cuenta que "no puedo" significa que usted y yo no pudimos, pero Chuck Norris alguien (de nuevo: suficientemente determinado, lo suficientemente rico, lo suficientemente bien informado, lo suficientemente despiadado ) puede.

Algo que podría intentar (y aún no proporciona seguridad completa) es exigir que la máquina esté siempre conectada a Internet. Sí, los datos están seguros dentro y no salen, pero cuando arranca , la máquina puede acceder a un servidor externo y obtener su contraseña de descifrado desde allí usando un esquema resistente a los ataques de repetición.

Por supuesto, si te enfrentas a un pirata informático determinado, un día la máquina que se conecta a tu servidor no será la máquina real, sino un fragmento de código subvertido que intentará (intentar) robar la clave de descifrado. Sin embargo, con un poco de suerte, esto no tendrá éxito en el primer intento, y en los registros del servidor de claves verá una secuencia de algunos reinicios y solicitudes de claves mientras el tipo explora las defensas.

Otra posibilidad sería permitir al usuario ingresar una respuesta a un desafío a través de SMS. Esto garantizaría al cliente que el servidor no puede filtrar nada, y usted todavía tendría algún tipo de pulso en la situación.

Cambio de arquitectura

Otra posibilidad que se me ocurre es que la PC del usuario contiene sus datos, pero no contiene tu servicio . Esto se descarga directamente a la memoria de forma segura desde Internet y se ejecuta en cada arranque. Necesitaría una aplicación de "supervisor" que examine su entorno y determine que está seguro y sin restricciones, y luego solicita a través de SSL y presenta una clave de licencia el último binario de aplicación de su servidor. El binario se descarga y comienza a hacer lo que debe hacer con los datos en la PC de destino, nunca se guarda en el disco. El servidor puede verificar la dirección IP de la persona que llama si pertenece a una red de clientes conocida.

Ahora el atacante tiene que engañar a la aplicación supervisora (que todavía se conectará y solicitará un binario incluso si detecta un entorno alterado. Solo lo hará, incluido un indicio sutil de que está actuando bajo presión. - un " señal de buena suerte hawaiana " si así lo desea), y a menos que el atacante sea el propio cliente, también engañar al servidor, así como apoderarse de la computadora. Todavía es posible, fíjate, pero mucho más difícil.

    
respondido por el LSerni 12.03.2016 - 15:10
fuente
-3

Sí, absolutamente. La respuesta poco práctica es instalar Linux en una máquina y luego mantenerla fuera de línea y con usted 24x7 para que nadie más tenga acceso a la máquina.

En realidad no. Suena como si quisieras un nivel de seguridad poco práctico. Para ver un ejemplo, vea Microsoft y todos sus diversos intentos de lanzar software y conservarlo para los usuarios ocultos. Recuerde, cuando hace negocios con personas, debe intercambiar cierta información, y se le exige que confíe a las personas la información que intercambie con ellas.

A su favor, usted conoce el código, lo mantiene y el robo de parte del código probablemente requiera un conocimiento experto. Otro punto a su favor, es que puede hacer arreglos para mantener la máquina con el código en ella. Probablemente haya un peligro mayor si los hackers roban su código que si sus socios comerciales lo roben.

Para una seguridad óptima, elija una distribución de Linux fuerte que permita obtener actualizaciones de seguridad rápidamente, instale un sistema operativo limpio, actualícelo regularmente, instale la menor cantidad de software posible en la caja, bloquee todos los puertos, configure un firewall fuerte y escribir código de servidor realmente apretado. Si realmente está preocupado por la seguridad, ejecute esta máquina en su propia subred con un firewall de puerta de enlace independiente y su propia elección de servidores DNS.

    
respondido por el Brent Kirkpatrick 11.03.2016 - 22:45
fuente

Lea otras preguntas en las etiquetas