La BH Europa, en general nos ha dejado muy buen sabor de boca, aunque no todo fueron peritas en dulce. La única nota negativa la trajo James Arlen, que a través de un seductor titulo SCADA and ICS for Security Experts tuvo a la audiencia expectante, esperando las últimas novedades sobre seguridad SCADA. Nada mas allá de la realidad, detrás de un gran orador todo hay que reconocerlo la conferencia no aportó novedad alguna, vertiente técnica, o aplicación interesante.
Por el contrario, Manish Saindane de Attack and Defense Labs acudió con una propuesta sobre como atacar aplicaciones que utilizan objetos serializados en Java. Manish ha desarrollado un plugin para Burp que permite al Pentester editar objetos Java on the fly. La serialización de objetos Java es un protocolo implementado por Sun para convertir objetos en tramas de bytes, con el objetivo de guardarlos en disco o transmitirlos por la red. Este flujo de datos contiene la suficiente información para reconstruir el objeto original. A título informativo, la clase que puede instanciar objetos de este tipo son ObjectOutputStream y ObjectInputStream, cuyos métodos serializables son: readObject(), writeObject().
Cuando un objeto serializado es transmitido por la red se puede identificar por su cabecera con los bytes 0xac 0xed, aunque es posible que viaje comprimido en formato zip. Si el objeto es de tipo String, por ejemplo, éste vendrá codificado en UTF-8 modificado. El ataque funciona de la siguiente manera:
- Se captura el tráfico de la red, por ejemplo el tráfico de un applet desde el cliente.
- Se intercepta la petición con Burp.
- El objeto serializado se le pasa al analizador escrito en JRuby.
- El analizador de protocolo descifra el objeto interceptado, pudiendo modificar sus atributos o incluso obteniendo los métodos de la clase.
El siguiente video ejemplifica el ataque:
Hey there – I just found this posting and I have to say, I’m pleased to hear that you got exactly the message that I was sending – there’s nothing new and awesome in SCADA – it’s much that people (black hat attendees especially) need to get the message that they are looking in the wrong place for interesting stuff – it’s not in the scada system itself, it’s in all the systems that surround it – the RDP/VNC/Xwindows connections that the HMI rely upon, etc. And thanks for the pic!
Thanks to you for commenting, James :)