La inyección de código entre aplicaciones ( CAS ) es una vulnerabilidad que afecta a las aplicaciones de escritorio que no verifican exhaustivamente la entrada de datos. CAS permite a un atacante insertar datos que modifican el comportamiento de una aplicación de escritorio específica. Esto posibilita la extracción de datos del sistema del usuario. Al explotar las vulnerabilidades CAS, los atacantes pueden obtener privilegios completos sobre la aplicación atacada; el ataque es, hasta cierto punto, independiente del sistema operativo y la arquitectura de hardware subyacentes.
Descubierta inicialmente por Emanuele Gentili y presentada junto con otros dos investigadores (Alessandro Scoscia y Emanuele Acri) que habían participado en el estudio de la técnica y sus implicaciones, se presentó por primera vez durante la Cumbre de Seguridad 2010 en Milán . [ 1 ] [ 2 ] [ 3 ]
El ataque de formato de cadena es conceptualmente muy similar a este ataque, y CAS podría considerarse una generalización de este método. Algunos aspectos de esta técnica ya se han demostrado en técnicas de clickjacking .
Concepto
Al igual que las interfaces web, los frameworks modernos para el desarrollo de aplicaciones gráficas (en particular GTK+ y Qt ) permiten el uso de etiquetas dentro de sus propios widgets . Si un atacante logra inyectar estas etiquetas, obtiene la capacidad de manipular la apariencia y el comportamiento de la aplicación. Este mismo fenómeno se observó con el uso de secuencias de comandos entre sitios (XSS) en páginas web, razón por la cual este tipo de comportamiento se ha denominado secuencias de comandos entre aplicaciones (CAS).
Por lo general, las aplicaciones de escritorio reciben una cantidad considerable de datos y admiten numerosas funciones, sin duda más que cualquier interfaz web. Esto dificulta que el desarrollador compruebe si todos los datos que un programa pueda recibir de fuentes no confiables se filtran correctamente.
Falsificación de solicitud entre aplicaciones
Si la inyección de scripts entre aplicaciones es el equivalente a XSS en las aplicaciones web, entonces la falsificación de solicitudes entre aplicaciones (CARF) es el equivalente a la falsificación de solicitudes entre sitios (CSRF) en las aplicaciones de escritorio.
En CARF, el concepto de “enlace” y “protocolo”, heredado de la web, se ha ampliado porque incluye componentes del entorno gráfico y, en algunos casos, del sistema operativo.
La explotación de vulnerabilidades susceptibles a CSRF requiere la interacción del usuario. Este requisito no es particularmente limitante, ya que se puede inducir fácilmente al usuario a realizar ciertas acciones si la interfaz gráfica se modifica adecuadamente. Mediante el uso de CAS, se pueden obtener numerosos cambios engañosos en la apariencia de las aplicaciones: un nuevo tipo de " phishing ", cuya peligrosidad se ve amplificada por la falta de herramientas para detectar este tipo de ataque fuera de sitios web o correos electrónicos.
A diferencia de las técnicas XSS, que pueden manipular y posteriormente ejecutar comandos en el navegador del usuario, con CAS es posible comunicarse directamente con el sistema operativo, y no solo con su interfaz gráfica.
Referencias
- vulnerabilidades de seguridad informática