Vulnerabilidades implementando mecanismos IPC
Leyendo el programa de la BlackHat, me ha llamado la atención una conferencia, que precisamente parece que se celebra hoy, aunque por desgracia creo que ninguno de «48Bits» vamos a estar por allí :-(. Se trata de un campo que aunque es sobradamente conocido, creo que en muchos casos no se trata con la suficiente importancia por los programadores de aplicaciones, quizá esto sea debido en parte a que este tipo de vulnerabilidades parecen no estar entre las más investigadas por los buscadores de las mismas.
Es un tema del que hemos hablado entre algunos de los que hacemos 48Bits, cuando nos hemos puesto a analizar algún programa para buscarle las «cosquillas». Existen varias maneras de implementar mecanísmos de este tipo, entre los que se encuentran «Named Pipes» y memoria compartida, me refiero sobre todo a IPC entre procesos ejecutándose en una misma máquina. El desarrollo de multitud de aplicaciones entre las que se encuentran muchas relacionadas con la seguridad informática, requieren un diseño tal que cierta parte de ellas se ejecuta con privilegios más elevados que otras, siendo necesario que exista un canal de comunicacion entre ambas, es aquí cuando se suelen utilizar este tipo de mecanismos. Muchas veces el problema radica precisamente en la seguridad asociada a este tipo de objetos (qué usuarios o procesos pueden acceder a ellos y/o modificarlos), otras veces en la validación de los datos contenidos o incluso en el mal uso de los objetos utilizados para sincronización.
Parece que en la conferencia se va a hablar de cómo trabajar con este tipo de objetos e incluso se van a presentar algunas herramientas orientadas a la automatización de «fuzzing» sobre ellos, interesante 😀
Googleando un poco he encontrado algún artículo interesante sobre el tema, aunque supongo que después de la blackhat podremos ver las herramientas presentadas y quizás un resumen de la conferencia.
Un saludo!