Seguridad informática. Notas de la traducción El documento original pertenece a rfp.labs, realice la traducción y adaptación al español por el contenido del articulo, explica un camino interesante para ingresar al mundo de la seguridad informática.
Introducción He escrito esto “NO” porque este cansado de decirle a mucha gente las mismas cosas, más bien porque es interesante esta información. Considerando que una persona lo pregunta, existen otras 10 que probablemente no lo hacen en Seguridad informática.
He recibido un gran número de peticiones, especialmente en los últimos 4 días, preguntando varias cosas, por ejemplo qué lenguajes de programación recomiendo, qué libros considero que son apropiados para comenzar, y en general cómo establecerse en el ámbito de la seguridad informática y adquirir los conocimientos necesarios para formar parte de ella. Tengo un enfoque diferente respecto a las recomendaciones comunes, voy a comentarlo. Nota que mucha de esta información la he mandado por correo electrónico a varias personas en respuesta a sus peticiones.
Dónde empezar Aquí es donde voy a mostrar una opinión diferente sobre Seguridad informática. Si vas a comenzar, te sugiero que *NO* busques en Technotronic, Bugtraq, Packetstorm, Rootshell (¿todavía esta activa?), etc.
Si, *NO* comiences allí (a pesar de que son buenos sitios y que no estoy diciendo que no puedes visitarlos. :)
La razon es simple: si crees que conocer de seguridad informática es conocer los últimos exploits, pronto te darás cuenta de que no sabes mucho. Estamos de acuerdo que es agradable conocer qué esta vulnerado y qué no, pero esto no nos va a dar bases sólidas de conocimiento para comenzar. Excelente, sabes cómo descargar el script. Sabes cómo reparar la situación (probablemente). 3 meses despues, los parches son ampliamente distribuidos, las cosas se vuelven obsoletas – ahora ¿qué conocimientos tienes? Y, ¿cúanto entiendes del asunto?
¿Fueron tus conocimientos, o simplemente el exploit? Este es el punto que mayor enfatizo, y uno que la gente parece pasar por alto. Mucha gente cree que si conoce los últimos exploits, conocen seguridad. ¡No! ¡No! ¡No! Todo lo que pasa es que conocen ‘exploits’ *NO* ’seguridad’!
Por ejemplo: Conoces la existencia de phf, showcode.asp, Count.cgi, y test-cgi, pero sabes ¿qué es lo que hace vulnerable a un CGI? ¿Sabes cómo programar con seguridad un CGI?, puedes buscar y adivinar vulnerabilidades en otros cgi’s basados en estos principios? O phf, showcode.asp, Count.cgi y test-cgi es todo lo que sabes al respecto? Por esto sugiero que *NO* comiences con exploits. Ignora que existen (bueno, sabes a lo que me refiero). Lo que necesitas para empezar es convertirte en usuario.
Convirtiéndote en Usuario Lo que quiero decir es que necesitas conocer cosas generales y casuales que le suceden a cualquier usuario. Por ejemplo, si vas a hackear una web, debes saber cómo usar el web. Excelente, puedes abrir Netscape o IE… puedes escribir direcciones, sabes que .html es una página web. Necesitas seguir un camino… conviértete en un usuario experto. Identifica que .asp y .cgi son páginas dinámicas. ¿Qué es .php? ¿Qué es esto que me redirecciona?¿Cookies? ¿SSL? Todas estas cosas con las que un usuario normal se encuentra en sus actividades cotidianas debes conocerlas.
¡Nada de EXPLOITS! Solo como un usuario normal. Puedes pertencer a la elite++ e ignorar las cosas básicas (y aburridas).
Ok, ahora conoces por dentro y por fuera estas cosas. Sin embargo, antes de que puedas hackear una máquina UNIX, necesitas saber, por lo menos, cómo iniciar y terminar sesión, usar el intérprete de comandos, ejecutar aplicaciones comunes (mail, ftp, web, etc.). Necesitas conocer lo básico. Después te conviertes en Admin. Convirtiéndote en Admin Ahora te desenvuelves más alla del dominio de un usuario, entras en cosas más sofisticadas. Te concentras más en el propio servidor web. ¿Qué tipo de servidor es?, ¿Cuál es la diferencia? ¿Cómo configurarlo? Conocer las respuestas a estas cosas significa que sabes cómo funciona, y qué es lo que hace. ¿Entiendes HTTP? ¿las diferencias entre HTTP 1.0 y 1.1? Qué es WebDAV? Conocer cómo funciona los directorios virtuales en HTTP 1.1 te ayudará a configurar tu servidor web. Profundizemos más.
¿Qué tal acerca de Sistemas Operativos?, ¿cómo puedes hackear NT si nunca has configurado uno?, ¿esperas crackear el password del admin sin saber cómo ejecutar rdisk, administrar nombres de usuario, passwords, etc.? ¿Espera usar RDS (en línea de comandos) cuando todo lo que has usado es la GUI? De nuevo, necesitas progresar de Admin a Super Admin. Bien, puedes agregar usuarios en la GUI. ¿Existen otros caminos? ¿Qué tal la línea de comandos? WTF!, ¿qué son todos estos .exe’s que estan en el directorio system32? ¿Qué es lo que hacen? ¿Sabes porque usernetctl necesita estar modo suid? ¿Alguna vez has utilizado usernetctl? Profundizemos más.
Conviertete en amigo intimo del sistema. Esta es la clave. No conoces lo suficiente para accesar pero… sabes que puedes encontrar mucha info. Conviértete en guru. Pero toma en cuenta que…
No puedes saber todo ¡Ay!, que pena, es algo triste de la vida. No pienses que puedes, si piensas que puedes, te estas engañando a ti mismo y probablemente vas por el camino incorrecto. Lo que necesitas hacer es elegir una área que te interese demasiado y aprender más y más acerca de ella. Conviértete en Usuario. Conviértete en Admin. Conviértete en Guru. Conviértete en la persona #1 en cualquier cosa respecto al tema. No solo aprendas a usar el web, escribe CGI’s, conoce HTTP, conoce que deberian hacer los servidores web, descubre cuando no hagan lo que deberian hacer. Aprende a buscar información.
Si conoces intimamente un tema, automáticamente sabrás cómo explotarlo.
Es así de simple. Si conoces todas las entradas y salidas del sistema, bueno, la seguridad esta incluida en esas entradas y salidas. Y no solo el exploit más actual, cualquiera… de todos los pasados, y todos los futuros exploits. Puedes encontrar material (mientras te conviertes en guru) que es desconocido. Wow, tú lo encontraste. Has encontrando un exploits y también has entendido que es lo que estas buscando y cómo trabaja antes de tenerlo en tus manos.
Así que imprime una copia de whisker, y aprende qué son los CGI actualmente, cómo afectan HTTP, cómo lo implementan los servidores web, etc. Entonces entenderás qué es lo que hace.
Lenguajes de Programación Un par de cosas me han preguntado recientemente. La primera de ellas, qué lenguaje de programación recomiendo. Creo que todo está en qué es lo que quieres hacer. La apuesta segura va por C/C++.