martes, 30 de septiembre de 2014

Comienzan los premios bitacoras. GO GO GO !!!

El rubio y la rubia, el moreno y la morena, más de un calvo... comienza este año la carrera de popularidad de los premios Bitácoras 2014 !!!


Por si no lo sabias, Bitácoras RTVE convoca todos los años unos premios a la comunidad blogger en distintas modalidades, desde recetas de cocina, viajes, tecnología, arte, y desde unos años, y por suerte, Seguridad informática.

El proceso consiste en nominar hasta 5 blogs por categoría, previo login con Facebook o Twitter.

Durante todos los años de vida de Inseguros he aparecido en la lista, por lo que realmente sirvieron las clases a mi madre para que aprendiera a votar. Suelo andar en la posición 20-30, lo que indica que tengo mucho que aprender aún de la comunidad de bloggers-hackers de habla hispana.

Suele haber mas de uno "queme" con la famosa lista. Algunos blogs no son de seguridad, otros son de empresas, otros son demasiado buenos, otros son demasiado malos, pero me parece una iniciativa interesante. Al menos todos los años descubro blogs que no conocía y adquiero una nueva fuente de conocimiento. En la mayoría de los casos, coincido con los maestros que regentan esas bibliotecas online. Los cursos de formación son muy caros y muchos los imparten gratis !!!

El día que llegue al número uno, que pienso hacerlo, hablaré con Chuck Norris para que elimine cualquier rastro de actividad hackers, estáis advertidos.


Si te apetece votarme, y he puesto bien el botón, gracias !!!
  
Votar en los Premios Bitacoras.com

miércoles, 24 de septiembre de 2014

OSSIM 19. El poder de la correlación. ejemplo iptables denial of services

SERIE OSSIM. (1234567 , 89 101112 1314.,15, 16 ,17 18)
En el artículo de hoy vamos a trabajar con la correlación, el motor de inteligencia de OSSIM.

Hemos visto muchos usos de OSSIM relacionados con la seguridad, pero momento no deja de ser un Syslog centralizado, con una interface gráfica, y una serie de herramientas integradas en una distribución.

El mundo SIEM ( Gestión de eventos de la seguridad de la información) es toda una disciplina dentro de la seguridad, al igual que el pentesting, reversing, forensic etc. Esta es la opinión de la gente de Gartner sobre el software SIEM para 2014.


Cuando alguien se inicia en este mundo suele empezar con la instalación de una herramienta de logs centralizada en la que observar lo que pasa en su entorno. El principal reto es discriminar los logs de información, identificando cuales son relativos a la seguridad, o la seguridad que yo necesito.

Vamos a poner un ejemplo gráfico.


Hay eventos de seguridad, hay logs, es gráfico, pero es un logs de 3 minutos, filtrado por las opciones que me deja el front-end (log-analyzer). Como encontrar un incidente de seguridad más o menos complejo, en un log de 300.000 líneas, para un solo día? Ahí es donde podemos usar el motor de inteligencia de OSSIM.

Vamos a trabajar con un supuesto de iptables.

Cuando ejecutamos una regla en iptables tenemos la opción de indicar que haga log, creamos dos líneas una para el drop y otra para el log, en orden inverso xD ( si primero bloqueas, no llega al log).

Yo tengo activado en OSSIM el PLUGIN que parsea los logs de iptables, que los "entiende", sin tener que hacer uno a medida con regular expressións.

Cada vez que iptables bloquea un paquete de una ip por la coincidencia de una regla, crea un log que visualizo en OSSIM.


Esto es mucha información, en unos segundos se nos va a llenar la lista de este evento. El ser humano tiene la capacidad de adaptación, por lo que el segundo día, no haces NADA con los logs, los borras, buscando el log mágico que te de toda la información a un click... Igual que con las alertas de Nagios mal configuradas, el servicio de correo al final es un simple "heart beat" del sistema, si llevas una tarde sin alertas de Nagios es que Nagios está roto, no que todo va bien :-).

En el tercer artículo la serie hablábamos de crear una política para incluir los eventos que no nos interesan, o que nos proporcionan poca información, para ocultarlos en el sistema.

Una de las opciones que indicamos fue la de no mostrar los eventos en el panel SIEM, pero usarlos en la correlación.


Podemos hacer esto con el evento de arriba de Iptables, que no lo muestre, pero lo use con la inteligencia.

Podría haber usado el típico ejemplo de la fuerza bruta: no muestres un login_failed, pero en tres intentos muestra un evento de fuerza bruta. Pero quizás este también os interese.

El propósito de mi correlación es detectar amenazas persistentes o ataques de denegación de servicios distribuidos.

Si tenemos unas reglas de iptables para cortar ataques, como sabemos que seguimos siendo atacados? Con este log de iptables. Recuerda que son ip´s que están baneadas y aún siguen intentando conectar.

Mi correlación va a ser simple, cuando encuentre 50 ocurrencias del log, muestra un evento que diga: Posible DDOS 50 intentos.

**
La idea completa es anidar esta correlación con otra correlación. Tener este evento, y que ocurra en más de 50 ip de origen, es un claro síntoma de un ataque DDOS. Para una ip o dos puede ser un bot tonto o un mal hacker. La idea es asociar una serie de medidas de contención automáticas contra un ataques DDOS.
**

Entramos en la sección de inteligencia y a continuación Directives.


Podemos ver las directivas que vienen con OSSIM, incluso clonarlas para editarlas a nuestro gusto.
Nosotros vamos a por todas y creamos una nueva.


Si leíste la teoría del artículo 10 sobre el cálculo del riesgo, esta parte es obvia.


Elegimos el Data Source del evento, en este caso indicamos que es un evento IPTABLES.
A continuación indicamos el evento que queremos que dispare nuestra correlación. Si no indicamos nada la correlación se iniciaría con cualquier evento de esa fuente.


Ahora podemos granular, afinar los orígenes y destinos del evento. Podemos trabajar como siempre en OSSIM con la información de Assets, o incluso con la variables Home_Net.



Podríamos indicar más opciones como tipo de puerto, usar los campos específicos del evento, usuario y contraseña si el evento manejase esta información, etc. Para esta regla no es necesario.

Ahora añadimos una acción, que será la ejecución de otra regla. En este caso, crearemos la misma regla que anteriormente, pero modificaremos el número de ocurrencias a 50.


Es importante indicar que la Reliability o la posibilidad de que este evento no sea un falso positivo, un valor que al ejecutar la regla del cálculo del riesgo de un valor por encima de 1, o no nos mostrará la información en el SIEM. Seguro que te has leído la teoría :-)

La directiva queda de la siguiente forma:



De esta manera, no tenemos los molestos logs por cada intento de conexión, pero cuando una ip intente 50 veces conectar, nos aparecerá el evento de posible DOS.


/etc/ossim/server/**********************# vim user.xml

<?xml version="1.0" encoding="UTF-8"?>

<directive id="500001" name="syn flood" priority="1">
   <rule type="detector" name="syn flood" from="!HOME_NET" to="HOME_NET" port_from="ANY" port_to="ANY" reliability="0" occurrence="1" plugin_id="1503" plugin_sid="6">
      <rules>
         <rule type="detector" name="SYN FLOOD 50" from="1:SRC_IP" to="1:DST_IP" port_from="ANY" port_to="ANY" reliability="6" occurrence="20" plugin_id="1503" plugin_sid="6"/>
      </rules>
   </rule>
</directive>

En otra entrada realizaremos una directiva o correlación que anide otra correlación, y haremos alguna un poco más compleja usando diferentes data sources e incluso ntop.

**
por ejemplo podríamos crear una directiva que sea:
si encuentra más de un evento snort ( dos por ejemplo) y luego encuentra un login_ok desde la misma ip, alertar de un posible ataque fructuoso.

si encuentra un brute force y luego un login de ese mismo usuario, aunque sea de una ip origen distinta...
**

Espero que os guste, gracias por leerme.

martes, 23 de septiembre de 2014

OSSIM 18. Capturas de red.

En la entrada número 18 de la serie (1234567 , 89 101112 1314.,15, 16 ,17vamos a hablar de las funciones de captura de red de OSSIM.


Desde el blog me suelen hacer preguntas sobre los procesos que escribo en Inseguros, y siempre uso mi experiencia general en la informática, discriminando los errores básicos, hasta llegar a los de alto nivel. Si no haces ping al host no puedes escanearlo !!!.

Usar una tool en linea como tcpdump o gráfica como wireshark es tu decisión, pero debes estar familiarizado con los ficheros pcap de capturas y saber leer entre líneas lo que ocurre en tu red.

Una de las comodidades que nos ofrece OSSIM es poder capturar, visualizar o descargar capturas de red entre dispositivos. Muy útil para la parte de configuración de OSSIM, pero realmente útil a la hora de detectar un incidente de seguridad, mediante los eventos, y poder ampliar la información mediante la captura de datos y posterior análisis.

Desde la versión Free ( no el USM de Alient Vault) no he podido vincular la captura de red teniendo como desencadenante un evento. Solo he podido capturar manualmente, pero no está nada mal.

Las teclas del piano son tan sencillas como click, click, click.


Es muy cómodo poder filtrar la captura desde origen y destino.


Podemos descargar el fichero o visualizarlo in situ.


Espero que os sirva de ayuda, gracias por leerme !!!

Recuerda que puedes buscar entre mis libros de hacking en español en en recopilatorio de libros sobre hacking 

jueves, 18 de septiembre de 2014

Si odias Linux Úsalo !!! Mis comandos para novatos.

Odio Linux !! No me gusta, a veces no llego a comprender muchas cosas.
Odio Windows !! A veces no llego a comprender muchas cosas.
Odio Vmware !!! A veces comprendo cosas.

Así podría seguir hasta el infinito. Tampoco me gusta trabajar después de comer.

A lo largo de mi vida he tenido varias épocas en las que he querido "acercarme" al mundo del hacking y la seguridad. Soy un apasionado de la informática, de la administración de los sistemas, y de paso la seguridad, pero muy de paso.

Mi primer experiencia con la seguridad sería por el 1996 o así. Era la época de Arrakis, Jetcv e
infovia. No recuerdo muchas más.
Empecé a leer los e-zines del momento, a moverme por los distintos canales de irc, hasta que me echaban xD. Con unos módulos para Mirc podías hackear al vecino (en los canales de IRC de "España" había 50 personas).


Tengo una anécdota curiosa sobre esta época. Tenía 15 años. Internet no era como ahora, se cortaba xD. El concepto de nube no estaba extendido. Esto para mi significaba una cosa, DESCARGAR todo el material que podía, por si "se rompía Internet", por si tiraban la web o cualquier cosa esperada de algo que no puedes tocar, ni oler y apenas comprender xD.
Pasé un mes recopilando información de hacking de todos los recursos que me llegaban. Se me ocurrió crearme un fichero de texto de unas 1.000 páginas para que mi señor padre lo imprimiera en su empresa, y así poder leer y estudiar en detalle desde los RFC más populares hasta la creación de virus, pasando por las famosas Blue Box para llamar gratís y poder conectarte a la red. Recuerdo que en aquella época el movimiento reivindicativo en la red era la tarifa plana. Timofónica sonaba en todo el ciberespacio español y los recursos sobre su manipulación y hacking proliferaban.

Llego un día y le di a mi padre el fichero para hacer un uso desonesto de los recursos de impresión de su empresa, y al hombre le dio por ver un poco de que se trataba. Llego a casa y no me trajo el libro, me dio una yema ( no de huevo) y me dijo : Tu estás loco !!.


Mi padre trabajaba en Telefónica :-)

Aparte de la anécdota que me ha parecido curiosa comentar, sigo con el principio.

Aparte de la denegación de servicio que hizo mi padre, en muchas ocasiones el no conocer Linux ha sido para mi una barrera en el área de la seguridad. Si eres como yo, que te gusta Windows y no controlas mucho Linux, seguro que habrás caido muchas veces en la frustración de querer seguir algún manual o proceso, y a ver tenido que dejarlo por no conseguir "instalar un paquete" o cualquier problema relacionado con la tecnología linux subyacente, y no con el propósito del manual.

Es inevitable tener que conocer un poco el ecosistema de nuestras redes, aunque sea para una administración puntual, o para tener mas referencia de precios, maneras de trabajar, rendimientos etc.

Y dicho esto, os voy a comentar algunos comandos linux BASICOS que seguro te ayudan si eres un administrador Windows que tiene que trabajar con pequeños sistemas Linux.

Espero que os gusten.
  • Uptime. El comando básico para saber el tiempo que el equipo lleva encendido, y la carga media de la CPU en intervalos de 1, 3, y 15 minutos. Mas información aquí.
  • Top . Podríamos decir que es el "administrador de tareas" de Windows. En la salida del comando podemos ver la carga de cpu y ram de los procesos ejecutados, así como su PID. Mas info aquí.
  • IOStat. Un breve resumen de las estadísticas de input/output de disco. Mas información aquí.
  • SYSSTAT. Es un conjunto de script orientados a la monitorización. Se instala sencillamente en la mayoría de distro. bien sea con apt-get, yum o similares. Suele estar en los repos. oficiales.
    • Comando SAR. Estadística un poco avanzada sobre CPU.
    • Comando SAR -r. Estadística para memoria.
    • Comando SAR -b. Estadística para el trabajo de disco.
  • Initctl -list. Comando para listar los comando ejecutados como script´s en el inicio del sistema.
  • Fdisk -l. Comando para los parámetros básicos de los discos físicos.
  • DF -h. Comando para ver el estado de las particiones y puntos de montaje.
  • Watch -n segundos "comando". Si quieres ejecutar un comando cada cierto tiempo y ver su salida. Por ejemplo. watch -n 5 "netstat -n".
  • Netstat. Misma herramienta que en Windows.
    • Puertos a la escucha: netstat -lnp.
    • Cuenta el número de conexiones de ip del tipo indicado. netstat -anp | grep 'TIME_WAIT' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
    • Cuenta el número de conexiones según el estado. netstat -an | awk '/tcp/ {print $6}' | sort | uniq -c
  • Ethtool "nic". Las propiedades básicas de un adaptador de red concreto. La última línea te indica si el cable está conectado :-) .
  • Ifconfig. Propiedades TCP de los adaptadores. 
  • Route -n. Lista de rutas estáticas.
  • Nslookup dirección. Funciona el DNS?
  • Iptables -L -n. Lista las reglas en iptables sin resolver ip-nombre. Más rápido.
  • Nload. Script para monitorizar el ancho de banda en tiempo real y estaísticas. Requiere instalación previa. Suele estar en los repos. oficiales o compilando.
  • TCPDUMP -n. Comando para capturar paquetes. Puedes ejecutarlo para ip origen, destino, puertos y demás. Muy útil para comprobar comunicaciones. Mas info. aquí.
  • ps -e |grep "cadena a buscar". Buscar procesos en ejecución con el nombre "cadena".
  • grep cadena ruta. Buscar una cadena en un fichero sin necesidad de entrar. Útil para los logs.
  • tail -f ruta. Muestra en tiempo real un fichero de texto, casi siempre.
  • continuará...

Mis RSS, libros, recursos, post al respecto sobre el Aprendizaje de seguridad y sistemas.

En Inseguros he hablado muchas veces de mi punto de vista sobre la seguridad y sobre su aprendizaje.

Los post que más visitan tienen en este blog, quitando las de mi mama, suelen ser los relacionados con esto, con el aprendizaje.


Con el propósito de llegar a las 10 visitas al día en Inseguros, os voy a dejar una recopilación de algunos recursos propios y algunos post que hablo sobre la iniciación a la seguridad y los sistemas.

Espero que os gusten.

Te animas a publicar tus favoritos?

Recopilatorio de pentesting castellano. En este recopilatorio se clasifican una serie de artículos sobre seguridad en castellanos. Algunos artículos son mios, y los mejores y la mayoria son de la comunidad de habla hispana. Están todos ordenados por varias fases, desde la recopilación de información hasta el informe final.

Recopilatorio de libros. En este artículo os presento la portada de los últimos libros que caen en mis manos, o que me quiero comprar, que considero atractivos para el área de seguridad, virtualización y sistemas. Podrás encontrar los últimos libros de las versiones actuales. Solo la portada, el título. Si quieres piratear piratea, no obstante, si quieres ser "juacker" y no sabes bajar un libro...
Esta iniciativa sale por mi parte por el cabreo que me produce leer un libro de hacking y que me hablen de Windows Xp, abusos en protocolo Finger, y demás piezas de museo.

Mis RSS. En este Pastebin he pegado mi fichero OPML con mis RSS favoritos en el área de la seguridad. Puedes bajarlo a un fichero e importarlo en tu gestor de noticias. Si quieres recorrerlo "a mano" buscan las líneas http, pues tu mismo.

Consejos y reflexiones sobre el aprendizaje en seguridad.

A estudiar !!!!



viernes, 12 de septiembre de 2014

DDOS como actuar ante un SYN FLOOD en un servidor Linux con Iptables.

Voy a comentaros algunas ideas para ayudaros en el caso de estar sufriendo un ataque de denegación de servicio sin estar preparados para ello !! xD

Lo primero que debe ocurrir es darnos cuenta de que estamos sufriendo un ataque de denegación de servicio. Hay varios niveles en los que podemos detectarlo, pero suponemos que tienes un servidor web y deja de funcionar, no puedes acceder por ssh o va muy lento. Digamos que detectas un deterioro en la red.

Lo primero que debemos hacer es detectar el tipo de ataque que estamos sufriendo. Hay muchos tipos de ataques DDOS. Podemos sufrir una denegación de servicio a un servidor DNS por UDP y los famosos ataques de amplificación, podemos sufrir un SYN FLOOD, etc.

Podemos acceder a nuestro server y tirar un simple netstat -n |more para ver las conexiones en nuestro sistema. No es muy elegante, pero estamos hablando de que tienes un problema, y no tienes una solución !!!.

tcp        0      0 ****ip destino****              190.229.110.15:63027        SYN_RECV
tcp        0      0 ****ip destino****              186.56.20.157:28904         SYN_RECV
tcp        0      0 ****ip destino****              190.229.110.15:61311        SYN_RECV
tcp        0      0 ****ip destino****              190.229.110.15:61516        SYN_RECV
tcp        0      0 ****ip destino****              190.224.191.188:4192        SYN_RECV
tcp        0      0 ****ip destino****              190.229.110.15:61147        SYN_RECV
tcp        0      0 ****ip destino****              190.224.191.188:3231        SYN_RECV
tcp        0      0 ****ip destino****              117.41.182.188:56738        SYN_RECV
tcp        0      0 ****ip destino****              81.39.49.188:53471          SYN_RECV
tcp        0      0 ****ip destino****              190.224.191.188:3153        SYN_RECV
tcp        0      0 ****ip destino****              189.128.237.238:49746       SYN_RECV
tcp        0      0 ****ip destino****              190.229.110.15:62547        SYN_RECV
tcp        0      0 ****ip destino****              190.229.110.15:62271        SYN_RECV
tcp        0      0 ****ip destino****              109.185.116.199:58821       SYN_RECV
tcp        0      0 ****ip destino****              190.224.191.188:2888        SYN_RECV
tcp        0      0 ****ip destino****              190.16.76.182:64740         SYN_RECV
tcp        0      0 ****ip destino****              190.16.76.182:64006         SYN_RECV
tcp        0      0 ****ip destino****              190.16.76.182:63225         SYN_RECV
tcp        0      0 ****ip destino****              190.229.110.15:62272        SYN_RECV
tcp        0      0 ****ip destino****              190.16.76.182:65325         SYN_RECV

Al parecer estamos sufriendo un SYN FLOOD, por el número tan alto de conexiones SYN recibidas.

Podemos contar el número de conexiones por ip de esta manera:

netstat -anp |grep 'SYN_RECV' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

En el caso de sufrir otro tipo de ataque puedes cambiar SYN_RECV por TIME_WAIT o cualquier otro estado que detectes numeroso.
Con la salida del comando podemos ver que ip´s son las que más conexiones están haciendo de ese tipo.

Podemos tomar alguna ip y geolocalizarla con alguna página que ofrezca este servicio, como pueda ser esta.

De esta manera, con unas cuantas ip podemos saber el origen principal del ataque de denegación de servicio.

Ahora es el turno de banear en Iptables el pais entero :-).

Este script baneará las ip´s clasificadas por país de http://www.ipdeny.com/ipblocks/data/countries
Realiza el mismo proceso varias veces, editando el script antes de ejecutarlo, y añadiendo las siglas de los países que detectas están produciendo el ataque.

Si quieres tenerlo preparado puedes descargar el script, hacerlo ejecutable (chmod +X nombre.fichero).
Con estas medidas no puedo garantizar que pares el ataque, pero si consigues fitrar el tráfico hacia tu servidor, descartando el tráfico de países que no te van a comprar nada ( o visitar tu web), conseguirás mitigarlo en gran medida. Salvo si tu comercio está orientado hacia China, Rusia, etc xD.

Existen varias medidas que podemos implementar para proteger nuestros servidores de ataques DDOS, pero creo que eso será motivo de otro post mas profundo.

Espero que os sirva este BOTÓN DEL PANICO y que nunca tengáis que usarlo.

Gracias por leerme.

Recuerda que puedes buscar entre mis libros de hacking en español en en recopilatorio de libros sobre hacking 


Aprendiendo seguridad

Amigos de Inseguros. Con la llegada de septiembre se acerca la época en la qué muchos jóvenes, o no tanto, deciden sus planes de estudio para el año interesandose por la seguridad.


En muchos blogs del sector podemos leer artículos muy interesantes sobre caminos para llegar a ser un profesional de la seguridad, vistos desde varias perspectivas.

Como es costumbre en Inseguros, voy a intentar dar unos consejos y mi visión personal de como debería ser un camino sólido en este mundillo.

El primer punto va a ser decir que los compañeros de profesión, por supuesto yo, estamos aún en ese camino de la formación. Todos estamos obligados a estar constantemente estudiando, practicando, aprendiendo, investigando, arreglando, rompiendo y nunca hay fin. No puedes ser futbolista teórico sin jugar partidos, hay que sudar la camiseta !!! Animo !!!.

¿Redes o programación?.¿Pentester o analista de malware? Las dos !! Puedes decantarte por cualquiera de estos dos aspectos base para profundizar sobre un área un poco más concreta. Si te gusta el mundo del Malware sin duda conocer los fundamentos de programación, ensamblador, C, Java... será necesario para poder llegar a ser un profesional. Si te interesa la seguridad desde el punto de vista ofensivo, conocer TCP/IP a fondo es el "idioma" necesario para poder realizar esas intrusiones que tanto deseas...No obstante, ambos conocimientos son necesarios en términos generales para poder evolucionar en la materia.
Por ejemplo, puedes estar haciendo un análisis de un binario infeccioso, y que necesites destripar el comportamiento de red que realice el "bicho", teniendo que conocer el área de redes algo más que en superficie. Si estás realizando una auditoria y necesitas compilar un exploit, modificar un elemento web o realizar un pequeño script en tu consola, necesitas programar.

Otra de las facetas que más me interesa de la seguridad, desde mi punto de vista de sysadmin es la "defensa". Conocer los sistemas defensivos en todas sus capas lo considero un requisito para comprender la "Security". Creo que blogs como este, como 1gbdeinformacion, HighSec, hacking ético, son un punto de partida interesante para los administradores de sistemas que leen a Chema Alonso o a Flu Project, Security By Default, etc y que les encanta la seguridad, pero quizás necesiten alguna guia más para conocer productos, tecnologías, primeros pasos y demás. No todos podemos investigar 0 days, crear herramientas, dar ponencias, etc, pero si que todos deberíamos tener un buen firewall, un ids, una buena política etc.


Formación reglada. He realizado varios cursos de preparación , cursos a distancia, certificaciones y tengo que decir que aunque me parecen interesantes para "demostrar" unos conocimientos, realmente no se aprende mucho mas que si te entrenas por tu cuenta. Hay gente que necesita tener un horario de clase, un material didactico concreto, un profesor... para animarse o centrarse. Perfecto. Yo personalmente suelo cambiar esa dedicación que si tengo, por el ahorro de dinero que supone. The money is the money...
Si te gustan las siglas, pues todo el mundo habla de CISSP, CISM, CISA y similares. En todas te piden contar con una experiencia profesional demostrable...Si quieres iniciarte o aprender no son el camino.
OCSP o CEH si son certificaciones MUY prácticas que se basan en una pequeña teória, y la prueba de concepto asociada, pero requieren de una preparación previa de al menos uno o dos años.

Parece que hoy solo pongo impedimentos :-). Quieres aprender seguridad, vamos a ello.


Lo primero que debes hacer es aprender a preguntar. Imaginas a un ladrón llamandote por teléfono para preguntarte tu pin? Entonces "ponte el gorro de hacker" y piensa como eso, como un hacker. Si cuelgo una referencia de un libro porque me gusta, no me digas que no parece el link de descarga. Si quieres ser "pirata" al menos debes saber buscarte un pdf con google...

Ahora es el turno de preparar tu laboratorio. Configura tu sistema de virtualización favorito para el sistema operativo que uses, sea el que sea !!! La gente que dice que Windows no sirve para el hacking no se mira a sus manos, son ellos los que no saben !!!

Realiza las prácticas o laboratorios que lleguen a tus manos. Puede qué muchos no los vea útiles, pero si estás aprendiendo, todo vale. Quizás hagas una práctica de hacking web que has leido en un blog y no te interese esa vertiente. HAZLA. Lo mismo solo aprendes el paso 56 y el resto es "chino", pero ya has aprendido algo. Con el tiempo y la práctica, pequeños pasos de laboratorios anteriores serán el éxito de futuros laboratorios. Se trata de eso, de adquirir el ritmo, la tendencia, el conocimiento de como funcionan mas o menos las cosas.
Si encuentras alguna área interesante profundiza sobre esa materia. Haz tus propias pruebas, variaciones en los laboratorios. No te quedes con todo lo que lees, cuestionalo todo.

La seguridad no es hacking, y muchas ves el hacking no tiene nada que ver con técnicas de seguridad, por lo que no te centres en el hacking, en la parte "guay" de poner tu cara en una web. Preocúpate por saber como funciona realmente esa web.

Te imaginas el acceso a una consola Windows Powershell por un exploit público, y no saber manejarte en el entorno?

Espero que os hayan gustado estas reflexiones. Gracias por leerme.


OSSIM 17. PCI DDS


Después de varias entradas (1234567 , 89 101112 1314.,15, 16 )sobre el mundo SIEM y OSSIM, en esta ocasión vamos a hablar de una de esas normas relacionadas con la seguridad, y que sospecho que no todo el mundo es conocedor de ella.



PCI DDS: Payment Card Industry Data Security Standard. Norma en castellano.

A resumidas cuentas se trata de una norma internacional para aplicar a TODOS los agentes que intervienen en transacciones comerciales via internet mediante tarjetas de crédito/débito. Resalto TODOS ya que existe la falsa sensación entre la comunidad de que esta norma solo es aplicable si almacenas datos bancarios de clientes (e-commerce) y si usas la típica pasarela de pago de tu banco (tpv virtual) estás exento de aplicarla.

Nada mas lejos de la realidad. Lo que si es cierto es que existen varias niveles o modalidades a aplicar según la categoría de uso en la que te encuentres: no son las mismas medidas de seguridad a aplicar las que debe cumplir un banco, que una tienda online de barrio, pero en ambos casos existe normativa. Algo parecido a los niveles de seguridad de la española LOPD ( Ley Orgánica de protección de datos).

El objetivo de este artículo no es destripar la norma, sino darle un enfoque práctico.

Suelo leer varios blogs de seguridad "organizativa" o "none-tech" que dedican sendos posts a la "seguridad". Suelo ser de los que piensa que un buen responsable de seguridad o CISO debe tener tanto el aspecto técnico como el aspecto organizativo. No deberías ser consultor en seguridad si no sabes lanzar un NMAP, al igual que no deberías ser un CISO si no conces la legislación y normas que nos rodean. Prefiero el segundo caso dado mi pasión por la tecnología.



Tengo que decir sobre esta norma y su respectiva certificación algo que suelo decir para el resto de certificaciones, ya sean tipo ISO o tipo producto ( MCSE, VMWARE, CISCO, etc). Tener la certificación PCI-DDS no te proporciona seguridad, pero tener seguridad si que te proporciona poder optar a la certificación. Quiero decir con esto que lo importante no es la certificación en si, sino el trabajo que subyace para obtenerla. Si el trabajo ha sido pagar a una consultora, osea nulo, no tiene ningún sentido, mas el puro tramite de cumplir unas exigencias de cara a clientes/proveedores.



Entonces por qué habla de esta norma, cuando lo que realmente importa es la seguridad subyacente? Sencillo. Vamos a comentar los 12 aspectos principales que ocupan la PCI -DSS.( via wikipedia)
  • Desarrollar y Mantener una Red Segura
    • Requisito 1: Instalar y mantener una configuración de cortafuegos para proteger los datos de los propietarios de tarjetas.
    • Requisito 2: No usar contraseñas del sistema y otros parámetros de seguridad predeterminados provistos por los proveedores.
  • Proteger los Datos de los propietarios de tarjetas.
    • Requisito 3: Proteger los datos almacenados de los propietarios de tarjetas.
    • Requisito 4: Cifrar los datos de los propietarios de tarjetas e información confidencial transmitida a través de redes públicas abiertas.
  • Mantener un Programa de Gestión de Vulnerabilidades
    • Requisito 5: Usar y actualizar regularmente un software antivirus.
    • Requisito 6: Desarrollar y mantener sistemas y aplicaciones seguras.
  • Implementar Medidas sólidas de control de acceso
    • Requisito 7: Restringir el acceso a los datos tomando como base la necesidad del funcionario de conocer la información.
    • Requisito 8: Asignar una identificación única a cada persona que tenga acceso a un computador.
    • Requisito 9: Restringir el acceso físico a los datos de los propietarios de tarjetas.
  • Monitorizar y probar regularmente las redes
    • Requisito 10: Rastrear y monitorizar todo el acceso a los recursos de la red y datos de los propietarios de tarjetas.
    • Requisito 11: Probar regularmente los sistemas y procesos de seguridad.
  • Mantener una Política de Seguridad de la Información
    • Requisito 12: Mantener una política que contemple la seguridad de la información
Aunque suelen sonar a las típicas medidas de seguridad de la gente que "speak security" pero no las practican, nada mas lejos de la realidad te pregunto ¿ En tu organización, use tarjetas de crédito o no, implementa TODAS estas medidas?.

Este informe de Forbes con las 6 causas de fallo en las implementaciones de PCI te puede servir de ayuda para aclarar los conceptos mentales que empiezas a barajar :-)

Puede ser una buena ayuda para el departamento IT estas norma para impulsar la compra de material o servicios relacionados con la seguridad. Que tu jefe no piense que quieres un firewall para jugar o para llevarte una comisión.

Bueno, después de esta mini introducción vamos a ver que relación guarda con OSSIM.

La consola SIEM de OSSIM nos permite realizar varias de las acciones requeridas en la norma PCI DDS pero de momento, solo en versión 2.0. La actual norma versiona 3.0. Sospecho que la versión de pago AlienVault USM si adapta los requisitos a la norma 3.



También podríamos validar ciertos aspectos de la ISO 27001 pero le tengo manía. Por varias razones, pero principalmente por dos: por cobrar por descargar la norma y por la cantidad de empresas que venden seguridad cuando venden papeles.

Principalmente OSSIM lo que hace es comprobar el manejo de cada una de las áreas en base a los eventos que tiene. Por ejemplo, si tiene eventos de nuevo host descubierto porque tenemos Nagios activado y buscando cada cierto tiempo, entiende que cumplimos esa norma.
En el caso de que nos aparezca un campo sin comprobar, podemos vincularle un evento concreto para que sepa que cumplimos con esa parte de la norma gracias a esos eventos que añadimos.

Recuerda que esto es una guia orientativa del estado de tu cumplimiento PCI DDS, no es una herramienta completa que te "regale" la norma. Lo que si es cierto es que contamos con alugnos Reports preconfigurados válidos para apoyar la norma.



Podemos aglutinar las 12 grandes normas PCI en 6 respecto a OSSIM:


  • Gestión de activos. Mediante las opciones de ASSETS e INVENTORY de OSSIM podemos descubrir, identificar y monitorizar nuestros activos, algo básico en todo esto. Debemos saber que tenemos que asegurar, pero de manera dinámica, no basta con un inventario "estático" de hace un año, sin actualizar.
  • Análisis de vulnerabilidades. Mediante la integración de Openvas en OSSIM podemos programar auditorias de vulnarabilidades tal y como indica la norma. Hago ENFASIS en que no es lo mismo un Vuln Scan. que un Pen Test que luego me critcaís por ahí xD. Lo vimos aquí y aquí.
  • Detección de amenazas. Mediante el uso de sistemas HIDS/IDS y la monitorización de ficheros podemos realizar este punto perfectamente con OSSIM, como hemos visto en los artículos de Snort y OSSEC File Integrity.
  • Monitorización. La base de OSSIM es la monitorización de logs, mediante plugins OSSIM o mediante OSSEC. PCI DDS tmbien hace hincapié en la monitorización de servicios/aplicaciones y flujo de red.
  • Inteligencia. El motor de inteligencia OSSIM proporciona correlación de eventos de distintas fuentes para proporcionar algo más que visionado de logs, inteligencia. El típico ejemplo: si detectas intentos de login a un servidor SSH ( log ssh) y se produce una ejecución de comandos elevada desde la misma ip ( log kernel) y se abre un puerto ( log de servicios ) vistos en conjunto es una alarma, visto por separado son simples logs de actividad.
  • Revisión. La consola de OSSIM nos permite revisar todos los puntos anteriores e implementar medidas para la solución.
No todo es oro lo que reduce, y debemos ser conocedores de la norma en profundidad para poder realizar o aprovechar sus beneficios.

Un ejemplo claro de la norma: 

10.7 Conserve el historial de pistas de auditorías durante, al menos, un año,con un mínimo de disponibilidad para análisis de tres meses (por ejemplo, en línea, archivados o recuperables para la realización de copias de seguridad).






La versión gratuita de AlienVault, OSSIM solo permite guardar XXX registros, por lo que debemos jugar con una estrategia de consolidación de logs mediante el reenvio de información hacia un syslog pasivo. En otro post os explicaré como podéis realizarlo mediante Tablas Sql y mediante ejecución de scripts.

Un informe cualquiera de fugas de información, como pueda ser este de Verizon indica que:

  1. 79% de las víctimas fue por razones oportunistas. Esto quiere decir que no es lo mismo hacer un google hack y buscar servidores "facilones" que buscar la manera de entrar en un sistema concreto. Esta parte tiene mucho de concienciación.
  2. 96% de los ataques no fueron de alto valor técnico. Es decir, buscar una sql inyection en un portal para sacar la información no tiene mucho componente técnico, por lo que lo puede llevar a cabo mucha más gente. Ese 4% es el que preocupa :-).
  3. 94% de los datos provenía de servidores, y no de malas prácticas por parte de usuarios ( client side).
  4. 85% de los incidentes fueron detectados pasadas semanas, es decir, cuando el daño ya está hecho y tenemos menos medidas para mitigarlo.
  5. 92% de los incidentes fue descubierto por terceras partes, es decir cuando aparecen en un foro, en un defacement o un servicio de monitorización externo. Este punto hace evidente la necesidad de saber el estado de tus sistemas, y no confiar en el appliance de 1000$ o 10000$ sino en una estrategia global que contemple todos los vectores de ataque.
  6. 97% de los incidentes podrían ser evitados con medidas sencillas. Tirón de orejas para el CISO !!!
  7. 96% de las víctimas de incidentes NO tenían una política real de cumplimiento PCI. Insisto en el comienzo, tenerla no garantiza nada, pero este dato es muy revelador.
Espero que os hayan gustado estas reflexiones sobre PCI y alguno de los detalles comentados en OSSIM. Gracias por leerme !!!

Quieres ver un video?

Recuerda que puedes buscar entre mis libros de hacking en español en en recopilatorio de libros sobre hacking 


miércoles, 10 de septiembre de 2014

OSSIM 16. Update Openvas y conexión con servidor externo via OMP.

En el episodio de OSSIM de hoy vamos a realizar algunas operaciones cotidianas en el mantenimiento de OPENVAS y resolución de problemas básicos, pero solo aspectos relativos a OSSIM.
También vamos a conectar un OPENVAS existente en otro servidor a nuestra consola OSSIM.

Lo primero que vamos a hacer es actualizar la base de datos de firmas o plugins por el interfaz gráfico. Recuerda tener siempre actualizado tu "hacker-kmow-how" para las amenazas recientes.


Otra manera de realizar la actualización de firmas de Openvas es mediante la consola, siguiendo estas sencillas instrucciones.




Si estás acostumbrado a usar OPENVAS en cualquiera otra distribución sabrás que la base de datos de firmas se suele corromper, sobre todo tras actualizaciones ( de Openvas o el propio OSSIM).
La solución es sencilla, regenerarla.

openvasmd --rebuild
/etc/init.d/openvas-scanner restart
/etc/init.d/openvas-manager restart
/etc/init.d/openvas-administrator restart

Como es lógico, en este punto del artículo estás pensando ¿ via Cron? por supuesto caballero/Señora !!!
openvas-nvt-sync --wget
/etc/init.d/openvas-scanner restart
perl /usr/share/ossim/scripts/vulnmeter/updateplugins.pl update

Lo hagas de la manera que lo hagas, dedícale un buen rato a la tarea, quizás por encima de los 30 minutos.

Una de las cuestiones que se presentan con Openvas OSSIM es la configuración y personalización.
Puede que en tu despliegue tengas un servidor OPENVAS previamente configurado con usuarios y políticas y quieras integrarlo en OSSIM, simplemente para tener la información de seguridad centralizada, SIEM !!!!

Lo primero que haremos es desde OSSIM comprobar que tenemos conectividad con nuestro servidor OPENVAS mediante el comando OMP.

omp -h servidor -p 9390 ( puedes omitir puerto) -u usuario -w clave -g ( man omp da una lista completa de comandos. con g listamos los tipos de scans configurados).

Una vez detectado el problema de firewall/nat/unicornios en OSSIM agregamos un nuevo sensor. Sería el mismo procedimiento que efectuaríamos en el caso de instalar un sensor remoto OSSIM ( segunda opción en el menú de instalación del fichero .ISO).


 Es curioso que lo creamos por defecto, pero tenemos que modificarlo para indicarle que va a ser VulnScan.

De esta manera podemos manejar nuestro Openvas Remoto sin tener que recrear toda la configuración existente en OSSIM.

Espero que os sirva de ayuda, gracias por leerme !!!.



lunes, 8 de septiembre de 2014

Recursos GRATIS para estudiar seguridad y obtener certificado.

En la entrada de hoy voy a "promocionar" los servicios de una empresa que casi todos conocemos.
Hablo de Eset.

Una de las compañías pioneras en el mundo de la detección de virus.

Eset pone a disposición de la comunidad una seria de cursos relacionados con la seguridad, en los cuales podemos iniciarnos en las materias propuestas, y realizar un curso tipo Moodle en el que al finalizar exitosamente el contenido y examen nos harán poseedores de un magnifico certificado acreditativo.

Desde Eset Latinoamérica podemos realizar los siguientes cursos:

Introducción a Python
ESET Mobile Security para Android
Especialista en Seguridad de la Información
Especialista en Seguridad de la Información Corporativa
Seguridad en dispositivos móviles
Navegación segura
Seguridad para PyMEs
Curso de Backup
Seguridad en las transacciones comerciales en línea
Cómo armar una red hogareña segura
Uso seguro de medios informáticos


Espero que os gusten los recursos, gracias por leerme.

jueves, 4 de septiembre de 2014

Apache, el amigo de los niños, pero ...cuando te haces mayor?

Apache, una nueva herramienta... que os voy a decir de Apache? Todos sabemos instalarlo, todos sabemos administrar nuestros vhosts y habilitar nuestros módulos, pero... y cuando el webserver es pieza clave para la organización, y procesa cientos, miles de conexiones por hora? Estamos sacando el máximo provecho de nuestros recursos hardware?.

Quiero aclarar que no soy un experto en Apache, es más, ni me gusta !!! Prefiero de calle las nuevas versiones de IIS 8 o Nginx como webserver, pero por casualidades de la vida me ha tocado ir un poco mas allá del apt-get apache.

************************************************************
Microsoft, el malo de la película. Las pantallas azules. Los problemas de seguridad. La falta de consola de scripting...Si, en el 2000, en 2005, en 2010, pero vivimos en 2014, las cosas evolucionan y Microsoft por mucho que no le guste a muchas gente, es referente o por qué no decirlo líder en casi todo lo que hace. En 5 años se ha puesto a la par en virtualización frente a Vmware, y en unos años sobrepasará a los "esx" como solución completa de virtualización de escritorio, servidores y cloud.


Para terminar esta reflexión, cual es el servidor web más instalado ahora mismo?

http://news.netcraft.com/archives/2014/07/31/july-2014-web-server-survey.html
**************************************************************************

Un clásico en la monitorización de Apache es Mod Status. Sencillo de configurar nos presenta una web con información importante en tiempo real de los procesos e hilos abiertos por Apache.



Si, el google dorks es este xD: google: inurl:"server-status" site:.es

Con este otro comando lanzamos un número de conexiones contra un objetivo, indicándole el número máximo de concurrentes.

-n requests     Number of requests to perform
    -c concurrency  Number of multiple requests to make
    -t timelimit    Seconds to max. wait for responses
    -b windowsize   Size of TCP send/receive buffer, in bytes
    -p postfile     File containing data to POST. Remember also to set -T
    -u putfile      File containing data to PUT. Remember also to set -T
    -T content-type Content-type header for POSTing, eg.
                    'application/x-www-form-urlencoded'
                    Default is 'text/plain'
    -v verbosity    How much troubleshooting info to print
    -w              Print out results in HTML tables
    -i              Use HEAD instead of GET
    -x attributes   String to insert as table attributes
    -y attributes   String to insert as tr attributes
    -z attributes   String to insert as td or th attributes
    -C attribute    Add cookie, eg. 'Apache=1234. (repeatable)
    -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
                    Inserted after all normal header lines. (repeatable)
    -A attribute    Add Basic WWW Authentication, the attributes
                    are a colon separated username and password.
    -P attribute    Add Basic Proxy Authentication, the attributes
                    are a colon separated username and password.
    -X proxy:port   Proxyserver and port number to use
    -V              Print version number and exit
    -k              Use HTTP KeepAlive feature
    -d              Do not show percentiles served table.
    -S              Do not show confidence estimators and warnings.
    -g filename     Output collected data to gnuplot format file.
    -e filename     Output CSV file with percentages served
    -r              Don't exit on socket receive errors.
    -h              Display usage information (this message)
    -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
    -f protocol     Specify SSL/TLS protocol (SSL2, SSL3, TLS1, or ALL)


ab -n 500 -c 200 http://url:80/index.html

De esta manera podemos monitorizar un poco el comportamiento de nuestro webserver ante la carga esperada. Esta prueba no es real del todo ya que un webserver expuesto a Internet, con cientos/miles de conexiones de distintas ubicaciones se comporta de distinta manera. Este simple comando nos puede servir para realizar un DOS sobre un web server mal configurado xD.

La salida del comando podría ser esta:


Server Software:        ***********
Server Hostname:        **********
Server Port:            80

Document Path:          /index.php
Document Length:        54819 bytes

Concurrency Level:      100
Time taken for tests:   6.333 seconds
Complete requests:      500
Failed requests:        0
Write errors:           0
Non-2xx responses:      502
Total transferred:      27618082 bytes
HTML transferred:       27436860 bytes
Requests per second:    78.95 [#/sec] (mean)
Time per request:       1266.636 [ms] (mean)
Time per request:       12.666 [ms] (mean, across all concurrent requests)
Transfer rate:          4258.65 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       38   42   3.1     41      55
Processing:   342  680 589.7    519    4826
Waiting:      171  500 587.6    339    4660
Total:        382  722 589.7    559    4867

Percentage of the requests served within a certain time (ms)
  50%    559
  66%    657
  75%    740
  80%    767
  90%    909
  95%   1867
  98%   3534
  99%   4111
 100%   4867 (longest request)

Aunque los datos son reveladores, podemos leer los detalles de la salida aquí mismo.
Por curiosidad prueba a deshabilitar el EngineMode en Mod security, si lo usas, y haz el mismo test. Podrás ver al impacto sobre el servidor, alrededor del 1%.

Para realizar esta aproximación debemos hacerla en varios momentos del día, para intentar medir las respuestas del server en distintos "workload".

Podría ser interesante lanzar el test después de usar el siguiente comando, para tener una base de referencia de la actividad "real" del servidor, no podemos esperar resultados homogéneos si lanzamos el test en máxima carga de producción, o en horas que apenas hay actividad.

netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1

Vemos el número de procesos por cada ip conectada al puerto 80.

Otro comando MUY útil para calcular la carga media de procesos de Apache. No es lo mismo una petición de contenido estático tipo imágen, o un script que realizar operaciones criptográficas.

ps -ylC httpd | awk '{x += $8;y += 1} END {print "Apache Memory Usage (MB): "x/1024; print "Average Proccess Size (MB): "x/((y-1)*1024)}'

Con este comando vamos a establecer una base para acercarnos a la configuración óptima de nuestro webserver. Nos indica la suma de todos los procesos httpd y la media de cada uno. Válido para todos los procesos, interesante comando.

La optimización de Apache es algo complejo que se me escapa de las manos, pero puedes leer recomendaciones de los experos sobre el uso del módulo prefork y la configuración óptima.
Para no reinventar la rueda os recomiendo este artículo.

Como os decía, el propósito de este post no es dar una Master Class de Apache Tunning, porque como en todo, hay que ser un poco experto en el tema, pero espero que os sirva para daros una aproximación sobre como medir el rendimiento y qué cosas mirar.

Gracias por leerme !!!