Bugs

Bugs
Información sobre la plantilla
Bugs.jpg
Concepto:Un bug es un error o un defecto en el software o hardware que hace que un programa funcione incorrectamente. A menudo los bugs son causados por conflictos del software cuando las aplicaciones intentan funcionar en tándem.

Bugs de Software. Es un error que afecta el comportamiento de un determinado programa. Odiados por los programadores, los “bugs” suelen ser bastante difíciles de eliminar. Para poder lidiar con ellos, los especialistas los han divididos en grupos según su comportamiento, y así es como ha surgido toda una clasificación zoológica de estos bichos. Los más conocidos son: Heisenbugs, Bohrbug, Mandelbugs, Schroedinbugs y demás integrantes de este nutrido grupo de errores.

Etiología

La palabra bugs en inglés significa insecto, y se utiliza para referirse a los fallos que aparecen a lo largo del proceso de creación de programas de ordenador. Si bien pueden aparecer en cualquiera de las etapas del ciclo de vida del software, son más frecuentes durante la fase de desarrollo y programación. El origen de este término es tan viejo como la programación misma, e incluso hay quienes afirman que el término “bug” se utilizaba en la “era pre-ordenador”, cuando alguna polilla atascaba los delicados mecanismos de alguna máquina.

Tipos de bugs de software

Hormigas.jpg
  • Heisenbug

Los programadores utilizan el término “Heisenbug” para denominar a los errores que desaparecen o alteran su comportamiento al tratar de depurarlos. Esto ocurre porque cuando se intenta encontrar un error dentro de un programa se suele utilizar alguna herramienta -otro programa- o un estado de memoria diferente al habitual, lo que hace que el entorno en que se ejecuta el software bajo prueba no sea el mismo y el error desaparezca como por arte de magia.

  • Bohrbug

Los “Bohrbug”, denominados así por el modelo atómico de Bohr, es un tipo de error que, no importa lo que se haga, mantienen un comportamiento constante.

  • Mandelbug

Este tipo de bug de software provoca fallos con causas tan complejas que su comportamiento parece ser completamente caótico.

  • Schroedinbug

Errores que no aparecen hasta que alguien lee el código y descubre que, en determinadas circunstancias, el programa podría fallar. A partir de ese momento, el maldito “Schroedinbug” comienza aparecer una y otra vez.

  • Fantasma en el Código

Es un tipo de bug que suele esconderse en esas rutinas o subprogramas que rara vez se ejecutan. Su ubicación los hace muy difíciles de identificar durante las pruebas previas al lanzamiento del programa, y puede hacer que un producto fracase estrepitosamente al ser puesto a la venta.

  • Otros

Los programadores llaman “stole” al problema que se produce cuando luego de introducir datos que aparentan ser correctos (pero no lo son) se obtiene una (lógica) salida incorrecta. El problema, por supuesto, se encuentra en los datos introducidos, pero como el programador está convencido que estos son correctos, suele comenzar a reescribir partes de su programa tratando de eliminar un bug que, en realidad, no existe. Más extraños aún son los denominados “Phase of the Moon bug” (bugs de fase lunar), errores que parecen depender de factores aleatorios y que la mente del programador los atribuye a los motivos más esotéricos. “El programa falla cuando José está presente”, o “solo falla cuando la luna está en cuarto creciente”. Al igual que todos los anteriores, este bug es muy frecuente.

Tipos de bugs de software en la web

  • RFI: Inclusión Remota de Archivos

Inclusión Remota de Archivos: vulnerabilidad existente solamente en páginas dinámicas en PHP que permite el enlace de archivos remotos situados en otros servidores a causa de una mala programación de la página que contiene la función include().

  • LFI: Inclusión Local de Archivos

Inclusión Local de Archivos: es un tipo de vulnerabilidad que se encuentra en páginas mal programadas en lenguaje PHP (de hecho el LFile y Rfile inclusión solo afecta al PHP). Un usuario malicioso puede utilizar este bug para obtener archivos locales del servidor por ejemplo archivos de conexión a bases de datos, scripts PHP privados, el archivos password, entre otras cosas.

  • CSRF: Falsificación de Petición en Sitios Cruzados

Falsificación de Petición en Sitios Cruzados: es un tipo de exploit malicioso de un sitio web en el que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confía. Esta vulnerabilidad es conocida también por otros nombres como XSRF, enlace hostil, ataque de un click, cabalgamiento de sesión, y ataque automático.

  • XSS

XSS es un ataque que obliga a un sitio web, mediante la inyección comúnmente de html/javascript ofuscado o no, a mostrar o ejecutar código malicioso en el navegador de los usuarios que lo visiten, no en el servidor. El servidor solo es conducto para atacar al usuario. Una vez controlado el navegador de la víctima el atacante puede hacer muchas cosas.

  • SQL Inyección

La inyección SQL es el ataque vía web, que aprovecha errores en la filtración de datos introducidos por el usuario, y que permiten a un atacante, tener control de cierta aplicación.

  • CRLF Inyección

Las SMTP injections son una aplicación de la técnica conocida como "CRLF Injections". El objetivo es introducir una sentencia maligna para que sea ejecutada como si fuese propia de la aplicación vulnerable y provoque el caos en la aplicación en desarrollo.

Fuentes