viernes, 26 de agosto de 2011

De vuelta al Blog y algo del Owasp Latam Tour 2011 - Perú

Como se habrán dado cuenta, me he alejado bastante de mis lectores... pues esto se debe a que cambié de trabajo, hace poco mas de un mes me encuentro en una nueva posición, siempre en el rubro de la seguridad de TI y de la información, sólo que esta vez, la posición está relacionada mas con un tema de management, así que si bien mi día a día está cada vez mas recargado, y poco a poco, mi vida laboral me aleja de lo técnico... digamos que mi tiempo libre (que ahora es muy poco) trato de compartirlo con mi familia, mi pareja y mis amigos a quienes veo realmente poco...

Pero me he dado cuenta que, el tema técnico es parte mía, y cada día estoy mas convencido, que así como otros podrían llevar un curso de vinos, de barman, de chef, o algún tema que los aleje del tema laboral probablemente, yo preferiré, llevar cursos, o hacer research en temas técnicos. Y seguiré con un cautil en mano y una lupa con luz para facilitar el trabajo, así como seguiré madurando mis pininos que hice en python cuando me preparé para la certificación OSCP (la cual logré)... o seguiré armando algunos mini circuitos con placas arduino (aunque la idea es mas adelante poder tener mi casa controlada por equipos arduinos colgados a la red, y con un web server o similar, controlar toda la casa desde ahí... algo como un sistema de monitoreo y control creo que así le llaman en el ejército...

En fin... disculpen mis desaparecidas... pero sigo aquí... sigo en el rubro... sólo que con un día a día mas apretado... denme un tiempo para ordenarme... que tengo mucho que compartir con ustedes en este cerebro... claro... siempre y cuando no choque con los acuerdos de confidencialidad que tengo firmados... espero sepan comprender...

Por lo pronto, les comento que hace un par de sábados estuve compartiendo con los amigos de OWASP, como parte del OWASP Latin Tour 2011, en el cual pude participar con una charla, para los que me conocen de hace mucho, podrían decir que es un refrito, por que es un tema que ya toqué antes... pero digamos que es un reciclado con upgrade, y bueno... digamos que si bien las cosas en la capa de aplicación y presentación han cambiado al nivel de las capas 2, 3 y 4 las cosas siguen siendo las mismas... tanto a nivel de diseño, como a nivel de malas prácticas de seguridad... así que, no creo que esté demás hacer un remake de este tema... Man in the Middle aplicado a la Seguridad.

Les dejo el link.


Y por lo pronto les voy adelantando que ya estamos coordinando para el próximo LimaHacK 2011 (la nueva edición) y hay un par de eventos mas en la escena local a los cuales me están invitando... que se cierre formalmente la invitación y les comentaré por este medio...

Ahora si me despido... y me voy a bañar para ir al trabajo...

Un abrazo, y sigan visitando este su Blog...

Saludos,

Juan Pablo.

miércoles, 6 de julio de 2011

Una charla en la Universidad Señor de Sipán de Chiclayo...

Como comenté en algunas listas amigas, hace unos días, fuí invitado a participar del IT Chiclayo Security Day 2011, organizado por la Universidad Señor de Sipán en la calurosa ciudad de chiclayo (por su gente y su clima, que casi me derrito durante la exposición... jejeje)...

La verdad que estoy super contento del apoyo que la universidad le da a sus alumnos... justo ese día tenían una actividad relacionada con Linux, donde muchos de ellos presentaban sus proyectos basados en Linux, y algunos otros defendían alguna distribución en cuestión...

Super contento, super divertido... a mi modo de ver las cosas, este tipo de charlas son esa recarga de baterías que necesitamos cada cierto tiempo para poder retomar nuevamente nuestras labores, y sentir que nuestra dedicacion en este tema que nos apasiona como es la seguridad de la información, le es de utilidad a muchas personas, y continuamos en nuestro camino de aprender y crecer cada día mas...


Pues les contaré que tuvimos una asistencia de aproximadamente 200 asistentes (la foto no me dejará mentir)... en la cual participé con 2 charlas de seguridad, la primera fué la ya conocida por algunos (gracias a los LimaHack) "Lockpicking 101", la cual como siempre bromeo con el tema, no trata de enseñar a como entrar a las casas, si no a conocer como funcionan los mecanismos de un "pin tumbler" y como aquella "falsa" sensación de seguridad, por dejar documentos, o información en un cajón con llave, por que está seguro, cambia radicalmente. Así como también al momento de definir la ubicación y distribución de un centro de cómputo, hay ciertas consideraciones que seguro tomarán luego de ver esta charla... (al menos esa es la intención)...

Y bueno... también tuvimos la oportunidad de realizar al fín la charla de "Pentesting utilizando Open Source"... esta charla la preparé inicialmente para el flisol en Puno es verdad, pero era una charla que quería desarrollar de algún tiempo atrás... en si, quería mas que nada ofrecer un poco de lo que es una prueba de intrusión, entrar en algunas definiciones, tocar algunos temas que suelen surgir al momento de realizar una prueba de seguridad, y hablar sobre algunas metodologías conocidas, fuentes de herramientas, virtuales de práctica entre otras cosas..

Esta charla la pueden encontrar disponible para download incluso en la siguiente URL:


Ahí podrán encontrar las dos charlas, así como algunas otras que he venido realizando a lo largo del tiempo. Espero que las disfruten...

Me hubiera gustado poder dedicarle mas tiempo a la demo, pero lastimosamente estabamos ajustados de tiempos... en fin, ya será para otra oportunidad.

Un saludo a todos y gracias al Ing. Luis Vives de la Escuela de Ingeniería de Sistemas de la Universidad Señor de Sipán.

Nota: Estos días ando super loco con cambios de trabajo, cerrando una, y empezando la otra, así que ya les contaré mas al respecto...

Un abrazo, y estamos en contacto.

Juan Pablo.

martes, 7 de junio de 2011

¿Que debería buscar en un informe de un análisis de vulnerabilidades, o un ethical hacking un auditor de TI?

Hace un par de días, me encontré con esta pregunta en un foro, y pensé que sería interesante comentarlo aquí en el foro. (A parte, que como ando como loco preparandome para un exámen, como que he tenido el blog y a mis queridos lectores un poco abandonados, y darles refritos de otros lados, como los resultados electorales(salió sin querer mi querido WC, no te lo tomes a mal ;) jeje), la salida del backtrack5, sobre la venta del código fuente de Zeus, sobre botnets, sobre malware, phishing, o algo de game hacking que estuve revizando hace poco (saben que es un mundo donde se mezclan muchos conocimientos distintos?... en fin, ese tema será para mas adelante) tal vez les escriba sobre algunos temas en los que he andado metido en estos días (gestión de proyectos y cosas de esas)... así que creo que algo de volcado de memoria de mis épocas de auditor podría serles útil, antes que ya no lo recuerde mas... (como el "pensieve" en el que dumbledore guardaba sus memorias, pues el mío será este blog... jejeje). Y de verdad ando medio loco con esto de la estudiada, mas la chamba (el trabajo), mas las elecciones (que nos tienen locos a todos los peruanos), y un rompecabezas de 5000 piezas, que si no lo termino pronto, me sacan a mi o al rompecabezas de la casa (tengo secuestrada la mesa del comedor de la casa), y también mi oficina donde hago research, y como vivo en un departamento de 2 dormitorios, sólo queda la cocina y la sala libres, se imaginan que en casa no les hace mucha gracia no? jejeje...

En fin... retomando con nuestro tema, cuando se trata de un auditor de TI, en mi experiencia personal, la revisión que haga sobre la documentación, los procesos, los estándares, buenas prácticas de plataforma de seguridad, procesos de control de acceso, de ciclo de vida de desarrollo de software, y así todo lo que pueda ocurrirsele o toda referencua que pueda surgir, desde el primer día en que mandan su requerimiento formal de información al auditado, parte por lo general de un alcance mayor, y tiende a ser un soporte para una revisión mayor... (o al menos así creo que debería ser)

A que me refiero con esto, me refiero a que por lo general una auditoría de TI, va a ser un soporte a una auditoría contable, una auditoría de revisión de estados financieros (que podría ser sarbanes oaxley), una revisión de cumplimiento de PCI (Payment Card Industry, no vayan a pensar que de Peripheral Component Interconnect), o un análisis de brechas, GAP Analysis "como le dicen" (lease con voz de dady ricky de pataclaun, no me gustará el programa, pero su personaje es bastante pintoresco) ya sea de la ISO/IEC 27001, o de la NTP ISO/IEC 17799 (nuestra norma técnica peruana equivalente a lo que sería la ISO 27002), o una revisión para hipaa relacionado con la privacidad de la información en temas de salud (aunque a la fecha no aplica como una exigencia en muchos países latinoamericanos, el Perú no es una excepción), u otras de revisión de procesos de TI, que podría ser basada en Cobit, para evaluar el grado de madurez de los controles de seguridad, o podría ser basada en ITIL, para los temas de Gestión de TI, sin embargo, todas, o muchas de ellas, van a considerar el tema de la evaluación de vulnerabilidades, como un control realizado, o como una exigencia para el caso de muchos estándares.

Pues la revisión de los informes de seguridad, va a ser parte de la mayoría si no de todos los procesos de revisión antes mencionados, sin embargo, algo que debe quedar en claro para el auditado (a manera de defensa), en que dichas revisiones normalmente están acotadas, es decir, tienen un alcance finito, lo cual es lógico, ya que aplicar dichos estándares a toda la organización, si bien es el ideal, pero a veces tiende a ser complicado, sobretodo en organizaciones que tienen ya una forma de trabajo (y cuando digo forma de trabajo, me refiero tanto a los procedimientos, a los sistemas, como a la gente). Recuerden esto, cuando les vengan con una observación de por que no se aplicó el análisis a toda la organización, el alcance puede ser un salvavidas, o un veneno mortal.

Sobre esa base, digamos que lo primero va a ser, el tener claro el alcance de trabajo, esto tiende a ser útil para poder determinar los tiempos de ejecución, así como la cantidad de tareas y el tipo de profesionales, o el perfil que debe de tener el equipo o la persona a ejecutar las acciones, dimensionar las horas y el costo que implicará.

Luego como auditor, pensaría en algunas cosas, por ejemplo, tratando de pensar como el especialista que realizó la evaluación, sin perder mi objetividad de auditor, pensaría, en que procesos se vieron afectados, y de acuerdo a mi marco de trabajo o alcance(definido anteriormente) lo que debió pasar es que se identificaran los equipos que afectan a los procesos, la información, o los sistemas que están (cuando menos) directamente relacionados con mi alcance, y a partir de ahí debí hacer una evaluación, que debe ser estructurada y metodológica, para evaluar todos los sistemas bajo el mismo nivel de rigurosidad. Así no sucede que evalué mas un equipo, por que tenía mas vulnerabilidades, pero el otro que estaba mas difícil, casi ni lo toqué.

Pues partiendo desde esta "lógica", el informe debería tener el alcance definido, la metodología utilizada, la escala de medición (para medir que es alto, que es medio y que es bajo, por mencionar un formato de clasificación).

De ahí lo obvio que pensaría encontrar son las vulnerabilidades identificadas, las que deberían tener una explicación o una referencia que explique en que consisten, y luego la clasificación para cada una de ellas, de ahí, ya a gusto del especialista, la forma de agrupar la información, por equipo, por vulnerabilidad, por puerto, por criticidad, en fin, al final variará en mi opinión, de acuerdo a la facilidad o dificultad para analizar y procesar toda la información presentada.

Pues otro tema que considero que debería aparecer, es una evidencia que muestre que realmente existe la vulnerabilidad y no se trata de un falso positivo, y para terminar esta sección, esperaría la recomendación para su remediación.

Al final, un resúmen de lo identificado, y por ahí anexos de evidencia, a veces hasta incluyen anexos en CD's con la evidencia con los datos generados sin procesar, en fin, la presentación y las formas de aquí en adelante varían por muchas razones, las exigencias de la revisión, lo acordado con el cliente, lo contratado previamente, requerimientos legales, en fin.

Algunos preparan una presentación, con lo resaltante, y lo demás, lo incluyen en un grueso y denso informe con miles de páginas que esperamos todos (por el sufrimiento de tanto arbolito) que lo lean algún día y le hagan caso al mismo, conclusiones, y recomendaciones.

Bueno pues... eso es lo que esperaríamos encontrar creo yo en un informe de pentesting.

Pero la pregunta no ha sido respondida del todo. Y digo esto, por que considero que adicionalmente, hay cierta información que se encuentra necesariamente en el informe, pero es aquella a la que hay que prestarle atención, es decir, al seguimiento.

El realizar análisis de vulnerabilidades, es importante, creo yo, sin embargo tiene muchas variables, que hacen que dicho informe pueda ser mucho mas completo o cercano a la realidad, ya que considero que todo sistema tiende a ser vulnerable, la diferencia estará en cuanto tiempo es el que te toma vulnerarlo, es por ello que el hallazgo de las brechas de seguridad, dependerá mucho de la experiencia y capacidades del especialista que ejecute la evaluación. Es por ello que en lo personal como auditor, preferiría preocuparme, del seguimiento y la corrección de las vulnerabilidades, debilidades y amenazas, identificadas. Esto debido a que es necesario, no sólo conocer las falencias en materia de seguridad en nuestro sistema, si no que también es importante saber:

- Si dicha información ha sido atendida en el tiempo.
- Si se han tomado las medidas correctivas que eviten la recurrencia de vulnerabilidades en ese u otros sistemas.
- El uso de buenas prácticas para el desarrollo seguro, o para la corrección oportuna de las brechas identificadas.

Por otro lado, hacer un análisis histórico de informes previos con la intención de evidenciar la recurencia en las vulnerabilidades identificadas, también permite identificar si dichas mejoras, o correcciones, están siendo incluidas dentro de los estándares de seguridad de plataforma, o de desarrollo de aplicaciones seguras.

También es importante saber cuales fueron las pruebas realizadas, lo cual nos da una idea del tipo de trabajo que se realizó y cual fué su duración, ya que una evaluación de 40 horas (1 semana), 160 horas (1 mes) o una evaluación de 8 horas (un día) van a tener un alcance distinto, y un nivel distinto de profundidad para la identificación de vulnerabilidades. Existen muchas fuentes de vulnerabilidades conocidas que considero deberían ser evaluadas de manera obligatoria, por ejemplo, el Top Ten de OWASP es lo mínimo que debería de considerarse para la evaluación de vulnerabilidades en Web.

Adicionalmente, habrán casos en los que las vulnerabilidades son analizadas, pero por decisiones del negocio, se opta por no corregir la falencia de seguridad, sin embargo, esta decisión involucra un análisis que sustenta dicha decisión, este análisis debería ser la evidencia que sustente la no ejecución de correcciones en la seguridad. (Un análisis de riesgo sobre la vulnerabilidad, puede ser un muy buen sustento a manera de control compensatorio).

También puede suceder, que nos encontremos con casos en los que muchas vulnerabilidades aún no se encuentran corregidas, o "parchadas" debido a que la evaluación se realizó hace poco, y no ha habido tiempo suficiente para su corrección, o aún se encuentran evaluando si la corrección de seguridad no afectará a este u otros sistemas. Pues bien, lo que se esperaría tener es un plan de acción aprobado, o sustentos que demuestren las coordinaciones orientadas a corregir las falencias identificadas, es un buen punto de partida. Aunque ahí si pensaría en revisar con mayor detenimiento los informes anteriores, para verificar si hay vulnerabilidades recurrentes.

Este puede ser un buen sustento, y en todo caso, puede ser una observación o recomendación en caso de encontrarse fallas recurrentes.

Como ven hay muchas cosas que pueden ser obtenidas de dichos informes.

Bueno, espero que esta publicación pueda ser de ayuda para mis amigos auditores, (recuerden, no es que los auditores les tengan odio, son sólo negocios, y al final de cuentas son profesionales y es su trabajo).

Un abrazo, y estamos leyendonos.

domingo, 15 de mayo de 2011

Mis primeras experiencias con Arduino...

Pues les contaré que llegaron mis placas arduino... tocó mandarselas a un familiar en los united y luego que me los traigan con alguien en equipaje... pero valió la pena la espera...

Había comprado 1 placa arduino uno enun starter kit (el cual incluye algunos sensores, motores, potenciómetros y demás, un ethernet shield y un par de displays para soldar, uno de 16x2 y otro de 128x128 bits... Super contento la verdad... (aunque la verdad que pensé que serían mas grandes)...

Pero mejor, mientras mas pequeños, mas diversión (y mas posibilidades de ocultarlos en algún lugar jejeje...

En fin... retomando el tema, de repente alguno de ustedes no han saben de que estoy hablando, vamos a la fuente, la web oficial de arduino para explicarles...
Arduino es una herramienta para hacer que los ordenadores puedan sentir y controlar el mundo físico a través de tu ordenador personal. Es una plataforma de desarrollo de computación física (physical computing) de código abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa.
Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores físicos. Los proyecto de Arduino pueden ser autónomos o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash, Processing, MaxMSP). La placa puedes montarla tu mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y lo puedes descargar gratis.


Ahora, creo que una foto vale mas que mil palabras... esta es una placa arduino.


Al final de cuentas lo que tienes es un microprocesador con algunos pocos Kb's de memoria, y algunas interfases digitales y analógicas... para aterrizarlos en valores numéricos, tenemos puertos digitales, (es decir pueden ser 1's o 0's) y analógicos (que para estos fines, maneja valores de 0 a 1023) ahora, los shields, son placas "adicionales" que tienen un diseño hecho para poder "apilar" placas adicionales que permiten añadirles ciertas funcionalidades a nuestra configuración, por ejemplo, la placa ethernet shield, le añade la funcionalidad de conectar la placa arduino a la una red ethernet, así como el ethernet shield, hay shields, de gsm, gps, motor shields, shields de wireless (xbee)...

Cada uno de estos puertos (digitales y/o analógicos) pueden ser utilizados para entrada o para salida, que podríamos entenderlos como de lectura o de escritura, ahora, también es posible conectarle leds (diodos emisores de luz, o "foquitos" si prefieren), potenciómetros para regular
la intensidad de la corriente, resistencias, displays, motores, parlantes, brazos mecánicos a los motores, rotores, sensores de presión, luz, en fin, sensores de lo que se les ocurra y así mil cosas...

bueno, a eso, falta añadirle la aplicación de desarrollo que podemos bajar desde la web, la cual la tenemos en plataformas windows, linux y mac... (así que no hay excusas)...

Hay varios demos, y puden encontrar varios videos en youtube (incluso con audio en castellano) así que no me vengan con excusas...

He visto ciertas adaptaciones como por ejemplo, un arduino que le llamaban el "stalker device", le colocaron una pila para darle poder independiente y portabilidad, una placa de gps para que ubique la posición en el tiempo, y una placa de gsm, para conectarla a la red celular, con eso y una aplicación pequeña hecha en casa, tienen un aparato que dentro de un carro o un maletín puede hacer el seguimiento, y trazado de ruta en google maps para saber en donde anduvo nuestro "dispositivo" y el "transportador" del mismo.

Así también vi otros shields por ejemplo uno de rfid, donde podrías hacer que el shield "simule" ser una tarjeta rfid y acceder una puerta de acceso por rfid utilizando un ataque de "fuerza bruta" o copiando una tarjeta válida.

He visto navegando por ahí que hasta se pueden armar arduinos utilizando protoboards, los "ingredientes" los pueden encontrar en nuestro querido paruro, o en mercadolibre de perú me parece haber visto venta de atmega128 que es el chip "principal" por así decirlo...

Adicionalmente, como les comentaba, había traido unos displays, para soldar... pues no me imaginé que la soldad estaría tan "estrecha", tocó conseguir una de esas lupas con luz blanca, y como que luego de algo de tiempo, práctica y dedicación logramos soldar todas las mini piezas, ya les pondré algunas fotos del resultado, no serán las mejores solduras, pero podemos decir que no sobraron piezas y que el producto funciona...

Así que super contentos y afanados en compartirles en mediano plazo algunos de los mini proyectos... (también hay que trabajar pues... que le vamos a hacer...)

Bueno, ya les iré contando de mis avances...

miércoles, 4 de mayo de 2011

Echenle un ojo a esto... NETinVM

No se si lo habían visto... la verdad que para mi es algo nuevo, pero me encuentro gratamente sorprendido con el mismo, pero dejenme explicarles el porque...

Como ustedes sabrán... hace algún tiempo atrás... era difícil pensar en armar una red en casa, para hacer investigación... Es mas... contar con una red para pruebas, era difícil, incluso en la universidad, para ello debías apoderarte de unas cuantas máquinas del laboratorio, o armar unas viejas máquinas en casa y empezar a hacer tus pruebas... o bueno... la forma mas fácil pero tal vez menos "elegante" hubiera sido aprovechar los miles de equipos que se encontraban "despertigados" por el internet...

Pero a medida que pasan los años uno viene profundizando en sus investigaciones, y a medida que uno se va metiendo en los temas de seguridad, se vuelve... mmmm... digamos... mas "intrusivo"... por lo que pensar en esos miles de equipos en el internet se hace impensable, y aquel laboratorio de cómputo en la universidad ya no puede convertirse en tu "objetivo de ataque", recuerda... otros alumnos también necesitan usar esas PC's... jejeje...

Entonces, la idea de "jugar" en casa era la mas compleja de hacer, pero no la mas irreal... con el tiempo y la difusión de las máquinas virtuales, y la potenciación de equipos que permitían soportar capacidades respetables para levantar mas de un equipo en una pc, era algo bastante probable... de ahí hoy en día encontramos muchos proyectos de maquinas virtuales "de ataque" (como lo fueron PHLAK, PLAC, SLAX, AUDITOR), máquinas de tipo "vulnerables" (DE-ICE, Metasploitable, DVL, entre otras muchas)...

Pues este proyecto me pareció bastante particular por que implementa algo que tenía en mente hacer hace tiempo... pero que por una u otra razón no llegué a hacer... Lo que han hecho es preparar una virtual que levanta una red completa... y cuando digo una red, me refiero a 3 pequeñas redes que simulan ser internet, una red dmz (o zona desmilitarizada), y red una interna. Hasta 6 equipos UML (User-Mode Linux) en cada uno de estos "segmentos", y una máquina adicional que hace las veces de firewall para generar reglas de comunicación entre los tres segmentos.

Todo listo y empacado en una máquina virutal con lo necesario para contar con un laboratorio que podría ser replicado en casa o en donde quisieran...

Ahora, si hay cambios que hacer sobre la red, lo interesante es que basta configurar todo desde un solo equipo y este afecta a los otros.

Me ha parecido un proyecto bastante interesante... y la verdad que empecé a pensar en que podría de repente cambiar un poco la "alineación" e instalar algunas herramientas que permitan darle un poco mas de "realismo" a dicho entorno para hacer simulaciones de evaluaciones de red, de repente levantar un backtrack en una de las máquinas o una versión reducida del mismo, o de repente las mínimas herramientas necesarias para realizar algunas prácticas, y con ello desarrollar laboratorios mas completos... mmm la verdad que me ha parecido super interesante...

Ya tengo la imagen bajando y vamos a ver como se porta en casa con una Core2Duo con 3gigas de RAM, ojalá aguante... ya les iré contando...

Si quieren mas información de NETinVM, les paso el link...

Sitio NETinVM

Salu2

Juan Pablo.