Introduccion
La primera version de este texto sera muy basica y teorica, tampoco pretende ser mas -por ahora-, ya un poco mas adelante ire colocando ejemplos practicos para que se entienda mejor -si es que no se entiene- y tengo pensado tambien una clasificacion complementaria sobre tipos de exploits.
Cualquier sugerencia y/o comentario sera bien recibido.
1. Bugs
Empecemos, un bug = una vulnerabilidad. Un fallo que provoca un agujero de seguridad en los diferentes sistemas, fallo que puede ser utilizado arbitrariamente a favor del que lo explote.
Ya se lo que estas pensando, bug = insecto, ?verdad?. Veras hacia los anos 40 cuando las computaras eran del tamano de un autobus -y no exagero- se presentaron curiosos fallos debido a que los insectos atraidos por la luz se metian dentro de las computadoras por algunas ranuras provocando distintos fallos en el sistema. Desde entonces estos fallos han sido bautizados con el singular nombre de "bugs".
Estamos culturizandonos eh? d:)
2. Bugs Fisicos
Se llaman bugs fisicos a cualquier tipo de fallo -si vale el termino- material. Por este tipo de fallos una persona externa puede obtener accesos a computadoras restringidas, accesos a backups (copias de seguridad, generalmente en CDs), accesos a libretas o anotes que contengan datos importantes, etc. cualquier tipo de acceso a informacion restringida son bugs fisicos criticos que pueden tener muchas y muy grandes concecuencias.
Todo esto es producto de la excesiva confianza que se tiene en terceras personas o el excesivo descuido e irresponsabilidad. Hoy por hoy se han presentando y se siguen presentando innumerables casos respecto a estos bugs, empleados descontentos, empleados codiciosos, o simplemente Fulanin Fulon.
?Alguna vez te pusiste a pensar si el famoso cracker-phreaker Kevin Mitnick lo hizo todo a travez de una computadora y una frecuencia telefonica?, ve un trozo de esta declaracion que hizo: "Cuando era bastante joven. En cierta ocasion quise entrar en el sistema de una compania telefonica, DEC. Para entrar, necesitaba un codigo personal, el cual pensaba conseguir mediante un 'sniffer'. Asi que para entrar a la empresa, me disfrace de mensajero de UPS" ... incluso hace ya un tiempo publico un libro "The Art of Deception" que trata justamente del tema.
3. Bugs de Programacion
Estos son los peores y mas abundantes, sin mencionar que cada dia se descubren mas y aun hay cientos en cientos de programas esperando pacientemente ser descubiertos. Los bugs de programacion son ciertas partes de codigo "mal escritos" en un programa. Dada una determinada "situacion" planeada por un usuario externo llegan a comprometer gravemente el sistema.
Veamos el reciente bug WebDav de los IIS5. Este es un desbordamiento de buffer que ocurre en la libereria ntdll.dll. Un desbordamiento de buffer ocurre cuando una variable de capacidad limitada es forzada a contener un valor mucho mas grande del que soporta... No nos desviemos, ibamos en el bug WebDav. Cuando este fallo es explotado por alguien, ese alguien puede hacer que el sistema ejecute codigo predefinido por el, lo mas comun es que intente devolver una shell remota. La shell se ejecutara con los privilegios con los que se estaba ejecutando el programa en el momento que colapso, en este caso ejecutara codigo como System.
Tomemos como otro ejemplo el famoso y el preferido de muchos Kiddies, el bug unicode. El bug Unicode Directory Transversal de los IIS4 -si, si, otra vez microsoft- era/es posible por que el servidor web comprobaba las direcciones que se introducian al principio, pero no despues. Si alguien convertia ../ -tipico metodo para escalar directorios- a unicode y lo ponia en la barra de direcciones del navegador podia sin mayor problema acceder a directorios supuestamente restringidos.
Los bugs de programacion pueden tener distintos niveles de peligrosidad, alcanzando muchos los niveles mas elevados. Estos bugs se pueden encontrar tanto en programas sencillos, como en programas extremadamente complejos.
Fuente por: creature
super llos tipo de bugs ... estare atento con los ejemplitos ;D