¿Qué es la ejecución remota de código?
Un ataque de ejecución remota de código (RCE) es cuando un atacante puede ejecutar código malicioso en los ordenadores o la red de una organización. La capacidad de ejecutar código controlado por el atacante puede utilizarse para diversos fines, como implementar malware adicional o robar datos confidenciales.
Cómo funcionan los ataques de ejecución remota de código (RCE)
Los ataques de ejecución remota de código suelen producirse mediante vulnerabilidades en las aplicaciones web y en la infraestructura de red.
Las vulnerabilidades de ejecución remota de código son fallos en el software que permiten que un atacante pueda ejecutar código malicioso en un sistema que haya elegido. Se pueden utilizar varios tipos de vulnerabilidades para el RCE, incluyendo los siguientes ejemplos:
- Vulnerabilidades de inyección: una vulnerabilidad de inyección, como la inyección SQL o la inyección de comandos, aparece por un mal saneamiento de la entrada. Si un usuario proporciona una entrada maliciosa cuidadosamente elaborada, algunos de sus datos se interpretarán como comandos que deben ejecutarse. Esto permite que el atacante pueda forzar al sistema vulnerable a ejecutar código proporcionado por el atacante.
- Deserialización insegura: la serialización simplifica la transmisión de conjuntos de datos empaquetándolos en una única cadena de bits que el sistema receptor debe desempaquetar. Sin embargo, si la estructura de los datos serializados no está bien definida, un atacante puede ser capaz de elaborar una entrada que se malinterprete cuando se desempaqueta. En función de cómo se almacenen y procesen los datos, esta interpretación errónea puede permitir que el atacante consiga la ejecución de código.
- Escritura fuera de límites: un búfer es una porción de memoria de tamaño fijo que se asigna para almacenar datos. Las lecturas o escrituras de datos inseguras podrían permitir que un atacante colocara datos donde serían interpretados como código o como información de flujo de control importante para la aplicación.
- Gestión de archivos: algunas aplicaciones permiten a los usuarios subir archivos a un servidor. El acceso que esto proporciona puede permitir que un atacante suba un archivo que contenga código malicioso y engañe a la aplicación para que lo ejecute.
El malware es un código proporcionado por un atacante que está diseñado para ejecutarse en un sistema al que se quiere atacar. Una vulnerabilidad RCE simplemente permite que un atacante implemente malware de diferentes maneras.
Como resultado, las vulnerabilidades RCE pueden utilizarse para lograr muchos de los mismos objetivos que el malware tradicional. El RCE se puede utilizar para implementar malware en un sistema vulnerable, llevar a cabo un ataque de denegación de servicio (DoS) o acceder a información confidencial almacenada en un sistema.
Cómo pueden utilizar los atacantes la RCE
La ejecución remota de código es peligrosa, ya que la capacidad de ejecutar código malicioso proporciona al atacante diversas opciones. Algunas de las formas en que pueden utilizarse las vulnerabilidades RCE para favorecer ataques comunes son las siguientes:
- Acceso en remoto: las vulnerabilidades RCE se suelen utilizar para dar a un atacante un punto de apoyo inicial en una red corporativa que luego podría ampliar. Por ejemplo, una vulnerabilidad RCE podría permitir a un atacante robar credenciales de inicio de sesión que le permitieran acceder a la red mediante una VPN.
- Implementación de malware: aunque las vulnerabilidades RCE permiten la ejecución de código, este código puede tener un alcance limitado. Para evitar esta limitación, los atacantes pueden utilizar RCE para descargar y ejecutar otro malware más destructivo. Por ejemplo, el RCE podría utilizarse para descargar y ejecutar un ransomware en un sistema vulnerable.
- Robo de datos: las vulnerabilidades RCE podrían permitir a un atacante ejecutar comandos dentro de una aplicación vulnerable. Esto puede proporcionar acceso al sistema de archivos, bases de datos y otros almacenes de datos confidenciales de empresas y clientes.
- Destrucción de datos: las vulnerabilidades RCE podrían permitir a un atacante ejecutar comandos DROP dentro de una base de datos o ejecutar código dentro del terminal del sistema. Este acceso proporciona la misma capacidad de eliminar archivos que tendría un usuario legítimo
- Ataques DoS: las vulnerabilidades de escritura fuera de los límites permiten que un atacante pueda sobrescribir código crítico, colapsando una aplicación. Otras vulnerabilidades RCE podrían permitir la interrupción de procesos o el borrado de datos vitales.
Cómo prevenir la ejecución remota de código
Los ataques de ejecución remota de código se producen por las vulnerabilidades de las aplicaciones web corporativas. Algunos de los métodos que las empresas pueden utilizar para reducir su exposición a los ataques RCE son los siguientes:
- Escaneado de vulnerabilidades: una combinación de análisis de código estático (para identificar patrones de vulnerabilidad bien conocidos) y análisis dinámico como el fuzzing puede ayudar a los desarrolladores a identificar y corregir vulnerabilidades RCE antes de que puedan ser aprovechadas.
- Actualizaciones y parches: se pueden descubrir vulnerabilidades RCE en una aplicación o en las bibliotecas externas de las que depende. Aplicar actualizaciones y parches rápidamente reduce la ventana durante la cual se podrían aprovechar del código vulnerable.
- Validación de la entrada: la mayoría de las vulnerabilidades RCE implican una mala validación de la entrada, en la que una aplicación hace suposiciones sobre los datos proporcionados por el usuario. Una validación de entrada potente puede acabar con la amenaza de la mayoría de las vulnerabilidades RCE.
- Supervisión de la red: los intentos de aprovechar las vunerabilidades de RCE pueden ser detectados y bloqueados por una solución de protección de aplicaciones web y API (WAAP). Implementar soluciones de seguridad de red frente a las aplicaciones web puede reducir los riesgos potenciales de las vulnerabilidades a las que no se les haya aplicado un parche.
Protegerse contra RCE con Cloudflare One
A medida que las aplicaciones web se trasladan cada vez más al alojamiento basado en la nube, resulta más difícil proteger sus vulnerabilidades. El Firewall de aplicaciones web de Cloudflare usa un conjunto masivo de información sobre amenazas global para bloquear los intentos de ejecución en remoto de código.
Además, Cloudflare One, la plataforma Secure Access Service Edge (SASE) de Cloudflare, ofrece una seguridad y una supervisión sólidas para las aplicaciones corporativas internas.