A la hora de navegar o conectar nuestros equipos a Internet, son dos cosas las que más nos preocupan. Una es la privacidad y la otra es la seguridad. Por lo tanto, lo que buscamos es el anonimato y estar seguros. Una cosa a tener en cuenta es que ningún software es perfecto y tiene fallos en la programación de su código. Así, los fabricantes y desarrolladores de software suelen lanzar actualizaciones para corregir esos errores. En este tutorial vamos a profundizar más en ellos, así vamos a conocer qué es un bug informático y cómo afecta a nuestra seguridad.
Los bugs, hay que señalar, que al cabo del año terminan originando costes a las empresas. Vivimos en una transición al mundo digital y cada vez el software es más importante. Gracias a ese bug informático experimentamos cuelgues, ralentizaciones o fallos de seguridad que pueden provocar la filtración de nuestra información confidencial. Un típico fallo de este tipo es la pantalla azul de la muerte de Windows que viene de las siglas en inglés BSoD (Blue Screen of Death).
Cuando se producen este tipo de bugs suponen como mínimo una pérdida de tiempo ya que hay que reiniciar y a veces empezar de nuevo el trabajo.
Qué es un bug informático y breve historia
Un bug informático podemos definirlo como un fallo o error en un ordenador o sistema de software que termina provocando un resultado no deseado. Si queremos encontrar o eliminar esos bugs tenemos que utilizar un tipo de software llamados depuradores o en inglés debuggers.
El término bug se usa al menos desde 1872 en el que Thomas Alva Edison lo utilizó en sus notas, además, aparece en una carta suya de 1878 en la que habla de defectos mecánicos o eléctricos, y también en 1889 la empleó cuando hizo una referencia a las interferencias y mal funcionamiento de un fonógrafo.
En principio se asoció a la física y matemática Grace Murray Hopper y a otras personas que trabajaron en la Universidad de Harvard en el Mark II. Así, informaron de que un ordenador había sufrido un fallo en el relé electromagnético. Luego, más tarde cuando se investigó ese relé se encontró una polilla (bug) frita que hizo que ese relé quedase abierto. Entonces Hopper pegó ese insecto con una cinta adhesiva en la bitácora en el que añadió este incidente.
Cómo se origina
En la mayoría de casos, un bug se crea por un fallo o error por parte de quienes desarrollan el código de un software o sistema. Algunos errores de programación comunes que podemos encontrar son la división por cero, el ciclo infinito, problemas aritméticos como desbordamientos (overflow) o subdesbordamientos (underflow), exceder el tamaño del array definido o utilizar una variable no inicializada.
También están a la orden del día los errores tipográficos en el que se confunde el número «0» con la vocal «O». Para finalizar con este apartado, otros bugs que nos podemos encontrar son:
- Desbordamiento de búfer (buffer overflow).
- Acceso a memoria no permitida (violación de acceso)
- Errores de sintaxis, como, por ejemplo, no acabar una instrucción con un punto y coma (;) en un lenguaje de programación que lo necesita.
- Uso incorrecto de API.
Tipos de bugs informáticos
En toda la gama de posibles fallos o problemas que nos podemos encontrar a nivel informático, podemos diferencias algunas clases las cuales comprenden casi la totalidad de los bugs. Estos pueden ser ocasionados por muchas razones diferentes, ya sea por fallos de programación o falta de testeo del producto. Algunos de los tipos más conocidos son:
- Fallos de programación: Estos errores son bastante comunes, por no decir que todo código puede tener al menos un error de programación. Estos por lo general, son debidos a errored tipográficos, malentendidos en la lógica de los programas, o problemas relacionados con la codificación.
- Errores de diseño: Estos están relacionados con los problemas del propio diseño del software. Por lo general llegan causados por falta de consideración en cuanto a los requisitos de los usuarios, o falta de comprensión del entorno en el cual se va ejecutar el software.
- Compatibilidades: Estos bugs se producen por problemas de compatibilidad entre el software y el hardware. Las causas más frecuentes son la falta de soporte para un hardware específico, o falta de compatibilidad con algunos sistemas operativos.
- Vulnerabilidades: Se trata de errores que permiten que los atacantes puedan acceder a los sistemas informáticos, o bien robar o dañar la infraestructura de la red. A menudo son causados por una falta de pruebas de seguridad, o que no se dispone de todos los parches de seguridad que son necesarios.
- Errores de interfaz: Se trata de errores que vienen producidos por problemas con la interfaz del usuario. Por lo general es por culpa de la mala disposición de los elementos, falta de accesibilidad, o por problemas de usabilidad.
- Rendimiento: Estos son los bugs que hacen que el software funcione considerablemente peor, o solo tenga algún pequeño problema. Las causas más frecuentes son la validación de entrada de datos, la pérdida de los mimos, o la corrupción de estos.
¿A quién puede afectar un bug informático?
Un bug informático puede afectar a diversos equipos de muy diversa índole, como, por ejemplo:
- Un ordenador o portátil.
- Al smartphone o tablet.
- Un router doméstico o equipamiento de red.
- A los dispositivos de IoT, de domótica o de vídeo vigilancia.
En ese sentido podríamos encontrar un fallo en el firmware de un dispositivo. También podemos encontrar un bug en un sistema operativo informático como Windows, Linux y MacOS. Tampoco hay que olvidar que los sistemas operativos móviles como Android o IOS no están libres de esos fallos.
Clasificación del bug en función de su gravedad
La gravedad de un bug informático se va a determinar en función del impacto que tiene el fallo en la operación del sistema o equipo. Este impacto negativo se puede traducir de diversas maneras como la pérdida de datos y la disminución de ingresos.
Las reglas para clasificar un error de software deberán ser determinadas en función de la tarea que realizan. Por ejemplo, el bug de un juego, un navegador de Internet o un sistema de monitoreo de seguridad en tiempo real tienen un impacto diferente.
No obstante, aunque los niveles de gravedad no están estandarizados, habitualmente se suelen usar estos:
- Crítico: se trata de un error que al producirse hace que el programa no pueda ejecutarse. Se trata de errores que pueden llegar a bloquear el sistema.
- Alto: se produce cuando ese error afecta seriamente a la funcionalidad de la aplicación y complica utilizarla.
- Medio: podemos trabajar, pero de vez en cuando tenemos mensajes de la aplicación que son incorrectos o pequeños fallos que nos ralentizan.
- Bajo: son errores de bajo impacto, y que nos afectan muy poco o nada. Podemos apreciar errores estéticos en la interfaz de usuario o errores tipográficos. Algún ejemplo podrían ser menús que se le hayan olvidado traducir o que, entre los nombres, aparezcan caracteres extraños.
En función de la gravedad de un bug informático luego suelen ser corregidos. Así, una vulnerabilidad crítica se suele corregir en la siguiente actualización. Los fallos de seguridad «altos» o «críticos» no suelen tardar mucho en solucionarlos, las de nivel medio depende de lo molestas que sean, y las bajas puede que no se arreglen nunca.
También, un hecho que se produce con cierta frecuencia es liberar software con bugs conocidos de baja prioridad. Las razones por las que se toman estas decisiones de no arreglar un bug informático de baja prioridad suelen ser dos:
- No es posible solucionarlo antes de la fecha de lanzamiento y el error se solucionará en una próxima actualización.
- Los cambios que hay que hacer son económicamente demasiado altos.
Recompensas por encontrar bugs
Los errores en la programación están a la orden del día. Como ya comentamos anteriormente, puede ir desde una gravedad baja a una crítica. Las grandes empresas, para evitar la pérdida de prestigio y en ocasiones alguna demanda judicial, invierten dinero en recompensas para aquellos que descubran un bug informático en su software. Evidentemente los errores de tipo crítico y alto serán los que más beneficios reporten a sus descubridores. De hecho, actualmente esto se hace tanto de manera individual como a través de algunas empresas.
Entre las grandes organizaciones que ofrecen recompensas por descubrir un bug tenemos a Microsoft, Google o Facebook.
Protegernos de un bug informático
Lo primero que tenemos que hacer es tener nuestro sistema operativo con las últimas actualizaciones disponibles instaladas. También hay que tener en cuenta que es mejor no utilizar sistemas operativos antiguos como Windows XP o 7, porque ya no reciben actualizaciones.
Cuando utilizamos un sistema operativo obsoleto o desactualizado, estamos poniendo en riesgo nuestro equipo. Los ciberdelincuentes saben cómo explotar ese bug informático para obtener información confidencial nuestra, para integrarnos en una botnet o cualquier otra forma que le pueda interesar para obtener réditos.
Además, el resto de software instalado debe tener puestas las últimas actualizaciones, como, por ejemplo, Microsoft Office y los controladores de los componentes del equipo. Por último, no debemos olvidar de instalar el firmware del router, del hardware, del equipamiento de red y de otros dispositivos conectados a Internet además de dotarlos de una configuración adecuada.