Estaba a punto de instalar una gema Ruby por alguien de quien no había oído hablar. Pero algo me hizo pensar "¿Quién es este tipo?". ¿Existe algún riesgo de que una gema Ruby acceda a datos privados en su máquina y los transmita a otra parte, ya que el sistema gem tiene acceso a Internet? ¿O hay protecciones contra esto?¿Existe el riesgo de que una gema Ruby actúe como un troyano?
Respuesta
Por supuesto que sí. Está instalando software en su computadora que se ejecuta con los privilegios del script/usuario que lo llama. Probablemente sea más fácil detectar código malicioso en Ruby puro que en paquetes binarios. Pero si cree que la inspección de fuentes es una forma garantizada de detectar códigos maliciosos, consulte under-handed C contest.
Dicho esto, si desea escribir malware, existen sistemas de entrega más eficaces que las gemas de Ruby. No me sorprendería si el número de gemas maliciosos reales de existencia es 0, y por lo tanto que la probabilidad de que éste es malicioso es también 0 ...
Existe un riesgo de código malicioso siempre que importe una lógica desconocida en una aplicación. Los riesgos son solo tan profundos como los datos a los que esa aplicación tiene acceso. Al igual que los applets de Java son sandboxed.
Obtenga paquetes firmados en los que confíe, o consulte la fuente.
no estoy de acuerdo con el cartel encima que la probabilidad de que existan gemas maliciosas es 0. Siempre existe el peligro de usar gemas maliciosas. Sé paranoico, pero aun así haz las cosas bien.
Creo que el enlace que proporciona respalda su punto: http://rubygems.org/read/chapter/14#page61 – Hola
Si quisiera tener una idea de la probabilidad de que ocurra una gema maliciosa, analizaría si los paquetes maliciosos se han detectado en cualquier idioma (por ejemplo, python egs o CPAN de Perl), qué tan probable es que un Se ha producido un paquete malicioso sin que nadie lo note, y si el rubí está en mayor riesgo que otros idiomas.
Podría ver si pudiera generar una red de confianza, incluso si no conozco al autor de la gema, ¿conozco a alguien que lo haga?
También podría ver si los administradores de paquetes como Debian examinan si los paquetes son maliciosos, y si es así, si han examinado la gema que desea usar.
Creo que hay dos grupos de gemas.
Primero las "gemas bien conocidas", que son, coincidentemente, las bijas y con más código/lógica (algunas veces poco claro para mis habilidades). Pero esas gemas son revisadas por muchos otros desarrolladores.
Luego están las "gemas menores" (lo que significa que no son tan usadas y difundidas). Estas gemas suelen tener versiones bajas, estados beta y demás.
Mi regla de oro es: Confío en el primer grupo y leo todo el código que puedo del segundo grupo de gemas.
Eso no es totalmente cierto ya que no tengo tiempo para leer el código de cada gema en mi sistema, pero trato de ir a las fuentes cada vez que necesito entender una llamada a un método, o cómo funciona determinada función está implementado, eso me impulsa, casi siempre a leer al menos 2-3 archivos fuente.
Si voy a instalar un cierto para una determinada funcionalidad, utilizo para buscar github y revisar la implementación, el número de forks y desarrolladores, la actividad (en número y frecuencia de confirmaciones) y más.
Dicho esto, solía confiar en las gemas, porque nunca he encontrado nada intencionalmente dañino, pero malas implementaciones y algunos agujeros de seguridad.
Suena como un buen enfoque. – Hola
Ha habido propuestas para gemas signo criptográficamente, lo que se sabe al menos que el código del autor no ha sido manipulado, pero no ha habido una captación en este
- 1. ¿Qué clases utilizo para que un iPhone actúe como servidor?
- 2. Ruby: ¿Cómo escribir una gema?
- 3. Cómo modificar una gema Ruby
- 4. ¿Qué es una gema Ruby?
- 5. ¿Existe algún riesgo de rendimiento para Collections.unmodifiableList?
- 6. ¿Existe algún riesgo al usar @ Html.Raw?
- 7. ¿Cómo ejecuto una gema de Ruby?
- 8. Crear un div que actúe como una casilla de verificación html
- 9. estilo en línea para que actúe como: flotar en CSS
- 10. ¿Hay una biblioteca/gema de Ruby que genere una URL basada en un conjunto de parámetros?
- 11. ¿Hay un retraso en el trabajo como gema para jruby?
- 12. Haga que una clase C++ actúe como un ostream personalizado, sstream
- 13. Ruby LESS equivalente de gema en Python
- 14. gema matemática Ruby
- 15. ¿Cómo incluir un controlador con una gema Ruby on Rails?
- 16. Viendo el código fuente de una gema
- 17. ¿Cómo hacer que el icono de la aplicación en una vista de búsqueda actúe como un filtro?
- 18. ¿Existe una manera sencilla de registrar los métodos que se invocan sobre un objeto en Ruby?
- 19. ruby: código para instalar gema si falta
- 20. ¿Cómo puedo hacer que un archivo por lotes actúe como un simple grep usando Perl?
- 21. ¿Cambiar el separador de línea sed a NUL para que actúe como prefiltro "xargs -0"?
- 22. ¿Cómo hacer que un tipo de entrada = botón actúe como un hipervínculo y lo redirija usando una solicitud get?
- 23. Ruby gema listada, pero no se cargará (gema en dir de usuario, no ruby dir)
- 24. Ruby: lista de correo biblioteca o gema
- 25. Ruby on Rails: ¿Eliminar una dependencia al instalar una gema?
- 26. Cómo hacer que Enter en un TextBox actúe como botón TAB
- 27. ¿Cómo acceder a la versión de una gema desde Ruby?
- 28. Ruby, Rails: gema mysql2, ¿alguien usa esta gema? ¿Es estable?
- 29. Acceso a los archivos empaquetados en una gema Ruby
- 30. Instalación de gema bcrypt-ruby en Windows
Gracias por los enlaces - > "¿Cómo puedo confiar en las Gemas que se descargan automáticamente de la red? De la misma manera que puedes confiar en todos los demás códigos que instalas. (Es decir, no puedes)." – Hola
Quizás haya muy pocas (o ninguna) intencionalmente gemas maliciosas, pero hay muchas gemas mal escritas que tienen agujeros de seguridad. Lea el blog de seguridad de Ruby on Rails, donde se publican agujeros realmente horribles en componentes de seguridad RoR críticos. Piénselo dos veces antes de agregar cualquier gema y siempre haga una breve intervención para obtener un indicador de la calidad del código de seguridad. –
"gemas mal escritas que tienen agujeros de seguridad" - gemas, aplicaciones, sistemas operativos ... –