Ataque de ejecución remota de código: qué es, cómo proteger sus sistemas
Los ciberdelincuentes utilizan diversas estrategias para atacar sistemas vulnerables, y los ataques de ejecución remota de código (RCE) son una de las más comunes. De hecho, según el Informe Global de Inteligencia sobre Amenazas 2020 de NTTlos ataques RCE fueron la técnica de ataque más común observada.
El atractivo de un ataque RCE es simple: un actor de amenazas situado en cualquier parte del mundo puede atacar sus sistemas. RCE facilita un ataque a distancia que puede permitir al atacante salir ileso mientras sus operaciones, datos y negocio sufren daños irreparables.
En este artículo, describimos qué es un ataque de ejecución remota de código, señalamos algunos de los ejemplos reales más pertinentes de ataques de ejecución remota y esbozamos las mejores prácticas que debe seguir su organización para prevenir un ataque RCE con éxito.
¿Qué es exactamente un ataque de ejecución remota de código?
La clave está en el acrónimo: un ataque de ejecución remota implica la ejecución de código en su servidor por parte de un atacante remoto. En otras palabras, un atacante utiliza una vulnerabilidad para acceder y ejecutar comandos en tu dispositivo o tu servidor sin importar en qué parte del mundo te encuentres, o en qué parte del mundo se encuentre el atacante.
Los ataques RCE varían en su forma. Un atacante puede simplemente ejecutar código malicioso en su máquina para lograr un propósito específico, pero un ataque RCE también puede significar que un atacante toma el control total y completo de su dispositivo - incluyendo el acceso a aplicaciones y servicios utilizando privilegios elevados.
En general, los ataques RCE dependen de la explotación de algún tipo de vulnerabilidad. Puede tratarse de un punto débil en las defensas de la red, un agujero de seguridad en una de sus aplicaciones o una vulnerabilidad del sistema operativo que no haya sido parcheada.
¿Cómo se compara un ataque RCE con un ataque ACE?
Como nota al margen, los ataques RCE son un subconjunto de lo que se denomina ataque de ejecución arbitraria de código (ACE). Al igual que los ataques RCE, en el caso de un ataque ACE, el atacante ejecuta los comandos arbitrarios de su elección en su equipo informático sin su permiso y lo hace con objetivos nefastos. Por supuesto, la diferencia entre un ataque ACE y un ataque RCE es que, en el caso de un ataque RCE, el autor se encuentra a distancia, mientras que el atacante detrás de un ataque ACE puede estar en sus instalaciones.
Tipos comunes de ataques RCE
Para que se haga una idea del amplio alcance y los grandes peligros que plantean los ataques de ejecución remota, esbozaremos algunos de los vectores de ataque RCE más comunes. Todos estos ataques dependen de una vulnerabilidad específica, y en cada escenario, el atacante tiene como objetivo obtener acceso no autorizado a sus sistemas. Existen tres formatos de ataque típicos:
Ataques de deserialización
La serialización de datos consiste en traducir estructuras de datos complejas, como campos y objetos, a una estructura de datos más plana que pueda enviarse en un flujo de datos secuencial simple. Este flujo de datos necesita ser restaurado - y ese proceso se llama deserialización. Es en esta etapa donde un atacante puede intervenir, ya que el proceso de deserialización puede conducir a la ejecución accidental de código binario. Los atacantes intentan modificar los datos serializados y así insertar código en los objetos de datos alterados.
Ataque de desbordamiento del búfer
Una estrategia común que no es en absoluto exclusiva de los ataques remotos es el ataque por desbordamiento del búfer. En este caso, un atacante aprovecha una vulnerabilidad que le permite sobrescribir los datos almacenados en la memoria. Los actores de la amenaza pueden hacerlo para bloquear dispositivos simples como controladores de red, para destruir datos en una máquina o incluso para insertar código malicioso en una máquina, lo que a su vez permite al atacante montar un ataque RCE.
Ataque de confusión de tipo
Cuando un fragmento de código no toma medidas para verificar la integridad de un objeto que se le pasa, existe el riesgo de que cree confusión de tipos. La confusión de tipos es peligrosa porque permite a un atacante colar código que puede ejecutar comandos arbitrarios, simplemente creando un desajuste en los tipos de objetos.
Objetivos de los ataques RCE
Al igual que cualquier acceso no autorizado a sus sistemas, los objetivos de los ataques RCE varían ampliamente. Las motivaciones de los ataques RCE dependerán de su sector de actividad, de sus clientes y de los datos que posea. El objetivo de un ataque puede ser cualquiera de los siguientes:
- Infiltrarse y vigilar. Los atacantes pueden simplemente utilizar ataques RCE para ganar presencia dentro de su red, para espionaje corporativo por ejemplo. Los ataques RCE pueden ser el primer paso de un ataque más amplio, que sin duda puede implicar la vigilancia continua de sus operaciones.
- Robar datos. Los ataques RCE podrían abrir la puerta a la instalación de más código, que a su vez puede conducir a la transmisión de datos. A partir de un ataque RCE, un ciberdelincuente puede hacerse con el control de tus recursos informáticos para acabar desviando grandes cantidades de datos.
- Disrupción. Los atacantes pueden utilizar una vulnerabilidad RCE para entrar en sus sistemas con el fin de interrumpirlos. Un simple ataque de desbordamiento de búfer, por ejemplo, puede interrumpir significativamente sus operaciones. Como resultado, los atacantes remotos pueden lograr sus objetivos asegurándose de que su presencia en línea esté fuera de línea, o causando otra perturbación que le cause molestias o costes a usted o a sus clientes.
Sin embargo, hay un objetivo que impulsa muchas brechas de seguridad - y que es, posiblemente, responsable de la alta prevalencia de ataques RCE ahí fuera en el campo.
La criptominería ilícita, motor de los ataques RCE
Una encuesta realizada en 2018 por la empresa de ciberseguridad Imperva contenía una cifra sorprendente. Según la investigación de Imperva, casi el 90% de todos los ataques RCE estaban motivados por un único objetivo: la instalación y ejecución de software de minería de criptomonedas en el hardware de la víctima.
¿Por qué los criminales se tomarían tantas molestias para instalar software de minería de criptomonedas en sus sistemas? En pocas palabras, la minería de criptomonedas puede proporcionar grandes beneficios, pero sólo si se dispone de los recursos informáticos necesarios para dedicarlos a la minería de criptomonedas.
Con los ataques RCE, los delincuentes intentan explotar tus recursos informáticos con el fin de resolver suficientes problemas de criptografía para minar criptomonedas de forma rentable. El ataque RCE les permite ejecutar software de minería de criptomonedas en su equipo sin pagar por la electricidad, los recursos de hardware y similares.
A primera vista, puede que te preguntes por qué debería preocuparte tanto que alguien utilice tus recursos informáticos para resolver problemas matemáticos, pero hay algunos puntos que debes tener en cuenta. En primer lugar, la criptominería con RCE puede costarte caro en términos de consumo de energía y desgaste del hardware.
Además, cualquier software no autorizado en sus sistemas puede dar lugar a una infracción mayor. También le dejará en situación de incumplimiento de sus obligaciones de conformidad. No puede permitir que delincuentes ejecuten código desconocido y no autorizado en sus sistemas, por inocente que parezca.
Ejemplos de notables Vulnerabilidades RCE
Los ataques RCE son tan comunes, omnipresentes y generalizados que es difícil elegir entre los innumerables ejemplos que afectan a todo, desde el software front-end hasta la infraestructura de servidores. Veamos algunos ejemplos para ilustrar lo extendidos que están los ataques RCE.
Log4j es uno de los grandes. El 10 de diciembre de 2021 se reveló una grave vulnerabilidad en Log4j, conocida como Log4Shell (CVE-2021-44228). Esta vulnerabilidad, con un nivel de gravedad crítico y una puntuación CVSS máxima de 10, fue descubierta por Chen Zhaojun, del equipo de seguridad en la nube de Alibaba. La vulnerabilidad afecta a casi todas las versiones de Log4j2, un popular marco de registro de Java.
Un número significativo de marcos de aplicaciones Java se basan en Log4j como su marco de registro por defecto. Ejemplos notables incluyen Apache Struts 2. Se trata, por tanto, de una vulnerabilidad RCE muy peligrosa y extendida que ya ha sido explotada en numerosas ocasiones.
A continuación, tomemos la popular plataforma de comunicaciones Discord. En octubre de 2020un investigador de seguridad encontró una vulnerabilidad RCE en la aplicación de escritorio de la plataforma. No era la vulnerabilidad más flagrante, ya que el investigador tuvo que encadenar tres vulnerabilidades para ejecutar el código remoto en la aplicación Discord, pero la vulnerabilidad RCE era real y podía afectar a más de 100 millones de usuarios activos de Discord.
Otra plataforma de comunicación habitual, vBulletin, sufrió un fallo RCE calificado de "ridículamente fácil de explotar". Según Bleeping Computerel exploit se basa en una sola línea de código y afecta a un boletín utilizado por grandes nombres, desde Sony y Steam hasta Pearl Jam y la NASA. Las repercusiones fueron reales: nada más publicarse el exploit de día cero, los ataques comenzaron casi de inmediato, afectando incluso al foro de vBulletin de la época.
Los ejemplos son innumerables. Por ejemplo, la vulnerabilidad SMBGhost RCE. En junio de 2020, se publicó una prueba de concepto que mostraba cómo un hack RCE crítico podía dar lugar a un gran número de ataques según el FBI. Microsoft, sin embargo, ha publicado una corrección para esta vulnerabilidad, pero los parches, por supuesto, no siempre se aplican de forma coherente - un punto al que volveremos en la siguiente sección.
Estos son sólo algunos ejemplos de vulnerabilidades RCE generalizadas que están ahí fuera en la naturaleza. Los ejemplos siguen apareciendo cada día, basta con echar un vistazo a la lista de ataques RCE que se presentan continuamente en The Daily Swig.
Buenas prácticas para protegerse de un ataque RCE
Usted simplemente no sabe si un atacante tiene como objetivo sus sistemas porque busca criptominar recursos informáticos, o con un propósito mucho más serio. En cualquier caso, debe tomar las medidas preventivas necesarias que garanticen que corre el mínimo riesgo de sufrir un ciberataque, incluido un ataque RCE. He aquí algunos pasos clave:
- Alertas tempranas y supervisión. Puede que no siempre sea posible evitar un ataque RCE, pero los sistemas de alerta temprana pueden avisarle de una brecha de seguridad in situ, o de una situación en la que un ataque exitoso ha llevado a la ejecución continua de código ilícito. Del mismo modo, un sistema de monitorización puede ayudarle a identificar comportamientos extraños que apunten a un servidor comprometido.
- Cortafuegos y otros programas de seguridad. Despliegue herramientas que puedan prevenir ataques automatizados comunes: considere un cortafuegos de aplicaciones web (WAF), por ejemplo. Del mismo modo, despliegue y ejecute herramientas de escaneado de vulnerabilidades y de pruebas de penetración para ayudar a identificar dónde puede tener lugar un ataque RCE, de modo que pueda solucionar la vulnerabilidad antes de que sea demasiado tarde.
- Elaborar un plan de respuesta. Es difícil evitar un ataque RCE el 100% de las veces: incluso las medidas de seguridad más estrictas pueden verse comprometidas. Prepárese para ello y elabore un plan de respuesta que ayude a su organización a poner fin rápidamente a un ataque y a recuperarse con rapidez de las posibles secuelas.
Todos los puntos anteriores son importantes, pero podría decirse que hay una política clave que puede hacer más que cualquier otra política o acción para mantener sus operaciones informáticas a salvo de un ataque remoto.
Por qué son importantes los parches
Los ataques RCE suelen aprovecharse de vulnerabilidades de seguridad conocidas. Estas vulnerabilidades conocidas suelen ser corregidas por el proveedor del software mediante un parche. Todo eso está muy bien, pero el problema con los parches es que un parche necesita ser aplicado.
Usted, el operador de los recursos informáticos, debe aplicar regularmente parches a sus recursos de hardware y software para garantizar que las vulnerabilidades conocidas no puedan ser explotadas. Parece de sentido común, pero resulta que la aplicación sistemática de parches no es tan fácil como parece a primera vista.
Según CSO Online, la dificultad para aplicar parches de forma sistemática puede explicar esta situación, el 60% de las violaciones implican la explotación de una vulnerabilidad que tiene un parche efectivo - pero que no se ha aplicado.
Parchear a tiempo y con coherencia no es fácil. Requiere muchos recursos y es perjudicial, ya que a menudo exige reinicios que provocan tiempos de inactividad. Dicho esto, existen herramientas eficaces que pueden ayudar.
Por ejemplo KernelCare, la herramienta de parcheo automatizado de TuxCare que mantiene los servidores Linux a salvo de las vulnerabilidades más comunes sin necesidad de reiniciar el servidor ni el tiempo de inactividad que ello conlleva.
Los ataques RCE son muy frecuentes, y la prevención es clave
No cabe duda de que un ataque RCE puede tener graves consecuencias. Desde la presencia de un minero de criptomonedas costoso y que consume muchos recursos, hasta el robo de datos y tiempo de inactividad crítico para el negocio. Los ataques RCE también son habituales, y no se trata en absoluto de un suceso raro que sólo ocurra a los desafortunados.
Por tanto, su organización debe ser consciente de los ataques RCE y protegerse firmemente contra ellos. Ya hemos mencionado algunos consejos, pero el aspecto más importante que debe tener en cuenta es la aplicación de parches.
El servicio de parcheo en vivo KernelCare de TuxCare puede ayudarle a mantener sus cargas de trabajo Linux a salvo de ataques RCE. automatizando la aplicación de parches y eliminando los reinicios del servidor. Más información sobre KernelCare aquí.