17 de septiembre de 2011

No cON Name 2011 (2/2)




conjuntoEntradas() {
  No cON Name 2011 (1/2)
  No cON Name 2011 (2/2)
}

Continuamos con el resumen de las ponencias del segundo día de la NcN.

7) Técnicas oscuras para combatir la pederastía en Internet
By Juan Antonio Callés y Pablo González

Juan Antonio y Pablo, después de presentarse y a que se dedican hacen, han pasado a exponernos los ciberdelitos que afectan, en gran medida a menores, que corren hoy por la red. Posteriormente nos han hecho un breve resumen de hasta dónde llegan las leyes para erradicar este tipo de delitos, en España y en Colombia, ya que han tenido la experiencia de colaborar, o más bien de que les pidiesen a ellos ayuda, para desarrollar una versión a medida de su “troyano” open source, para utilizarlo por la propia policía Colombiano en la captura de un criminal que extorsionaba a una menor de este país; experiencia que nos han explicado como empezó y fue evolucionando hasta terminal con la captura del delincuente.

Luego nos han hecho 6 demos de varias de las utilidades que tiene el su troyano Flu para que viésemos de lo que es capaz y aprovechar para ver si nos animamos a colaborar en este gran proyecto.
Verdaderamente ha sido muy acertada, por parte de la organización, de meter esta charla tan amena al principio de la sesión del segundo día.

8) La Sibila (The Sibyl)
By Pedro Fortuny y Rafael Casado

Pedro nos ha explicado con un gran sentido del humor una posible solución que han diseñado y desarrollado que evita los ataques de fuerza bruta sobre los típicos hashes utilizados para no almacenar las contraseñas en claro en las BBDD, sin tener que obligar al usuario a utilizar combinaciones de caracteres de ésas que ponen los pelos de punta a los usuarios que no están paranoicos con la seguridad.

La solución propuesta permite entre otras cosas, aislar la autenticación a otra máquina que solo haga eso y así se mejora la prevención de comprometer la máquina a través de otros servicios, es decir el concepto de que los servidores sean definidos por roles y no que hagan de todo. En la parte de cifrado de las contraseñas se utilizan claves RSA y cadenas aleatorias, permitiendo aumentar la seguridad ofrecida por los sistemas más habituales (hashes).
Podéis consultar todos los detalles y descargar el sistema para que lo utilicéis en vuestro sistema en, ya que es open source, aquí.

9) (In)seguridad para jugones: apuestas, casinos y otros juegos de azar
By Rafael Rodríguez

Rafael no has explicado las mil y una pirulas que los amigos del lado oscuro aplican en los distintos tipos de juego y no juego, como máquinas de cambio de billetes, etc., para llevarse bypaseando las reglas de juego establecidas por los tan “lícitos” casinos.

Hemos escuchado, de todo, desde trucos relacionados con soporte interno o sin él, pasando por el hacking de máquinas, redes, etc. y terminando con truqillos de obtención de información relevante para tomar decisiones óptimas en las futuras jugadas, vamos todo un festival.
Luego ha dado el salto al negocio de los casinos on-line, donde has explicado que se han liberado de los problemas que se les presentan con los medios que utilizan para caer en los problemas que las TIC tienen, es decir ha sido la bienvenida al festival 2.0.

Finalmente nos ha explicado las contramedidas que se toman los dueños de este gran negocio para evitar estas pirulas, para que a más de uno no caiga en la tentación de creer que este tipo de timos es como la gallina de los huevos de oro, es decir para que no seamos malos.

Nos hemos entretenido a lo grande viendo todos los artilugios que emplean y aplican estos individuos.

10) Debugging (Exploit) Payloads
By Jose Serlvi

Jose nos ha dejado, o al menos a mí, atónitos con su charla; es la segunda que vez que asisto a una de sus charlas y como la primera esta hecha para absorber una cantidad de conocimientos increíbles. Ha sido una charla de 100% técnica donde nos ha explicado de que se trata el mundo de los exploits, pero centrándose en los payloads.

Para meterse en el mundo de los payloads nos ha explicado una dos de sus experiencias, una sobre el conocido 0 day de Internet Explorer que usaron los chinos para atacar a Google y otro para abrir un reverse shell en un iPad.

En su primera experiencia hizo uso de metasploit con el payload de aurora (el 0 day comentado en el párrafo anterior) pero en ella tuvo que analizar el payload para conseguir que le funcionase en el entorno que tenía que auditar, por aspectos de idioma, y raíz de eso vio que es lo que el payload hace y también vio que si se usa como una demostración sobre un entorno real luego hay que avisar al administrador del equipo afectado para que restaure las configuraciones, ya que el payload los modifica para su menester pero no los restaura.

En su segunda experiencia, partió de la base que si había una web donde se puede hacer un jailbreak de IOS 4.3 entonces es que tiene un exploit. Así que se puso manos a la obra para ver que hacía ese botón gordo de la web para conseguir el jailbreak, para posteriormente utilizar el exploit para ejecutar su payload que abre la conexión con la shell invertida.

11) Retorno de Inversión en la adecuación a la normativa PCI-DSS
By Javier Moreno Molinero

Javier ha hecho una ponencia de temática menos entretenida ya que las normativas aunque importantes, son un tostón; no obstante, considero que este tipo de charlas, no son menos ni importantes ni menos útiles.

Por la parte que profesional que a mi me toca, no es que PCI-DSS me afecte de manea directa, pero puedo establecer una analogía de la defensa de la adopción de la normativa PCI-DSS, por parte de una empresa, frente los costes económicos defendidos por parte de los financieros, ya que en bastantes ocasiones me tengo que pegar de ostias con estos y los directivos para defender necesidades que normalmente se imputan como un gasto sin ningún beneficio vistos desde fuera del departamento de TI, es decir la defensa que tenemos que hacer con el famoso ROI (Return of Investment) para conseguir presupuesto en la aplicación de normativas legales, adquisición de vienes (hardware y software), etc.

12) Reversing / Forensic Android
By Sebastián Guerrero

Otra de las charlas con un listón altísimo, tanto de contenido como el propio ponente.

Sebastián ha dado una charla de esas densas, no ha apenas respirado desde la primera sílaba hasta la última, momento en que ya se ha pasado a la ronda de preguntas; no obstante para nada se ha hecho pesada y mucho menos difícil de procesar la información, le ha dado humor por un tubo, mientras comentaba todo le iba metiendo inyecciones de bromas, coñas, etc.

El contenido ha sido de lujo, partiendo de la pila de capas de la que se compone Android, pasando luego por de que se componen una aplicación de Android, herramientas útiles para hacer reversing, como se hace un reversing y análisis forense, para posteriormente decirnos como saltarse las protecciones para usar aplicaciones de pago by de face y finalizando con una demo de la PoC (Proof of Concept) que han desarrollado para cargar cualquier payload y conseguir hacer un touchjacking.



Ahora toca la mesa redonda, pero aquí sobre esta no va ha haber nada así que si os interesa las tendréis que ver en GlobbTv.

Hay que agradecer a la organización No cON Name la profesionalidad que ha tenido en la planificación, organización y ejecución del congreso, todo ha estado currado a tope, tanto contenido de las ponencias, ponentes, como el orden de estas, que ha garantizado combinar las charlas que te mantiene despierto sea cual sea tu condición y otras que por temática, no menos importante, hagan del cansancio tu pero enemigo.


Esto es todo amigos sobre este congreso; hasta la próxima enfermos.

16 de septiembre de 2011

No cON Name 2011 (1/2)



Este año he repetido por segunda vez mi asistencia a la No cON Name y por ahora ha sido igual o más fructuosa que el año pasado.

conjuntoEntradas() {
  No cON Name 2011 (1/2)
  No cON Name 2011 (2/2)
}

Con esta esta entrada os dejo un breve resumen de cada una de las ponencias del primer primer día.

1) Show me your Kung Fuzz
By Iñaki Rodríguez

Iñaki nos ha explicado inicialmente que es el fuzzing, que básicamente lo ha resumido como: “Se trata de generar mucha mierda para que una aplicación reviente”.

Inicialmente nos ha dicho para que nos puede servir el fuzzing; lo que me gustaría destacar de estos es que a remarcado que no solo es un ámbito interesante para las empresas que se dedican a aspectos de seguridad, sino que también tiene un gran valor para el resto de empresas que han desarrollado aplicaciones y quieren descubrir posibles vulnerabilidades que tienen, claro está para corregirlas y ofrecer aplicaciones más robustas a tus clientes, en el caso que las comercialices, o a tus usuarios, en el caso que sea para uso interno.

Luego de darnos la introducción nos ha mostrado un conjunto de aplicaciones, dentro de la lista interminable que hay, de aplicaciones para hacer fuzzing, básicamente, como es normal, nos ha nombrado las que él utiliza, posteriormente nos ha dado una pequeña lista de lo que necesitaremos para montarnos un pequeño laboratorio de fuzzing, unas cuantas máquinas, unas cuantas aplicaciones, un poco de conocimientos de programación en algún lenguaje de scripting y muchas ganas de ponerse a currar y a gastar horas jugando con todo esto. Poca broma con éste ámbito, el fuzzing es entendible a todo, explotación de vulnerabilidades ficheros, aplicaciones locales, de red, protocolos de red, aplicaciones web, etc.

Luego ya han venido un par de demos, mostrándonos cómo en pocos minutos ha encontrado un agujero en una aplicación comercial cuyo coste no es que sea precisamente “low cost”.

Posteriormente un resumen de lo encontrado, de los problemas que surgen en el proceso de fuzzing; algo que quiero mencionar es que como un aplicación pasa por múltiples estados, no podemos decir que una aplicación está libre de vulnerabilidades si no hemos encontrado ninguna en nuestro proceso de fuzzing ya que es posible que solo hayamos barrido un % muy pequeño de todos estos estados.

2) Seguridad en el diseño: desde el principio
By Ricardo J. Rodríguez

Ricardo nos ha explicado y ha defendido en su ponencia que el diseño de un sistema tiene que incorporar la también la seguridad; es decir que actualmente, el diseño de sistemas, eso que se trata de pensar y valorar la solución que necesitamos para cumplir con los requerimientos que el sistema tiene que cumplir, ya ha obtenido un cierto reconocimiento a nivel mundial, y lenguajes como UML ya se han consolidado como estándar, pero por ahora la seguridad no es uno de los ámbitos que se tiene en cuenta en el diseño de un sistema, y eso es lo que él y sus compañeros del equipo de investigación de la universidad están trabajando para conseguir obtener una aprobación teórica que agrade a los que necesitan que todo esto sea práctico, es decir, como de costumbre en el campo de la investigación, pasar de las demostraciones teóricas a la práctica que el mundo de los negocios requiere.

No me voy a meter en concreto en metodologías, estándares, etc, que ha comentado en la ponencia, esa información puede obtenerse de manera amplia en los papers de investigación que han publicado.

Lo que me ha gustado de la ponencia, es que yo soy 100% partidario de pensar, reflexionar y valorar las múltiples variable que pueden afectar a lo que pretendes crear o poner en funcionamiento, ya que eso garantiza que en el momento del despliegue se reduzca el riesgo de que surjan imprevistos y después durante la explotación tenga un mayor nivel de control sobre las incidencias que puedan surgir garantizando velocidad de detección de la fuente del problema y de la velocidad de reacción; es decir que al haber defendido que la seguridad tiene que estar incluida en la fase de diseño de un sistema como en el desarrollo de software es algo que me ha llegado al alma, porque en mi día a día profesional me veo obligado a vivir en el caos y con una mínima dedicación a la planificación y a la organización, y no será porque lo pongo constantemente encima de la mesa, teniendo que sufrir que me tomen como un paranoico.

3) Geolocalización Wi-Fi basada en API
By Yayo F. Hansen

Primero de todo hay que mencionar la entrada inicial que ha hecho Yago en su ponencia, la musiquita, el texto que aparecía en pantalla y finalmente su entrada a oscuras con un sombrero en la cabeza, creo, que nos ha permitido a todos partirnos la caja.
Dejando de banda el show, nos ha dado un repaso sobre los sistemas de geolocalización y los virtudes y demencias de cada una; de cada sistema GPS, GSM, Wi-Fi y GeoIP, nos ha explicado como operan y como accedemos a esa información.
Lo más destacable y que más ha expuesto, de ahí el título de la ponencia, es la geolicalización Wi-Fi que está un poco en auge, con lo del HTML 5 y la famosa API de Google que tanto ha dado que hablar, y con razón.
Me he puesto algo más al día de como está todo este embrollo de la geolocalización, además de meterme el miedo sobre la seguridad de los sistemas móviles Android, algo que ya conocía, pero su manea de decirlo y de interpretarlo, y ahora que hace un par de semanas que llevo un Android en el bolsillo, el miedo se me ha calado todavía más al fondo, por lo que me va tocar a dedicar un poco de tiempo al cacharraro que va en mi bolsillo, porque en estas dos últimas semanas apenas he tenido tiempo para explorarlo a fondo y ver como puedo, al menos, conseguir tener algo más de control sobre éste.
Verdaderamente ha sido una ponencia estupenda, y se ha hecho muy amena, gracias a la pizca de humor que ha ido aplicando durante su presentación.

4) Terminal Hackapplications – old and new tricks hacking Citrix and Terminal Services
By Chema Alonso y Juan Garrido

De esta ponencia, no voy a describir muy concretamente lo que nos han mostrado, ya que tiene una una gran densidad técnica, mediante demo en directo, para el tiempo que tenían; además muchos de vosotros habréis ido siguiendo lo que Chema y Juan escriben en sus respectivos blogs, además de poder ver esta misma ponencia, presentada en la Black Hat USA 2011, donde la presentaron, que la podéis ver en algún vídeo colgado por ahí.

Como en todas las que he asistido, las ponencias de Chema son todo un show, que os voy a contar, el nivel de conocimiento que se expone y que puedes absorber es increíble, ya que técnicamente son muy buenas y amenas, y con el cachondeo que se trae, los conocimientos entran solos; quiero resaltar que el duo que esta vez ha hecho con Juan, ha sido muy muy bueno, yo siempre lo había visto exponer solo, pero la mezcla con Juan y la interpretación de este han dejado el listón tal alto, como siempre él me había dejado en sus exposiciones en solitario.

Bueno resumiendo rápido, nos han expuesto como explotar AGUJEROS de seguridad en aplicaciones de Terminal Services y Citrix, tan de moda hoy en día y publicadas en Internet sin mucho reparo, verdaderamente si yo tuviese este tipo de entornos ya me veo solicitando una reunión con dirección para exponer la seriedad del asunto y pedir los recursos necesarios para aplicar las consecuencias con las medidas que Chema y Juan nos han indicado, aunque la soluciones sean muy complicadas, llevan mucho tiempo y aún así, no te garantizan que lo hayas cerrado todo.

5) Ejercicios de demostración JWID (Joint Warrior Interoperability Demostration)
By Pedro Sánchez

Pedro nos ha expuesto los esfuerzos de los estados por conseguir tener herramientas, desarrollar estrategias y estar al día en la defensa/ataque frente a los ataques cibernéticos, englobados a los que ellos entienden como ciberguerra.

Nos explicado que hay congresos, concursos, etc, sobre todo esto; la verdad es que es impactante que pueda llegar el día que si tienes una idea feliz, le dedicas tiempo y llegas a algo útil que pueda ser útil en este campo, puedas acabar en un congreso sobre esto, lleno de “tíos con uniforme”, de esos que hasta ahora la mayor parte de la población piensa que llevan un fusil en la mano, cuando hoy en día ya parece que está creciendo el número de “tíos de estos” que ya no llevan un fusil en la mano, sino un ordenador.

Estoy sorprendido ya que pensaba que los estados no estaban invirtiendo tantos esfuerzos como lo que Pedro ha expuesto, y sobre todo algo que me deja más tranquilo, es que están subcontratando servicios profesionales para mejorar la seguridad en este ámbito; tendré que empezar a creerme que nuestro estado nos defiende.

6) Medical Device Security: State of Art
By Shawn Meginger

Shawn no ha puesto al día con todo lo relacionado con la seguridad que hay en los dispositivos y aplicaciones del ámbito médico.

Ha sido una ponencia muy descriptiva de como está este ámbito; a descripto tipo de dispositivos y aplicaciones que hay y que problemas de seguridad pueden tener y el alcance que puede tener un ataque sobre uno de estos.
También ha reclamado que es un aspecto peliagudo, los fallos de estos ponen en juego la vida de un grupo de personas, pero aún así los fabricantes de este ámbito parece que ignoren la seguridad by defautl.

Finalmente ha listado los investigadores que han escrito papers y descubierto agujeros de seguridad en productos de este ámbito, además también ha citado ciertos grupos de investigación, “normativas” que se han desarrollado o están en desarrollo y algo más que seguro que me dejo.




Finalmente el día ha terminado con la mesa redonda que estaba anunciada, “Ataques a las grandes Corporaciones”, la cual ha estado entretenida, pero no voy a dar más detalle; los interesados que no han podido asistir seguro que tendrán la posibilidad de verla retransmitida por algún lugar.


Nos vemos mañana enfermos.

10 de septiembre de 2011

Root power a lo old school


Después de haber caído de nuevo en la tentación de dar preferencias a otros temas profesionales y personales por distintas causas antes que a este blog, aprovecho esta tarde de sábado, de un fin de semana de esos que estoy agotado físicamente por liarme a organización de eventos deportivos, concretamente de BTT, para escribir una de las entradas que hace tiempo que tenía ganas de escribir.

Bueno después de lavarme la conciencia con excusas vamos al lío.

Menciono de antemano que nadie se tome el contenido de esta entrada como una buena práctica, y menos para usuarios no catalogados como frikis de muchos de las distribuciones Linux que corren por ahí, sino como algo totalmente de gusto personal, aunque muchas de los aspectos los argumente desde un sentido que pueda parecer racional. Advertidos estáis, paso a meterme de lleno en el tema.

Todos sabemos que desde ya hace bastante tiempo en gran parte de las distribuciones de Linux viene con la herramienta sudo instalada y con una configuración básica que permite ejecutar cualquier comando del sistema desde el usuario que se crea en la instalación del SO.

A mi la herramienta me parece cojonuda, pero cuando me topé con ella sin haber consultado su documentación y habiendo enterado de ella cuando volví a la carga con un SO Linux, después de un tiempo sin usarlo, me saltaron chispas al ver que no podía entrar con la cuenta de root al sistema; en ese tiempo sabático que me tomé después de haber terminado la universidad y haber empezado lo que podríamos llamar entre comillas “mi vida completamente laboral/profesional”, no estuve muy al día sobre el mundo Linux y los recuerdos que me quedaron fueron los de la universidad, tiempo en el que la herramienta sudo o no existía, o yo no la conocía, y con las distribuciones que tocaba, no venía instalada y preconfigurada como ahora viene, es decir, que cuando instalabas un Linux, metía las contraseña de root y luego según si eras aplicado y te dejabas recomendar, optabas por crear una cuenta sin privilegios administrativos para usar el sistema tu día a día.

El momento inicial me jodí y adopte lo que venía dado, ejecutar todo lo que necesitaba derechos administrativos con sudo.

El tiempo ha ido pasando, y finalmente en mi mundo personal (el de trastear por casa con los equipos que más utilizo) opté por seguir cultivándome con Linux, ya que en el mundo profesional estaba y estoy inmerso en el mundo Microsoft (que esto no se tome como una discriminación entre ambos, cada uno, como todo en este mundo, tiene cosas buenas y otras malas, cosas que nos gustan y que no nos gustan, pero yo soy de los de según lo que necesitemos optar por la que mejor cumpla las necesidades de cada momento, sin casarme con nadie); eso si mi cultivo no era el de productor agrario sino el del típico dominguero que tiene un huerto en su segunda residencia, es decir que gran parte de mi tiempo libre me dedico a jugar en este inmenso mundo de la informática, con ojos de generar beneficio económico, pero si no lo hay, me divierto un poco según lo que me voy topando y también si me va viniendo en gana.

Hace algún tiempo, le tocó el turno a profundizar un poco en el tal sudo; algo que no vino antes, porque como mi evolución del uso personal de un Linux, cambió de distribución, de una Ubuntu a una Gentoo, perdí de manera intrínseca las cadenas que me ataban a no ser el amo del sistema, y que vino más tarde porque me metí un poco en aspectos de la seguridad, añadiéndola a la lista de curiosidades tecnológicas que me gustan, aprovechando que encima, eran importantes para mi posición profesional actual.

Después de ver de manera general como funciona la herramienta, no es que sea un gurú de ésta, la configuré sobre mi Gentoo, para evitar tener que ir cambiando de cuenta cuando a la vez que administraba el sistema, por ejemplo lo actualizaba, tuviese que estar constantemente cambiando de sesión con mi cuenta de usuario cuando la tarea administrativa toma algún tiempo, ya que la opción de usar el sistema de manera convencional (navegar por internet, etc.) desde un Dios, no me gusta nada, porque ya somos muy vulnerables para encima meter más leña al fuego. No obstante la configuración no fue como la que acostumbra a venir por defecto en la instalación de varias de las distribuciones disponibles, sino que limité las aplicaciones y/o comandos a ejecutar como root desde el usual usuario, así creo que hay menos riesgo si me usurpan la contraseña de éste.

Mi vida con Gentoo fue tirando así, pero ya hace bastante menos tiempo, que decidí cambiar la configuración de sudo del Ubuntu que tengo instalado en mi netbook, máquina que uso para llevármela por ahí y para estar tirado en algún lugar de casa haciendo el ganso, como ahora mientras escribo este post, es decir que necesito que esté estable de manera fácil lo máximo posible y que el hardware esté disponibles sin tener que romperme mucho la cabeza, sin perder lo que ya he mencionado, estar inmerso en el mundo y filosofía Linux en mi tiempo libre. La configuración que establecí partió del mismo concepto que la de Gentoo pero como root continuaba sin ser accesible mediante una sesión tuve que investigar el porque, ya que hasta entonces lo ignoraba, descubriendo el porque no se podía iniciar sesión, que concretamente es porque la cuenta root es bloqueada con la opción --lock, comando passwd.

Descripción de la opción --lock del comando passwd

Así que activé la cuenta root con la manera tan fácil como asignándole un nuevo password ya que entiendo que al no haberme pedido ninguno en el momento de la instalación la cuenta estaba bloqueada pero no tenía ninguno asignado y si lo tenía lo desconocía, y desde ese momento ya podía hacer lo que siempre había deseado, que si quiero dedicarme a solo administrar la máquina no tenga que estar constantemente ejecutando sudo.

Bueno ya acabando con esto voy a responder algunas de las preguntas que yo mismo me hice.
  1. Con el cambio que he hecho en la configuración de sudo ¿mi sistema es más vulnerable?
    Yo entiendo que no, incluso menos, porque habiendo quitado la configuración estándar de sudo, que viene por defecto en la instalación de Ubuntu, he eliminado aspectos, como el tiempo que se guarda la autorización, cambiándola a 0 segundos, es decir que cada ejecución de sudo siempre me pide el password, independientemente del tiempo que haga de la última ejecución, y además he limitado que V solo autorice un número limitado de comandas y/o aplicaciones en vez de poder ejecutar cualquiera de estos.

  2. Ahora que root puede logearse en el sistema mi equipo ¿es más vulnerable?
    Podría ser lo si no le hemos asignado ningún password, o si hacemos mal uso de ella, utilizándola para otros menesteres que no sean los de administrar. Además, aunque tenga poco impacto, y sea una paranoia personal, teniendo otra cuenta con otro password que nos permita administrar la máquina, considero que es más seguro porque también exponer mucho menos el password, ya que usando sudo cada vez que ejecutas aplicaciones con derechos administrativos necesitas proporcionar el password de usuario exponiendo esté continuamente.

  3. ¿Es aplicable esta configuración a todos los distintos perfiles/tipos de usuarios?
    Considero que no, que la configuración por defecto de la instalación del SO es más aceptable para un usuario si no conocemos a que tipo pertenece, ya que los usuarios que no son unos frikis de los sistemas, no les gusta hacer muchos esfuerzos en mantener dos cuentas de usuarios, teniendo que recordar dos passwords distintos, así que configurándolo como a mi me mola, creo que una parte de estos caería en la tentación de utilizar la cuenta de root como la habitual, dejando olvidado la de usuario, corriendo el riesgo que se corre ejecutando la mayor parte de las aplicaciones con derechos administrativos, y más concretamente hoy en día, con la manera masiva en que utilizamos los navegadores conjuntamente con Internet.



Hasta la próxima enfermos.