Di algo inteligente o van a pensar que eres un tonto! - Homero Simpson

Man-in-the-Middle general

Ahora que han hablado de como vulnerar TLS con un MitM para lograr “ver” la conversación cifrada entre un navegador y un servidor web (entre otras cosas), recuerdo que hace años, cuando entendí como se hace el ARP poison, etc, pensé que debe ser relativamente sencillo crear un MitM que capture las primeras comunicaciones entre dos “hosts” para engañarlos y mandar hacia cada lado la llave pública propia, haciendolos creer que tienen la llave pública del host real.

Voy a ponerme a revisar el protocolo de SSH, pero sospecho que no hay una manera realmente efectiva de evitar esto, y podría convertirse en un problema bastante serio en los lugares en los que no se auditan las MAC Address, que es prácticamente en todas partes, aun después de los años, y de muchas implementaciones para intentar asegurar la red interna, la mayoría de los sitios siguen confiando ciegamente en su red interna, y no lo digo nomas así, lugares que invierten muchísimo, y que se supone que están a la vanguardia en seguridad hacen eso exactamente.

En fin, me pondré a revisar el “handshake” inicial de SSH para ver si realmente se podría o no meter un MitM, pero segun yo no hay manera de evitarlo mas que agregando las llaves manualmente por fuera (como se haría con el protocolo más estricto de comunicacion con PGP).

Cuando empezaremos a usar protocolos más estrictos de aseguramiento ?? jeje, pronto posiblemente :)

Tags: , , , ,

Filed under:Uncategorized

La Seguridad en México

Anoche hubo un operativo bastante interesante relativamente cerca de mi casa (que no es la suya, pero cuando quiera puede ir, querido lector), 2 helicopteros empezaron a sobrevolar un punto que está a unos 500 metros de donde vivo, de hecho el punto más cercano de la vuelta típica que estaban dando probablemente está a unos 200 metros solamente, y al menos un par de veces incluso pasaron por encima de mi casa, tanta explicación es para ambientar o justificar que me puso bastante tenso la situación, estuvieron 2 helicopteror al mismo tiempo sobrevolando como una hora, y se quedó uno de ellos un par de horas más solo, esto entre las 11:00 pm y las 2:00 am, con un ruidajo que pa que les cuento, estuve tratando de encontrar alguna noticia mientras esto sucedía y no encontré nada, hasta hoy en la mañana vi en uno de los noticieros locales que aparentemente estaban “vigilando” una “mansion” (esa es una zona de casas muy grandes) y que al parecer intervinieron unos 100 efectivos no se si de la PFP o similares.

Eso es todo lo que dicen, no hay detenidos, aparentemente si entraron a la casa y sacaron cajas, pero no hay ningun reporte oficial hasta el momento, por ahí de las 7:00 am de hoy pasó de nuevo un helicoptero, no se si se fue, o aterrizó, pero ya no se volvió a oir en la media hora que estuve en mi casa antes de salir al trabajo.

El asunto es, porque actuan de esa manera, porque no informan adecuadamente, ese tipo de acciones solo dan pie a que uno sospeche que andan haciendo algo bastante turbio, sobre todo cuando en las últimas semanas y días se ha estado hablando mucho de que policias de Morelos han levantado civiles y los han matado y tirado en Guerrero, y no son uno o 2, se habla de al menos 11, se sabe de hecho quien los levanto y todo, pero pueden estar seguros de que andan tranquilos en libertad, y bueno, ya para rematar, desde ayer o antier vi que en la procuraduría de justicia alguien puso una paloma decapitada, lo cual es suficiente para que “el jefe de la policia ministerial” diga que ya no va a atacar al narcomenudeo, lo peor es que creen que algun familiar de los ejecutados por los mismos policías les está haciendo brujería !!, chale !!

Sin argumento alguno, están vinculando a los asesinados por sus compañeros con el narcomenudeo, digo, no tengo ningun problema en creer que puede ser cierto, pero si sabe algo porque no lo dice claramente ?? y porque no se formulan cargos, es algo muy grave que un jefe de policia haga declaraciones así sin un fundamento, en esencia ya no están avisando que pase lo que pase, ellos van a tener la razón.

Cabe señalar que entre los 11 muertitos hay varias mujeres, y al menos un menor de edad (16 años), con lo cual podemos darnos cuenta de la magnitud del asunto, la policía ministerial los ejecuta, y el jefe de la policia ministerial los vincula con narcomenudeo e inmediatamente después decide que no va a combatir este delito porque es un “asunto federal” !!! eso si, otros crímenes como “la delincuencia organizada” si son de su incumbencia (WTF!!!)

Como podemos tener políticos tan estúpidos que ponen a ese tipo de personas a cargo de la seguridad ??? pues sencillo, nuestros políticos están bien metidos en el narco, en los secuestros, en los robos (el hermano del gobernador por ejemplo), etc.

Eso pasa en Morelos, que es un estado pequeño y bastante tranquilo, que no estará pasando en los estados realmente problemáticos !

Mientras tanto, sigue como un misterio por resolver que estaban haciendo los helicopteros y los 100 agentes anoche, pero nada bueno se puede esperar.

UPDATE: Una hojeada a la union de Morelos, un periódico que está como a 100 metros de mi casa, no muestra ningun signo del operativo de anoche, curioso.

Tags: , ,

Filed under:Uncategorized

grsecurity afectado por la crisis

La lista de correo de grsec recibió una mala noticia, aparentemente la crisis ha afectado directamente a uno de los principales (o el principal) patrocinador, por lo que el desarrollo de el parche para el kernel de linux solo tiene seguridad hasta marzo 31 de 2009, a menos que encuentren patrocinio suficiente para mantener el equipo de desarrollo.

En general es bastante triste la situacion económica, y los que nos dedicamos directamente al mundo de las computadoras para vivir hemos estado con cierto temor, y a la vez con cierta confianza los que vivimos del SL, pero este es uno de esos indicadores que nos dicen que ni siquiera nosotros que nos dedicamos a trabajar con el software más económico tenemos las cosas seguras.

Uno de los equipos de seguridad más importantes está sufriendo para mantenerse activo, seguramente ahorita todos pensamos que ser empleado de la NSA puede no ser tan malo despues de todo verdad ? :) , pero todavía hay ciertas esperanzas, veamos si en los próximos meses es posible que la cominidad done un poco, y ayude a encontrar fuentes de financiamiento para el mejor equipo de desarrollo de seguridad en Linux.

En fin, vamos preparandonos para el año que sigue, porque va a ser muy interesante, los veo en la siguiente entrada de este blog !

Tags: , ,

Filed under:Uncategorized

Seguridad para mortales

Como dice mi buen amigo Kwame, te vas a volver loco leyendo tanto de seguridad.

La verdad es que el asunto de seguridad es un tema ya sea para genios o para paranóicos, normalmente los moratales, aquellos que no andan por arriba del ±10% del IQ promedio, no tienen gran interés en el tema: “Mientras no pierda datos que me hagan perder el trabajo, no hay problema”.

Entonces qué puede esperar una persona normal (en cuestion de inteligencia y estabilidad emocional) cuando tiene interés en la seguridad computacional?

Respuesta rápida: Leer mucho, entender poco, aplicar conceptos básicos a sus sitemas (actualizaciones, seguridad permietral básica, monitoreo interno básico).

<Respuesta larga>

El proceso va a ser mucho más doloroso que para los afortunados genios y paranóicos, normalmente la falta de obsesión no ayuda a aprender cosas complejas como jugar ajedrez bien, cualquer matemática que vaya más allá de una derivada (integrales ya no califican como sencillas), o la razón por la que la teoría de cuerdas, o la de funcionales de la densidad han fallado en explicar cosas que otras teorías si han logrado (o para el caso, entender porque son usadas por tanta gente).

Pero a pesar de que va a requerir mucho trabajo (más que para los genios, y esos trabajan como locos), necesitamos mucha gente involucrada en la seguridad, no podemos dejarle el tema exlcusivamente a los “inteligentes”, no son suficientes, y normalmente no se ocupan de temas triviales como asegurar la red de una empresa que no tiene cientos de servidores y miles de PCs.

Lo básico es entender TCP/IP, jeje, si, ya se, pero es necesario, se puede aprender bastante sin entenderlo, pero eventualmente se llega a un punto en el que si no puedes entender al menos lo más básico de la salida de tcpdump (o incluso los argumentos de tcpdump correctos para cada situación típica) simplemente no vas a poder mejorar tu conocimiento, y mucho menos detectar problemas y solucionarlos (una intrusión califica como problema).

Desgraciadamente muy pocas escuelas le entran al tema de redes con una profundidad más allá de saber decir “trama de paquetes” o “modelo OSI”, pero tenemos internet !!, así que material para estudiar si hay.

Por otro lado, la realidad es que aunque los congresos de Software Libre son tan informales como todo entusiasta de ellos, son la mejor fuente de información tanto “legacy” como nueva. En los congresos de SL puedes encontrarte con temas tan novedosos como seguridad en virtualización, y desde luego fuzzing, buffer overflows, ID[S,P], nuevas formas de ataque (web 2.0 sale al tema constantemente en estos días), y un gran etcetera.

En un congreso de computo tradicional, incluso en eventos especializados de seguridad que no sean enfocados al SL, puedes encontrar cosas interesantes, pero en general el fuerte de la información que proporcionan tiene que ver con la comunicación a niveles superiores del organigrama, con justificar gastos, y con actualizar el caló ejecutivo en cuanto a seguridad computacional. Entonces, tienen su valor, pero está más relacionado con mantener tu trabajo, o justificar aumentos de sueldo.

Y bueno, aunque ya lo mencioné, hay que puntualizarlo bien, en la actualidad la mejor manera de aprender sobre seguridad es buscar información en Internet. Existen blogs muy interesantes (al final pongo ligas) sobre casi cualquier tema de interes en esta área, aunque normalmente esos blogs no son muy explícitos, nos dan muy buenas pistas, y de vaz en cuando pruebas de concepto (PoC, de sus siglas en inglés) muy educativas. Las listas de correo sobre avisos de seguridad también son muy importantes, hay un par al menos que discuten abiertamente muchos ataques, siempre hay que expulgar entre toda la basura, pero es una habilidad que se aprende fácilmente. Y por último, y no menos importante, hay que estar visitando los sitios que publican exploits, y todo lo relacionado a ataques locales y en red, ahí no solo nos damos cuenta de que vulnerables somos, sino que tenemos material para experimentar y aprender a distinguir la diferencia entre un programa en C que va a borrar nuestra información y uno que va a atacar una vulnerabilidad (no hace script kiddies de mejor nivel).

La seguridad es tan complicada y tan extensa que simplemente nunca vas a lograr tener un panorama completo, pero si podemos tener el conocimiento suficiente para disminuír en gran medida la posibilidad de un ataque exitoso. Por lo pronto esto fue todo por hoy, el panorama de la autopista al DF está atrayendo cada vez más mi atención, y no me voy a resistir.

</Respuesta larga>

Buen día.

Update (Gracias por el aviso Alex!)

Corregí el desastre de formato que había, es lo malo de escribir offline y solo dar el copy/paste cuando llegas a la oficina :) , sorry
Ligas interesantes

Tags:

Filed under:Uncategorized

Snort 3.0

Snort 3.0

Snort ha sido el pilar de la detección de intrusos para la gran mayoría
de los que se dedican a la seguridad de redes. Existe una cantidad de
productos comerciales, pero normalmente el costo de ellos es prohibitivo
para el sysadmin promedio, y bueno, no tenemos que entrar en la discusión
a cerca de la flexibilidad y seguridad que proporciona una caja negra.

Entre las grandes ventajas de Snort, dejando de lado que es
libre/gratuito/abierto (FLOSS), está su flexibilidad para la generación
de reglas, así como sus “plugins” para el soporte de protocolos.

Desde su nacimiento a la fecha Snort ha sufrido varios rediseños
importantes, sin embargo, para la versión 3.0 (actualmente en desarrollo)
su arquitectura tiene cambios muy dramáticos, todos enfocados en mejora
de desempeño y en su usabilidad.

2 cosas saltan a la vista en cuestión de su arquitectura, la primera es
una separación entre la máquina de manejo de paquetes (Snort Security
Plataform ó SnortSP) y la máquina detectora de intrusos (“engines”)
en forma de plugins con lo cual Snort podrá manejar más de una de
ellas. Actualmente se hizo port de la máquina de detección y los
preprocesadores de la version 2.8.2 de Snort, pero se espera que existan
otras alternativas en el futuro. Esto da gran flexibilidad a Snort,
ya que cualquiera podrá crear una máquina de detección de acuerdo a
sus necesidades o ideas novedosas al respecto.

Ya del lado del usuario, tambien podemos notar 2 grandes cambios,
uno es la aparición de una linea de comando para interacción con
Snort, podemos entrar a ella en el momento de correr snort, o podemos
conectarnos a ella a través de la herramienta “snortsp_tool” que nos
conecta al socket que provee SnortSP para su control. Y finalmente,
pero no menos importante (como es usual) ahora toda la configuración
y control de SnortSP se hace a través del lenguaje “Lua” (Usuarios de
awesome WM extasíense !), lo
cual va a generar una nueva curva de aprendizaje, y para facilitarla en
la distribución de snort existe un script para traducir lo que hacemos
con el antiguo snort, al nuevo lenguaje de control:

sspiffy.sh +

es el $PATH de snortsp, y + son los argumentos
con los cuales corríamos snort originalmente. El script se encarga de
leer cada argumento y traducirlo al equivalente en Lua, incluyendo la
lectura del “snort.conf” y por supuesto su traducción. El script genera
2 archivos (snort.lua y snort.conf) en el directorio que se corre, y los
cuales podemos probar de la siguiente manera:

snortsp -P
-S -L snort.lua

INSTALACIÓN

La instalación en debian es relativamente sencilla, tenemos que
instalar varios paquetes indispensables con sus respectivos paquetes
para desarrollo (paquete-dev):

  • Lua >= 5.1.1
  • Libdnet
    (libdumbnet1 en debian)
  • Libpcap
  • UUID

con los prerequisitos cumplidos podemos correr el clásico:

./configure && make && make install

Continuaremos viendo con más detalle el manejo de Snort 3.0 (en
la versión beta 2) en una edición posterior, mientras tanto, si
tienes interés en Snort, visita la página oficial www.snort.org, ahí
encontrarás documentación, la lista de correos en donde se puede pedir
ayuda, y los paquetes de código fuente de la versión estable y de la
de desarrollo, así como de reglas de detección.

Tags: , ,

Filed under:Uncategorized

(Dear lazy web) Alternativas para crear codigo PHP para web de manera segura

Todos los que hacen algún tipo de desarrollo para web saben que los problemas que conlleva están en varios niveles: (in)compatibilidad de los navegadores a nivel de HTML, JavaScript y CSS, problemas de seguridad como XSS (cross site scripting) e inyecciones SQL.

Para todo hay trucos, y por ejemplo la incompatibilidad de los navegadores en cualquiera de los niveles se puede corregir tal vez a un 90% en la mayoría de los navegadores (los 4 mas populares :) , sin embargo, los problemas de seguridad pueden ser incluso mas importantes, o mas preocupantes.

En los últimos días he estado pensando en como podría lograrse un método o conjunto de herramientas (funciones y clases) que permitan escribir código PHP para web sin que sea posible un ataque SQLi o XSS, y sin tener que hacer a mano las validaciones.

Una alternativa es NO USAR PHP, con python/django es posible hacer todo eso y más, pero estoy intentando reescribir una aplicación ya hecha en PHP, que va a seguir siendo mantenida por programadores de PHP (en teoría) y que además tiene un esquema de base de datos ya definido (no es un problema para usar django realmente).

He estado dándole vueltas al asunto durante los últimos días, como es usual perdiendo el tiempo en vez de actuar :) , pero si sería chido conocer una alternativa robusta para hacer las cosas de la “manera correcta™”.

Por lo pronto creo que voy a darle un poco por el lado de django, pero si alguien llega a leer esta nota, y además sabe de una alternativa interesante para PHP (2 requisitos complicados de cumplir) por favor comunícamelo con señales de humo, email, respuesta aquí, o como se pueda.

Tags: , ,

Filed under:Uncategorized, debian