Este seis de febrero de 2018, día internacional para un internet seguro, es una excusa perfecta para plantearnos por qué está fallando la seguridad informática. Quizá estés pensando que voy a hablar de las contraseñas, los virus, los ciberataques, etc., que suelen inundar titulares, pero no. Quiero ir más allá, excavar más profundo y sacar a la luz un problema estructural del que seguramente no hayas oído hablar nunca.
En el año 1945 John von Neumann y otros colaboradores presentaron el diseño de una computadora cuya arquitectura, la arquitectura de von Neumann, seguimos utilizando actualmente con algunas variaciones.
Esta arquitectura define la construcción de un ordenador utilizando una unidad de control y una unidad aritmético-lógica (lo que hoy conocemos como microprocesador), una memoria para el almacenamiento de datos e instrucciones (programas) y los mecanismos de entrada y salida de información.
Han pasado los años y los microprocesadores son cada vez mayores, más veloces y potentes, se les ha añadido memoria caché, albergan cada vez más núcleos y la cantidad de memoria RAM de nuestros ordenadores se ha multiplicado millones de veces, pero en lo esencial seguimos utilizando esta arquitectura setenta años después.
Fue el propio von Neumann quien avisó de las limitaciones de esta arquitectura. En 1948 declaró que su arquitectura debería ser modificada en un futuro próximo para tener en cuenta dos aspectos:
- Deberá considerarse la longitud de la cadena de instrucciones ejecutadas (programas).
- Las operaciones lógicas deberán ser tratadas por procedimientos que permitan las excepciones (mal funcionamiento) con una probabilidad baja pero superior a cero.
Le hemos ignorado. Seguimos galopando con esta arquitectura como caballos desbocados.
En el año 2017 las empresas y productos con mayores vulnerabilidades fueron: Google con Android, Linux kernel, ImageMagick, Apple con iOS y Microsoft con Windows 10.
Respecto al primer punto, los actuales programas requieren la ejecución de cientos de millones de operaciones y si una sola falla el resultado puede ser fatal e impredecible. Cuantas más instrucciones a ejecutar más problemas pueden surgir en esta arquitectura, y los actuales programas siguen creciendo y creciendo en tamaño.
El segundo punto se refiere a la capacidad de los sistemas informáticos (hardware y software) para ser resistentes a los fallos. Actualmente no es así. No existe robustez sino fragilidad. La ejecución de un paso confía en que el paso anterior no falle, que todo sea predecible: es el determinismo. Se diseña una relación causa-efecto que se debe cumplir. Si esto, por cualquier razón, no sucede se presenta el caos, no hay plan B (¿recordamos ver nuestro ordenador bloqueado con una pantalla azul?). Lo hemos ido apañando con sistemas redundantes, duplicando componentes, ‘chaos engineering’ ( https://principlesofchaos.org/ ), etc., pero no deja de ser un apaño y no se aborda la raíz del problema. Tenemos una informática frágil e insegura.
¿Cuáles son las consecuencias de todo esto? Hemos ido aumentando el tamaño y cantidad de elementos de los sistemas de computación, hemos aumentado la interacción entre ellos y los hemos interconectado a través de internet, haciendo más patentes sus debilidades. Cada vez se hace más difícil, si no imposible, garantizar la seguridad y fiabilidad de nuestra informática, y como consecuencia el tiempo y dinero que son necesarios invertir para garantizarlas crecen hasta unas cotas que las empresas ni pueden ni quieren asumir.
Hay un problema de base que debemos solucionar: la arquitectura de von Neumann, creada en 1945 y que seguimos utilizando con algunas variaciones.
Existe un registro global de vulnerabilidades (CVE: Common Vulnerabilities and Exposures). En el año 2017 las empresas y productos con mayores vulnerabilidades fueron: Google con Android, Linux kernel, ImageMagick, Apple con iOS y Microsoft con Windows 10.
En los últimos dos años Microsoft, Google y Apple han lanzado hardware y actualizaciones de sus sistemas operativos con descomunales e incomprensibles fallos, problemas y vulnerabilidades que avergonzarían a cualquiera y que han provocado su retirada o su corrección a la carrera. Hablamos de empresas con enormes recursos económicos y con algunos de los mejores profesionales del mundo, y sin embargo no pueden garantizar una mínima fiabilidad y seguridad de sus productos y servicios.
Achacarlo a la presión para lanzar productos y servicios a tiempo, a la falta de recursos, a la responsabilidad de los trabajadores y usuarios finales al gestionar sus ordenadores o cumplir políticas de seguridad, a causas asociadas a la obsolescencia programada, etc. sería ponernos una venda en los ojos. Hay un problema de base que debemos solucionar: la arquitectura de von Neumann. En el siguiente artículo hablaré sobre qué podemos hacer.
Rubén Razquin
Analista y desarrollador de proyectos digitales, web y móviles, en ttandem.com
Para acceder a más información sobre Ttandem … LEER AQUÍ.