Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

463
Views
Ruby On Rails: ¿ataque de hombre en el medio cuando una gema se usa en su fuente HTTP Gemfile?

Estoy ejecutando un escáner de seguridad contra una aplicación que estoy desarrollando y está aumentando la alerta roja, el hilo de máxima seguridad para el gem rotr que usa en su fuente Gemfile con el protocolo HTTP que revela una posibilidad para el ataque del hombre en el medio que potencialmente puede permitir un atacante para inyectar cualquier código en una aplicación

El enlace a Gemfile en cuestión: https://github.com/mdp/rotp/blob/master/Gemfile

Afirma:

 source 'http://rubygems.org'

¿Es un problema real si esta gema aparece como una dependencia y en mi Gemfile estoy usando:

 source 'https://rubygems.org'

Traté de averiguar cómo funciona exactamente, pero no pude.

Es decir, de qué manera está funcionando el paquete:

  1. Obtiene todas las gemas que especifico de http s ://rubygems.org, luego extrae todas las dependencias por separado para cada gema, de la fuente especificada en cada Gemfile (para cada gema) y en caso de gema rota, las extrae de http:/ /rubygems.org (NO https) - abriendo así la posibilidad teórica de un ataque man in the middle al instalar ropt gem

  2. Bundler extrae todas las gemas de la fuente especificada en MI Gemfile (http s ://rubygems.org), por lo que incluso si una gema especifica http://rubygems.org (NO https), se extraerá a través del protocolo seguro desde el ubicación que especifico por lo que no hay posibilidad teórica para el hombre en el ataque medio

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

En su ejemplo, la gema se cargaría a través de HTTPS, porque el Gemfile de una dependencia no se cargará en absoluto. A partir de las dependencias, Bundler solo evalúa el archivo gemspec . El Gemfile de la gema solo se usa durante el desarrollo de esa gema. Lectura interesante en este contexto: cómo el empaquetador prioriza las fuentes .


Lo siguiente para el lector interesado por qué es importante usar HTTPS al descargar gemas:

Cuando carga una gema desde una fuente que no es HTTPS y hay un atacante intermediario, este atacante podría devolverle cualquier cosa en lugar de la gema que solicitó.

Por supuesto, hay hombres si y cuándo . Pero imaginemos que va a descargar una gema en un canal de comunicación no seguro como HTTP puro. E imaginemos que hay un atacante man-in-the-middle que es capaz de olfatear su tráfico. Esto podría ser posible cuando se usa el mismo WiFi en una cafetería u hotel, o cuando hay diferentes clientes en servidores virtuales en un centro de datos o tienen acceso físico a su teléfono fijo.

Debido a que pueden leer su solicitud sin cifrar de una gema, entonces saben qué gemas está usando. Ahora imagine que no solo detectan su tráfico, sino que también manipulan la respuesta de los servidores hacia usted. Cuando, por ejemplo, solicita una nueva versión de una gema popular para manejar la autenticación y autorización de usuarios o pagos, podrían devolverle su versión en lugar de la versión original.

Y su versión podría incluir algunos cambios menores como:

  • cuando se carga, la gema podría cargar su Gemfile al atacante, lo que le daría al atacante una excelente visión general de su aplicación.
  • cuando se carga, la gema podría tomar todas las variables ENV y/o Rails.credentials y cargarlas en un servidor controlado por el atacante. Esto ciertamente le daría al atacante todas las contraseñas de su aplicación.
  • debido a que cambió la gema original que se ocupa de las credenciales de los usuarios, la gema maliciosa podría rastrear a los usuarios o sus credenciales de administrador cuando inician sesión o actualizan sus credenciales. Dado que muchos usuarios usan la misma combinación de correo electrónico y contraseña en todas partes, esto sería una pesadilla.
  • si la gema puede leer variables ENV o Rails.credentials , eso significa que también podría cambiarlas. Por ejemplo, conectarse a otro proveedor de pago significaría que el pago de su cliente se redirigiría a una cuenta diferente.
  • Y además de eso, la gema maliciosa también podría reemplazarse con la gema original una vez que se cargara en la memoria. Lo que dificultaría darse cuenta de que su servidor fue atacado.

tl;dr Cuando un atacante puede realizar un ataque de intermediario, puede enviarle versiones maliciosas de una gema. Estas gemas maliciosas podrían hacer casi todo lo que puedas imaginar con tu aplicación. Claro, los ataques como este no son simples, pero tampoco son superdifíciles.

La regla general es: siempre use HTTPS siempre que sea posible (no solo para descargar gemas sino para todo el tráfico de la red).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!