sábado, junio 26, 2010

Recuperando todo un sistema informático dañado - Windows vs Linux

En las últimas semanas hemos tenido que lidiar con un grave problema en todo el sistema informático de la nave: un ataque desde un servidor terráqueo que ha inutilizado todo el software de control. Este ataque se ha producido en el preciso momento que la nave conectaba con la ISA para realizar una transferencia programada de datos, coincidente a su vez con una revisión de seguridad general del sistema.

El ataque ha aprovechado un bug en el Windows 8 que llavábamos instalado en la nave, debido a que (cómo no) el código de la versión que desarrollaron específicamente para nosotros no debía estar perfectamente depurado. Y algunos os preguntaréis cómo es posible que se decidiera utilizar Windows para un propósito tan delicado como el control de una nave Clase LD+++ en un viaje sin retorno a través del espacio interestelar... os sorprendería saber la cantidad de sistemas "delicados" que utilizan Windows para su control allá en la Tierra, como las centrales térmicas y las centrales nucleares, por poner un ejemplo.

La respuesta sobre nuestro caso es que no se decidió instalar Windows, fue algo que vino impuesto: Microsoft es uno de los grandes patrocinadores de la misión, y ello implicaba la implantación de su sistema en toda la nave.

Con todo, estos últimos dos meses han sido duros a bordo. En especial los primeros días y sobre todo y muy especialmente las primeras horas tras el ataque. Todo debido a la inactividad no ya de los reactores y del sistema energético general de la nave, sino específicamente debido a la inactividad de los sistemas de ventilación, depurado de aire y depurado de agua, ya que nuestras vidas dependían literalmente de ellos: en caso de fallo total del sistema, en la nave hay oxígeno para dos días si el 75% de la tripulación esté hibernando. Sin embargo en el momento del fallo todos estábamos activos, ya que equivalía a un horario terrestre de media mañana. Esto implicaba que teníamos unas 12 horas de oxígeno, siempre y cuando mantuviésemos la calma y respirásemos tranquilamente, algo que para algunos (no es mi caso) resultaba imposible.

¿Y los sistemas de seguridad digital? El ataque los superó todos...

La solución a todo esto ha venido de la mano de un viejo LiveCD de Ubuntu que introduje clandestinamente en la nave camuflado como un CD de Daft Punk, pero eso es otra historia. Como decía mi abuela, "hombre prevenido vale por dos", y por eso, dado mi historial con Windows, decidí arriesgarme y traerlo. Aunque cuando lo hice pensaba en recuperar los datos de mi propia unidad informática, más que otra cosa. Nunca pensé que el sistema de control central de la nave pudiese ser tan vulnerable, como así ha sido.

El caso es que gracias a este CD (por cuya tenencia el comandante general me ha sancionado, pero sin el cual ahora mismo puede que ninguno de los tripulantes estuvieramos vivos) hemos conseguido acceder al sistema de archivos de Windows, y reescribir virtualmente todo el código de control y acceso a los diferentes sistemas y elementos de la nave, creando programas ejecutables en "lenguaje Linux".

Reescribir y depurar el código que nos dió acceso al sistema auxiliar de generación de energía (más sencillo y de menor envergadura que el reactor principal) nos llevó 5 horas. Reescribir el código del sistema de ventilación primario (principales vías de paso) de toda la nave, nos llevó otras 4 horas, y crear el software que activara y controlara la depuración de aire se realizó en dos horas in extremis, cuando ya se empezaba a notar el aire muy enrarecido. 4 horas más tarde se activó el sistema de iluminación principal (hasta ese momento la única luz en toda la nave era la de las pantallas de la sala de control, gracias a los SAIs, unas baterías que permiten alimentar el hardware de la nave durante 48 horas en caso de fallo total). Unas horas más tarde el sistema de depuración de agua... y así sucesivamente, sistema por sistema... ¡Y sin ni si quiera instalar Ubuntu, haciéndolo correr virtualmente!

Hay que decir que a pesar de que Ubuntu es una distribución inestable y con carencias, en aquellas horas clave no nos dió ningún problema.

Una vez que recuperamos y reescribimos el código del software de control de todos los sitemas de la nave, se hizo una copia aislada del antiguo sistema Windows y se llevó a cabo una instalación estable de Ubuntu, en cuyo espacio de tiempo todos los sistemas de la nave volvieron a dejar de funcionar. Afortunadamente, Ubuntu se instala en aproximadamente media hora.

Una vez que se instaló el sistema operativo, se acabó de escribir todo el software de la nave, y cuando se consiguió contactar con la tierra (y tras una larga votación) se descargó y se migró de Ubuntu a una versión estable de Debian, que será con la que trabajemos a partir de ahora, y que debió de ser una de las opciones a tener en cuenta desde el principio. Pero bueno, como en todo en esta vida, el dinero manda.

La conclusión, y lo que podéis sacar en claro los que todavía utilicéis Windows en la Tierra, es que es fundamental tener un LiveCD de alguna distribución de Linux por algún sitio a mano. Y es que, en el caso de un fallo de sistema, o de un ataque debido a un "virus" o a cualquier otra forma de vida parásita digital, basta con introducir el LiveCD en vuestro ordenador, arrancarlo sin modificar el sistema, y una vez que se haya cargado, acceder a vuestros datos en el disco duro y copiarlos a un disco externo.

Creo que la entrada es demasiado larga como para comentar detalladamente como hacerlo. Además, está explicado perfectamene en multitud de blogs y sitios, incluso con imágenes paso a paso (un ejemplo)

Lo que sí comentaré, aunque eso ya en otra momento, es cómo hacer para copiar archivos grandes (por ejemplo, 9GB) en un disco externo en formato FAT32 (que sólo admite archivos de hasta 4GB) cuando no podemos acceder a Windows. Todo ello, desde el LiveCD de Ubuntu.

Ahora es tarde, y todos necesitamos descansar...

Desde el espacio sideral, un beso, un abrazo, y gracias por leerme,

ERT

2 comentarios:

larubiafriqui dijo...

... Posí, pese a sus carencias, Linux sigue siendo mejor que Windows. No sabía que fueras capaz de reescribir el código fuente, a sus pies.

Ert dijo...

(Esto... las concesiones literarias... ejem ejem coloretes ay ay) Todo es ponerse, pero te aseguro que tu conocimiento del tema es mayor que el mío... el que se tiene que poner a tus pieses en todo caso soy yo ;)

BTW, en mis años mozos sí que hice un curso de programación. Y la verdad es que era de lo más entretenido y satisfactorio ver que de la nada podías crear un programilla que funcionase!!

Ah! y bueno, ahora que me doy cuenta en Flash también programamos. Sí sí. Aunque ando desentrenao, pero en su momento era capaz de hacer cualquier (cualquier!!) cosa en Flash, por muy compleja que fuese... hace 10 años yo ya le veía el potencial para usarlo como sistema operativo, y hoy en día algunos móviles lo usan como tal... (a pesar de lo cual, odio y no soporto el uso de Flash para publicidad en la web, me supera)

Fin de la chapa.