Buscar

como funciona un programa y sobre un posible ataque...


 
 Old 15 sep 2008, 18:18   #1 (permalink)  
Miembro activo
 
Avatar de el retorno de eire
 
Registrado: junio 2007
Ubicación: donde la verdad me hace libre...
Mensajes: 976

Predeterminado como funciona un programa y sobre un posible ataque...

me encantan las páginas que están escritas en cristiano, y esta es una de ellas que nos hará mas fácil comprender el funcionamiento de un programa, y como se portaría ante un posible desbordamiento de buffer.
saludos

¿como funciona un programa?

Un programa tiene su área de código ejecutable, y usa en memoria un espacio para almacenamiento del propio código y también para almacenamiento de los datos que vaya a utilizar. Igualmente, si el programa recibe parámetros o datos, debe guardarlos temporalmente en memoria.
Por ejemplo, imaginemos un programa servidor de páginas web. Cuando el usuario teclea en un navegador: "http://www.microsoft.com/directx", el texto tecleado: "www.microsoft.com/directx" viaja como dato al servidor web de Microsoft. Dicho servidor es un programa que recibe ese texto, y que tiene que almacenarlo en memoria.
Imaginemos que desde nuestro navegador, podemos teclear lo que queramos sin tener un tamaño máximo para escribir. Es decir que tecleamos "http://www.microsoft.com/xx....xxxx" y el texto que ponemos en las xxxxx es enorme. Pongamos que enviamos 10.000 caracteres... a ver que pasa.
Si el programa servidor que se está ejecutando en los servidores de Microsoft no tiene presente que pueda recibir toda esta cantidad de datos, y el programador que lo ha realizado ha previsto sólo una cantidad, digamos razonable de 1000 caracteres, el propio programa al intentar guardarse esos 10.000 caracteres, está "machacando" áreas de memoria que pueden ser de contenido de otros datos (en cuyo caso se machacan) o incluso de código ejecutable del propio servidor. En cualquier caso, hay destrucción de información que provocarán en el mejor de los casos o un mal funcionamiento, o lo más probable, una "caída" del programar servidor web por machacarse parte de su propio código
Evidentemente, la solución pasaría por comprobar el tamaño de lo tecleado antes de moverlo a zonas de memoria.
Este es un caso muy sencillo y muy simplificado, pero nos puede servir como idea de lo que sucede. Generalicemos un poco: un programa, se descompone en funciones. Dicho programa recibe parámetros o datos, se los guarda, y los pasa al resto de funciones o subprogramas que lo necesiten.
El problema es cuando el propio programa o los propios subprogramas o funciones, tienen reservados tamaños inferiores a la longitud de los datos que reciben. La solución, por supuesto, es que cada programa, función, modulo, librería, DLL, etc... no se fíe de nadie y verifique exhaustivamente todo antes de tomar ninguna acción y ni tan siquiera guardarlo en memoria.
Normalmente, los controles anteriores no se hacen excepto en entrada de datos, debido a que esto implica sobrecargar excesivamente de código de comprobación, y en tiempo de ejecución todos los parámetros y todas las zonas de memoria a las que accede el programa.
El problema surge cuando muchas de las funciones diseñadas para ejecutarse internamente, y que no tienen controles de los parámetros, deciden reutilizarse en otros programas de nivel superior los cuales pueden no tener tampoco dichos controles. En este caso, y aunque su funcionamiento sea normal, pueden encontrarse situaciones en que alguien malintencionado lo descubra y decida "explotar" esta vulnerabilidad. Es vulnerable un programa desde el momento en que somos capaces de hacerlo "cascar". Si somos capaces de ello, también seremos capaces de hacer lo que queramos: es decir de tomar control de él. Veremos un poco más adelante y de una manera sencilla, el cómo.
Continuamos con el ejemplo del servidor web anterior. Aunque nos estamos ciñendo a un servidor web, pensemos que en nuestras máquinas hay muchos pequeños, llamémosles, micro-servidores, es decir, programas, rutinas, funciones que están a la espera que alguien les active, o a la espera de recibir datos. El ejemplo del servidor web que estamos viendo no es anecdótico, sino que describe una vulnerabilidad real que ha existido en los servidores y que en su día (hace unos años) fue explotada con éxito por el mundo hacker.
Veamos muy por encima las capas que componen un servidor web, o mejor, veamos qué sucede desde que hacemos una petición de una URL (dirección de Internet) hasta que el servidor nos devuelve datos.
Primero, existen una serie de capas del tcp/ip que reciben los mensajes. Estas capas lo que hacen es pasarlo al siguiente nivel. En nuestro caso, al punto de entrada de los datos del servidor web. Este a su vez, analiza por completo el mensaje solicitado. Pensemos que en una URL pueden viajar muchas cosas: usuario / password, la máquina que lo va ejecutar, y en el contenido de la URL, la página, o incluso instrucciones de ejecución. Por ello, si nos fijamos, nos podemos encontrar URL's larguísimas que están enviando instrucciones al servidor.
Este a su vez, está compuesto por módulos o capas: por ejemplo, un módulo para autenticar al usuario si este fuese en el mensaje, otro, por ejemplo, para analizar el literal del mensaje y si encuentra instrucciones que entiende como de ejecución, pasárselo al modulo ejecutivo, etc... al final, si todo es correcto, se construye la página o se muestra directamente una página almacenada y se envía. Pero lo importante es que se ha llamado, pasando los datos tecleados por nosotros a un montón de programas y módulos. Si cualquiera de estos no tiene previsto un análisis detallado de la URL, o en algún caso falla al analizarla en este sentido... se provocará probablemente un desbordamiento de buffer: un machaque de áreas de memoria que llevará al programa a caerse casi con toda probabilidad.
El Ataque

Si un hacker, en algún momento, consigue en este ejemplo hacer que un servidor se caiga por enviar una URL inválida... ya tiene todo resuelto. Si es capaz de hacer "cascar" al programa servidor, también será capaz de enviar dentro de la URL código ejecutable en unas posiciones muy determinadas de la URL. Si este "trozo" de código enviado entra en ejecución... ya tenemos el "exploit". Es decir, antes que el servidor se "caiga", habrá ejecutado un código dejado por el hacker.
Este código puede hacer cualquier cosa: si el hacker ha tenido imaginación y ha sido capaz de realizar pruebas para encontrar un agujero que antes no se le había ocurrido a nadie, ni al programador, ni al equipo de programación, ni tan siquiera al equipo de pruebas, y que posiblemente lleve oculto años sin que haya sucedido nada... si ha tenido dicha imaginación está claro que también la tendrá ahora para saber qué"código" nos va a "inyectar" en nuestra máquina Estas inyecciones de código ya están muy estudiadas por el mundo hacker. Estudiadas, realizadas y probadas: únicamente consiste ahora en buscar la vulnerabilidad para "inyectar" el código.


Fuente:trucostécnicos

Nunca lleves tus mejores pantalones cuando salgas a luchar por la paz y la libertad.
Henrik Johan Ibsen


“los hijos vienen de ti, pero no son de ti”.
...Kalli Gibram
el retorno de eire is offline   Citar y responder
 
 Old 15 sep 2008, 18:40   #2 (permalink)  
Miembro activo
 
Avatar de Alexp.cl
 
Registrado: mayo 2007
Ubicación: Santiago de Chile, capital mundial del estrés
Mensajes: 2.853

Predeterminado Re: como funciona un programa y sobre un posible ataque...

exelente info saludos eire

Quiero entender el Universo y responder a las grandes preguntas. Es eso lo que me hace seguir adelante.

Stephen Hawking
Alexp.cl is offline   Citar y responder
 
 Old 15 sep 2008, 21:22   #3 (permalink)  
Ex-miembro
 
Avatar de hugoalo
 
Registrado: junio 2004
Mensajes: 935

Predeterminado Re: como funciona un programa y sobre un posible ataque...

Excelente eire. Ya puedes formar la Eirepedia. Saludos
hugoalo is offline   Citar y responder
 
 Old 16 sep 2008, 19:17   #4 (permalink)  
Ex-miembro
 
Avatar de Saitam Gamarra
 
Registrado: julio 2007
Mensajes: 2.748

Predeterminado Re: como funciona un programa y sobre un posible ataque...

eire....
una recomendación. seria que separes los textos, así para que la lectura sea la mas cómoda....
Saitam Gamarra is offline   Citar y responder
 
 Old 06 nov 2008, 15:50   #5 (permalink)  
Nuevo miembro
 
Avatar de 6_irene_6
 
Registrado: noviembre 2008
Mensajes: 2

Predeterminado Re: como funciona un programa y sobre un posible ataque...

yo tngo una dudaaa no se me descarga el msn ke tngo ke acer? borrar el antiguo ? ayuuda
6_irene_6 is offline   Citar y responder
 
 Old 06 nov 2008, 18:05   #6 (permalink)  
Ex-miembro
 
Avatar de *{tormenta}*
 
Registrado: agosto 2008
Mensajes: 566

Predeterminado Re: como funciona un programa y sobre un posible ataque...

muy buena recomendacion eire sld
*{tormenta}* is offline   Citar y responder
 
 Old 06 nov 2008, 22:04   #7 (permalink)  
Miembro activo
 
Avatar de ArKAngel28
 
Registrado: septiembre 2007
Ubicación: Adonde me lleven "Mis Alas"....
Mensajes: 9.253

Pregunta Re: como funciona un programa y sobre un posible ataque...

Cita:
6_irene_6 escribió: Ver post
yo tngo una dudaaa no se me descarga el msn ke tngo ke acer? borrar el antiguo ? ayuuda
Mejor que abras otro hilo para este tema, pero, aun asi, si no te explicas mejor....

PD: gracias por la info, eire

If you are god, and the delusion becomes reality.
About what kind of the noids you get?
Is it the sensual world? The despotic society?
The destructive sanctions?
Or...

[ChäoS;HEAd]
アルカンヘル
ArKAngel28 is offline   Citar y responder
 
 Old 06 nov 2008, 22:07   #8 (permalink)  
Miembro activo
 
Avatar de angel-aguirre
 
Registrado: octubre 2005
Ubicación: Lleida, España. Y... por aski tirao en mi zofa d'skai
Mensajes: 8.109

Divertido Re: como funciona un programa y sobre un posible ataque...

Muy buena info. de hace dos meses jejeje como siempre los novatillos abriendo temas de atrás.

Saludazosss.
“Con los zorros..., hay que ser un poco zorro”
Ángel.

Ubuntu 12.04 Percise Pangolin LTS
Ultimate Edition 3.4 LTS
Linux Registered User #484855
Ubuntu Registered User #26400
angel-aguirre is offline   Citar y responder
 
 Old 06 nov 2008, 22:15   #9 (permalink)  
Miembro activo
 
Avatar de ArKAngel28
 
Registrado: septiembre 2007
Ubicación: Adonde me lleven "Mis Alas"....
Mensajes: 9.253

Guiño Re: como funciona un programa y sobre un posible ataque...

Cita:
angel-aguirre escribió: Ver post
Muy buena info. de hace dos meses jejeje como siempre los novatillos abriendo temas de atrás.
ala, ala, otro hilo perdido del pasado, jeje, salu2 angel

If you are god, and the delusion becomes reality.
About what kind of the noids you get?
Is it the sensual world? The despotic society?
The destructive sanctions?
Or...

[ChäoS;HEAd]
アルカンヘル
ArKAngel28 is offline   Citar y responder
 
 Old 06 nov 2008, 22:17   #10 (permalink)  
Miembro activo
 
Avatar de angel-aguirre
 
Registrado: octubre 2005
Ubicación: Lleida, España. Y... por aski tirao en mi zofa d'skai
Mensajes: 8.109

Divertido Re: como funciona un programa y sobre un posible ataque...

Cita:
ArKAngel28 escribió: Ver post
ala, ala, otro hilo perdido del pasado, jeje, salu2 angel
saludos, has visto lo de google en off topic te partiras de risa

Saludazosss.
“Con los zorros..., hay que ser un poco zorro”
Ángel.

Ubuntu 12.04 Percise Pangolin LTS
Ultimate Edition 3.4 LTS
Linux Registered User #484855
Ubuntu Registered User #26400
angel-aguirre is offline   Citar y responder
Página 1 de 2 | 1 | 2 | >

« Problema con el kis | AVG I.S vs K.I.S »

Herramientas
Estilo


 

Tema Iniciado por Foro Respuestas Último mensaje
explicación de un ataque DDos (pero en cristiano) el retorno de eire Seguridad 0 05 oct 2007 19:32
¿Cómo funciona un ataque de denegación de servicio? el retorno de eire Seguridad 0 03 oct 2007 18:47
Cómo funciona un ataque de denegación de servicio (DoS) Equipo Monigote Seguridad 11 10 mar 2007 16:28
duda sobre el programa mobile phone tools para motorola chikytuja Móviles 0 21 abr 2006 00:20
Ayuda sobre programa putty cherokee1 Software 1 03 mar 2005 21:53



Buscar