Diferencia entre revisiones de «Fallas, errores, riesgos»

De FdIwiki ELP
Saltar a: navegación, buscar
Línea 2: Línea 2:
 
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 de muy distinta índole, desde hacer que el sistema funcione de manera inesperada hasta hacer que el programa tenga graves fallos de seguridad, poniendo en peligro todo el sistema.  
 
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 de muy distinta índole, desde hacer 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 </ref>el [[Airbus A400M]] <ref> (en inglés) [http://www.defensenews.com/story/defense/2015/05/29/france-spain-aerospace-defence-accident-airbus/28142421/ «Airbus Cites Assembly Problem in A400M Crash»]. Consultado el 22 de Junio de 2015 </ref>
+
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  [http://www.defensenews.com/story/defense/2015/05/29/france-spain-aerospace-defence-accident-airbus/28142421/ Airbus A400M]
 +
 
 
== '''Fallas y Errores''' ==
 
== '''Fallas y Errores''' ==
 +
Hay gran variedad de tipos de errores, se pueden dividir en errores de programación y errores de seguridad
 +
 +
=== '''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''' ==
 
== '''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''' ===
 +
* [http://heartbleed.com/ heartbleed] (fallo de seguridad en el protocolo SSL)
 +
* [https://es.wikipedia.org/wiki/SQL_Slammer '''SQL Slammer'''
 +
* [https://es.wikipedia.org/wiki/Gusano_Morris Gusano Morris]
  
== Referencias ==
+
 
{{listaref}}
+
 
== Enlaces externos ==
 
== Enlaces externos ==
 
* [http://cert.inteco.es/vulnSearch/Actualidad/Actualidad_Vulnerabilidades/buscador_vulnerabilidades Buscador de Vulnerabilidades por productos de INTECO-CERT]
 
* [http://cert.inteco.es/vulnSearch/Actualidad/Actualidad_Vulnerabilidades/buscador_vulnerabilidades Buscador de Vulnerabilidades por productos de INTECO-CERT]

Revisión de 19:07 3 jul 2015

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 de muy distinta índole, desde hacer 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

Fallas y Errores

Hay gran variedad de tipos de errores, se pueden dividir en errores de programación y errores de seguridad

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