Un repaso a las mejores técnicas de hacking web que nos dejó el 2018 (I)David García 12 marzo, 2019 Nos encantan las listas, ¿verdad? En seguridad de aplicaciones web tenemos la muy conocida OWASP TOP 10, en la que un grupo de expertos en seguridad web de varias organizaciones colaboradoras discuten y votan cada cierto tiempo los riesgos más importantes que afectan a estas. La última revisión corresponde a la publicada en el año 2017. Si bien se trata de una lista que refleja muy bien cómo van evolucionando los riesgos en el ámbito web, el rapidísimo ritmo al que evolucionan las tecnologías web hace que “la foto” que nos muestra quede obsoleta en un breve espacio de tiempo. Además, el top de OWASP no se centra en ataques concretos sino en categorías, abstracciones de diversas clases de vulnerabilidades que poseen uno o varios elementos en común. Años antes, en 2006, el experto en seguridad web Jeremiah Grossman, junto con otros (no menos expertos en la materia) iniciaron un ranking de las mejores técnicas de ataques web aparecidas a lo largo del año, era un compendio de todo lo presentado y publicado en vulnerabilidades web. No se hablaba aquí de CVEs concretos sino de técnicas novedosas que podían dar lugar en algunos casos, a familias de vulnerabilidades (como lo fue el Cross-site scripting en sus inicios). No podemos dejar pasar la oportunidad, con cierta nostalgia, de nombrar algunas de las técnicas que entonces (han pasado 13 años, pero equivalen a casi un siglo en Internet) dieron que hablar en los medios y foros especializados en seguridad, como por ejemplo, el escaneo de puertos a través de JavaScript o el “robo” del historial de navegación a través de la obtención del atributo color del estilo CSS aplicado a una lista de enlaces. Así que, cuando el usuario había visitado el sitio, el navegador se lo “chivaba” al JavaScript al cambiar los colores de los enlaces. Esta iniciativa fue continuada año tras años hasta 2015, última edición del ranking. Afortunadamente, la gente de PortSwigger, creadores de la popular herramienta de auditoría web Burp Suite, recuperó la lista de técnicas más importante del año, iniciando una nueva singladura desde 2017. De nuevo tenemos la oportunidad de poder ponernos al día en las técnicas empleadas, así como de realizar un análisis comparativo para observar cómo está evolucionando la seguridad en la tecnología web. Hace unas semanas se votó la lista de técnicas correspondientes al año 2018. Vamos a echar un vistazo a las técnicas que han conseguido entrar en el ranking y comentaremos brevemente su caracterización, vectores y riesgos más importantes. Comenzamos partiendo desde la décima técnica. 10 – XS-Searching Google’s bug tracker to find out vulnerable source code Se trata de una curiosa técnica encontrada en el gestor de bugs usado por Google para Chrome. Luan Herrera, su descubridor, dio con un curioso método de consultas booleanas que permiten discernir la existencia de un elemento en el sistema, en base a la respuesta que este último da a una consulta ciega. Dicho gestor, llamado «Monorail», ofrece la posibilidad de exportar los resultados de una búsqueda a ciertos formatos, por ejemplo, CSV. Además, permite indicar los campos de dicha consulta a modo de columnas y, aún más curioso, permite repetir dichos campos. Observando una consulta a modo de URL se entenderá mejor: hxxps://bugs.chromium.org/p/chromium/issues/csv?can=1&q=id:51337&colspec=ID+Summary+Summary+Summary Esto hace que el sistema cree un archivo CSV para que lo descarguemos con 3 copias del sumario de cierto bug. Como nos podemos imaginar, si dicho bug existe, el sistema tardará en componer dicho archivo, frente al tiempo que tardaría en crear uno para una consulta que no devuelve nada. Así, podemos ir preguntando al sistema mediante todos los parámetros de búsqueda que nos interesen hasta dar con las rutas de ciertos elementos restringidos (código fuente de bugs privados, etc). La lógica booleana de las consultas nos permitirá ir afinando parámetros hasta dar con algo valioso. Eso sí, en este caso la técnica venía condicionada, ya que determinadas búsquedas con cierta complejidad necesitan de una sesión con los privilegios adecuados, algo que el investigador disponía, al no estar esas consultas protegidas frente a ataques de CSRF. Aunque se trata de técnicas que en este caso afectan al gestor de bugs de Google, de forma general podrían ser aplicadas a otros sistemas que permitan dilucidar, a través del tiempo de respuesta a consultas, contenido restringido. 9- Data exfiltration via Formula Injection El ataque se centra en cómo inyectar expresiones en las fórmulas de las hojas de cálculo de Google Sheets y LibreOffice para conseguir información, tal como la lectura de partes no compartidas de la hoja de cálculo o incluso la lectura arbitraria de archivos del sistema (en el caso de LibreOffice). Este tipo de ataque se centra en aprovechar cierta funcionalidad de las hojas de cálculo (los investigadores excluyen a Microsoft Excel del ámbito de su trabajo) que permite importar archivos externos a través de un enlace. Supongamos, por ejemplo, que indicamos en una parte de la hoja de cálculo que queremos importar un CVS que cuelga de «hxxp://pruebas.noexiste/archivo_que_no_existe.csv?v=». Esto lo podemos hacer con fórmulas del tipo «IMPORTFEED» o «IMPORTHTML», tal y como señalan los investigadores. Ahora bien, a la vez que usamos esta fórmula, acoplamos a ese parámetro suelto (es, obviamente, arbitrario), “v=”, el resultado de concatenar ciertas columnas, por ejemplo, usando “CONCATENATE()”. El resultado es que se generará una consulta a un servidor web que se llevará toda la información de ese rango de columnas hacia los logs del servidor, provocando que se filtre información a la cual podría no tenerse privilegios de acceso. El escenario de ataque es estrecho, ya que se trataría de poder tener ciertos permisos que faciliten la inclusión de contenido con fórmulas en un documento que guarde información restringida. No obstante, ya se puede vislumbrar el poder que este tipo de funciones, debidamente combinadas, puede poseer a medida que este tipo de documentos se abre cada vez más a grupos de usuarios y nuevas funcionalidades de compartición. El ataque en LibreOffice posee un elemento potencialmente más dañino porque usando la misma técnica, se puede extraer archivos del sistema (con el debido permiso de lectura). Con todo, es necesario enviar el documento al usuario y que este lo abra y acepte la advertencia de apertura de enlaces externos. No comentan si esta técnica funciona en la versión para Windows de LibreOffice, tan solo se ciñen a la versión de sistemas GNU/Linux. 8 – Prepare(): Introducing novel Exploitation Techniques in WordPress Se trata de la explotación de una técnica exclusiva para la plataforma WordPresss. Es bastante curiosa, porque mientras que todos tomamos por segura “la técnica de sentencias preparadas” para realizar consultas SQL en el código, es imprescindible que la implementación subyacente lo sea. Robin Peraglia desgrana en la charla cómo explotar este tipo de sentencias y, además, empleando objetos serializados en PHP, lo que abre la puerta a la ejecución de código arbitrario; a su vez, técnica esta última dentro del ranking de este año. 7 – Exploiting XXE with local DTD files Una vuelta de tuerca a la ya conocida técnica de inyección de entidades externas en XML, XXE. En ella, el autor Arseniy Sharoglazov, de forma ingeniosa, aprovecha los documentos DTD locales que suelen existir en los sistemas para evadir posibles políticas de cortafuegos que impidan al procesador XML el acceso a dominios externos. Por ejemplo, al explotar XXE es común hacer referencia a un DTD externo, por ejemplo: A pesar de que exista la posibilidad de inyectar entidades XML al documento, el procesador no podrá acceder al dominio referido y provocará o bien un error o una respuesta vacía. En el caso propuesto por el investigador, hacemos referencia a una DTD que puede existir en el sistema, por ejemplo, Windows: O en algunos Linux: Interesante también la respuesta a su técnica en Twitter, que mejora el ataque insertando una DTD en la petición. 6- It’s A PHP Unserialization Vulnerability Jim But Not As We Know It Un ranking sin una (nueva) técnica de serialización no es un ranking. Y es que si hay una técnica que es compleja de explotar y también de evitar es ese curioso truco de “teletransportación” de objetos al puro estilo de Star Trek, que cuando son devueltos a la vida en el servidor poseen un elemento dañino: la serialización de objetos maliciosos. En esta investigación, nos presentan el abanico de técnicas de serialización a usar en PHP, además de una extensiva explicación del manejador phar:// que permite hacer referencia a aplicaciones completas en PHP enlatadas en un solo tipo de archivo. Es un concepto similar a los jar de Java, pero al estilo PHP y explotables en determinados escenarios. En la siguiente entrega analizaremos el resto de las entradas de este nuevo ranking de técnicas para hacking web. Segunda parte del análisis: » Un repaso a las mejores técnicas de hacking web que nos dejó el 2018 (II) La lucha de Windows contra la ejecución de código: Éxitos y fracasos (VII): Attack Surface Reduction¿Cómo hemos vivido la RSA Conference 2019? Haciendo la seguridad más humana
Martiniano Mallavibarrena Ciberseguridad en el cine: mito vs. realidad con 10 ejemplos Los múltiples aspectos de la ciberseguridad (ataques, investigaciones, defensa, empleados desleales, negligencia, etc.) llevan años siendo parte del argumento de infinidad de películas y series de TV. En la...
Daniel Pous Montardit Resiliencia, clave en sistemas Cloud-Native En el primer post de la serie Cloud-Native, ¿Qué significa que mi software sea Cloud Native?, presentamos la resiliencia como uno de los atributos fundamentales que nos ayudan a...
Telefónica Tech Boletín semanal de Ciberseguridad, 21 – 27 de enero Killnet apunta contra objetivos en España Esta semana el grupo hacktivista Killnet anunció una campaña de ataques contra Alemania, dando lugar a la realización de ataques de Denegación de Servicio...
Gonzalo Fernández Rodríguez ¿Qué significa que mi aplicación sea Cloud Native? El término Cloud Native es algo que va más allá de mover las aplicaciones alojadas en un data center a una infraestructura proporcionada por un proveedor Cloud, sea Cloud...
Telefónica Tech Boletín semanal de Ciberseguridad, 14 – 20 de enero Vulnerabilidades críticas en los router Netcomm y TP-Link Se han descubierto una serie de vulnerabilidades en los routers Netcomm y TP-Link. Por un lado, los fallos, identificados como CVE-2022-4873 y CVE-2022-4874, se tratan de un...
Jorge Rubio Álvarez Consecuencias de un ciberataque en entornos industriales Podemos encontrar entornos industriales en cualquier tipo de sector que nos podamos imaginar, ya sea en empresas de tratamiento de agua, transporte, farmacéuticas, fabricación de maquinaria, eléctricas, alimentación o...