Qué es RCE y cómo limitar sus riesgos

Autor: Publicado

En pocas palabras: RCE, siglas de Remote Code Execution, significa ejecución remota de código en un ordenador o servidor. En el contexto de un ataque, un intruso aprovecha un fallo para que el dispositivo ejecute sus instrucciones sin el consentimiento del propietario. Es una amenaza grave, pero el alcance de los daños depende, entre otros factores, de los permisos del programa atacado: RCE no siempre implica tomar de inmediato el control de todo el sistema.

¿Qué significa la ejecución remota de código en la práctica?

El código son instrucciones que ejecuta un ordenador. Normalmente las pones en marcha de forma consciente, por ejemplo, al abrir un programa. En un ataque RCE, las instrucciones proceden del atacante y la aplicación vulnerable las ejecuta, aunque no sea esa su función prevista.

Se puede comparar con una ventanilla de recepción de formularios. El empleado debería leer los datos entregados, pero, en lugar de hacerlo, empieza a cumplir las órdenes escritas en el formulario. Algo similar ocurre cuando un programa trata el contenido recibido del exterior como instrucciones y no como simples datos.

La expresión «vulnerabilidad RCE» se utiliza para referirse a un fallo que permite este comportamiento. Sin embargo, RCE describe la posibilidad de ejecutar código o el resultado de hacerlo, no un fallo concreto. Muchos errores distintos pueden llevar al mismo resultado.

«Remota» significa que el atacante no necesita estar físicamente ante el dispositivo. El ataque puede llegar a través de internet, de una red local o de un archivo especialmente preparado. No todas las vulnerabilidades se pueden explotar sin iniciar sesión y sin intervención del usuario: depende de las condiciones de cada una.

¿Cómo puede producirse un ataque RCE?

RCE puede deberse a errores al procesar datos, a una gestión insegura de archivos o a fallos en los mecanismos de gestión de memoria. La vulnerabilidad puede estar en la propia aplicación, pero también en una biblioteca que esta utilice, es decir, en un componente de software ya desarrollado.

Imagina una tienda en línea en la que los clientes suben fotos para un pedido. El servidor genera automáticamente sus miniaturas. Si la herramienta de procesamiento de imágenes tiene una vulnerabilidad que lo permita, un archivo especialmente preparado puede provocar la ejecución del código del atacante en lugar de un simple cambio de tamaño de la imagen.

En este escenario, el propietario de la tienda no tiene que abrir nada en su portátil. El objetivo del ataque es el servidor que procesa el archivo. Que el formulario solo acepte fotos no garantiza la seguridad: también importan el contenido real del archivo y la forma de procesarlo.

Otra vía es la inyección de comandos: se envían datos que la aplicación incorpora por error a una instrucción que se ejecuta en el sistema. Es uno de los mecanismos que pueden dar lugar a RCE, no un sinónimo de todas estas vulnerabilidades.

¿Qué puede hacer un atacante tras explotar una vulnerabilidad RCE?

El código del atacante suele ejecutarse con los permisos del proceso atacado, es decir, del programa en ejecución. Si la aplicación puede leer determinados archivos o conectarse a una base de datos, el intruso puede obtener esas mismas posibilidades de acceso.

Entre las posibles consecuencias están:

RCE no equivale automáticamente a obtener permisos de administrador. El aislamiento de las aplicaciones y la limitación de sus permisos pueden reducir los daños. Aun así, el atacante puede intentar aprovechar otros fallos para ampliar su acceso.

Por eso las vulnerabilidades RCE se consideran muy graves. La situación es especialmente urgente cuando el servicio vulnerable está accesible desde internet y explotar el fallo no requiere autenticación. Para evaluar el riesgo con precisión hay que basarse en las condiciones descritas en el aviso del fabricante, no solo en las siglas RCE.

¿Cómo reducir el riesgo y comprobar una alerta de RCE?

Lo fundamental es mantener actualizados el sistema, las aplicaciones, los complementos y las bibliotecas. Actualizar un componente no elimina automáticamente las vulnerabilidades de los demás. El propietario del sitio web también debe saber qué componentes le corresponde actualizar y cuáles son responsabilidad del proveedor de alojamiento.

Limitar los permisos de las aplicaciones reduce el alcance de un posible ataque. El programa que procesa las fotos subidas no debería tener acceso a todos los datos de la tienda si no lo necesita. Del mismo modo, un panel de administración que no tenga que ser público puede hacerse accesible únicamente mediante un acceso controlado.

Cuando aparezca una alerta de RCE sobre un producto que utilizas:

  1. Consulta el aviso oficial del fabricante para comprobar qué versiones y configuraciones están afectadas.
  2. Averigua si utilizas el componente vulnerable y si un posible atacante puede acceder a él.
  3. Aplica el parche o la medida de protección temporal indicada por el fabricante. Si no hay un parche, considera desactivar la función afectada.
  4. Si pudo haberse producido un ataque, busca indicios de actividad no autorizada. La actualización por sí sola no elimina las consecuencias de una intrusión anterior.

Las copias de seguridad ayudan a recuperar los datos, pero no evitan su robo. Tampoco un cortafuegos o un antivirus sustituyen la corrección de la vulnerabilidad.

Si administras un sitio web y no conoces las versiones de sus componentes, empieza por elaborar un inventario y determinar quién se encarga de las actualizaciones. Así podrás convertir una alerta general sobre RCE en una decisión concreta: qué comprobar, actualizar o desactivar temporalmente.

Consulta también: ¿Qué es DDoS?

Lee también

Descubre cómo PHP-FPM atiende peticiones PHP, en qué se diferencia de un servidor web y cómo ajustar sus procesos al tráfico y los recursos.
Conoce BIND, el software abierto de servidor DNS: sus funciones, cómo gestiona dominios y cuándo conviene instalarlo por tu cuenta.
Descubre qué son el registro REGON de Polonia y su número, en qué se diferencian de NIP y KRS y cómo verificar los datos de una empresa.