Vulnerabilidades y Exploits

A petición de los que participaron en la encuesta, escribiré algo sobre seguridad, hacking y cracking, que es un tema que tenía algo dejado y olvidado.

En principio, para los más neófitos del tema, y que no tengan ni la más remota idea de cómo lo hacen los hackers (y en peor caso los crackers), para entrar en un sistema remoto sin que nadie se percate de ello, vamos a dar alguna que otra luz sobre el asunto.

Ataques, ¿cómo entran?

A pesar de lo que muchas películas extrañas (o desinformadas) nos hacen creer, los ataques, no consisten en que el atacante vea, como si fuese una televisión, lo que está haciendo el atacado. No consiste en que de repente, tome el control de tu teclado y se vea moviendo el ratón para eliminar ficheros o escribir cosas en un documento del procesador de textos.

Los ataques se producen mediante mecanismos concretos que suelen articular los hackers, y que suelen ser:

Troyanos

Son programas que están escritos específicamente para ejecutarse en un ordenador sin que se note, atendiendo a peticiones a través de la red. Los hay que pueden ser:

*   **virus**: que se repliquen a otras máquinas a través de la infectación del programa de correo para anexar código macro que se ejecute en otros clientes de correo, o enviarse a través de programas tipo messenger a los contactos cuando estés conectado. La única misión de los virus es infectar a cuantos puedan.
*   **gusano**: estos se encargan de tomar datos del equipo y enviarlos. Datos confidenciales como claves, cuentas bancarias, certificados digitales, …. todo lo que le pueda interesar, en este caso, a un cracker.

Cuando un troyano se activa, se conecta con el atacante, el atacante en remoto le puede dar órdenes. Según el programa, lo que permita hacer y para lo que esté hecho, este podrá hacer algo malicioso como usar el equipo para descargas ilegales, ataques en masa contra servidores o punto FTP para descargas en algunos casos, o incluso para jugar, apagando el equipo cada X minutos, haciendo aparecer dibujos en la pantalla, o textos flotantes… ya de estos últimos hay pocos… o ninguno.

Este malware, como se suele llamar, suele entrar por la ejecución de algún código dentro del equipo atacado. Si se abre algún archivo ejecutable (ya sea juego, presentación o vídeo) que misteriosamente está en formato exe (de executable, ejecutable), es posible que haya detrás uno de estos programas.

Además, mucho software que se descarga desde internet a través de P2P, es sensible de estar infectado por código malware, por lo que hay que tener mucho cuidado con lo que se descarga desde la red de redes.

Ingeniería social

De esto da buena muestra la película Asalto final. Esta técnica consiste en que el hacker o cracker se hace con la información haciéndose pasar por alguien a quien, seguramente, se la dirían.

Fuerza bruta

También los hay… aunque esto es más obra de los lammers, quienes intentan acceder a un equipo a través de probar, de forma reiterada, el acceso a los servidores con usuarios probables y un diccionario de palabras y combinaciones simples para poder acceder a un servidor.

Vulnerabilidades

Esta es la más curiosa y más artesana. Consiste en aprovechar una vulnerabilidad del sistema. El hacker o cracker puede emplearla para acceder a un sistema y depositar código o ejecutar arbitrariamente alguna línea de código que le permita el acceso, principalmente a servidores. En la película La red social, por ejemplo, el protagonista va relatando las vulnerabilidades de los sitios a los que accede para robar las fotografías de las chicas sobre las que monta su primera experiencia social.

Desarrollaremos este tema porque es bastante interesante.

¿Qué es una vulnerabilidad?

Una vulnerabilidad es un error de código explotable. Cualquier servicio que se ejecuta y mantiene comunicación abierta de red, a modo pasivo (o servidor) es potencialmente un sistema vulnerable y explotable. No obstante, de forma local, también hay sistemas vulnerables y explotables, pero para poder realizar una explotación de ellos, se requiere acceso físico a esas máquinas.

En Internet existen base de datos de vulnerabilidades descubiertas de muchos tipos de software, entre los que hay sistemas operativos como Windows, servidores como Apache, base de datos como MySQL y otros elementos con los que se crean páginas web, o sistemas de mensajería intantánea, servidores de correo, etc.

¿Cómo explotan estas vulnerabilidades?

Cuando una vulnerabilidad es descubierta, puede pasar que el descubrimiento lo realice un cracker, y cree una aplicación que lo explote. Las aplicaciones que sirven para explotar vulnerabilidades tienen el nombre de exploit (aunque también se puede escribir como xploit o sploit). Cuando está recién hecho, se dice que estos exploits son de 0day (día cero), y por tanto, hay muchos sistemas en producción sensibles de su acción.

No obstante, los exploits también son buenas herramientas de seguridad, porque ayudan a comprobar si un sistema es fiable o no. Por lo que también existen muchas base de datos de exploits en Internet. La más conocida es la que usa el programa metasploit.

Conclusiones

Una conexión a internet en sí, estando detrás de un router y manejando solo páginas web, suele ser segura, y sobretodo, si mantenemos nuestro equipo al día con actualizaciones de seguridad. No obstante, el uso de cada vez más software pirata, hace que no sea del todo confiable lo que hay en un PC.

Por otro lado, si mantenemos un servidor, desarrollamos un aplicación web, o simplemente tenemos un blog. Hay que tener el mismo cuidado de tener el servidor actualizado a nivel de software, las configuraciones revisadas a nivel de accesibilidad de los ficheros instalados, de las rutas a las que se tenga acceso y de no instalar plugins o librerías que no tengan un mínimo de fiabilidad.