¿Como iniciarse en la seguridad WEB?
Mucha gente anda por todos lados buscando orientación de como comenzar a aprender esto de la seguridad a nivel WEB.
1.
Lo primero que debes tener en claro es que es lo que realmente deseas ser o hacer, si lo que quieres es ir por internet y tumbar cualquier servidor que se te cruze por delante entonces estás en el lugar equibocado.
2.
Lo segundo que necesitas antes de comenzar cualquier cosa es entender que es ser ético, tener una madurez mental mínima, ser autodidacta, no esperar a que la gente haga todo por ti y saber hacer buenas preguntas.
¿Porqué ser ético y tener una madurez mental mínima?
Imagina si la gente que sabe sobre seguridad a nivel web comienza a desmadrar cada sitio que visita o se le cruza o mejor piensa que te compras un hosting con dinero propio y pones mucho esfuerzo en montar tu foro o portal para que alguien venga y te lo tumbe al primer dia... lo reparas y al tercer dia lo mismo .
Decir "¿Como puedo defacear una web?" es muy similar a la frase "¿Como puedo hacearle el hotmail a mi novia?" debido a muchas cosas, primero que nada pensar por un momento que sacas con ir por la vida tumbando paginas webs, mas que fama o fortuna o mujeres lo único que vas a lograr es una visita de la policía por lo menos una ves al mes y convertirte en un delincuente informático, cosa muy diferente a decir que eres un auditor y buén programador que puede ayudar a la seguridad de un sitio web y ser reconocido por ser bueno en lo que haces en ves de ser odiado por la gente que sabe y adorado por los lamers mas grandes sobre la faz de la www.
¿Porqué ser autodidacta y no esperar a que los demas hagan las cosas por ti?
Imagina que te doy un script que lo subes a un hosting y al visualizar el archivo te ejecuta un exploit, no vas a saber como funciona por lo tanto si surge un problema no sabrás solucionarlo, tampoco podrás encontrar tus propias vulnerabilidades porque siempre vas a tener que esperar a que alguien mas los encuentre y eso no es bueno, eso es ser dependizado de la gente que si sabe y se esfuerza y son los que entienden de seguridad web, los que no son autoddactas nunca podrán surgir por si solos, por eso siempre busquen, aprendan, lean, y cuando todos los recursos de busqueda se hayan agotado entonces ahi recién pregunten a alguien que sepa mas.
¿Porqué es necesario saber hacer buenas preguntas?
Hay buenos tips para hacer una buena pregunta y una buena pregunta lleva a buenas respuestas, mientras mas mal hecha sea una pregunta también será peor la respuesta ya que puede no ser tomada en serio o causar el disgusto del que si pueda responderte de buena forma.
Una mala forma de hacer una pregunta es llenar de signos de exclamación "ayudaaaa!!!!!".
Una buena forma de hacer una pregunta es siendo específico.
Una mala pregunta es cuando pides cosas que puedes encontrar en el primer resultado en cualquier buscador como Google.
Una buena pregunta es cuando necesitas algo que no puedes encontrar con facilidad en cualquier buscador.
Una mala pregunta es hacerla con intención de querer dañar a alguien o hacerlo sin ética.
Una buena pregunta es cuando necesitas algo para una buena causa.
Una mala pregunta es cuando se acompaña con un nick que tiene demasiados carácteres y simbolos raros.
Una buena pregunta es siendo respetuoso y solicitando las cosas "por favor" ya que al final nadie te va a cobrar por la respuesta que necesitas.
3.
Ahora si, después de todo lo principal lo que necesitas es entender el lenguaje WEB, o sea saber programar.
¿Si no entiendes como funciona una página web entonces como quieres comprender como encontrar una falla?
Lenguajes recomendados para aprender:
HTML (Obligatorio)
PHP
ASP
SQL general (Obligatorio)
MySQL
MSSQL (Opcional)
javascript (Obligatorio)
HTTP (Opcional)
Lo mas importante es saber HTML ya que con eso puedes entender como funciona la mayoría de los ataques a nivel cliente y dependiendo el lenguaje en que esté hecho el sitio WEB necesitarás aprender ya sea php, asp, cgi/perl, python, etc etc.
Es necesatio aprender lenguaje SQL para tener la báse de lenguajes derivados tales como MSSQL y MySQL.
De forma opcional puedes aprender como funciona el protocolo HTTP para poder realizar test avanzados que no te permita realizar el explorador.
Este pequeño listado contiene los lenguajes WEB mas utilizados pero hay muchisimos mas, por lo tanto si quieres recién comenzar debes aprender uno por uno de esa lista.
¿Como puedo aprender php?
Lo primero que hacemos es instalar un servidor WEB, en mi caso recomendaré un pack de programas llamado XAMPP (Windows) y LAMPP (Linux) el cual contiene todo lo que necesitas para practicar:
- Apache server
- PHP
- MySQL
- FTPD
- Phpmyadmin
- SQLiteadmin
Una ves que lo instales debes localizar un directorio llamado "htdocs", "www" o "public_html" que quedará dentro del directorio del programa, ahi pondremos todas nuestras pruebas en php, mysql, etc etc.
Ahora lo único que necesitas es buscar buenos manuales de como programar en php, mysql, javascript, html, etc etc etc.
4.
Lo que yo recomiendo es aprender en la práctica, por o tanto te buscas scripts de ejemplos que puedas encontrar por ahi y los instalas en tu servidor local (el que acabas de instalar), ahora como se supone que ya aprendiste php intenta crear tus propios sistemas o scripts y cuando lo hagas te irás dando cuenta en que pueden ser vulnerables, lees sitios webs donde expongan vulnerabilidades para poder comprender como funcionan, aprende que significan los siguientes términos:
XSS
CSRF
SQL Inyeccion
CRE
Null Byte Atack
etc etc etc y con eso ya vas a tener la base para poder continuar solo a aprender todo lo que te guste.
Con el tiempo te irás dando cuenta que hay muchos sistemas públicos que contienen pequeños bugs o problemas de seguridad que puedes transformar en un riesgo de alto nivel.
Para poder comprender algunos términos básicos es recomendable dar un vistazo al diccionario ( http://foro.elhacker.net/nivel_web/diccionario_informatico_sobre_bugs_y_exploits_en_nivel_web_v10-t264007.0.html ) claro.. una ves que hayas aprendido lenguaje web
Aportes, dudas, consultas, apoyo, son bienvenidos!