Estoy mirando específicamente a emacs helm , que tiene las siguientes propiedades:
- tiene miles de commits
- es mantenido en gran parte por un usuario
- el mantenedor no tiene otros perfiles (redes sociales, etc.) que pude encontrar en algunas búsquedas
- se mantiene activamente (hoy)
Como estoy a punto de instalar un código arbitrario en mi computadora para usarlo en mi editor de texto, quería verificar si esto se ha sometido a algún proceso de revisión. Me gustaría decir "bueno, es de código abierto", pero realmente estoy lejos de la capacidad de elisp de auditar todo el código yo mismo. Me gustaría asumir que otros en la comunidad lo han revisado, pero uno que probablemente sea falso, y dos hay confirmaciones de última hora. ¿Hay otras estrategias que me faltan?
Para el registro, el vector es simple: el "código abierto" no importa tanto si el contribuyente está trabajando con una cuenta desechable o si no hay un proceso de revisión.
mapatoms
podría ser incluido en el grupo "peligroso" junto constart-process
,eval
yfuncall
. Por supuesto, habría algunos falsos positivos, pero si el paquete no usa ninguna de esas funciones, puede marcarse como inofensivo con gran certeza.make-process
, así comocall-process
,dbus-<foo>
,make-network-stream
, y luegovc-do-command
,vc-git-command
, .... Y si se poneeval
yfuncall
en la categoría de "peligroso", entonces la mayoría / todos los paquetes son peligrosos.Respuestas:
La respuesta breve es que a menos que lea el código usted mismo, está confiando mucho. Dicho esto, confiar en un proyecto procedente de un SCM aguas arriba es un poco más seguro que uno que se ha extraído directamente de la Wiki de Emacs, por ejemplo. Sin embargo, fundamentalmente confía en que el autor del paquete no se volverá malvado y abusará de la capacidad de ejecutar código arbitrario en su sesión de Emacs.
Hay algunas cosas que pueden hacerte sentir más seguro:
Si bien los paquetes populares no reciben más revisiones automáticamente, el hecho de que tengan más usuarios significa que aumentan las posibilidades de detectar comportamientos maliciosos antes de que te afecten.
En github puede obtener una vista bastante buena del historial de contribuciones de los proyectos. Incluso si el autor principal realiza la mayoría de los commits, tener una amplia gama de autores muestra que hay otras personas con un interés activo en la estabilidad y efectividad del código.
Si bien vivir en la vanguardia tiene un cierto atractivo para aquellos que desean las últimas características brillantes, significa que podría ser el primero en aceptar la última confirmación en su entorno. Incluso si no es malicioso, es posible que obtenga un paquete en un estado de cambio, mientras que una versión "oficial" tendrá al menos algún tipo de revisión superficial. Por ejemplo, los paquetes GNU ELPA solo serán comprometidos por aquellos usuarios de emacs-devel con derechos de compromiso.
En última instancia, estoy seguro de que en algún momento habrá una violación de seguridad a través del sistema de paquetes, incluso si es solo un experimento de prueba de concepto. Ese será el punto en el que tendrá que confiar en sus copias de seguridad regulares.
fuente