"Después del juego es antes del juego"
Sepp Herberger

sábado, 31 de diciembre de 2016

Hasta los uefis

Voy a echar un poco de bilis, ya que llevo varios meses teniendo encontronazos con este tema y tengo que escribir sobre ello. Antes de nada debo dejar constancia que no domino el asunto y que seguramente estoy equivocado y confundo conceptos, pero soy español (y cuñado) y eso me faculta para sentar cátedra, sepa o no.

Hace muchos años, cuando era mas bisoño me creía casi cualquier cosa que sonase chachi y bien. Por ejemplo, pensaba que el dinero de los bancos centrales estaba respaldado por oro y otros bienes tangibles en cajas fuertes rodeadas de guardias armados y que cuando se "emitía moneda" era porque se había se comprado oro para respaldar esa emisión y estaba en esta forma:



Juas, juas, era mas inocente que Bambi. El dinero se crea desde hace decenios con un spinner



Tras esta ida de olla recupero el hilo y, como decía, en esos años recuerdo haber leído un prometedor artículo sobre la nueva generación de BIOS que venía a mejorarnos las cosas sin que nadie la hubiese pedido, como tantas y tantas cosas que el capitalismo nos regala y luego nos cobra con intereses.

Era tremendo: unas BIOS amigables con entorno gráfico que nos permitrían conectarnos a Internet y navegar, ejecutar utilidades y realizar reparaciones (e instalaciones) del sistema operativo en un PC que lo tuviese dañado. Un sistema embebido que nos traería al futuro. Un futuro glorioso.

Bueno, como dice la Polla Records, hoy es el futuro. Esa BIOS se llamo EFI y luego UEFI. Repasemos rápido las prestaciones: soporta particiones GPT, admite drivers y aplicaciones ad-hoc para cargar y ejecutar desde la BIOS, tiene un en entorno modular, un gestor de arranque y un GUI manejable con ratón,.... Repasemos cada "avance":

  • Particiones GPT, adios al MBR. Ya podemos tener mas de 4 particiones por disco duro, ¡Gloria a Adonai!. Bueno, maticemos . Ya habia otros métodos usados en BIOS para tener mas de 4 particiones. Eso no dependía realmente de la BIOS, sino de la estructura de datos de 4 registros usada como tabla de particiones de tipo msdos en los 512 bytes del MBR (o mas si teníamos un gestor de arranque mas elaborado que el básico).
  • Un sistema para cargar drivers hechos especialmente para EFI y tener un entorno con red, sonido, rayos láser y conexión con la cafetera USB. Una vieja demanda de los usuarios: una BIOS con drivers para dispositivos complejos.
  • Podemos usar el ratón en un entorno gráfico chachi. Yo he visto varias BIOS de AMI manejadas con ratón en un modo gráfico algo vintage, pero mejor que no se corra la voz, que luego soy un aguafiestas.
  • Abundando en el entorno UEFI: la U significa "Universal", pero desde luego el GUI no es universal. Cada máquina y modelo tiene una UEFI con sus propios menús y hotkeys según la distribución aleatoria que escoge mediante dados el encargado del desarrollo.
  • Un gestor de arranque propio, vaya, debe ser que el Grub y la pléyade de gestores de arranque que hay no les parecia bastante.
  • También recuerdo que a mi me prometieron hace años que se podría conectar remotamente a la BIOS y reinstalar un sistema operativo dañado desde ella, pero que yo sepa eso solo lo he visto implementado en servidores con algo que, a diferencia de UEFI, si es útil y funciona bien: los sistemas de gestión out-of-band, como el ILO de HP y el equivalente de otras marcas, que llegan de verdad a donde EFI se quedó en promesa.
  • No solo eso, resulta que me comenta mi compañero Oscar que además se pude instalar un backdoor en el UEFI y comunicarnos con él desde el sistema operativo, de tal manera que se podrán escalar privilegios hasta ser usuario root. Como dicen en el artículo enlazado: "And, more importantly, once your kernel was loaded, BIOS was pretty much out of the picture"/"una vez el kernel se ha cargado, la BIOS está mas bonita fuera de escena".


Pero bueno, yo he venido aquí a hablar de mi libro, y realmente lo que me revienta de UEFI son las aplicaciones.La E de UEFI significa extensible, y yo entiendo que eso significa que se puede extender con aplicaciones. Veamos la lista de aplicaciones, ese prometedor "UEFI app store":


Todo lo que he podido encontrar son frikadas, ejemplos del nivel de un "Hello World" y cosas rarunas. Lo anuncio con el corazón encogido: nunca podremos navegar en Internet desde nuestra EFI.

Y ahora es el momento de contar de que va el post. Yo sé para que existe EFI, por que se ha implementado y por que perdurará: la respuesta es Secure Boot. Ese engendro concebido para impedir o dificultar al máximo la instalación de sistemas operativos que no sean de Microsoft. Estoy seguro de que UEFI existe, está concebida e impulsada para implementar Secure Boot. Todo lo demás es una cortina de humo que se puede implementar de forma mucho menos barroca desde un bootloader o con un sistema out-of-band.

Y Secure Boot no es un sistema para impedir que entre malware, no seamos niñatos. La mayoria de malware que veo se mueve en pendrives y se ejecuta con rol de usuario, buscando un sistema donde pueda escalar a administrador. ¿Que porcentaje del malware existente intenta modificar el arranque?. Por favor, que no estamos en los 80 con el virus Stoned. Todo es mentira. La única finalidad es hacer la puñeta y lo consiguen.

Hace un tiempo he perdido varias horas en un PC con una tarjeta gráfica nvidia que al cerrar sesión o intentar ir a consola quedaba el entorno gráfico "colgado", sin errores en los logs y el PC accesible por ssh, aunque las X eran imposibles de matar y un kill -9 era ignorado. Si en UEFI habilito Secure Boot eso no pasa. Si deshabilito Secure Boot y dejo el arranque Legacy, si pasa. ¿Que conexión hay entre Secure Boot y el comportamiento de una tarjeta nvidia?. Ni lo se ni me importa.

Me reafirmo: Secure Boot está concebido para hacer el mal y lo hace muy bien.

Feliz entrada de año.

No hay comentarios:

Publicar un comentario en la entrada