Como ya anuncié hace meses, durante la semana del 14 al 18 de Septiembre de 2015, se celebrará en la colombiana ciudad de Manizales, la segunda edición del evento DragonjarCON, en el que tendré el honor y placer de participar con una charla y un taller de dos días.
Por lo que nos transmite la gente de Dragonjar, se están dejando los dientes en cuidar cada detalle, y hacer que este sea uno de los eventos de seguridad de referencia en Colombia.
Me consta que han tirado la casa por la ventana y que será una bomba. El plantel de ponentes, tanto internacionales como colombianos es excelente
En esta ocasión tendré la oportunidad de no viajar solo, sino que compartiré horas y horas y horas y horas de avión y aeropuertos con Daniel Echeverry, que ha prometido que cuando llegue allí, preferiré Python antes que Perl :D
Lo mejor, como siempre en todas las CONs, será el ambiente de camaradería que se respirará en Manizales (junto con el excelente sabor del café de allí) en la primera ciudad de Latinoamérica en la que dí una conferencia.
Para los que tengáis pensado asistir al evento, la organización nos ha dado dos entradas que sortearemos entre nuestros lectores.
Bases del sorteo
Es requisito indispensable que los participantes en el concurso sean de Colombia o que tengan disposición de viajar allí.
Daremos dos entradas entre todos aquellos que dejen un comentario diciendo por qué se merecen una entrada para el DragonjarCON y hagan RT de este post desde twitter.
Tenéis desde hoy hasta el viernes 4 de Septiembre a las 23:59 hora peninsular española. Importante es que indiquéis en el comentario vuestro twitter.
Entre todos los comentarios que haya, elegiré personalmente los 5 que más creativos me hayan parecido y se los enviaré a la gente de DragonjarCON, que harán un segundo sorteo de entre esos 5, usando random.org
Uno de los congresos de seguridad informática en España más esperados por todos/as!
Este año, se celebra la quinta edición del congreso Navaja Negra y deciden celebrarlo conjuntamente con la ConectaCon, otro congreso bien conocido por los lectores de Security by Default!
Por si alguien todavía no se ha decidido a comprar la entrada para la Navaja negra, os pego los objetivos a los que se mantienen fieles desde la primera edición:
Realizar el Congreso de Seguridad Informática #nnc5ed aprovechando el V aniversario de “NAVAJA NEGRA” junto con "ConectaCON" de Jaén, donde unimos esfuerzos y objetivos comunes que celebraría su cuarta edición. Nos permitirá difundir, compartir y transmitir el conocimiento de los investigadores de seguridad o “hackers” a la comunidad, empresas del sector privado y público y a la propia Universidad, los avances, investigación e innovación que se han producido en el panorama español e internacional. Impulsar el espíritu de “comunidad técnica de seguridad” fomentando la colaboración entre el público asistente, ponentes, empresas de los sectores privados y públicos y a la propia Universidad. Consolidar y posicionar el evento dentro del panorama público nacional de Conferencias, Jornadas y Congresos de Seguridad como uno de los eventos “técnicos” más importantes.
Tenemos ya algunas de las sorpresas que nos pondremos encontrar si asistimos al congreso:
Ponentes Internacionales:
La primera de las novedades de las que disfrutaremos los asistentes será una charla de Marc Heuse (Van Hauser). Fundador del proyecto The Hacker's Choice (http://www.thc.org ) @hackerschoice
Reputado profesional de la seguridad informática a nivel internacional y del que tendremos la suerte de contar en esta quinta edición del congreso.
Otra de las celebridades de la que podremos disfrutar es Miroslav Stampar. Archiconocido por una de sus creaciones SQLMap, utilizada por todos/as en nuestras auditorias.
Nos enteramos de la noticia gracias al Twitter de la organización
Ponentes nacionales
Como no, en Navaja Negra & ConectaCon, se promociona el talento nacional y es por eso que la organización ya anunciado que contaremos con talentazo local con nombres como
thPoPe
SkUaTeR
Selvi
Pepelux
Barroso
Talleres de la mano de Jaime Peñalba Y Sergi Álvarez (pancake)
Algunos de los talleres anunciados por parte de la organización vendrán de la mano de estos dos cracks Jaime y Sergi.
Sobre los talleres de Jaime y Sergi, como os imaginaréis, podremos ver alto contenido técnico relacionado con Radare, desarrollo, reversing etc..
No os lo podéis perder tampoco
¿Que precios hay este año?
En la web de Navaja Negra podemos encontrar los precios para poder asistir, pero si todavía no lo has visto, aquí los tienes:
LEGAL HACK DAY
En paralelo a tendremos el "LEGAL HACK DAY" (30/09) y X1RedMasSegura (02-03/10) completamente gratuitas. No tenemos mas noticias todavía, pero en breve podrán ofrecernos mas información al respecto:
Estaremos atentos a estas novedades!
Descuento en Camisetas Frikis
Otra de las cosas de las que nos podemos aprovechar es de un descuento en camisetas frikis
En el proceso de compra, podremos introducir el código proporcionado por el STAFF de Navaja Negra y ConectaCon
La Universidad de Virgina sufre un ciberataque, supuestamente desde China, que les obliga a reiniciar la red durante el pasado fin de semana. En principio se descarta que los atacantes pudieran acceder a información sensible.
De nuevo, Lenovo en el punto de mira. Se ven obligados a publicar una actualización de firmware para sus dispositivos tras detectar una posible entrada de atacantes sobre los usuarios a través del servicio LSE (Lenovo Service Engine)
Actualización de Docker 1.8, entre sus novedades destacan mecanismos para proteger al usuario frente a posibles imágenes comprometidas (Docker Content Trust)
Buenas, dejando por una vez la VoIP a un lado, hoy toca hablar de seguridad en Node (Node.js® / io.js). Con el implacable crecimiento de JavaScript en el lado del servidor cada vez es mayor el número de servicios que aprovechan las ventajas de este entorno. Especialmente los relacionados con la web (ej: Express, Hapi, etc), que además se están utilizando con éxito en producción atendiendo a millones de usuarios cada día.
Como suele ocurrir con las nuevas tecnologías el tema de la seguridad es más de “ya si tal”. Esto ocurre, entre otros motivos que todos conocemos, debido a los constantes cambios en la mayoría de las librerías e incluso algunos en el propio core. Así que los desarrolladores tenemos bastante con que nuestras aplicaciones no se rompan y, cuando es posible, en mejorar el rendimiento de las mismas.
A lo que vamos, en mi trabajo como programador, cuando tenía que securizar una aplicación de este tipo tocaba tirar de diapositivas de algunas conferencias, diversos posts, etc. Por este motivo empecé a pensar que era el momento de revisar como aplicarían las vulnerabilidades más comunes de la web en este entorno. En una primera investigación rápida para ver si existía algún proyecto relacionado al que poder contribuir me encontré con NodeGoat, una aplicación vulnerable que implementa el OWASP Top 10. El problema era que estaba sin actualizar, por lo que utilizaba una versión antigua de Express, perdiendo demasiadas mejoras introducidas con el tiempo. Por este mismo motivo fallaba la instalación de las mismas y era imposible ponerla en marcha. Así que me puse manos a la obra, tras una re-escritura de distintas partes y de que @ckarande (el autor) aceptase los cambios todo en orden otra vez. Simplemente tenéis que seguir los pasos del README para jugar con ella, incluso podéis desplegar de forma gratuita vuestra propia copia en Heroku con un par de clicks.
Login
Una vez instalada podemos acceder a la ruta "tutorial" (no hace falta estar logueado) y registrar un usuario o utilizar los credenciales por defecto:
"admin" / "Admin_123"
"user1" / "User1_123"
"user2" / "User2_123"
Tutorial
Panel administración
Panel usuario
Podríamos repasar todas las vulnerabilidades que se explican en el tutorial pero me parece un poco sin sentido teniendo en cuenta que todos sabemos inglés. Así que vamos a comentar un par de ellas y el que tenga interés ya sabe, a probar y contribuir al proyecto ;). Por cierto, sé que es un poco coñazo tener el tutorial metido en la aplicación, pero tenemos en el Roadmap sacarlo a una carpeta de documentación en condiciones.
A1 - 1 Inyección en el lado del servidor
La típica inyección de JavaScript de toda la vida, pues eso mismo en un servidor en Node, os podéis imaginar ... Por suerte ya no es común encontrárselo por ahí. La explicación rápida es la de siempre también, no uses "eval" ni nada parecido ("setTimeout", "setInterval", "Function", etc). En este caso el problema es mayor aún, ya que el atacante podría inyectar JavaScript que modificase el comportamiento del servidor. Un caso muy sencillo sería "process.exit()" que lo pararía. Uno más divertido aún sería usar "while(1)", que mantendría el Event Loop de Node ocupado indefinidamente sin poder hacer nada más, como contestar a las peticiones de los usuarios. Un ejemplo de código vulnerable sería el siguiente:
var preTax = eval(req.body.preTax);
Corregirlo sería tan sencillo como evitar el uso de estas funciones conflictivas, por ejemplo:
var preTax = parseInt(req.body.preTax);
A continuación dejo el vídeo con una de las demo del tutorial, en donde se accede al sistema de ficheros del servidor utilizando este payload:
Express es la librería para hacer servicios web más utilizada, pero no es segura por defecto. Sí incluye algunos mecanismos que debemos configurar, pero no cubre todo lo que necesitamos. Las siguientes líneas, en orden, describen lo que se implementa a continuación.
Evitar el fingerprinting.
Cookies seguras: ID firmado y que solo se transmitan sobre HTTPS (doc.).
Para suplir estas carencias existen otros "middlewares", principalmente disponemos de dos alternativas: Helmet y Lusca. Prefiero el primero simplemente por tener una mayor adopción, la idea y funcionamiento es muy similar.
// Prevents opening page in frame or iframe to protect from clickjacking app.use(helmet.xframe()); // Prevents browser from caching and storing page app.use(helmet.noCache()); // Allows loading resources only from white-listed domains app.use(helmet.csp()); // Allows communication only on HTTPS app.use(helmet.hsts()); // Forces browser to only use the Content-Type set in the response header instead of sniffing or guessing it app.use(nosniff());
Antes de terminar me gustaría comentar que la imagen incluida al principio del post es el logo del Node Security Project, una iniciativa que tiene el objetivo de documentar las vulnerabilidades conocidas. Además ponen a nuestra disposición recursos y herramientas que nos ayudan a securizar nuestro código.
Esto es todo por hoy, en la próxima ocasión contaré como utilizar éstas y otras buenas prácticas que sigo en mis proyectos.
Bettercap es un framework para realizar ataques de Man-In-The-Middle modular, portable y fácilmente ampliable. Actualmente se encuentra en la versión 1.1.3
Otra vulnerabilidad con logo, le toca el turno a Stagefright, vulnerabilidad descubierta por Joshua J. Drake (y que presentará tanto en Black Hat como Defcon) para dispositivos Android que permitiría la ejecución remota de código sin requerir interacción por parte del usuario. Se estima que este problema afectaría al 95% de dispositivos Android, millones y millones.... Ya se ha comentado que hay multitud de vectores de ataque para su explotación.