¿Cómo es capaz de entrar en cualquier máquina Linux a través de grub2 seguro?

52

¿Cómo es segura la capacidad de una persona que obtuvo acceso físico a su computadora para obtener la raíz de esos pasos?

  1. Cuando se abra el menú de grub2, presione e para editar las opciones de inicio de Linux
  2. Cambio:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    a:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. Ahora tienes acceso de root solo haz:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. reinicia la computadora y ganas.

Mi pregunta es, ¿cómo es capaz de entrar en cualquier máquina Linux a través de grub2 seguro? No entiendo ese hecho sobre Linux, gracias por sus respuestas.

Clutchy
fuente
51
¿Quién dijo que el acceso físico debe hacerse imposible? Cuando alguien tiene acceso físico -ALL- las apuestas son -OFF-. El propietario de una máquina debe, SIEMPRE, tener acceso a su máquina cuando esté al lado. De lo contrario, sería posible bloquearlo sin formas de recuperación.
Rinzwind
77
y puede quejarse de esto: pero ¿qué tal si pega un dvd / usb en vivo en el sistema? ¿O sacar el disco, ponerlo en otra máquina y poner ddel disco? ¿Y "Linux"? Funciona para otros sistemas que también usan grub ... ventanas por otro lado ... cuando las ventanas se rompen ... probablemente solo pueda formatear el sistema: P
Rinzwind
10
Para estar completamente seguro, necesita esta solución
Anwar
55
¡Oh, no hay cámaras! @Clutchy descubrió nuestro secreto. Todos debemos tomar las cápsulas de cianuro ahora.
paulzag
3
@paulzag Entendido, voy a activar el mecanismo de autodestrucción de la sala de servidores. Gloria a RMS!
Kaz Wolfe

Respuestas:

108

¿Cómo es segura la capacidad de una persona que obtuvo acceso físico a su computadora para obtener root [usando Grub / Bash]?

Porque si Linux decidiera comenzar a hacer eso, los hackers simplemente explotarían otros agujeros de seguridad. La primera regla de seguridad es que si tengo acceso físico a su sistema, se acabó el juego. Gané.

Además, imagine que su servidor X se rompió y ya no tiene una GUI. Necesitas iniciar en una consola de recuperación para arreglar las cosas, pero no puedes, porque eso es inseguro. En este caso, te quedas con un sistema totalmente roto, pero bueno, al menos es "seguro".

Pero Kaz, ¿cómo es esto posible? ¡Configuré una contraseña en mi Grub para que no pueda cambiar mi inita Bash!

Oh, lo hiciste, ¿verdad? Interesante, porque se parece a tu álbum de fotos. GRUB no tiene ningún factor de seguridad inherente en absoluto. Es solo un gestor de arranque , no un paso en alguna cadena segura de arranque y autenticación. La "contraseña" que ha configurado es, de hecho, bastante fácil de omitir.

Eso, y ¿qué administrador de sistemas no lleva una unidad de arranque para emergencias?

¡¿Pero cómo?! No sabes mi contraseña (que no es por P@ssw0rdcierto)

Sí, pero eso no me impide abrir tu computadora y sacar tu disco duro. A partir de ahí, es un par de pasos simples para montar su unidad en mi computadora, lo que me da acceso a todo su sistema. Esto también tiene la increíble ventaja de pasar por alto la contraseña de su BIOS. Eso, o podría haber reiniciado su CMOS. Cualquiera o.

Entonces ... ¿cómo no te dejo tener acceso a mis datos?

Sencillo. Mantén tu computadora lejos de mí. Si puedo tocarlo, acceder a un teclado, insertar mis propias unidades flash o desmontarlo, puedo ganar.

Entonces, ¿puedo simplemente poner mi computadora en un centro de datos o algo así? Esos son bastante seguros, ¿verdad?

Si, ellos son. Pero, se está olvidando de que los humanos también son pirateables, y dado el tiempo y la preparación suficientes, probablemente podría entrar en ese centro de datos y extraer todos esos datos dulces de su computadora. Pero yo divago. Estamos tratando con soluciones reales aquí.

Bien, entonces llamaste a mi farol. No puedo ponerlo en un centro de datos. ¿Puedo encriptar mi carpeta de inicio o algo así?

¡Seguro que puede! ¡Es tu computadora! ¿Ayudará a detenerme? En lo mas minimo. Simplemente puedo reemplazar algo importante, como /usr/bin/firefoxcon mi propio programa malicioso. La próxima vez que abra Firefox, todos sus datos secretos se desviarán a algún servidor secreto en algún lugar secreto. Y ni siquiera lo sabrás. O, si tengo acceso frecuente a su máquina, simplemente puedo configurar su carpeta de inicio para que se copie en /usr/share/nonsecrets/home/cualquier ubicación similar (no encriptada).

De acuerdo, ¿qué pasa con el cifrado de disco completo?

Eso es ... bastante bueno. Sin embargo, ¡aún no es perfecto! Siempre puedo realizar un ataque de arranque en frío utilizando mi confiable lata de aire comprimido. O simplemente puedo conectar un keylogger de hardware a su computadora. Uno es obviamente más fácil que el otro, pero el camino realmente no importa.

En la gran mayoría de los casos, este es un buen lugar para detenerse. Tal vez emparejarlo con TPM (discutido a continuación), y eres dorado. A menos que haya enojado a una agencia de tres cartas o un hacker muy motivado, nadie va a pasar por el esfuerzo requerido después de esta etapa.

Por supuesto, todavía puedo lograr que instales algunos malware / puertas traseras ofreciéndote un PPA o similar, pero esto entra en el área muy confusa de la confianza del usuario.

Entonces ... ¿cómo son los iPhone tan seguros? Incluso con acceso físico, no hay mucho que pueda hacer.

Pues sí y no. Quiero decir, si estaba lo suficientemente motivado, podría leer el chip flash y obtener todo lo que necesito. Pero, los iPhones son fundamentalmente diferentes en la medida en que son una plataforma completamente bloqueada. Pero, al mismo tiempo, realmente sacrifica la usabilidad y la capacidad de recuperarse de fallas catastróficas. GRUB (excepto cuando está diseñado muy específicamente) no pretende ser una cadena en un sistema de seguridad. De hecho, la mayoría de los sistemas Linux tienen sus cadenas de seguridad iniciadas después del arranque, así que después de que GRUB haya terminado de hacer lo suyo.

Además, los iPhones tienen una aplicación de firma criptográfica (que también se analiza a continuación), lo que hace que sea muy difícil que el malware ingrese sigilosamente a su teléfono a través de vías legítimas.

Pero, ¿qué pasa con TPM / SmartCards / [insertar tecnología criptográfica aquí]?

Bueno, ahora que está combinando la seguridad física con la ecuación, se vuelve aún más complicado. Pero, esto no es realmente una solución porque los TPM son relativamente débiles y todo el cifrado no tiene lugar en el chip. Si su TPM es (de alguna manera) lo suficientemente fuerte como para cifrarlo en el chip (algunos discos duros muy elegantes tienen algo como esto), la clave nunca se revelará y cosas como los ataques de arranque en frío son imposibles. Sin embargo, las claves (o los datos sin procesar) aún pueden estar presentes en el bus del sistema, lo que significa que pueden ser interceptados.

Aun así, mi keylogger de hardware aún puede obtener su contraseña, y puedo cargar fácilmente algún malware en su máquina al estilo de la vulnerabilidad de Firefox que mencioné anteriormente. Todo lo que necesito es que salgas de tu casa / computadora por una hora.

Ahora, si llevas tu TPM / tarjeta inteligente / lo que sea contigo, y todo el cifrado se realiza en el chip (lo que significa que tu clave no está almacenada en la RAM), entonces es prácticamente imposible para mí entrar todo, a menos que usted (el usuario) se resbale y olvide algo. Es decir, a menos que encuentre alguna forma de leer la clave (sin cifrar) del bus del sistema.

Pero, ¿qué sucede si tengo algún tipo de aplicación de firma criptográfica / digital en todos mis programas para asegurarme de que sean legítimos?

Como lo demuestran varias compañías de teléfonos inteligentes, esta es una muy buena manera de lidiar con la seguridad. Ahora ha anulado mi capacidad de inyectar algo de código en su máquina para hacer cosas nefastas, lo cual es una ventaja. Efectivamente, ha deshabilitado mi capacidad de retener el acceso persistente a su máquina de forma remota, lo cual es una gran ventaja.

¡Sin embargo, este todavía no es un método perfecto! La aplicación de firma digital no detendrá un keylogger de hardware, por ejemplo. También debe estar completamente libre de errores, lo que significa que no hay forma de encontrar un exploit que me permita cargar mi propio certificado en el almacén de certificados de su máquina. Además, esto significa que cada ejecutable en su sistema debe estar firmado . A menos que desee pasar manualmente y hacer todo eso, será muy difícil encontrar paquetes Apt y similares que tengan firmas digitales en todo. De manera similar, esto bloquea los usos legítimos de ejecutables sin firmar, es decir, la recuperación. ¿Qué sucede si rompe algo importante y no tiene el ejecutable (firmado) para arreglarlo? Bueno, ahí va tu sistema.

De cualquier manera, un esfuerzo para hacer esto en Linux básicamente ha sido prácticamente abandonado y ya no funciona para nuevos núcleos, por lo que necesitaría crear el suyo propio.

Entonces, ¿es imposible mantenerte fuera de mi computadora?

Efectivamente, sí, lo siento. Si tengo acceso físico y suficiente motivación, siempre es posible ingresar a un sistema. Sin excepciones.

Sin embargo, en realidad, la mayoría de las personas malvadas no tratarán de llegar tan lejos solo por algunas fotos de gatos. Por lo general, solo el cifrado de disco completo (¡o incluso solo ejecutar Linux!) Es suficiente para disuadir a la mayoría de los niños de script de tener sus dos segundos de fama.

TL; DR: Simplemente no permita que personas en las que no confía se acerquen a su computadora. Eso suele ser lo suficientemente bueno.

Kaz Wolfe
fuente
O simplemente encripte su partición de inicio.
user13161
55
@ user13161 Esto todavía permite que una entidad maliciosa reemplace algo así como /bin/bashcon su propio script malvado, que hará cosas malas con una carpeta de inicio sin cifrar.
Kaz Wolfe
GRUB le permite utilizar una partición de arranque encriptada LUKS, en cuyo caso no se puede eludir la contraseña para arrancar. Ver wiki.archlinux.org/index.php/Dm-crypt/… .
v7d8dpo4
@ v7d8dpo4: el cifrado /bootes realmente inútil. Agregará una contraseña de arranque, pero aún necesitará descifrar /para hacer algo realmente útil, por lo que solo está agregando una sobrecarga adicional para poco o ningún beneficio. Además, puedo usar mi propio disco Grub para omitir su arranque encriptado si solo /boot está protegido. O simplemente puedo leer el disco como de costumbre.
Kaz Wolfe
2
Los iPhones (6 en adelante, creo) no solo tienen cifrado completo de "disco", sino que están vinculados al inicio de sesión de código PIN / biométrico. Entonces, si está dispuesto a que su computadora se niegue a arrancar sin intervención, también puede vincular su cifrado de disco a un token de hardware / contraseña / módulo TPM. Es solo bastante trabajo.
pjc50
17

Si lo quieres atado, usa una contraseña . Desde el enlace:

Notas de protección de contraseña de GRUB 2

Grub 2 puede establecer requisitos de contraseña en:

  • Todos los menuentries
  • Menuentries específicos
  • Para usuarios específicos: por ejemplo, el usuario "Jane" puede acceder a Ubuntu pero no al modo de recuperación de Windows, al que solo puede acceder "John", el superusuario.
  • El administrador debe habilitar la protección con contraseña manualmente editando los archivos del sistema GRUB 2.

  • Los usuarios y las contraseñas deben identificarse en el /etc/grub.d/00_headeru otro archivo de script GRUB 2.

  • A menos que se desee la protección universal de todos los menús, se deben identificar las entradas específicas:

    • Manualmente editando los /etc/grub.d/scripts de Grub 2 como 10_linuxy30_os-prober
    • Manualmente editando un archivo de configuración personalizado creado por el usuario.

    • Cualquiera de los métodos anteriores permite a GRUB 2 agregar automáticamente el requisito de contraseña al archivo de configuración (grub.cfg) cada vez que se ejecuta update-grub.

    • Manualmente editando /boot/grub/grub.cfg. Las ediciones en este archivo se eliminarán cuando update-grubse ejecute y se perderá la protección con contraseña.

  • Si se habilita cualquier forma de protección con contraseña de GRUB 2, se requiere el nombre y la contraseña del superusuario para obtener acceso a la línea de comandos de GRUB 2 y a los modos de edición de menú.

  • El nombre de usuario y / o contraseña no tiene que ser el mismo que el nombre / contraseña de inicio de sesión de Ubuntu.
  • A menos que se utilice la función de cifrado de contraseña de GRUB 2, la contraseña se almacena como texto sin formato en un archivo legible. Consulte la sección Cifrado de contraseña para obtener orientación sobre el uso de esta función.

Por defecto (!) En este caso, la usabilidad triunfa sobre la seguridad. Si no puede confiar en las personas que lo rodean, mantenga la máquina con usted en todo momento. Las personas que necesitan más seguridad tienden a encriptar todo su sistema, por lo que la necesidad de una contraseña es obligatoria.

Rinzwind
fuente
Seamos honestos, esas contraseñas se pueden omitir fácilmente con acceso físico. Protegen un sistema de novatos, pero no de atacantes con algunas habilidades básicas (el uso de Google ya podría ser suficiente) y el acceso físico.
Byte Commander
3

Tu truco intencional comienza con esto:

  1. Cuando se abra el menú de grub2, presione 'e' para editar las opciones de inicio de Linux

Pero puede proteger con contraseña la eopción como se describe aquí: Cómo agregar la protección con contraseña de GRUB al proceso de carga del sistema operativo en lugar de al editar las opciones de arranque

Puede dar el paso adicional de cifrar la contraseña de grub como se explica en el enlace. De hecho, con tal vez el 3% de la población (conjetura salvaje) que usa Linux / Ubuntu en casa, es una buena idea que los administradores de sistemas se protejan contra la efunción en los sistemas de producción en el trabajo. Me imagino que si Ubuntu se usa en el trabajo, del 30 al 40% también lo usaría en casa y tal vez el 10% de ellos aprenderá cómo hacerlo een sus sistemas domésticos.

Gracias a tu pregunta, acaban de aprender más. Sin embargo, con el enlace anterior, los administradores del sistema tienen otra tarea en su lista de tareas para proteger los entornos de producción.

WinEunuuchs2Unix
fuente
1
Seamos honestos, esas contraseñas se pueden omitir fácilmente con acceso físico. Protegen un sistema de novatos, pero no de atacantes con algunas habilidades básicas (el uso de Google ya podría ser suficiente) y el acceso físico.
Byte Commander
@ByteCommander Se trata de acceso físico. El BIOS se puede configurar con una contraseña de administrador para que nunca se pueda iniciar desde USB o DVD. Alguien puede abrir la carcasa, dos pines cortos en la placa base y la contraseña se restablece a espacios en blanco (no se requiere contraseña para cambiar el orden de arranque del BIOS).
WinEunuuchs2Unix
0

Para que Grub sea seguro, debe proteger el acceso a él. Esto se puede hacer simplemente con una contraseña de disco duro, y estoy hablando aquí sobre la seguridad del disco donde se almacena en el firmware del disco. No se puede leer ni escribir en el disco. Por lo tanto, no solo se puede acceder a grub sin la contraseña, sino también sus datos.

Como la contraseña se almacena en el disco, moverla a otro sistema no ayudará al hacker.

Existe un software que puede eliminar la contraseña de los discos de algunos fabricantes, pero también borra el disco de manera efectiva. Entonces sus datos aún están seguros.

Scooby-2
fuente
Comentario tardío, pero me gustaría señalar que esto puede ser derrotado ocasionalmente de manera simple. Puede haber algún comando del fabricante (documentado) para borrar una contraseña de HDD sin activar un formato. De manera similar, podría "tomar prestados" los discos del disco duro y ponerlos en mi propio controlador; la contraseña se almacena (generalmente) en la NVRAM del controlador, no en los mismos platos.
Kaz Wolfe el
@Kaz, tienes toda la razón en lo que dices, pero debes poner énfasis en la palabra "ocasionalmente" en tu frase "esto puede ser derrotado de manera simple". A medida que la tecnología del disco duro continúa mejorando, al contrario de lo que usted dice, casi todos los fabricantes ahora almacenan su firmware y contraseñas en los platos, por lo que cambiar la tarjeta controladora no será de ayuda. Hay software disponible para desbloquear unidades sin borrar los datos, pero solo funciona en unidades antiguas.
Scooby-2