Bolanos marco tarea1

4
ESCUELA POLITÉCNICA NACIONAL FACULTAD DE SISTEMAS INGENIERÍA EN SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN SIC514 – TECNOLOGÍAS DE SEGURIDAD BUFFER OVERFLOW MARCO ALEJANDRO BOLAÑOS SALAZAR NRO. UNICO: 200920063 FECHA DE ENTREGA: AGOSTO 14 DEL 2013

Transcript of Bolanos marco tarea1

Page 1: Bolanos marco tarea1

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE SISTEMAS

INGENIERÍA EN SISTEMAS INFORMÁTICOS Y DE

COMPUTACIÓN

SIC514 – TECNOLOGÍAS DE SEGURIDAD

BUFFER OVERFLOW

MARCO ALEJANDRO BOLAÑOS SALAZAR

NRO. UNICO: 200920063

FECHA DE ENTREGA: AGOSTO 14 DEL 2013

Page 2: Bolanos marco tarea1

I

Contenido 1 Introducción ........................................................................................................................................................ II

2 Discusión de la Problemática .......................................................................................................................... II

3 Discusión de la Solución ................................................................................................................................. III

4 Contraste de la Problemática y la Solución .................................................................................................. III

5 Conclusiones finales ........................................................................................................................................ III

6 Referencias ....................................................................................................................................................... III

Page 3: Bolanos marco tarea1

II

1 Introducción

En este ensayo vamos a tratar un problema llamado Buffer Overflow, muy común en programas tanto grandes

como pequeños, podremos conocer un poco más acerca de esto, principalmente respondiendo preguntas

básicas como: ¿Qué es buffer Overflow?, ¿Por qué se da este problema o vulnerabilidad?, ¿Cómo prevenir

esto?, que al terminar de leer el ensayo podemos contestarlas ya vamos a tener una perspectiva general de la

problemática, para con ello intentar plantear unas soluciones prácticas y posibles para poder evitar que estas

vulnerabilidades.

2 Discusión de la Problemática

Buffer Overflow es una vulnerabilidad comúnmente conocido como desbordamiento de pila, se da por que

ciertos datos ingresados por teclado invaden espacios de memoria que no le corresponden a ese tipo de datos,

es decir, se da cuando al momento de realizar un programa, sea este grande o pequeño, no validamos

correctamente el tamaño o longitud de una variable sea esta numérica o alfanumérica, permitiendo que al tener

un dato con mayor cantidad de tamaño este invada sitios de memoria que corresponden a otros procesos,

provocando errores en el funcionamiento del programa o del Sistema Operativo, estos problemas,

vulnerabilidades o bugs comúnmente no son reportados por la mayoría de personas así podemos observar 2

gráficas :

Figura 1 porcentaje calculado en 600 como 10.0 %. (Flores, 2012)

Figura 2. (Park and Lee, 2004)

Podemos observar que tanto en los años desde 1999 al 2006 no son reportados los casos de buffer Overflow

razón por la cual se debieron tener muchos problemas sin corregir debido a esto, así podemos ver que a partir

del año 2007 se ve un incremento relativamente enorme con respecto a los años anteriores, lo que resulta muy

beneficioso para todos al poder corregir esos errores oportunamente.

Este problema de buffer Overflow nos puede causar serios problemas sea personas comunes como grandes

corporaciones o países, un ejemplo lo podemos encontrar en un libro de Kevin Mitnick que nos dice: “explotó

una vulnerabilidad de desbordamiento de búfer en el sistema de programas - ufsrestore. Y eso, Zyklon dice, le

permitió obtener root en whitehouse.gov, así como el acceso al servidor de correo Casa Blanca y otros

sistemas de la red.” (Mitnick and Simon, 2005), como podemos ver en este ejemplo nos menciona la Casa

Blanca de los Estados Unidos de América, los que fueron atacados por desbordamiento de pila, así que

Page 4: Bolanos marco tarea1

III

tenemos que tener en cuenta que se puede dar en todos los aspectos. Esta vulnerabilidad se puede explotar

para poder inyectar código malicioso en la memoria y a su vez que sea ejecutado en el computador.

3 Discusión de la Solución

Unas posibles soluciones para evitar estas vulnerabilidades, es una correcta validación de los datos por parte

de los programadores, para evitar que sobre pase el tamaño máximo, enviando mensajes de error cuando esto

suceda, también puede ser reportando estos errores a las empresas que desarrollaron el software para que

intenten corregir el problema lo más pronto posible, también a los jefes de las empresas que realicen una

correcta planificación para el desarrollo de un software para así evitar que se lo realice al apuro y con fallas.

Algunos problemas también se dan por problemas de hardware, ya que tal vez no trabaje de la manera

correcta el hardware con el software y al realizar cálculos puede causar errores más que por problema de

software por problemas de que por ejemplo el procesador no trabaje bien con operaciones de punto flotante, un

ejemplo claro que me comentaron en una conferencia llamada “PRIVACIDAD EN INTERNET”, dictada por Ola

Bini que nos comentó que un procesador Pentium III daba errores de Overflow debido a un error de hardware y

que por más que intentaban corregirle al software no podían porque era problema del microprocesador, así que

mañana también otra solución es hacer el uso de Open Hardware para que no exista esos problemas de

compatibilidad de procesamiento.

4 Contraste de la Problemática y la Solución

Como podemos observar este problema se da por errores de programación así que como planteamos en la

solución lo mejor sería programar correctamente validando los campos correspondientes, así evitamos que se

invada espacios de memoria que no pertenecen al programa, esa es una de las mejores soluciones como

podemos observar en las versiones de algunos programas que los utilizamos en nuestra vida diaria

5 Conclusiones finales

Podemos concluir que todos los programas están expuestos a esto debido a que son fallas que comúnmente

no se corrigen si los programas son desarrollados al apuro o con mucha presión, además de que no

necesariamente es error de software sino que también puede ser error de hardware, ya que para elaborar el

programa en algunos casos se necesita conocer la arquitectura del computador.

6 Referencias

Flores, D.A. (2012) 'El Futuro de los Ataques por Desbordamiento de Pila', vol. 1, no. 1.

Mitnick, K.D. and Simon, W.L. (2005) The Art of Intrusion: the real stories behind the exploits of hackers,

intruders, and deceivers, Indianapolis - Indiana: Wiley Publishing, Inc.

Park, Y.-J. and Lee, G. (2004) 'Proceedings of the 1st conference on Computing frontiers', New York, NY, USA.