¿Necesita Cloud Computing? Empiece ahora

Cómo evitar que descarrile Rails: neutralice los ataques de inyección de código

Akamai Wave Blue

escrito por

Sam Tinklenberg, Maxim Zavodchik, y Aparna Mandal

November 06, 2024

Sam Tinklenberg

escrito por

Sam Tinklenberg

Sam Tinklenberg es experto sénior en seguridad y forma parte del grupo de investigación sobre amenazas a aplicaciones y API de Akamai. Tiene vasta experiencia en pruebas de penetración de aplicaciones web y es un apasionado de la detección de vulnerabilidades críticas y su protección. Cuando no está descifrando aplicaciones web, le gusta jugar a videojuegos y juegos de mesa, pasar tiempo al aire libre, y disfrutar de sus amigos y familiares.

Maxim Zavodchik

escrito por

Maxim Zavodchik

Maxim Zavodchik es responsable senior de investigación de amenazas de aplicaciones & API en Akamai.

Aparna Mandal

escrito por

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.

Nuestra nueva regla específica para Rails detecta decenas de miles de intentos de inyección de código a diario en todo el mundo.
Nuestra nueva regla específica para Rails detecta decenas de miles de intentos de inyección de código a diario en todo el mundo.

En Akamai, nos comprometemos a mejorar continuamente nuestro firewall de aplicaciones web (WAF) para garantizar los máximos niveles de seguridad a nuestros clientes. Como parte de este compromiso, nos complace anunciar el lanzamiento de una nueva función de detección para ataques de inyección de código específica para aplicaciones de Ruby on Rails (Rails).

¿Por qué es crucial proteger las aplicaciones de Ruby on Rails?

Ruby on Rails es un marco de trabajo popular de desarrollo de aplicaciones web por su facilidad de uso, flexibilidad y la solidez de su ecosistema. Rails acelera el tiempo de desarrollo y mantiene un código base limpio y aceptable, por lo que resulta muy atractivo para programadores de organizaciones de todos los tamaños. Muchas marcas reconocidas, como GitHub, Shopify, Airbnb y Basecamp han creado sus plataformas con Ruby on Rails, lo que pone de manifiesto su importancia en el sector tecnológico.

No obstante, Rails también se ha convertido en un atractivo objetivo para los ciberataques por estos mismos motivos. El aumento de procesos más automatizados y la necesidad de interoperabilidad de las aplicaciones, que no deja de crecer, crean nuevos espacios en los que los atacantes se pueden esconder. Proteger las aplicaciones de Rails es esencial para salvaguardar los datos y las operaciones empresariales confidenciales de estas plataformas tan importantes.

Aumento de amenazas contra Ruby on Rails

A lo largo de los años, Rails se ha enfrentado a numerosas vulnerabilidades de seguridad y vectores de ataque importantes. El Proyecto Abierto de Seguridad de Aplicaciones Web (OWASP, por sus siglas en inglés) incluye una hoja de referencia sobre la protección de Rails que muestra lo crucial que es que tanto desarrolladores como equipos de seguridad estén alerta.

Si bien la mayoría de las vulnerabilidades con un perfil de alto riesgo en Rails estaban relacionadas con la deserialización insegura de los formatos de datos JSON y YAML , es posible que los programadores expongan accidentalmente la aplicación y los datos de los usuarios a otras clases de ataques, como la inyección de código. Esto se aplica especialmente a la función "eval" en el lenguaje de Ruby. Esta función escribe dinámicamente código de Ruby introduciendo texto en una cadena. Si lo que introduzca un atacante termina dentro de esta función, podrá ejecutar cualquier código arbitrario de Ruby.

Le mostramos un ejemplo:

def calculate

  calc = params[:calc]

  result = eval(calc)

  render plain: result

End

 En este ejemplo, que es extremadamente sencillo, la acción calcular toma un parámetro calc de lo que ha introducido el usuario, lo que incluye una operación matemática, como "1+2", y usa el método eval de Ruby que, a su vez, devuelve el resultado de la operación matemática. De esta forma, se origina una vulnerabilidad de inyección de código, puesto que los atacantes pueden introducir código arbitrario en Ruby para que se ejecute.

Cómo pueden explotar esta vulnerabilidad los atacantes

Un atacante puede explotar esta vulnerabilidad enviando una solicitud especialmente diseñada con código malicioso de Ruby, como:

  POST /calculate?ip=IO.popen('cat%20%2Fetc%2Fpasswd').read%20%23

O, en su versión descodificada:

  IO.popen('cat /etc/passwd').read #

Este comando acabaría leyendo el contenido del archivo /etc/passwd del sistema (que contiene información confidencial sobre los usuarios del sistema). El símbolo # del final es un comentario de Ruby que ignora todo lo que haya detrás, evitando los errores de sintaxis en el resto del código.

Mitigación con Akamai Adaptive Security Engine

Debido a la prevalencia cada vez mayor de ciberamenazas sofisticadas, es necesario tener implantadas sólidas medidas de seguridad. Nuestra regla más reciente de Adaptive Security Engine, 3000404: Ataque de inyección en operación confidencial en Ruby on Rails detectado, ofrece un mayor nivel de precisión y cobertura a la hora de detectar y mitigar ataques de inyección de código en aplicaciones de Rails (Figura 1).

Nuestra regla más reciente de Adaptive Security Engine, 3000404: Ataque de inyección en operación confidencial en Ruby on Rails detectado, ofrece un mayor nivel de precisión y cobertura a la hora de detectar y mitigar ataques de inyección de código en aplicaciones de Rails (Figura 1). Fig. 1: Ataque de inyección de código en Ruby bloqueado por la regla 3000404 de Adaptive Security Engine

Ventajas clave

  • Precisión mejorada: las técnicas de detección avanzadas identifican de forma precisa y bloquean los intentos de inyección de código, minimizando así los falsos positivos y garantizando que no se vea afectado el tráfico legítimo.

  • Amplia cobertura: una amplia cobertura de una variedad de vectores de inyección de código ofrece una protección sólida para las aplicaciones de Rails.

Ataques de inyección de código en Ruby on Rails contra nuestros clientes

Nuestra nueva regla específica para Rails detecta decenas de miles de intentos de inyección de código a diario en todo el mundo. En las últimas semanas, esta regla de Adaptive Security Engine alcanzó un pico de casi 250 000 detecciones en un solo día y al día mitiga de media unos 70 000 ataques (Figura 2).

 En las últimas semanas, esta regla de Adaptive Security Engine alcanzó un pico de casi 250 000 detecciones en un solo día y al día mitiga de media unos 70 000 ataques (Figura 2). Fig. 2: Detecciones diarias de la regla 3000404 de Adaptive Security Engine

Hasta ahora, hemos observado más de 3000 direcciones IP únicas de ataque y más de 21 000 hosts han sido el objetivo de estos intentos de ataque. Estos intentos se han producido en todo el mundo; pero la mayoría se han originado en Alemania (Figura 3).

Estos intentos se han producido en todo el mundo; pero la mayoría se han originado en Alemania (Figura 3). Fig. 3: Mapa de los intentos de inyección de código en Rails observados

Miramos hacia el futuro

La seguridad es un aspecto crucial de su negocio, y nos comprometemos a ofrecer soluciones que no solo cumplan sus expectativas, sino que las superen. Nuestro firewall de aplicaciones web (WAF) está diseñado para ofrecer una protección completa y, con esta regla de detección de inyección de código en Rails, nuestros mecanismos de defensa quedan aún más reforzados para salvaguardar sus aplicaciones y datos.

A medida que seguimos innovando y ampliando nuestras funciones de WAF, seguimos centrándonos en ofrecer a nuestros clientes las soluciones de seguridad más eficaces y fiables. No se pierda las actualizaciones, ya que seguimos trabajando sin descanso para mejorar nuestra oferta de productos y mantener nuestro liderazgo en seguridad de aplicaciones web.

Para más información sobre Adaptive Security Engine y las soluciones de seguridad para API y aplicaciones web de Akamai, póngase en contacto con su representante de Akamai.



Akamai Wave Blue

escrito por

Sam Tinklenberg, Maxim Zavodchik, y Aparna Mandal

November 06, 2024

Sam Tinklenberg

escrito por

Sam Tinklenberg

Sam Tinklenberg es experto sénior en seguridad y forma parte del grupo de investigación sobre amenazas a aplicaciones y API de Akamai. Tiene vasta experiencia en pruebas de penetración de aplicaciones web y es un apasionado de la detección de vulnerabilidades críticas y su protección. Cuando no está descifrando aplicaciones web, le gusta jugar a videojuegos y juegos de mesa, pasar tiempo al aire libre, y disfrutar de sus amigos y familiares.

Maxim Zavodchik

escrito por

Maxim Zavodchik

Maxim Zavodchik es responsable senior de investigación de amenazas de aplicaciones & API en Akamai.

Aparna Mandal

escrito por

Aparna Mandal

Aparna Mandal is the Lead Product Manager for Akamai Adaptive Security Engine, the core web application firewall engine for Akamai's web application and API security solution. She has more than a decade of experience in building and implementing innovative and efficient solutions.