Fallas, errores, riesgos

From FdIwiki ELP
Jump to: navigation, search

Actualmente no existen programas o sistemas que sean totalmente perfectos y que estén exentos de algún tipo de fallos( también denominados bugs), este tipo de errores pueden ser:

  • Lógicos: Los resultados mostrados por el programa no son los esperados.
  • De ejecución: Aparecen mientras se ejecuta el programa, aparecen cuando el programa intenta realizar operaciones imposibles que se lleven a cabo.
  • Sintácticos: Se producen al escribir mal el lenguaje que se está usando.

Estos errores pueden hacer desde que el sistema funcione de manera inesperada hasta hacer que el programa tenga graves fallos de seguridad, poniendo en peligro todo el sistema.

Un error en programación puede llevar a tener graves repercusiones y ser bastante críticos, ejemplo de esto fueron errores como el Heartbleed en 2014, o mas recientemente en 2015 el fallo en el Airbus A400M

Errores de programación

Este tipo de errores van a ocasionar fallos en el funcionamiento del programa, eso en principio no parece muy grave, pero si uno de estos errores se producen en un sistema critico pueden suceder desastres como el del anteriormente mencionado Airbus A400M.

Los errores mas comunes en este ámbito suelen ser:

  • División por cero
  • Ciclo infinito
  • Problemas aritméticos como desbordamientos (overflow) o subdesbordamientos (underflow).
  • Exceder el tamaño del array
  • Utilizar una variable no inicializada
  • Acceder a Memoria de ordenador|memoria no permitida (Violación de acceso)
  • Pérdida de memoria (memory leak)
  • Desbordamiento o subdesbordamiento de la pila
  • Desbordamiento de búfer (buffer overflow)
  • Bloqueo mutuo (deadlock)
  • Indizado inadecuado de tablas en bases de datos.
  • Desbordamiento de la pila de recursión, cuando se dejan demasiadas llamadas en espera.

Fallos de seguridad

Un fallo de seguridad por su parte no va a suponer un fallo de funcionamiento del sistema, sino una vulnerabilidad en el sistema que va a suponer un fallo en su seguridad.

Los fallos mas comunes suelen ser:

  • De software. Ejemplos:
    • Inyección SQL
    • Desbordamiento de buffer
    • Clickjacking
    • Condiciones de carrera
    • Cross Site Request Forgery
    • Cross-site scripting
  • De hardware
  • Del entorno físico del sistema
  • Del personal involucrado
  • De procedimientos de administración, organización y seguridad involucrados
  • De la red de comunicaciones utilizada

Riesgos

Los riesgos a los que se enfrentan ambos errores suelen ser bastante variados.

Como ya se ha mencionado un error de programación dependerá mas del sistema en el que se este ejecutando y su nivel de criticidad que del fallo en si. Esto puede ser desde una simple excepción controlada dentro del código que no supondrá ningún problema (siempre entendiendo que esta bien controlada), hasta un bucle infinito que hará que colapse todo el programa.

Por su parte las fallas de seguridad si que tienen un nivel de riesgo diferente, ya que dependiendo de donde se produzca tendrá una repercusión u otra.

Un fallo de inyeccionSQL te permitirá el acceso a toda la aplicación o a la base de datos, por su parte un error de hardware permitirá el acceso a los servidores e incluso al código fuente de la aplicación. Cada tipo de error te permite el acceso a una cierta información que puede llegar a ser muy sensible

Vulnerabilidades famosas


Enlaces externos