martes, 24 de marzo de 2009

Bitácora de PSI: Fundamentalistas

En el capítulo de hoy hemos introducido las “técnicas” de “Decoy Scan” e “Idle Scan”. Una pila TCP que haga una gestión inteligente de sus paquetes y, entre otros, de sus números de secuencia, complicará considerablemente el que los sistemas se conviertan en “zombies”.

El enmascaramiento de nuestras máquinas TCP-IP permitirá jugar al gato y al ratón y, en la medida de lo posible, tratar de engañar a un posible atacante y, o, a sus herramientas. Se puede tratar de modificar “a pelo” los parámetros característicos de estos protocolos sobre el registro del sistema en "windows" o sobre los ficheros de configuración en /proc/sys/net/ipv4 (para IPv4) en nuestros linux. Como es lógico, no estaría mal hacer antes “backup” del registro y ficheros de configuración. También se puede optar por utilizar distintas herramientas que automatizan esta tarea. Te recomiendo dos magníficas entradas, una del blog de Álvaro Paz, Enmascarar sistema para evitar OS Fingerprinting, y la segunda de Kriptopolis, Security Cloak, enmascarando tu Windows. La incorporación de técnicas de "hardening" y “hardening tools” es otro de los mecanismos recomendables para fortalecer la seguridad en nuestros sistemas. Existen distintos paquetes de “hardening”, como bastille-linux o harden.

Hemos visto las típicas fases de una intrusión, y las principales características de cada una de ellas. Como en la vida misma, la ocultación es el fenómeno que predomina en todas ellas.
Se introducen y definen las medidas básicas de seguridad (técnicas de ocultación, parcheo a todos los niveles, “firewalls”, tcp-wrappers, IDSs, honeys, herramientas de auditoría, de integridad, analizadores de vulnerabilidades, etc.). En este punto, un alumno plantea una cuestión general, la diferencia entre un “firewall” y un IDS. En un mundo empresarial en el que la tendencia es a ir con una careta de "supercrack" de la informática, y en el que en demasiadas ocasiones vender la moto se valora mucho más que un trabajo bien hecho, el que alguien plantee cualquier cuestión que le pueda surgir, sea de la naturaleza que sea, es muy de agradecer. La curiosidad y ganas de aprender es la principal característica que todos debemos tener para no terminar por convertirnos en “zombies”. Sobre la cuestión planteada, se analizan sus características básicas y diferencias, además de la necesidad de que trabajen de forma conjunta y colaborativa.

En cuanto a la formación que todo profesional debe seguir a lo largo de toda su existencia, es bastante lamentable asisitir a cursos de empresa, repletos de profesionales, y comprobar la forma en la que muchos de ellos se enfrentan a sus complejos; o se limitan a callar, y por lo tanto pierden la característica natural de la curiosidad, del aprendizaje, o por el contrario, se dedican a hacer intervenciones orientadas a tratar de demostrar lo guapos, altos y superdotados que son, como un mecanismo para tapar sus miedos y complejos. Afortunadamente también existen profesionales con una constante curiosidad por la tecnología, con ganas de "saber" y "saber hacer", que se enfrentan a los problemas con una gran naturalidad y sentido común. Sin duda alguna, nuestro objetivo principal debe ser el llegar a ser uno de ellos. Y recuerda que este camino no es fácil, y aunque en algún momento nos podamos desviar de la senda hacia el "lado oscuro", no dudar nunca en volver a ella lo antes posible.

La segunda parte de la clase se centra en el reconocimiento de sistemas operativos, iniciando la andadura por los sistemas prehistóricos de reconocimiento ascii, y continuando por los sistemas basados en los protocolos TCP-IP. El conocimiento de los protocolos utilizados por nuestros sistemas, y la forma en la que organizan los datos, es fundamental para poder comprender muchos de los temas tratados. En este punto, utilizamos unos minutos para analizar el protocolo TCP, la forma en la que se establecen y cierran los conexiones y, en general, el funcionamiento de sus 6 flags (URG, ACK, PSK, RST, SYN, FIN), utilizados en algunos métodos, hoy en día clásicos, de análisis. También se estudia el protocolo TCP, su gestión de errores, congestión y flujo, así como los distintos campos de la cabecera de un paquete TCP. Finalmente se introducen las técnicas clásicas de análisis basada en los “flags” TCP, valores de opciones TCP, tamaño de ventana, etc. Para una amplia relación de métodos de análisis http://nmap.org/book/osdetect.html