La complejidad exponencial que subyace en las diferentes tecnologías que nos rodean es tan elevada que resulta difícil de imaginar.
Por eso, una forma muy gráfica, aunque un tanto burda, de asumirla es tener en tener en cuenta el número de líneas de código informático necesarias para que funcione una tecnología o un fragmento de software concreto y compararlas con las de las tecnología de hace apenas unos años.
Por ejemplo, para guiar a los astronautas del Apollo 11 en 1969 durante 356.000 kilómetros desde la Tierra hasta la Luna, ida y vuelta, se necesitaron 145.000 líneas de código. A principios de la década de 1980, el software de vuelo principal de la lanzadera espacial necesitaba 400.000 líneas de código.
Pero estas cifras son irrisorias si las comparamos con las necesarias para que funcione Microsoft Office 2013, unos 45 millones de líneas de código informático. Si bien es difícil establecer comparaciones directas, estas cifras nos dan una pista del incremento exponencia de la complejidad de la tecnología, tal y como explica Marc Goodman en su libro Los delitos del futuro.
En él, Goodman señala que la web de la Seguridad Social del gobierno estadounidense, HealthCare.gov, necesita 500 millones de líneas de código, es decir, que es 35 veces mas complejo que el sistema de guía que nos llevó a la Luna.
La complejidad creciente del software informático tiene consecuencias directas en materia de seguridad internacional, sobre todo a medida que los objetos físicos de los cuales dependemos, como son automóviles, aviones, puentes, túneles y dispositivos médicos que se implantan, se transforman en código informático.
El problema del error
Tantas líneas de código no solo añade complejidad a todo cuanto nos rodea, sino que incrementa ostensiblemente la probabilidad de que se produzcan erorres en esas líneas de código, tal y como ha señalado un estudio de la Universidad Carnegie Mellon: el software comercial tiene de promedio entre 20 y 30 errores por cada 1.000 líneas de código.
De manera que cincuenta millones de líneas de código equivalen a entre un millón y un millón y medio de errores potenciales que aprovechar. Tal es la base de todos los ataques de software malicioso, que aprovechan estas vulnerabilidades para conseguir que el código efectúe algo imprevisto.
Ver 6 comentarios