Errores de Software
Un problema que no hay que dejar de pasar por alto.
Tipos de Errores
Defectos de diseño de programas
· Diseños con colores inapropiados para las personas que padecen daltonismo
· Diseños que usan textos con tipografías de difícil lectura por su tamaño o diseño
· Diseños que fuerzan el uso del ratón o mouse sin dejar alternativas de teclado para personas con dificultades motrices
· Diseños con implicaciones culturales, por ejemplo usando partes del cuerpo que en una determinada cultura sean objeto de vergüenza o burla o símbolos con características de identidad cultural o religiosa
· Estimar que el equipo donde se instalará tiene determinadas características (como la resolución de la pantalla, la velocidad del procesador, la cantidad de memoria o conectividad a Internet) propias de un equipo de gama alta, en vez de diseñar el software para su ejecución en equipos normales
Errores de programación comunes
Problemas aritméticos como desbordamientos (overflow) o subdesbordamientos (underflow).
Exceder el tamaño del array
Uso de Una variable de en inicializado
Acceder a memoria no permitida (Violación de acceso)
Pérdida de memoria (memoryleak)
Desbordamiento o subdesbordamiento de la pila (estructura de datos)
Desbordamiento de búfer (buffer overflow)
Bloqueo mutuo (deadlock)
Indizado inadecuado de tablas en bases de datos.
Defectos de instalación o programación
Eliminación o sustitución de bibliotecas comunes a más de un programa o del sistema (DLL Hell).
Reiniciar arbitrariamente la sesión de un usuario para que la instalación tenga efecto.
Suponer que el usuario tiene una conexión permanente a internet.
Utilizar como fuente enlaces simbólicos a ficheros que pueden cambiar de ubicación.
Códigos de errores de lenguajes de programación
La mayor parte de los lenguajes de programación presentan al menos dos tipos de errores que permiten a los programadores manejar las fallas de los programas de una manera eficiente y que no resulte agresiva con el usuario final. Dichos errores son de compilación y errores en tiempo de ejecución. Los errores de compilación normalmente inhiben que el código fuente derive en un programa ejecutable, mientras que los errores en tiempo de ejecución son situaciones específicas en las que un evento externo al programa impide su ejecución. Regularmente un programador eficiente debe intentar imaginar como debe responder ante esos eventos de manera que sea el programa y no el usuario o el sistema operativo los que resuelvan el problema.
Agujero de seguridad
Etapas
Nacimiento
Descubrimiento
Comunicación de la vulnerabilidad
Automatización de explotación
Publicitación
Corrección
Búsqueda de vulnerabilidades y motivaciones para su publicación
Los atacantes de sistemas
Profesionales de la informática y en especial de la seguridad
- Reputación.- El que una persona o organización sea acreditada como la primera en descubrir una vulnerabilidad particular es muy importante en el mundo de la seguridad informática. Por un lado a las personas les acredita de habilidades y esto puede usarse para aumentar sus ingresos o conseguir mejores trabajos. Para una empresa también es importante porque puede utilizarse para conseguir clientes en base al alto nivel del personal que trabaja para ella.
- Perjudicar a competidores.- Por ejemplo un desarrollador o compañía puede tener especial interés en buscar vulnerabilidades a productos de la competencia para poner en dificultades al proveedor y desacreditar sus productos. De esta forma se consigue mejorar la posición en el mercado del producto propio.
- Forzar al proveedor del productor a mejorar la calidad del producto y que tenga más interés en producir software más seguro.
- Disfrutar del desafío intelectual de encontrar vulnerabilidades.
- Obtener gratificaciones monetarias por parte del proveedor del producto o de otra entidad.
Tratamiento de la información sobre vulnerabilidades
Las formas de conseguir información sobre vulnerabilidades son las siguientes:
- Investigación sobre el funcionamiento de productos
- Investigación del funcionamiento de código malicioso que se aprovechan de vulnerabilidades
- A través de informes que revelan ese tipo de información.
Los dos aspectos fundamentales a estudiar sobre el tratamiento de la información sobre vulnerabilidades son:
- Como se difunde esa información (transmisión de la información)
- Como se gestiona para tener toda la información disponible (Gestión de la información)
Consultenos y asegure sus Archivos importantes
Email: raulfernan97@yahoo.com
Facebook: facebook.com/fernando.espindola.5209