Bug

Concepto de Bug

¿Qué es un Bug?

Un bug es un error que se produce en alguna de las fases de ejecución de un software. Los bugs pueden tener diferentes causas, pero el resultado es siempre el mismo: el usuario experimenta respuestas inesperadas durante el uso del software. Hay muchos tipos diferentes de bugs y, aunque cada vez más los desarrolladores buscan crear nuevas formas de prevenir su aparición, es estadísticamente imposible prevenir al 100% los bugs.

El término proviene de las primeras épocas de la computación, cuando lo último en tecnología eran grandes aparatos que ocupaban habitaciones enteras, como la legendaria Colossus. Estos primeros ordenadores eran básicamente calculadoras gigantes cuyos componentes eran totalmente analógicos: capacitores, transistores, relés y elementos mecánicos.

En estos viejos ordenadores solían meterse insectos que, al electrocutarse, producían cortocircuitos en la maquinaria. Es así como se empezó a llamar a los errores de computadora “bug” (insecto).

Para qué sirve un Bug

Un bug causará que, al enviar una orden al software, nos devuelva una respuesta inesperada, una reacción que no se supone que el programa debería tener como parte de su código. Puede haber diferentes razones, lo que deriva en diferentes tipos de bugs:

  • Errores léxicos: se trata de errores en palabras mal escritas. Hay diferentes paradigmas de programación que operan en diferentes idiomas, aunque lo más común es el inglés. Si una palabra de entrada fue mal escrita (mayúscula mal puesta, falta de alguna letra, error de tipeo), el programa no sabrá lo que se le está ordenando y responderá incorrectamente.
  • Errores de sintaxis: son los más comunes. Cada lenguaje de programación dispone de una serie de símbolos que le indican al programa lo que debe hacer. Cuando alguno de estos símbolos ha sido mal usado, el programa no sabrá interpretar la orden.
  • Errores semánticos: ocurren cuando, si bien toda la sintaxis está expresada de manera correcta, alguna parte del programa (ya sea un parámetro o un argumento) se ha definido incorrectamente. De esta manera, la respuesta del programa no será la esperada.
  • Error de tiempo de ejecución: si se realiza un test y el programa muestra un error que solo se puede ver cuando se ejecuta el mismo, entonces probablemente estés experimentando un error de tiempo de ejecución.
  • Errores lógicos: estos son los que están más vinculados a los errores de ejecución. Se puede identificar frecuentemente en programas grandes donde, por lo general, ocurren errores en el código fuente. En lugar de finalizar, el programa emite datos que no debería. Es por esto que los errores lógicos suelen producir agujeros en la seguridad.

Ejemplos de Bug

Uno de los ejemplos más conocidos de un bug fue el conocido como Heartbleed. Se trató de un error lógico en la actualización Heartbeat de la biblioteca de seguridad de OpenSSL, el cual permitió a varios atacantes leer la memoria de la biblioteca y, de esta manera, acceder a los datos privados contenidos en ella.

Más información sobre Bug

En el blog de NeoAttack encontrarás mucha más información útil acerca de entornos y herramientas digitales. Puedes conocer más al respecto entrando a cualquiera de los enlaces a continuación:

 

 

Todos los derechos reservados © 2019 NeoAttack | Aviso Legal | Política de Privacidad | Mapa Web