lunes, 21 de diciembre de 2009

Como aprovechar una vulnerabilidad con core impact 8

Que tal , muchos se preguntaran que herramientas son las mas adecuadas para realizar un pen test, la mejor herramienta es la que mejor dominamos, en mi experiencia, una de las herramientas mas poderosas es nmap, pero existen herramientas mas sofisticadas y completas que hacen el trabajo por ti, el dia de hoy comparto con ud, un video de como comprometer un equipo con windows  vista .  es patrocinado por http://www.theacademypro.com



sábado, 19 de diciembre de 2009

ISO 27000

Que tal el día de hoy compartiré con ud el documento en espanol del iso 27000  patrocinado por Javier Cao Avellaneda, un Ing. certificado en CISSP. una de las certificaciones mas reconocidas en seguridad de información a nivel mundial .

iso-27001

iso-27002

También anexo los documentos en ingles  que son de gran utilidad al implementar el standard 27000

http://www.iso27001security.com/

viernes, 18 de diciembre de 2009

Due Care and Due Diligence

Comparto con ud un vídeo de la explicación de términos de seguridad de información, explicados por shon harris , autora de múltiples libros y documentos relacionados con seguridad de información y gobierno de las tecnologías.


viernes, 11 de diciembre de 2009

Probando la efectividad de nuestro firewall

Que es Ftester ?

Ftester es una herramienta diseñada para probar las politicas de filtrado de un firewall, y las capacidades de deteccion de los IDS.

La aplicacion consiste en 2 Scripts escritos en perl, un inyector de paquetes (ftest) y el sniffer de escucha (ftestd).

El primer script inyecta paquetes personalizados definidos en el archivo de configuración (ftest.conf) con una firma de ataque, mientras que el sniffer escucha los paquetes marcados. Ambos scripts escriben los logs de la misma manada usando la misma forma. al terminar el test se corre un diff en los dos archivos producidos ( ftest.log y ftestd.log) y muestra que paquetes alcanzaron el objetivo y que filtros fueron correctamente filtrados, estos scripts deben ser ejecutados en ambos lados de firewall.
La prueba de stateful inpection es realizada con una "conexion spoofing", para anizlar los resultados se llama una aplicación llamada freport que esta disponible en la aplicación.

La prueba de IDS piede ser realizada solo con ftest o con ayuda de ftestd para realizar pruebas de statefull inspection IDS, ftest tiene la capacidad de hacer uso de tecnicas de evacion de IDS
. En ves de usar la configuacion original tambien se puede procesar usando las reglas de snort.

Caracteristicas:


  • Pruebas de firewall
  • Pruebas de IDS
  • Spoofing
  • Simulación de stateful inspecition para IDS y Firewall
  • tecnicas de avacion de IDS.


Requerimientos :

Se requieren los siguientes modulos Net::RawIP, Net::Pcap ,Net::PcapUtils, NetPacket

para instalar los modulos hacermos uso de CPAN

# perl -MCPAN -e "install Net::RawIP"

# perl -MCPAN -e "install Net::Pcap"

# perl -MCPAN -e "install Net::PcapUtils"

# perl -MCPAN -e "install NetPacket"


Descargamos la aplicacion

# wget http://dev.inversepath.com/ftester/ftester-1.0.tar.gz

podemos ver que nuevas versiones existen en la siguiente liga http://dev.inversepath.com/ftester

descompactamos el paquete

# tar -xzf ftester-1.0.tar.gz


teniendo descomprimido el archivo, generamos el archivo ftest.conf . la regla de definicion es la sigiente

===============================================

Direccion_fuente:Puerto:Destion:Puerto:Flag:Protocolo:Tipo_de_servicio

===============================================

para realizar una regla debemos conocer el tipo de ataque podemos ejecutar contra nuestro firella, es recomendable documentarse de los ataques mas comunes de actualidad .

ejemplo sencillo

=============================================
# pueba con PUSH y ACK
192.168.0.10:20:10.1.7.1:1022:AP:TCP:22
# Manda un UDP
192.168.0.10:53:10.1.7.1:53::UDP:0
# manda de un rango de ips una sonda SYN protocolo tcp
192.168.0.1-255:1024:10.1.7.1:22:S:TCP:0
# debemos terminar nuestro archivo con una regla stop_signal
stop_signal=192.168.0.1:666:10.1.7.1:666:S:TCP:0
=============================================


ejecutamos nuestro primer test, levantamos el snifer de escucha

# ./ftestd -i ethX

ejecutamos el script de prueba

# ./ftest -f ftest.conf

y listo .. ud podra disfrutar de mucha información interesante acerca de su firewall, recuerde que un firewall no solo es vulnerable por las reglas que contiene, también es importante hacer pruebas del sistema operativo sobre el cual se corre. Se recomienda ejecutar estas pruebas cada ves que se modifique el firewall.

jueves, 10 de diciembre de 2009

Encuesta lationamericana de Seguridad de Informacion

que tal , hoy les comparto un dato interesante derivado de una encuesta a diversas indusrias ..  anexo la liga


http://www.csirt-antel.com.uy/userfiles/I-ELSI09-JJCM-Uniandes.pdf

martes, 8 de diciembre de 2009

Debilidades en un Web server

Cuestiones de seguridad relacionadas con aplicaciones web suelen ser muy reducidas y poco tratadas. De hecho, si se enfocan directamente fallas en los mecanismos de validación de autenticacion del usuario, se pueden eliminar la mayoría de las debilidades en un aplicación dada. Endurecer un poco la logia de la aplicación nos permitirá ofrecer una aplicación web mas segura. sera todo lo que necesitamos ?.

Pero que me dicen acerca del servidor donde esta hospedada su aplicacion ?, alguna ves has realizado pruebas de vulnerabilidades al servidor Web, al sistema operativo o algun software relacionado que pueda ser un blanco para los atacantes ? Si solo te has enfocado en la parte de la aplicación en verificar que solo entren los objets que dicen ser, podría sorprenderte que existe toda una base inestable debajo de tu aplicación que pondrá en jacke la lógica de tu aplicación .

En mi poca experiencia realizando evaluaciones de vulnerabilidades y penetración a aplicaciones Web, hemos encontrado que le 25% de las debilidades son concernientes al sistema operativo y software relacionado con la aplicacion publicada. Muchas de las vulnerabilidades encontradas son consideradas de nivel "medio" o "alto". En este documento mencionare las algunas de las debilidades que pueden provocar problemas como la el acceso a un archivo PROTEGIDO, una denegacion de servicio o aun peor, o un acceso remoto a el host usando un exploid tool como un Metaexploid.


1. Desactualización del software de Web server ( comunmente en apache sobre windows ). Que puede pasar ? . Denegación de servicios, ejecución de comandos, authentication bypass, ejecución de codigo , entre otras.

2. Desactualización del software de tecnologia de seguridad en los servidores como OpenSSL, OpenSSH , etc., los cuales tienen expliots conocidos ( fácilmente encontrados en internet ). Que puede ocurrir ? Denegación de servicios, ejecución de código malicioso, acceso al sistema, entre otos .

3. Vulnerabilidades en el software relacionado con el web server como lo es PHP, ASP, WebDav, ColdFusion, etc., Que puede ocurrir ? Denegacion de servicio, ejecucion de codigo remoto, acceso al prompt, authentication bypass, enumeración de directorios, acceso a los archivos locales, entre otros.

4. Puertos abiertos innecesariamente con pobre configuración como FTP, DNS, Windows Termina,etc. esto puede permitir enumeración de sistema, crack de pasword, acceso a consolas prompt o algun otro tipo de privilegio o acceso.

5. Innecesarios metodos para el protocolo HTTP como CONNECT, DELETE y PUT , esto permite enumeración de Web service, no autorizado HTTP proxying, borrado o agregado de archivos entre otros mas.

6. HTTP proxy abierto, puede provocar acceso no autorizado al servicio provocando la sobrecarga del servidor que puede llevarlo a la denegación de servicios.

7. Mala asignacion de permiso en los directorios ( en mis inicios me ocurrió una muy mala experiencia por descuido, de hay nació mi interés por la seguridad en computo ), esto permita agregar, borrar, enumeracion de directorios y publicar cosas indebidas en el sitio.

8. Debiles sistemas de encriptacion o configuraciones pobres como SSl v2 , esto permitira al atacante interceptar información de formularios, usuarios , passwords etc.

9. Configuración pobre del web server que divulgue la ip interna de nuestro sistema, esto puede desencadenar en una enumeración de la red, un mapeo de la red interna, envió de sondas de exploración, etc.

10. Falta de protección contra mlaware, muchas aplicaciones permiten la carga de archivos a sus sitios, entre ellos malaware vía formas, u otros métodos ( facebook, hi5, son comúnmente usados para dicho propocito, esto permite la propagación de botnets u otras aplicaciones con objetivos específicos.


Las cuatro primeras debilidades en la lista tienen un alto impacto en los web server, interesante no les parece , por eso es importante documentarse correctamente antes de colocar un servicio en producción.

La clave de todo esto es realizar una adecuada configuración y pruebas continuas del estus de nuestro servidor , existen múltiples herramientas que nos pueden ayudar a realizar este tipo de análisis de manera profesional y precisa como lo es Acutinex, QualysGuard , Core Impact, asi mismo existen CD Live que pueden ser utilizados como BackTrack entre otros .. espero les ayude esta pequeña nota .

viernes, 4 de diciembre de 2009

5 vulnerabilidades comunes en linux que debemos tomar encuenta

Frecuentemente me he preguntado acerca de las tipicas vulnerabilidades que busco cuando realizo un análisis de seguridad. Interesante nooo ... pues contrariamente a la creencia popular. Los sistemas linux tienden a ser tan vulnerables como lo puede ser su homologo Windows . sorprendido ???

Las debilidades que he encontrado no son necesariamente fallas en el sistema operativo, pero son debidos al descuido de los administradores de los sitemas. Especificamente, Descuidamos lo relacionado con las instalaciones por defecto, falta de mantenimientos, no hacer pruebas rigurosas con las herramientas adecuadas para descubrir debilidades . haaaaa . mucho trabajo. que pocos podemos llegar a apreciar ...

En particular aqui les muestro las mas comunes vulnerabilidades en linux que he visto .

1. la falta de controlo en la administración de actualizaciones.

Por la creencia popular, cada organizacion tiende a tener sistemas y metodologías para actualizaciones en Windows. Pero para linux las dejan pasar por alto. Por ejemplo, al realizar una evaluación de seguridad en un sistema Red Hat, observamos que falta la actualiza de un parche de seguridad den Samba. Este parche soluciona una debilidad que permite ejecutar codigo de manera remota, que esta totalmente documentada y que puede ser explotada por una herramienta Metasploit gratuita. El resultado es la ejecucion de un comando de manera remota que da completo acceso al sistema, algo que algun usuario malintencionado puede aprovechar sin que nadie lo sepa. Los administradores de los sistemas estaban orgullosos de su administracion de actualizaciones. pero haaa ... se les olvido que tenían un Linux ... suele suceder ( temor o falta de conocimiento).

2. Aplicaciones de terceros desactualizadas .

Otro ambito que se ve afectado por las falta de actualizaciones es, que los softwares de terceros que corremos en nuestros sistemas son obsoletos. aplicaciones tales como Apache, PHP, MySQL, OpenSSL, VNC entre otras. Se ven altamente comprometidas por el echo "Los configure hace mas de 3 anos y nunca me ha fallado, para que le muevo" . Así como hemos olvidado actualizar nuestro sistema operativo olvidamos actualizar las aplicaciones, estas aplicaciones siempre tienen documentadas debilidades que al ser ubicadas pueden ser fácilmente explotadas y generar un acceso no aturizado al sistema . Por ejemplo se ha configurado SSH con la versión 1 esta versión contiene un cifrado bastante débil la cual con la tecnología actual puede ser fácilmente vulnerada en cuestión de minutos. "Pero me ha funcionado por largo tiempo" , oro ejemplo es el método de cifrado WEP, que existe una gran lista de corporativos que han sufrido de ataques y divulgación de información confidencial por este medio de comunicación.

3. La carencia de passwords fuertes : ( pa que me quiebro la cabeza root = 12345678)

Al igual que con los parches. Los administradores tienden a ser mas laxos en linux cuando se trata de la aplicación de claves seguras. Tenemos que reconcer que la clave mas segura es la que solo se usa una solavez, asi mismo saber que la forma mas económica de mantener la secrecia es por medio de claves ( existen métodos como llaves, tokens, biometricos, tarjetas, etc). Asi que debemos reforzarla con una clave que pretenda ser un reto para cualquier maleante informático.

4. Configuraciones débiles en los sistemas:

Normalmente hacemos instalaciones por defecto en nuestros servidores en producción olvidándonos de configuraciones que permitan endurecer la seguridad de nuestros activos de información. Sea configurando SNMP con configuraciones default, un ftp anonimo sin enjaulamiento de usarios que permita el acceso a nuestros archivos de configuracion , usar telnet para conectarnos a nuestros servidores ( especialmente bajo redes wireless inseguras ), usar configuraciones pobres en samba que permitan hacer un User enumaration, el permitir que un servicio muestre la versión que esta corriendo o la versión de Kernel. De esta manera gente que no requiere saber información de como esta configurado nuestro sistema ahora la tiene y puede hacer uso de ella dejándonos con pocas posibilidades de defensa .

5. Carencia de procedimientos de respaldo .

Una predecible vulnerabilidad de seguridad en linux es la falta de un correcto procedimiento de respaldo. Estas simplemente no se hacen . Pienso que este problema concernientes a sistemas linux es frecuentemente no considerado como critico. Los servidores web, Ftp,SSH, nunca les pasa nada. Algunas ocaciones observamos que los administradores de sistemas linux tiene copias de segurodad de sus configuraciones, pero no tienen un procedimiento adecuado de respuesta a desastres, no tienen resguardados los discos de instalación, o no saben como recuperar la información del respaldo. Tener un adecuado control de mecanismos de software, hacer pruebas continuas de recuperación de respaldos( puede hacer uso de maquinas virtuales ). documentar la forma correcta en que estos deben de ser hechos, el tiempo que toma realizarlo y toda incidencia en el procedimiento debe ser documentada y mejorada continuamente .


En muchos casos, esas debilidades son enfocadas a sistemas basados en windows, por que muchos administradores desconocen como administrar un sistema en base linux. en otros casos hemos visto a administradores de linux frustrados por la falta de inversión en gestión de seguridad y en la falta de apoyo para el reforzamiento de las políticas ( les suena familiar .. a mi si ). Por esto es importante tener en mente estas 5 observaciones que nos ayudaran a mantener alejados a los delincuentes electronicos

tienes micro botnets infiltradas en tu empresa?

Recientemente han habido eventos relacionados con los BOTNETS, tal como los ocurridos en twitter y facebook, los cuales han sido altamente publicitados. Mientras que esos eventos de seguridad no han pasado desapercibido. Dentro de tu empresa pueden existir ataques pequeños que pueden llegar a ser una gran amenaza .

Enrolandonos dentro de los mecanismos de defensa de la empresa, los atacantes buscan puntos débiles, los atacantes han comenzado a utilizar botnets mas pequeñas, menos notables para evadir las salvaguardas de las empresas. ahora discutiremos mas acerca de este tipo de eventos llamados micro-botnets como identificarlos y prevenirlos .


Por que small botnes son mejores?

La grande botnes son usualmente usadas para lanzar ataques de DDoS, para denegar el acceso a servicios que el atacado ofrece, estos ataques requieren de recursos para ser logrados, a esto le llamamos Botnet army, muy parecido a mandar miles de soldados para abrumar al enemigo en batalla, el atacante usa sus recursos para abrumar al servido de la victima o a sus redes. cuando un atacante quere enviar un ataque de DDoS contra una organizacion, solo manda comandos para comenzar el ataque de la botnet army enfocandose en la victima. Este ataque crea mutiples conexiones con el objetivo esto basa toda la atencion del objetivo y los sistemas de proteccion en controlar las peticiones provocando que la victima baje de rendimiento o incluso salga de linea .

A diferencia de los botnet grandes atacando una red para denegar servicios, las micro-botnets tiene menos probabilidad de ser detectados, etos envían pequeñas cadenas de datos para evardi la detección de sistemas firewalls, detectores de intrusos haciendose pasar por trafico uatorizado. desafortunadamente una micro- botnet es una porción de una lage-botnet, y pueden realizar tareas precisas como deshabilitar antivirus de host, enviar información almacenada, capturar imágenes por medio de cámaras etc. muchos de ellos aun no llegan a contar con firmas o patrones de conducta lo cual fácilmente pueden pasar desapercibidos para los especialistas en seguridad.

Por que micro botnets son existosos ?

Por que pueden penetrar dentro de nuestras empresas pasando firewalls, IPS/IDS, y atacar directamente aun objetivo ( no necesariamente por fuerza bruta ) .

Usando ataque de ingeniería social hacia un usuario objetivo es una de las maneras mas faciles de infiltrarte dentro de una empresa, Es relativamente facil encontrar informacion de una organizacion y sus empleados, utilizar esa información dentro de un correo electrónico tipo phishing con un malaware cargado ( frecuente mente con asuntos laborales imitando ser quien no son ) o incluso un ataque resiente documentado es el ejecutado por un menor de edad incluyendo un código malicioso en un video de youtube con un titulo sugerente que atraiga la atención del espectador. Este malaware puede hacer sondas de footprinting en una red en busca de debilidades, recopilando la informacion y enviandola al atacante. Una vez comprometido el host el atacante puede mandar codigo extra que le permita explotar las vulnerabilidades encontradas expandiendo su botnet por la red, extrayendo información de la misma o simplemente vendiendo la botnet a alguien mas y hacer búsqueda de una siguiente victima .

Peor aun, una vez comprometiendo nuestra red, la aplicacion botnet puede permanecer latente por largos periodos de tiempo en espera de algun comando o un evento especifico y causar fuertes dolores de cabeza. A diferencia de los lage botnets, que requieren de un mayor control del atacante que frecuentemente pueden ser descubiertas por su firma. Una micro botnet al no requerir tanto recurso, ser mas precisa y mejor adaptada para los ataques dirigidos suele no ser fácilmente descubierta .

Las Micro-botnets al ser mejor adaptadas al entorno son mas eficientes que los lage-botnets , estos pueden ser dirigidos a objetivos específicos dentro de las redes, generando sondas para intervenir información especifica como secretos comerciales, secuestrar cuentas, deshabilitar antivirus, eliminar archivos, deshabilitar software critico y generar ataques combinados mientras que discretamente se alimentan dentro de nuestras informacion y curzan nuestras redes junto con el trafico normal asemejándose a un trafico legitimo .

Consejos que pueden ayudarnos a encontrar y detener micro-botnet

Es obio que el elemento humano es una problema, y que los botnet suelen evadir las defensas tradicionales y entrar a nuestras corporaciones. Para protegerse contra los micro-botnet, las empresas deben concientizar e invertir recursos en la deteccion de los botnets y no concentrarse solo en la prevencion de ellos. Como se mencionó anteriormente, la sofisticación de los botnets les ha permitido entrar más a menudo - en pocas palabras, las defensas tradicionales no siempre funcionan. No quiere decir que la prevención no es necesaria, pero la detección de botnets ya dentro de la empresa es un factor determinante. La mentalidad de que un firewall, IDS, o software de protección contra el malware se hará cargo de los ataques, crea un ambiente con un falso sentido de seguridad. Las organizaciones deben hacer más para comprender lo que está sucediendo y entender que una actitud proactiva evitara mayores costos y perdida de producción.

Conocer y compender la actividad dentro de nuestra redes corporativas nos permitirá la identificación temprana y mejores respuestas a una incidencia de seguridad. Sin embargo esto va mas aya de solo la gestión administrativa de los recursos y abarca la comprensión de todos los procesos que se ejecutan en los host, donde se encuentran nuestros activos , que puertos usan, esto incluye un esquema de la red y un mantenimiento continuo de software y control de actualizaciones.


Cuando los micro-botnets comienzan a mostrarse, aunque sutilmente, es necesario darse cuenta de los picos anormales de tráfico de red, puertos abiertos no registrados, y las cuentas de repente obtener permisos elevados. Si estás utilizando un escáner de firmas, suba el nivel de sensibilidad y pase un poco mas de tiempo para determinar qué es o no un falso positivo. Es una buena practica de la red el análisis de registros para saber lo que realmente está sucediendo en la red. Para ayudar a automatizar gran parte del análisis del registro, busque productos tales como los ofrecidos por LogLogic Inc., ArcSight Inc. o de WatchMouse Network Security Inc., Logwatch, watchdog, Logsentry entre otros .

Finalmente , la capacitacion y la educacion de los usuarios puede hacer mas sencilla la tarea. Los usuarios deben saber como identificar y reportar un comportamiento anormal en la red y como prevenir ser una victima de la ingenieria social. La capacitación debe ser continua y dinámica que permita que los usuarios tomen conciencia del reto que estamos enfrentando generar puntos de control de la capacitacion, ayudaran como frustrar un ataque por micro-botnet .

Una recomendacion es utilizar software como, snort, wireshark, BotHunter, tcpdump, iptraf , nmap, para realizar pruebas de comportamiento de nuestras redes .

jueves, 3 de diciembre de 2009

Como puede ayudar la virtualizacion en el manejo de la seguridad

Puntos importantes de discusión .

1. Manejo de maquinas virtuales transportables.

Ciertamente cuando adquirimos un equipo servidor, normalmente lo adquirimos sobrepasando las necesidades reales de procesamiento, La virtualizacion involucra la simulación de plataformas de hardware mediante software, que simula un entorno computacional para un software guesped, este software guesped es un sistema operativo. El sortware de virtualizacion permite configurar los recursos necesarios de procesamiento ( memoria, cpu, disco duro ) para hacer uso de un o mas servicios, lo cual permite un ahorro significativo en hardware. Muestran una significativa ventaja de movilidad, esto es que pueden ser transportadas de un ambiente a otro sin mayores dificultades, lo cual reduce costos en administración de los sistemas

2. Bajo consumo de energía.

Al no requerir múltiples equipos físicos, las virtualizaciones permiten reducir el consumo de energía eléctrica en nuestras organizaciones, el uso de equipo de dynamic power suplies favorece a la reducción de energía en los centros de computo ya que reducen el consumo deacuerdo al factor de uso del equipo de computo, permite también hacer uso de equipos de control de clima de menor tamaño, por tiempos menos prolongados. Esto permitirá contribuir con la ecología .

3. Reducción de espacios

Al reducir la cantidad de equipo de computo, tenemos un mayor espacio disponible dentro de nuestra organización, lo cual se traducen en reducción de costos en material para contruir espacios físicos seguros, como son pisos y techos falsos, sistemas de ventilación, sistemas de prevención de incendios, equipos de protección perimetral, etc . el espacio disponible puede ser utilizado en un área productiva de la empresa que puede generar ingresos considerables .

4. Reducción en equipo de conservación.

La Tener espacios reducidos, requeriremos de menores recursos para la conservación adecuada de nuestros equipos, como son reducción en pago de polizas de seguro, equipo de detección de incendios, inundaciones, control de energía, ventilación, menores costos en mantenimiento físico del equipo, y menores recursos para operar los mismos servicios

5. Reducción en equipo de procesamiento y respaldo.

Al vernos en la ventaja de poder ejecutar múltiples sistemas dentro de un solo equipo de computo, requerimos de menos recursos para administrar, respaldar, procesar información, lo cual se traduce en disponibilidad de los servicios, que es uno de los objetivos principales de la seguridad de información que impactan directamente a los objetivos del negocio.

6. Alta capacidad de respuesta a destares.

Una maquina virtual es altamente transportable, lo cual nos permite ejecutar dicha aplicación en casi cualquier plataforma dependiendo de la aplicación que se haya elegido para la misma. Un BCP/DRP que contemple dentro de sus alternativas de recuperación de destares el manejo de maquinas virtuales, permite entrar en operación de los sistemas en mucho menores tiempos ya que la cantidad de equipo a reconfigurar se ve disminuido, se pueden mantener equipos speer que puedan ser rápidamente puestos en operación .

miércoles, 2 de diciembre de 2009

Principios fudamentas de la seguridad de informacion

tirada de seguridad de informacion by shon harrys

Disponibilidad :

La disponibilidad asegura el acceso confiable y oportuno a los recursos de informacion a individuos autorizados. Los sistemas y redes deben proveer la capacidad adecuada para llevar a cabo tareas de manera previsible y con un aceptable nivel de rendimiento. Los sistemas deben poder recuperarse de fallas en una manera segura y rápida que no afecte negativamente la productividad. Puntos de falla deben ser evitados, medidas deben prevencion deben ser implementadas .

Integridad:

La integridad es mantenida cuando nos aseguramos de la exactitud y confiabilidad de la información que los sistemas proveen, Modificaciones no autorizadas son prevenidas, Hardware, software y mecanismos de comunicación deben trabajar en armonía para mantener la protección corrrecta de los activos de información. Ambientes que refuerzan y proveen estos atributos de seguridad aseguran que atacantes o errores de usuarios comprometan la integridad de los sistemas o datos .

Confidencialidad :

Confidencialidad asegura que el nivel necesario de discrecion es reforzada en cada convergencia de información, previene accesos no autorizados y divulgacion de información critica. la criptografia y modelos de confidencialidad ayudan a reforsarla.


Definiciones de seguridad

Vulnerabilidad : Es un software, hardware o procedimiento con debilidad que puede permitir que un atacante tener un acceso no autorizado a una sistema , red, o instalación, Una vulnerabilidad se caracteriza por la ausencia o debilidad de las salvaguardas y pueden ser explotadas .

Amenaza : Una amenaza es algo o alguien que ha identificado una vulnerabilidad y lo usa en contra de una empresa o individuo.

Agente de amenaza: puede ser un individuo, una política débil, un fenómeno natural o un error.

Riesgo : Es la posibilidad que un agente amenazante tome ventaja de de una vulnerabilidad y la utilice contra la empresa .

Exposición: Es una instancia de exposición de perdida frente a un agente amenazante.

Contramedia o salvaguardas : es implementar acciones para reducir o mitigar un riesgo potencial, estos pueden ser software, hardaware o procedimientos

5 metodos de defensa , evitar ser una victima ciber ataques o accidentes informaticos

¿Cómo defenderse contra ataques cibernéticos y cyber-accidentes?


Es difícil saber cuándo sera la siguiente cyber crisis, pero aquí hay algunas que las mejores prácticas que empresa y los profecionales de seguridad deben considerar para evitar convertirse en víctimas.

1. Prepárese para las interrupciones.

Hacer un flujo de las información de la organización. Entender que sistemas/servicios se deben tener y tiene una funcionalidad para la emresa. En muchos casos, las empresas simplemente no pueden funcionar sin los recursos de red. Desarrollar canales de comunicación entre equipos de recuperación y los planes de recuperación para corto plazo (1-hora), mediano plazo (24-hora), largo plazo (varios días) interrupción de los servicios de red. Llevar acabo pruebas de recuperación en base a los procedimientos cuando sea posible. Sea realista; observar las incidencias entender que se puede hacer , y entender sus limitaciones. Documentas las mejoras y poner en practica analizando el costo beneficio del plan. Con las luchas actuales de la economía, muchas empresas no tienen los recursos para dedicar a la planificación de planes de desatres BCP/DRP.


2. Mantenimiento de los sistemas.

Revisión de todos los equipos de forma rutinaria, incluidos los servidores, estaciones de trabajo y equipo de red. Asegúrese de incluir aplicaciones de terceros. Auditoría de forma rutinaria. Almacenar los logs de los sitemas de forma centralizada sincronizar los relojes de todos los equipos. Incluso si usted no tienen tiempo para dirigir adecuadamente los incidentes de seguridad, al menos asegúrese de mantener correctamente los activos críticos de información.


3. Compartir información de firmas de ataques.

Esto podría parecer contradictorio, compartir información entre industrias es poco usual pero todos estamos juntos en esto. Si alguno en un segmento de actividad económica en particular observa patrones o actividad inusual que ponga en riesgo los activos de información, informar sobre ello nos pueden ayudar a identificar a todos las actividades inusuales y evitar grandes catástrofes. Compartir información acerca de la eficacia o ineficacia de las soluciones o técnicas de defensa puede ayudarnos a todos a responder de manera más de manera eficiente ante una amenaza.


4. Sea previsor.

No descuidar criticidad de los sistemas. Incluso si no hay "nada importante" en un sistema que usted tiene en desuso activa en su red, usted no quiera ser vulnerado por alguien infectando y usarlo para atacar a otros sistemas dentro o fuera de nuestra red.


5. Educacion.

Ciertamente uno de las amenazas mas difíciles de manejar es la educación del personal, mantener al personal corporativo capacitado adecuadamente en los roles que realiza dentro de la empresa, reforsara los objetivo del programa de seguridad de información .

martes, 1 de diciembre de 2009

QUE ES EASYIDS

EasyIDS es un sencillo detector de intrusos configurado con Snort, Basado en el documento de configuración e instalación de Patrick Harper's, EasyIDS es diseñado para seguridad en redes para usuarios con mínima experiencia en linux.


Esta configurado e instalado sobre un sistema operativo seguro y estable

CentOS es una empresa de distribución de Linux derivadas de los paquetes fuente proporcionada por RedHat. CentOS es una distribución de Linux estable y seguro

Detección pasiva de paquetes de red y los intentos de intrusión

Snort realiza análisis de protocolo de forma pasiva, puede detectar una variedad de ataques tales como buffer overflows, escaneos de puertos stealth, ataques a aplicaciones web, y los intentos de fingerprinting . Snort es desarrollado por Sourcefire.

Web-based análisis de intrusiones

BASE es el análisis básico y motor de seguridad, una interfaz web que proporciona una representación visual de los datos de intrusion y permite el análisis de posibles intrusiones que se han detectado en la red. BASE es desarrollado por los voluntarios de Ideas Secure.

Actualizaciones de reglas automáticas

Las reglas de Snort se actualizan diariamente utilizando Oinkmaster. EasyIDS puede ser configurado para utilizar y actualizar el el sitio oficial de Snort (VRT licencia). Oinkmaster es desarrollado por Andreas Ã-stling.

Web-Based de análisis de tráfico en la red

Ntop es un analizador de red que proporciona una representación visual del uso de ancho de banda y análisis de protocolo del tráfico en su red. Ntop es desarrollado por Luca Deri.

E-mail notificación de alertas

SnortNotify es un pequeño script que busca en la base de datos nuevos avisos de alertas connfiguradas y envía un e-mail que contiene información específica acerca de las alertas. SnortNotify es desarrollado por 780INC.

Gráficos de rendimiento de Snort

PMGraph es un script de perl que genera los gráficos de rendimiento de Snort. Algunos de los gráficos incluyen: los paquetes descartados, alertas por segundo, media bytes por paquete, Sesiones, las estadísticas de la CPU, y mucho más. PMGraph es desarrollado por Andreas Ã-stling.

Programador local o remoto copias de seguridad de FTP

Contiene un scrit personalizados que permite hacer copias de seguridad automática y manual de EasyIDS para computadoras locales o remotos FTP.

Bajalo aquí

lunes, 30 de noviembre de 2009

Estandares y regulaciones de seguridad de informacion wiki

Fuente Wikipedia

ISO/IEC 27001

El estándar para la seguridad de la información ISO/IEC 27001 (Information technology - Security techniques - Information security management systems - Requirements) fue aprobado y publicado como estándar internacional en Octubre de 2005 por International Organization for Standardization y por la comisión International Electrotechnical Commission.
Especifica los requisitos necesarios para establecer, implantar, mantener y mejorar un Sistema de Gestión de la Seguridad de la Información (SGSI) según el conocido “Ciclo de Deming”: PDCA - acrónimo de Plan, Do, Check, Act (Planificar, Hacer, Verificar, Actuar). Es consistente con las mejores prácticas descritas en ISO/IEC 17799 (actual ISO/IEC 27002) y tiene su origen en la norma BS 7799-2:2002, desarrollada por la entidad de normalización británica, la [British Standards Institution] (BSI).

ITIL

Information Technology Infrastructure Library
La Biblioteca de Infraestructura de Tecnologías de Información, frecuentemente abreviada ITIL (del inglés Information Technology Infrastructure Library), es un marco de trabajo de las buenas prácticas destinadas a facilitar la entrega de servicios de tecnologías de la información (TI). ITIL resume un extenso conjunto de procedimientos de gestión ideados para ayudar a las organizaciones a lograr calidad y eficiencia en las operaciones de TI. Estos procedimientos son independientes del proveedor y han sido desarrollados para servir como guía que abarque toda infraestructura, desarrollo y operaciones de TI.


Cobit

Objetivos de control para la información y tecnologías relacionadas
(Redirigido desde COBIT)
Objetivos de Control para la información y Tecnologías relacionadas (COBIT, en inglés: Control Objectives for Information and related Technology) es un conjunto de mejores prácticas para el manejo de información creado por la Asociación para la Auditoría y Control de Sistemas de Información,(ISACA, en inglés: Information Systems Audit and Control Association), y el Instituto de Administración de las Tecnologías de la Información (ITGI, en inglés: IT Governance Institute) en 1992.


Agrego algunos marcos legales que actualmente dirigen al sector publico y privado


HIPPA

La Ley de responsabilidad y transferibilidad de los seguros médicos (Health Insurance Portability & Accountability Act) de 1996 (21 de agosto 21), ley pública 104-191, que modifica el código del Internal Revenue Service de 1986. También conocida como la Ley de Kennedy-Kassebaum.

El Título II incluye una sección, Simplificación administrativa, que exige:

1. Mayor eficiencia en la asistencia médica por medio de la estandarización del intercambio electrónico de datos, y
2. La protección de la confidencialidad y seguridad de los datos médicos, a través del establecimiento y cumplimiento de estándares.

Más específicamente, la HIPAA pide:

1. La estandarización de los datos electrónicos administrativos, financieros y de salud de los pacientes
2. Identificadores médicos únicos para personas, empleados, planes de salud y proveedores de cuidados médicos
3. Normas de seguridad que protejan la confidencialidad y la integridad de la "información médica identificable a nivel personal" pasada, presente o futura.

En resumen: cambios radicales en la mayoría de los sistemas de información administrativos y de transacciones médicas.


CIPA

La Ley de Protección de Niños en Internet (CIPA, por sus siglas en inglés), es una ley federal promulgada por el Congreso para manejar asuntos relacionados con el acceso a contenido ofensivo en Internet, en las computadoras de las escuelas y bibliotecas. La CIPA establece ciertos tipos de requisitos para cualquier escuela o biblioteca que reciba apoyo financiero destinado a cubrir su acceso a Internet o a conexiones internas del programa “E-rate,” un programa que da acceso a ciertas tecnologías de comunicaciones a precios moderados, para las escuelas y bibliotecas elegibles. A principios de 2001, la Comisión Federal de Comunicaciones (FCC, por sus siglas en inglés) emitió normas de implementación de la CIPA.

Sarbanes Oxley

La Ley Sarbanes Oxley, cuyo título oficial en inglés es Sarbanes-Oxley Act of 2002, Pub. L. No. 107-204, 116 Stat. 745 (30 de julio de 2002), es una ley de Estados Unidos también conocida como el Acta de Reforma de la Contabilidad Pública de Empresas y de Protección al Inversionista. También es llamada SOx, SarbOx o SOA.
La Ley Sarbanes Oxley nace en Estados Unidos con el fin de monitorear a las empresas que cotizan en bolsa, evitando que las acciones de las mismas sean alteradas de manera dudosa, mientras que su valor es menor. Su finalidad es evitar fraudes y riesgo de bancarrota, protegiendo al inversor.
Esta ley, más allá del ámbito nacional, afecta a todas las empresas que cotizan en NYSE (Bolsa de Valores de Nueva York), así como a sus filiales.


Gramm-Leach-Bliley Act (GLBA) Servicios Financieros
Las instituciones gobernadas por la GLBA deberán garantizar la seguridad y confidencialidad de los registros e información de clientes
Deberán estar protegidas contra amenazas anticipadas o riesgos de seguridad o integridad de registros
Deberán estar protegidos en contra de accesos no autorizados hacia o el uso de registros o información que pudiera resultar en el daño sustancial o inconvenciencia hacia cualquier cliente.

The Prioritizing Resources & Organization for Intellectual Property Act A todas las compañías de los Estados Unidos de America
En general, le da más latitud al cumplimiento de la ley para poner en ejecución las leyes de propiedad intelectual PI
Protege la PI incluyendo los bienes farmacéuticos, manufacturas y trabajos artísticos tal como el MP3 y archivos de video y otro tipo de contenido transmitido electrónicamente así como en medios de hardware
Las organizaciones que descuiden el aseguramiento de sus redes de descargas ilegales se enfrentarán con multas que incluyen cargos por delincuencia y la confiscación de sus equipos de computo

Instalando ntop en centos 5

Ntop es un analizador de tráfico de red que muestra el uso de la red, similar a lo que el popular comando TOP lo hace. Ntop se basa en libpcap y ha sido escrito en una forma portátil con el fin de ejecutar en prácticamente todas las plataformas Unix y en Win32.

Instalacion :

descargamos la aplicacion via yum

# yum -y install ntop

editamos el archivo de configuracion de ntop

# vi /etc/ntop.conf

=====================================================

### Sets program to run as a daemon
### NOTE: For more than casual use, you probably want this.
#--daemon

### Interface(s) that ntop will capture on (default: eth0)
--interface eth0

### Sets the port that the optional HTTPS webserver listens on
--https-server 3001


===================================================


agregamos la siguiente regla al shorewall

vi /etc/shorewall/rules

====================================================

Ntop/ACCEPT loc $FW

o

ACCEPT loc $FW tcp 3001

====================================================

# shorewall restart
# service iptables save

despues ingresamos el pasword para ntop

#/usr/bin/ntop @/etc/ntop.conf -A

de nuevo editamos el archivo de ntop.conf par habilitarmo como demonio

#vi /etc/ntop.conf

=====================================================

### Sets program to run as a daemon
### NOTE: For more than casual use, you probably want this.
--daemon

=====================================================

# chkconfig ntop on
# service ntop start

checamos en nuestro navegador la información

https://mi_ip:3001

DISFRUTENLO

Snort, Apache, SSL, PHP, MySQL, Barnyard y BASE Instalado en RHEL 5

antes de comenzar hay que hacer una breve lectura al funcionamiento de snort, para comprender que es lo que podemos lograr con el y que no .

Manual de usuario http://www.Snort.org/docs/writing_rules/
Snort FAQ http://www.snort.org/snort/faq/

snort tiene 3 funcinamientos principales : puede ser utilizado como analizador de paquetes como tcpdump, como un colector de paquetes, o como un fuerte detector de intrusos. que a mi gusto no tiene nada que pedirle a los de firmas reconocidas .


Pre requisitos:

debemos tener instalado PHP,MySql,Apache y ntop

# yum –y install mysql mysql-bench mysql-server mysql-devel mysqlclient10 php-mysql httpd gcc pcre-devel php-gd gd mod_ssl glib2-devel gcc-c++ libpcap-devel php php-pear yum-utils
# chkconfig mysqld on
# chkconfig httpd on
# service httpd start
# service mysqld start


bajamos las aplicaciones necesarias

# mkdir ~/snort
# cd ~/snort
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm
# wget http://dl.snort.org/snort-current/snort-2.8.5.1-1.RH5.i386.rpm.md5
# md5sum -c snort-2.8.5.1-1.RH5.i386.rpm.md5
# rpm -ivh snort-2.8.5.1-1.RH5.i386.rpm

para bajar las reglas debemos estar debidamente registrados, existen 2 modalidades, las reglas de suscripción y reglas de usuario registrado, para el ejemplo debemos bajar las de usuario registrado del sitio web https://www.snort.org/snort-rules/ para esto podemos usar links

ya que hemos bajado las reglas las copiamos a el directorio /etc/snort/rules

# tar –xvzf snortrules-snapshot-CURRENT.tar.gz
# cd ~/snort/snortrules-snapshot-CURRENT/rules/
# cp * /etc/snort/rules

editamos el archivo de configuración de snort

# vi /etc/snort/snort.conf

================================================================
var HOME_NET 10.0.0.0/24 # descomentamos y configuramos nuestro segmento de red
var EXTERNAL_NET !$HOME_NET # esto significa todo lo que no sea de tu red
var RULE_PATH /etc/snort/rules #verificamos que sea correcta la dirección
output alert_unified: filename snort.alert, limit 128 # descomentar
output log_unified: filename snort.log, limit 128 # descomentar

===============================================================

agregamos snort al chkconfig

# chkconfig snortd on


configuramos mysql

# mysql -u root

mysql mysql> SET PASSWORD FOR root@localhost=PASSWORD('root_password');
>Query OK, 0 rows affected (0.25 sec)
mysql> create database snort;
>Query OK, 1 row affected (0.01 sec)
mysql> grant INSERT,SELECT on root.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> SET PASSWORD FOR snort@localhost=PASSWORD('tu_pass_snort');
>Query OK, 0 rows affected (0.25 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort@localhost;
>Query OK, 0 rows affected (0.02 sec)
mysql> grant CREATE, INSERT, SELECT, DELETE, UPDATE on snort.* to snort;
>Query OK, 0 rows affected (0.02 sec)
mysql> exit
>Bye

buscamos el archivo de tablas de snort para mysql

# rpm -ql snort | grep schemas
# mysql -u root -p < /usr/share/snort-2.8.5.1/schemas/create_mysql snort

descargamos barnyard que es un interprete de información de logs de snort a mysql

# wget http://dl.snort.org/barnyard/barnyard-0.2.0.tar.gz
# tar –xvzf barnyard-0.2.0.tar.gz
# cd barnyard-0.2.0
# ./configure --enable-mysql
# make
# make install
# cd etc/
# cp barnyard.conf /etc/snort

editamos el archivo /etc/snort/barnyard.conf y hacemos los siguientes cambios

# vi /etc/snort/barnyard.conf

descomentamos las siguientes lineas
============================================================

enable daemon mode
#estas lineas son informativas para el acid puedes poner lo que gustes
config hostname: snorthost
config interface: fxp0
#configuras con los datos dados en mysql las siguientes lineas
ooutput alert_acid_db: mysql, sensor_id 1, database snort, server localhost, user snort, password snort
output log_acid_db: mysql, database snort, server localhost, user snort, password snort, detail full

===========================================================

Tienes que crear un archivo de Waldo de barnyard . Haga lo siguiente

# snort -c /etc/snort/snort.conf

y dejar que llegue a la parte que dice: No utilizar PCAP_FRAMES, déjelo funcionar durante unos segundos y pulsa Ctrl + C para detenerlo. Buscar en /var/log/snort y podrás ver los archivos como este:

-rw------- 1 root root 16 Jun 21 07:06 snort.alert.1182427612
-rw------- 1 root root 24 Jun 21 07:06 snort.log.1182427612

generamos un archivo llamado /var/log/snort/barnyard.waldo

# vi touch /var/log/snort/barnyard.waldo

y agregamos el nombre del archivo snort.log.1182427612 de la siguiente manera:

=========================================
/var/log/snort snort.log 1182427612 0

========================================

bajamos el script de control de demonio de la siguiente direccion

# wget http://www.internetsecurityguru.com/barnyard
# cp barnyard /etc/init.d/
# chkconfig barnyard on
# service barnyard start

descargamos el paquere base y ADODB

# cd ~/snort
# wget http://easynews.dl.sourceforge.net/sourceforge/adodb/adodb480.tgz
# wget http://easynews.dl.sourceforge.net/sourceforge/secureideas/base-1.3.5.tar.gz
# cd /var/www/
# tar -xvzf ~/snort/adodb480.tgz
# cd /var/www/html
# tar –xvzf ~/snort/base-1.3.5.tar.gz
# mv base-1.3.5.tar.gz base

ajo con esta operación ya que permisos inadecuados puede ocasionar que el no se visualice correctamente.

copiamos el archivo de configuración base

# cp base_conf.php.dist conf.php

editamos el archivo

vi /var/www/html/base/config.php

===========================================
$BASE_urlpath = "/base";
$DBlib_path = "/var/www/adodb/ ";
$DBtype = "mysql";
$alert_dbname = "snort";
$alert_host = "localhost";
$alert_port = "";
$alert_user = "snort";
$alert_password = "password_from_snort_conf";

==============================================

ahora en un navegador de internet accesamos al sistema base

https://tu_ip_servidor/base


presionamos donde dice setup page .. y seguimos la intrucciones .

aseguramos la ruta con htpasswd

# mkdir /var/www/passwords
# /usr/bin/htpasswd -c /var/www/passwords/passwords base

agregamos las configuraciones en el servidor apache


y queda felizmente instalado nuestro detector de intrusos IDS/IPS

domingo, 29 de noviembre de 2009

Linux cluster con Heartbeat para servidores http

Este pequeno manual indica como configurar un Linux cluster con Heartbeat , ambos servidores deben tener configurado Apache como servidor web


Primer paso, configurar correctamente las interfaces de red de los sistemas de la siguiente manera.

# system-config-network

mostrara un menu que nos preguntara que tipo de interfaz requerimos configurar y seleccionamos ethernet, configuramos apropiadamente las configuraciones de red. para nuestro ejemplo asignaremos las ips a nuestros hosts 192.168.1.2 y 192.168.1.3

verificamos que el fully qualified domain name para verificar que este correctamente configurado.

Nota: podemos hacer uso de clusterssh para configurar múltiples servidores

# cssh nodo01 nodo02

# uname -n

descargamos los paquetes necesarios via yum

# yum -y install heartbeat

ahora tenemos que configurar los archivos authkeys, ha.cf y haresources si no los encuentra en el archivo /etc/ha.d hacemos lo siguiente

# rpm -ql heartbeat | grep doc

copiamos los archivos si no los genero

# cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
# cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/

ahora editamos el archivo de autentificacion authkeys

# vi /etc/ha.d/authkeys

como lo recomienda el archivo de configuración seleccionamos la mejor opción

==================================
auth 2
#1 crc
2 sha1 una_clave
#3 md5 Hello!
==================================
cambiamos los permisos para mayor seguridad

# chmod 600 /etc/ha.d/authkeys

editamos el archivo ha.cf el cual es el mas importante

==================================
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
initdead 120
bcast eth0
udpport 694
auto_failback on
node node01
node node02
==================================

editamos el archivo /etc/ha.d/haresources

# vi vi /etc/ha.d/haresources

agregamos la siguiente linea

==================================
node01 192.168.1.4 httpd

==================================

Nota: si no utilizamos cssh debemos copiar los archivos a los servidores si no omitir el sig paso

# scp -r /etc/ha.d/ root@node02:/etc/


editamos el archivo de configuración de http

# vi vi /etc/httpd/conf/httpd.conf

cambiamos la configuracion de Listen en ambos nodos

================================

Listen 192.168.1.4:80

================================


agregamos el servio a chkconfig

# chkconfig heartbeat on

arrancamos el servcio

# service heartbeat start


podemos hacer pruebas editando el archivo index por default y bajamos los servicios de los servidores para verificar cuando entra cada uno

Nmap Parte 1

Nmap es un mapeador de red de codigo abierto, que permite hacer evaluaciones de seguridad y adutoria de redes su estructura de comando es la siguiente nmap [ ...] [ ] { }, nmap puede ser utilizado con proxychains para encubrir nuestra ubicacion original para comenzar nuestra explicacion incluire las opcines disponibles en nmap

# nmap --help

==============================================================================
ESPECIFICACIÓN DE OBJETIVO:
Se pueden indicar nombres de sistema, direcciones IP, redes, etc.
Ej: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL : Lee una lista de sistemas/redes del archivo.
-iR : Selecciona objetivos al azar
--exclude : Excluye ciertos sistemas o redes
--excludefile : Excluye los sistemas indicados en el fichero
DESCUBRIMIENTO DE HOSTS:
-sL: Sondeo de lista - Simplemente lista los objetivos a analizar
-sP: Sondeo Ping - Sólo determina si el objetivo está vivo
-P0: Asume que todos los objetivos están vivos
-PN: Asume que todos los objetivos están vivos -- skip host discovery
-PS/PA/PU [listadepuertos]: Análisis TCP SYN, ACK o UDP de los puertos indicados
-PE/PP/PM: Solicita un análisis ICMP del tipo echo, marca de fecha y máscara de red
-n/-R: No hacer resolución DNS / Siempre resolver [por omisión: a veces]
--dns-servers : Especificar servidores DNS específicos
--system-dns: Utilizar la resolución del sistema operativo
TÉCNICAS DE ANÁLISIS:
-sS/sT/sA/sW/sM: Análisis TCP SYN/Connect()/ACK/Window/Maimon
-sN/sF/sX: Análisis TCP Null, FIN, y Xmas
--scanflags : Personalizar los indicadores TCP a utilizar
-sI : Análisis pasivo («Idle», N. del T.)
-sO: Análisis de protocolo IP
-b : Análisis por rebote FTP
ESPECIFICACIÓN DE PUERTOS Y ORDEN DE ANÁLISIS:
-p : Sólo sondear los puertos indicados
Ej: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080
-F: Rápido - Analizar sólo los puertos listados en el archivo nmap-services
-r: Analizar los puertos secuencialmente, no al azar.
DETECCIÓN DE SERVICIO/VERSIÓN:
-sV: Sondear puertos abiertos, para obtener información de servicio/versión
--version-intensity : Fijar de 0 (ligero) a 9 (probar todas las sondas)
--version-light: Limitar a las sondas más probables (intensidad 2)
--version-all: Utilizar todas las sondas (intensidad 9)
--version-trace: Presentar actividad detallada del análisis (para depurar)
DETECCIÓN DE SISTEMA OPERATIVO
-O: Activar la detección de sistema operativo (SO)
--osscan-limit: Limitar la detección de SO a objetivos prometedores
--osscan-guess: Adivinar el SO de la forma más agresiva
TEMPORIZADO Y RENDIMIENTO:
-T[0-5]: Seleccionar plantilla de temporizado (los números altos son más rápidos)
--min-hostgroup/max-hostgroup : Paralelizar los sondeos
--min-parallelism/max-parallelism : Paralelización de sondeos
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : Indica
el tiempo de ida y vuelta de la sonda
--max-retries : Limita el número máximo de retransmisiones de las
sondas de análisis de puertos
--host-timeout : Abandonar un objetivo pasado este tiempo
--scan-delay/--max-scan-delay : Ajusta el retraso entre sondas
EVASIÓN Y FALSIFICACIÓN PARA CORTAFUEGOS/IDS:
-f; --mtu : fragmentar paquetes (opc. con el MTU indicado)
-D : Disimular el análisis con señuelos
N. del T.: «ME» es «YO» mismo.
-S : Falsificar la dirección IP origen
-e : Utilizar la interfaz indicada
-g/--source-port : Utilizar el número de puerto dado
--data-length : Agregar datos al azar a los paquetes enviados
--ttl : Fijar el valor del campo time-to-live (TTL) de IP
--spoof-mac : Falsificar la dirección MAC
--badsum: Enviar paquetes con una suma de comprobación TCP/UDP falsa
SALIDA:
-oN/-oX/-oS/-oG : Guardar el sondeo en formato normal, XML,
s|< rIpt kIddi3 (n3n3b4n4n4), y Grepeable (para usar con grep(1), N. del T.), respectivamente, al archivo indicado. -oA : Guardar en los tres formatos principales al mismo tiempo
-v: Aumentar el nivel de mensajes detallados (-vv para aumentar el efecto)
-d[nivel]: Fijar o incrementar el nivel de depuración (Tiene sentido hasta 9)
--packet-trace: Mostrar todos los paquetes enviados y recibidos
--iflist: Mostrar interfaces y rutas (para depurar)
--append-output: Agregar, en vez de sobreescribir, a los archivos indicados con -o.
--resume : Retomar un análisis abortado/detenido
--stylesheet : Convertir la salida XML a HTML según la hoja de estilo
XSL indicada
--webxml: Referenciar a la hoja de estilo de Insecure.Org para tener un XML más portable
--no_stylesheet: No asociar la salida XML con ninguna hoja de estilos XSL
MISCELÁNEO:
-6: Habilitar análisis IPv6
-A: Habilita la detección de SO y de versión
--datadir : Indicar la ubicación de los archivos de datos Nmap
personalizados.
--send-eth/--send-ip: Enviar paquetes utilizando tramas Ethernet o paquetes IP
"crudos"
--privileged: Asumir que el usuario tiene todos los privilegios
-V: Muestra el número de versión
-h: Muestra esta página resumen de la ayuda.

EJEMPLOS:
nmap -v -A scanme.nmap.org
nmap -v -sP 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -P0 -p 80

==============================================================================

si requerimos saber mas acerca de nmpa podemos solicitar el man que nos explicara a fondo el funcionamiento

#man nmap

Entradas de objetivos

nmap puede aceptar objetivos individuales por segmento o segmentos de red por ejemplo

# proxychains nmap 192.168.1.2 192.168.0.0/24 192.168.3-6,10.0/24 ejmplo.com

nmap permite la entrada de archivos como objetivos y excluir objetivos por ejemplo

# proxychains nmap -iL objetivos.txt --excludefile excluir.txt -iR 100

Descubrimiento de objetivos .

Para un administrador de sistemas, el asegurar sus activos principales puede ser un objetivo basico, para un auditor de seguridad cualquier objetivo es una oportunidad de amenaza. Nmap puede generar sondas desde el exterior que permitan descubrir cualquier activo en el interior de una red. para lo cual podemos utilizar todas las capacidades que nos brinda nmap como son sondas, ACK,SYN,FIN,ICMP,UDP,TCP,ETC.

Nmap muestra 7 respuestas posibles a un reconocimiento.

Abieto : Una aplicación acepta conexiones TCP o paquetes UDP en este puerto
Cerrado : Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él
filtrado: Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto.
No filtrado: Este estado indica que el puerto es accesible, pero que Nmap no puede determinar si se encuentra abierto o cerrado.
Abierto|Filtrado :Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado.
Cerrado|Filtrado : Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo durante un sondeo IPID pasivo.

Aunque Nmap intenta generar resultados precisos, hay que tener en cuenta que estos resultados se basan en los paquetes que devuelve el sistema objetivo (o los cortafuegos que están delante de éstos). Estos sistemas pueden no ser fiables y envíar respuestas cuyo objetivo sea confundir a Nmap.


hacemos un ejemplo de como determinar si un sistema esta vivo.

# proxychains nmap -v -sP 192.168.0/24

muestra informacion sobre los puertos abiertos

# proxychains nmap -v -PS 80 192.168.0.0/24

muestra informacion del sistema operativo y puertos abiertos

# proxychains nmap -v -sV -O 192.168.0.0/24

realizar un analisis solo puertos contenidos en el service

#proxychains nmap -v -F -PN -O 192.168.0.0/24

realizar un analisis de enumeracion con una ip falsa

# proxychains -nmap -v -F -O 192.168.0.0/24 -S 192.168.1.1

realizar un analisis de enumeraion con una interfaz falsa y direccion mac falsa

# proxychains -nmap -v -F -O 192.168.0.0/24 -e eth0 --spoof-mac 00:00:00:00:00

lanzamos un analisis de enumeracion tipo tcp, sin resolver DNS, en los puertos asignados

# proxychains nmap -sT -PN -n -sV -O -p 21,22,53,80,110,139,143,443


contramedida para este tipo de analisis es configurar un equipo detector de intrusos, desgraciadamente poca gente sabemos con funciona corectamente, pero en sesiones posteriores mostraremos como configurarlo .

sábado, 28 de noviembre de 2009

Como configurar proxychains para pruebas de seguridad

es una herramiente que forza las conexiones tcp a salir por un servidor proxy como TOR o cualquier otro como SOCKS4 SOCKS5 o HTTP proxy para instalarlo bajamos la aplicacion

configuramos los depositos yum de dag wieers y fedora


instalamos la aplicacion con yum

# yum -y install proxychains

respaldamos nuestra configuracion original

# cp /etc/proxychains.conf /etc/proxychains.conf.old

limpiamos el archivo de comentarios y espacios en blanco

# sed -e '/^#/d' /etc/proxychains.conf.old | sed -e '/^$/d' > /etc/proxychains.conf

hacemos una busqueda en internet por proxys que esten disponibles pongo un ejemplo de mi archivo

random_chain
chain_len = 2
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
http 127.0.0.1 8118 # utiliza privoxy local
socks4 127.0.0.1 9050 # utiliza privoxy local
http 59.39.145.178 3128
http 174.142.24.201 3128
http 190.14.246.42 3128
http 200.41.230.102 3128
http 121.14.157.36 80
http 200.174.85.195 3128
http 65.23.153.95 3128
http 200.107.15.58 80
http 201.161.46.38 8080
http 141.85.118.1 80
http 63.97.171.151 80

y podemos ejecutar aplicaciones via proxychains sin ser descubiertos facilmente

# proxychains nmap -sT -PN -n -sV -p sitio.com

# proxychains telnet sitio.com:25

este es excelente para realizar pruebas de penetracion en tus equipos . mas adelante les informare acerca de uso de nmap como herramienta de de evaluacion de seguridad

Como configurar TOR para navegar anonimo

Tor es un proyecto software que le ayuda a defenderse contra el análisis de tráfico, una forma de vigilancia de la red que amenaza la libertad personal y la privacidad, la confidencialidad en los negocios y relaciones, y la seguridad del estado. Tor le protege transmitiendo sus comunicaciones a través de una red distribuída de repetidores llevados por voluntarios de todo el mundo: evita que alguien que observa su conexión a Internet aprenda qué sitios visita, y evita que los sitios que visita aprendan su posición física. Tor funciona con muchas de sus aplicaciones existentes, incluyendo navegadores web, clientes de mensajería instantánea, acceso remoto, y otras aplicaciones basadas en el protocolo TCP.

primer paso :

descargar el aplicartivo del sitio .

# wget http://www.torproject.org/dist/rpm/tor-0.2.1.20-tor.0.rh5_3.i386.rpm
# wget http://www.torproject.org/dist/rpm/tor-0.2.1.20-tor.0.rh5_3.i386.rpm.asc
# md5sum -c tor-0.2.1.20-tor.0.rh5_3.i386.rpm.asc
# rpm -ivh tor-0.2.1.20-tor.0.rh5_3.i386.rpm

descargamos la aplicacion de privoxy

#wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz
#wget http://sourceforge.net/projects/ijbswa/files/Sources/3.0.12%20%28stable%29/privoxy-3.0.12-stable-src.tar.gz.asc
#md5sum -c privoxy-3.0.12-stable-src.tar.gz.asc

descomprimimos el paquete y comlilamos .

# tar -xvzf privoxy-3.0.12-stable-src.tar.gz
# cd privoxy-3.0.12-stable
# ./configure
# make
# make install

editamos el archivo /etc/privoxy/config

# vi /etc/privoxy/config

añada la línea

forward-socks4a / 127.0.0.1:9050 .


al principio del fichero de configuración. No se olvide de añadir el punto al final.

Privoxy mantiene un fichero de log de todo lo que pasa a su través. Para evitar esto tendrá que comentar tres líneas insertando un # antes de la línea. Las tres líneas son:


logfile logfile
jarfile jarfile

y (en algunos sistemas) la línea


debug 1 # show each GET/POST/CONNECT request

Dependiendo de qué fichero de configuración por defecto tenga para Privoxy, puede que también tenga que desactivar enable-remote-toggle, enable-remote-http-toggle, y enable-edit-actions.

el archivo queda mas o menos de esta forma

=============================================


forward-socks4a / 127.0.0.1:9050 .
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile standard.action # Internal purpose, recommended
actionsfile global.action # Global default setting for all sites
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
listen-address 127.0.0.1:8118
toggle 1
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0


=============================================

arrancamos el servicio de privoxy

# service privoxy restart


siguiente paso es configurar el firefox con el plug-in de TOR desgargandolo del siguiente
sitio .

finalmente reiniciamos nuestro navegador de internet, presionamos el boton que parace en la parte inferior derecha, ingresamos a google y nos mostrara que nos encontramos en otro pais distinto al nuestro

Configurar Open Vpn para generar redes con Prodigy - DynDns

#OpenVpn es una aplicación poderosa para generar redes privadas virtuales de bajo costo y alto rendimiento, es utilizado comúnmente para conectar múltiples  puntos distantes en nuestra organización, dar acceso a usuarios móviles. OpenVpn operan en capa 2 y 3 del modelo osi, en la parte de seguridad ofrece 2 métodos de encripatacion de los enlaces , uno es por llaves simétricas y otra por llaves asimétricas, la diferencia entre ellas es que las simetricas, se utiliza la misma llave para encriptar y decriptar, y en asimétricas se utiliza la llave privada para encriptar y la publica para desencriptar . lo cual proporciona autenticidad e integridad.

Ventajas :


Conexiones OpenVPN pueden ser realizadas a través de casi cualquier firewall
Solo un puerto en el firewall debe ser abierto para permitir conexiones, dado que desde OpenVPN 2.0 se permiten múltiples conexiones en el mismo puerto TCP o UDP
Las interfaces virtuales (tun0, tun1, etc.) permiten la implementación de reglas de firewall muy específicas
Soporte transparente para IPs dinámicas. Se elimina la necesidad de usar direcciones IP estáticas en ambos lados del túnel
Desventaja:
No tiene compatibilidad con IPsec que justamente es el estándar actual para soluciones VPN
Todavía existe poca gente que conoce como usar OpenVPN
configuramos los depósitos yum

#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

Instalamos las paqueterias necesaria

# yum -y install openvpn openssl

ubicamos donde se guardan los archivos de easy-rsa

# rpm -ql openvpn | grep easy-rsa


copiamos dentro del directorio /etc/openvpn/ los archivos openssl.cnf, whichopensslcnf, pkitool y vars, que se localizan en /usr/share/openvpn/easy-rsa/2.0/ (esta ruta puede cambiar y es obtenida con el comando anterior )

# cp /usr/share/openvpn/easy-rsa/2.0/openssl.cnf /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/whichopensslcnf /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/pkitool /etc/openvpn
# cp /usr/share/openvpn/easy-rsa/2.0/vars /etc/openvpn

editamos el archivo /etc/openvpn/vars las variables " KEY_COUNTRY,KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL "

# vi /etc/openvpn/vars

export KEY_COUNTRY="MI_PAIS"
export KEY_PROVINCE="MI_ESTADO"
export KEY_CITY="MI_CIUDAD"
export KEY_ORG="MI_ORGANIZACION"
export KEY_EMAIL="MICUENT@_DE_CORREO"

cargamos los cambios en las variables de la siguiente manera

# source ./vars

ejecutamos el script de limpia para prevenir que cualquier otra llave este en el folder

# sh /usr/share/openvpn/easy-rsa/2.0/clean-all

ejecutamos el escrip de generación del certificado, si no existe el folder keys lo generara .

# sh /usr/share/openvpn/easy-rsa/2.0/build-ca

generamos las firmas digitales para el servidor

# sh /usr/share/openvpn/easy-rsa/2.0/build-dh
# sh /usr/share/openvpn/easy-rsa/2.0/build-key-server matriz

generamos las llaves asimétricas para los clientes que se conectaran

# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursal1
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursal2
# sh /usr/share/openvpn/easy-rsa/2.0/build-key sucursalN

copiamos el archivo de configuración de ejemplo que se encuentra en /usr/share/doc/openvpn-2.1/sample-config-file/

# cp /usr/share/doc/openvpn-2.1/sample-config-file/server.conf ./

editamos el archivo con nuestras configuraciones

# vi /etc/openvpn/server.conf
========================================
port 1194
proto udp
dev tun
ca keys/ca.crt
cert keys/matriz.crt
key keys/matriz.key
dh keys/dh1024.pem
server 10.0.0.2 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status server.log
verb 3
========================================
en caso de tener activado se linux debemos otorgarle permiso

# restorecon -R /etc/openvpn/

creamos los archivos de con server.log y ipp.txt

# cd /etc/openvpn/
# touch /etc/openvpn/ipp.txt
# touch /etc/openvpn/server.log


asignamos propiedades de lectura/escritura a los archivos

# chcon -u system_u -r object_r -t openvpn_etc_rw_t /etc/openvpn/ipp.txt
# chcon -u system_u -r object_r -t openvpn_etc_rw_t /etc/openvpn/server.log

agregamos el servicio al chkconf

# chkconf openvpn on

generamos el archivo remoto para indicar que esas rutas seran utilizadas para la salida de paquetes

Iniciamos el servicio  de openvpn

# service openvpn start

para el cliente en linux , seguimos los mismos pasos de instalacion .
copiamos el archivo cliente.conf

# cp /usr/share/doc/openvpn-2.1/sample-config-file/cliente.conf ./

editamos el archivo de configuración de cliente

# vi /etc/openvpn/cliente.conf

========================================
client
dev tun
proto udp
remote IP_SERVIDOR_O_NOMBRE_DOMININIO
float
resolv-retry infinite
nobind
persist-key
persist-tun

ca key/ca.crt
cert key/sucursal1.crt
key key/sucursal1.key
ns-cert-type matriz

comp-lzo
verb 3
 ========================================

 copiamos los archivos sucursal1.crt y sucursal1.key  al cliente .

# scp -P 22 sucursal.* usuario@ip_cliente:/etc/openvpn/

creamos el archivo matriz.up  que nos dara la ruta de salida a nuestra red coporativa

Iniciamos el servicio de openvpn

# service openvpn restart

adecuamos nuestros firewalls para permitir conecciones

editamos el archivo de zonas en el shorewall

# vi /etc/shorewall/zones

agregamos la siguiente linea

===================================
vpn ipv4
===================================

editamos el archivo de interfaces

#vi /etc/shorewall/interfaces

agregamos la siguiente linea

===================================
vpn  tun+    detect
===================================

editamos el archivo de politicas del shorewall


#vi /etc/shorewall/policy

agregamos los permisas para compartir las redes .


===================================

vpn $FW ACCEPT
vpn loc ACCEPT
loc vpn ACCEPT
$FW vpn ACCEPT

===================================


editamos el archivo de reglas

# vi /etc/shorewall/rules

agregamos la siguiente linea ( tambien podemos hacer un macro.OPENVPN )


===================================
ACCEPT net $FW udp 1194

===================================

finalmente agregamos la ruta al archivo de tunnels para que permita hacer conexiones a la vpn de cualquier ubicacion .

# vi /etc/shorewall/tunnles

agregamos la siguiente linea

===================================
openvpnserver:1194 vpn 0.0.0.0/0
===================================


configuramos una cuenta y descargamos de DynDns.org el archivo ddclient

# wget http://cdn.dyndns.com/ddclient.tar.gz

descomprimimos el archivo

# tar -xvzf ddclient.tar.gz

copiamos el script ddcliente al /usr/sbin/

# cp ddclient /usr/sbin/

creamos un folder en /etc/ddclient para guardas las configuracions y copiamos el ejemplo

# mkdir /etc/ddclient
# cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf

editamos el achivo de configuraciones

# vi /etc/ddclient/ddclient.conf

congiramos hostnames, logins y passwords, descomentamos las lineas de nuestro routey las lineas del servicio de dyndns

copiamos el archivo sample-etc_rc.d_init.d_ddclien a /etc/rc.d/init.d/ddclient

# cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient

abilitamos el para que arranque al inicio de nuestro sistema como servicio

# chkconfig --add ddclient
# chkconfig ddclient on

corremos el servicio

# service ddclient start


tenemos nuestra vpn montada

jueves, 26 de noviembre de 2009

Como configurar shorewall basico

"Shorewall", es herramienta de alto nivel para la configuración de Netfilter. Shorewal permite la configuración de un firewall de host, de un servidor bastian, un firewall enrutador, y manejar complejas configuraciones. Shorewall cuenta con soporte para IPV4 e IPV6, actualmente IPV6 brinda una amplia gama de opciones de seguridad pero ha sido poco adoptada hasta el momento , en sig manual explicara la forma de configurar un firewall con IPV4.

Para comenzar indicaremos algunos conceptos basico :

Firewall : un software utilizado en redes de computadoras para controlar las comunicaciones, permitiéndolas o prohibiéndolas. existen múltiples generaciones de firewalls, pero al implementar uno de ellos debemos evaluar nuestras necesidades

Bastión host: Es una computadora en una red que ofrece un único punto de entrada y salida a Internet desde la red interna y viceversa. Un servidor bastión se usan para mitigar los riesgos de seguridad de una red, ofreciendo una barrera entre el área pública y privada.

DMZ: Es una zona desmilitarizada (DMZ, demilitarized zone) o red perimetral es una red local que se ubica entre la red interna de una organización y una red externa.

RED PRIVADA: una red privada es una red que usa el espacio de direcciones IP especificadas en el documento RFC 1918. A los terminales puede asignársele direcciones de este espacio de direcciones cuando se requiera que ellas deban comunicarse con otras terminales dentro de la red interna (una que no sea parte de Internet) pero no con Internet directamente.

NAT: (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles. Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados.

En ambientes complejos podemos utilizar multiples firewalls o routers para segregar las redes, o incrementar los niveles de seguridad en las dmz. en este manual explicaremos como hacer un firewall con filtro para la red privada, una dmz y salida a internet .

Instalamos los repositorios de Dag

### deposito yum para DAG WIERS

#rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpm


Instalamos la paqueteria necesaria

# yum -y install shorewall

si requiere una explicación detallada de como configurar shorewall para 2 redes o standalone puede revisar la documentación de la siguiente forma.

# rpm -ql shorewall-common | fgrep three-interfaces
o
# rpm -ql shorewall-common | fgrep two-interfaces
o
# rpm -ql shorewall-common | fgrep one-interface


hacemos un respaldo de todos los archivos

# cd /etc/shorewall
# for i in 'ls' ; do cp $i $i.OLD

Editamos el archivo /etc/shorewall/shorewall.conf

# vi /etc/shorewall/shorewall.conf

modificamos los parámetros STARTUP_ENABLED=Yes y CLAMPMSS=Yes

editamos el archivo de zonas /etc/shorewall/zones

# vi /etc/shorewall/zones

==============================================

#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall # firewall del host
net ipv4 # firewall de Internet
loc ipv4 # firewall de la red local
dmz ipv4 # firewall de la dmz
vpn ipv4 # firewall zona de vpn
==============================================

podemos agregar zonas como interfaz de red tengamos de red tengamos . en algunas versiones la zona de fw esta definida en el archivo shorewall.conf
Editamos el archivo de interfaces

#vi /etc/shorewall/interfaces

==============================================


#ZONE INTERFACE BROADCAST OPTIONS
#net ppp0 detect dhcp,tcpflags,norfc1918,routefilter,nosm
urfs,logmartians
net eth0 detect
loc eth1 detect
dmz eth2 detect
vpn tun+ detect


#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE

==============================================

como pueden notar en la primera linea tengo comentada la interfaz "net ppp0 " , que anteriormente se utilizaba en conexiones directas a internet , actualmente ya no se usan.

Editamos el archivo /etc/shorewall/policy este archivo determinara desde que zona se puede conectar hacia otra , es importante solo habilitar las necesarias .

# vi /etc/shorewall/policy

==============================================
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
loc net ACCEPT # da aceeso de la red internet
$FW net ACCEPT # da acceso al host al intert
loc $FW ACCEPT # permite a la red comunicase con el host
$FW loc ACCEPT # permite al host comunicase con la red
loc vpn ACCEPT # permite a la red hacia la vpn
vpn loc ACCEPT # permite a la vpn hacia la red
$FW vpn ACCEPT # permite el host hacia la vpn
vpn $FW ACCEPT # permite a la vpn al host
vpn net DROP info # niega el acceso de la vpn a internet
net vpn DROP info # niega el acceso de internet a la vpn
net all DROP info # niega los acceso de internet a todo
dmz net ACCEPT # acepta de la dmz a internet
dmz loc DROP # niega de la dmz a la red local
loc dmz ACCEPT # permite el acceso de la red a la dmz


# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info #niega todas las reglas no establecias

==============================================

Editamos el archivo de /etc/shorewall/masq el cual permite hacer un mascarad entre las tarjetas de red

# vi /etc/shorewall/masq

==============================================

#INTERFACE              SUBNET          ADDRESS         PROTO   PORT(S) IPSEC
eth1                    eth0


#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE


==============================================
este ejemplo lo podemos hacer con solo un segmento de red  ..


==============================================

#INTERFACE              SUBNET          ADDRESS         PROTO   PORT(S) IPSEC
eth1                    192.168.0.1/36


#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE


==============================================



editamos el archivo de reglas /etc/shorewall/rules , el cual define cuales puertos pueden ser accesados ya sea por ip, zonas, subredes, protocolos, servicios etc. shorewall contiene archivos llamados macros con los servicios mas comunes los cuales se encuentran en /usr/share/shorewall/macro.Nombr_servicio


# vi /etc/shorewall/rules


==============================================

SSH/ACCEPT all $FW # habilita el ssh desde todas las interfaces
Ping/DROP all all # Niega el request del ping
Web/ACCEPT all all # acepta el trafico hacia el servido web
REJECT loc net udp 1863 # niega la salida por el puerto 1863
ACCEPT net $FW tcp 22,25,465,143,110 - - 10/sec:4 #
REDIRECT loc 3128 tcp 80 # redirecciona del 80 al 3128
DNAT all loc:192.158.1.2 udp 8080 # hace un DNAT de todas las interfaz al
REJECT net:201.238.235.131 all tcp # evitar conexiones de la net a cualquier


==============================================

estructura de un macro.Servicio

==============================================


#ACTION SOURCE  DEST    PROTO   DEST    SOURCE  ORIGINAL        RATE    USER/
#                               PORT    PORT(S) DEST            LIMIT   GROUP
PARAM   -       -       udp     
PARAM   -       -       tcp     
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE


==============================================

Podemos hacer un filtrado de paquetes por la mac adress  editamos en el /etc/shorewall/shorewall.conf  los parametros  "MACLIST_DISPOSITION=REJECT MACLIST_LOG_LEVEL=info "

# vi /etc/shorewall/shorewall.conf

editamos el archivo de interfaces


#vi /etc/shorewall/interfaces

y agregamos la siguiente linea .

==============================================


Wifi $WIFI_IF - maclist,dhcp

==============================================

editamos el archivo /etc/shorewall/maclist

# vi /etc/shorewall/maclist

==============================================

#DISPOSITION INTERFACE MAC IP ADDRESSES (Optional)
ACCEPT $WIFI_IF 00:04:5e:3f:85:b9 #WAP11
ACCEPT $WIFI_IF 00:06:25:95:33:3c #WET11
ACCEPT $WIFI_IF 00:0b:4d:53:cc:97 192.168.3.8 #TIPPER
ACCEPT $WIFI_IF 00:1f:79:cd:fe:2e 192.168.3.6 #Work Laptop

==============================================



Configurar Fail2ban contra ataques de fuerza bruta

Fail2ban es una aplicación utilizada para combatir ataques de fuerza bruta en diversos servicios ,  esto lo hace analizando los logs por específicos intentos de ingreso al sistema en un determinado intervalo de tiempo,  hoy veremos como configurarlo para una aplicación muy esencial como SSH.

para comenzar instalamos las aplicaciones necesarias por medio de yum.

#yum -y install fail2ban

editamos el archivo /etc/fail2ban/jail.conf

#vi  /etc/fail2ban/jail.conf

configuramos los ips o segmentos de red que seran excluidos de la restriccion de fail2ban "ignoreip", tambien encontraremos la regla de cuanto tiempo estaran restringidos los host "bantime" , cuanto tienpo buscara los intentos "findtime" (los tiempos son dados en segundos ) y cuantos intentos son los maximos permitidos "maxretry" , cabe mencionar que en las reglas especificas del servicio se sobre ponen a las reglas generales .

==========================================================

ignoreip = 127.0.0.1 192.168.0.0/24


bantime  = 600

findtime  = 600

maxretry = 3



==========================================================


ahora habilitamos el servicio que requerimos , en las jaulas correspondientes  . pondremos como ejemplo la de SSH, cambiamos los parámetros resaltados en rojo

==========================================================

[ssh-iptables]

enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
           sendmail-whois[name=SSH, dest=you@mail.com, sender=fail2ban@mail.com]
logpath  = /var/log/sshd.log
maxretry = 5
==========================================================


grabamos los cambios en el archivo reiniciamos  el servicio

# service fail2ban restart

si requerimos  borrar una regla  agregada al iptables  listamos las reglas de iptables

# iptables -L

y borramos la regla  deceada

# iptables -D regla_fail2ban
#service iptables save

si no deseamos utilizar iptables , cambiamos la configuración a tcpwrappers

==========================================================

[ssh-tcpwrapper]

enabled = true
filter = sshd
action = hostsdeny
mail-whois[name=SSH, dest=root@localhost]
logpath = /var/log/auth.log

==========================================================

reiniciamos el servicio de fail2ban

# service failt2ban restar

Configurar Fail2ban squirrelmail contra ataques de fuerza bruta

Este manual muestra como prevenir ataques de fuerza bruta contra Squirrelmail con Fail2ban.
Fail2ban funciona con reglas de Iptables por lo cual deberá estar activado , o TCPWrappers

Instalamos la paquetera necesaria ( previamente configurado sendmail )

# yum install fail2ban squirrelmail


SquirrelMail (imapd) CentOS v5.X por defecto registra los losg en /var/log/maillog pero sólo como la dirección IP 127.0.0.1 (localhost). Dado que estamos tratando de prohibir una dirección de origen específicas, fail2ban no puede utilizar este archivo. Por lo tanto, vamos a instalar y utilizar Squirrel Logger para capturar la verdadera fuente de la dirección del intento de acceso.

Descargamos el Plug-in para log de direcciones externas

# cd /usr/share/squirrelmail/plugins
# wget http://squirrelmail.org/countdl.php?fileurl=http%3A%2F%2Fwww.squirrelmail.org%2Fplugins%2Fsquirrel_logger-2.3-1.2.7.tar.gz
# tar zxvf squirrel_logger-2.3-1.2.7.tar.gz
# cd squirrel_logger-2.3-1.2.7
# cp config_example.php config.php

Para checar si existen nuevas versiones entre al sitio oficial de squirrelmail en la categoría de " Administrator's Relief ".

Si sus equipos usan la hora local que no es la hora de GTM, debera modificar el parametro "$sl_use_GMT = 0 "

#vi /usr/share/squirrelmail/plugins/squirrel_logger-2.3-1.2.7/config.php

Continuamos configurando el plugin para que sea utilizado por squirrelmail con el script de configuración

# /usr/share/squirrelmail/config/conf.pl


============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Main Menu --
1. Organization Preferences
2. Server Settings
3. Folder Defaults
4. General Options
5. Themes
6. Address Books
7. Message of the Day (MOTD)
8. Plugins
9. Database
10. Languages

D. Set pre-defined settings for specific IMAP servers

C Turn color on
S Save data
Q Quit

Command >>

============================================================

selecciona la opcion #8 de plug-ins


============================================================
SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail

Available Plugins:
4. listcommands
5. fortune
6. filters
7. translate
8. abook_take
9. spamcop
10. squirrel_logger
11. mail_fetch
12. calendar
13. sent_subfolders
14. message_details
15. administrator
16. info
17. bug_report
18. filters
19. administrator
20. templates
21. translate
22. autocomplete
23. mail_fetch
24. msg_flags




R Return to Main Menu
C Turn color on
S Save data
Q Quit

Command >>

============================================================

Selecciona la opcion de ssquirrel_logger ( la cantidad de plug-ins pueden variar dependiendo el administrador)


============================================================

SquirrelMail Configuration : Read: config.php (1.4.0)
---------------------------------------------------------
Plugins
Installed Plugins
1. delete_move_next
2. squirrelspell
3. newmail
4. squirrel_logger


============================================================

presionamos la "S" de salvar datos y la "Q" de quit, y quedara activado el plug-in


agregamos la siguientes lineas al archivo jail.conf

# vi /etc/fail2ban/jail.conf

=============================EJEMPLO IPTABLES===============================

[squirrelmail-iptables]
enabled = true
filter = squirrelmail
action = iptables[name=SquirrelMail, port=http, protocol=tcp]
sendmail-whois[name=SquirrelMail, dest=you@your_domain.com, sender=fail2ban@your_domain.com]
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4

=============================EJEMPLO TCPWRAPPERS===============================

[squirrelmail-tcpwrapper]
enabled = true
filter = squirrelmail
action = hostsdeny mail-whois[name=squirrelmail, dest=root@localhost]
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
maxretry = 4

============================================================

el parametro "maxrety=4" indica los intentos permitidos

Ahora debera entrar al folde filter.d

# cd /etc/fail2ban/filtel.d
# touch squirrelmail.conf
# vi squirrelmail.conf

y agregamos las siguientes lineas

============================================================

# Fail2Ban configuration file
#
# Author: Bill Landry ((email_protected))
#
# $Revision: 510 $

[Definition]

# Option: failregex
# Notes.: regex to match the password failures messages in the logfile. The
# host must be matched by a group named "host". The tag "" can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P\S+)
# Values: TEXT

failregex = \[LOGIN_ERROR\].*from : Unknown user or password incorrect

# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT

ignoreregex =

============================================================

fail2ban necesita reconocer el formato de fecha que emite el squirrelmail_access_log asi que tendremos que editar el archivo datedetector.py entre los tags de "Apache format " and " Exim format "

# vi /usr/share/fail2ban/server/datedetector.py

============================================================


# SquirrelMail 09/13/2007 06:43:20
template = DateStrptime()
template.setName("Month/Day/Year Hour:Minute:Second")
template.setRegex("\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}")
template.setPattern("%m/%d/%Y %H:%M:%S")
self.__templates.append(template)

============================================================


agregamos al fail2ban a chkconf y arrancamos el servicio

# chkconfig fail2ban on
# service fail2ban start