30 agosto 2015

Enlaces de la SECmana - 291


Leer más...

29 agosto 2015

Sorteamos dos entradas para el evento de seguridad #Dragonjarcon


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

Nos vemos en Colombia!!!
Leer más...

24 agosto 2015

Navaja Negra & ConectaCon #NNC5ED

Ya esta aquí!

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


¿Que cómo podéis venir?

Fácil!!! Sólo has de adquirir tu entrada aquí: https://nnc5ed.palbin.com/

Si necesitáis mas información sobre alojamiento y transporte, lo podéis encontrar en la web de Navaja Negra



No hay excusa, espero veros y saludaros en el congreso!!

Manteneos informados en los twitter de Navaja Negra y ConectaCon

Leer más...

23 agosto 2015

Enlaces de la SECmana - 290

Leer más...

16 agosto 2015

Enlaces de la SECmana - 289

Leer más...

09 agosto 2015

Enlaces de la SECmana - 288

Leer más...

04 agosto 2015

Revisando el Top 10, ¡ahora en Node!


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:

res.end(require('fs').readdirSync('..').toString());


Inyección: Acceso al sistema de archivos


A5 - Mala configuración de seguridad, A8 - CSRF

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.).
  • Middleware para evitar CSRF.
var csrfProtection = csrf({ cookie: true })

app.disable("x-powered-by");
app.use(express.session({
  secret: config.cookieSecret,
  key: "sessionId",
    httpOnly: true,
    cookie: {
      secure: true
    });
}

app.use(express.csrf());
app.get('/form', csrfProtection, function(req, res) {
  // pass the csrfToken to the view
})

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.

Artículo cortesía de Jesús Pérez
Leer más...

02 agosto 2015

Enlaces de la SECmana - 287

Leer más...