Comunicado de Canonical: Confianza y seguridad en la Tienda Snap

Comunicado de Canonical acerca del descubrimiento de una aplicación de la Tienda Snap que minaba criptomonedas.

El viernes pasado (11 de mayo de 2018) nos enteramos de que una aplicación Snap estaba minando criptomonedas en segundo plano mientras la aplicación estaba en ejecución. La implicación práctica de esto es el uso excesivo de recursos locales en el sistema de un usuario, mucho más allá de lo que una aplicación típica utilizaría, consumiendo más energía de la que cabría esperar. El efecto neto es un intercambio de una pequeña cantidad de información no personal y de recursos computacionales que equivale a ingresos para el editor en cuestión, proporcionales a los recursos utilizados.

¿Malvado, ingenuo o interesante?

La primera pregunta que vale la pena hacer, en este caso, es si el editor de hecho estaba haciendo algo malo, considerando que el minado de criptomonedas minera no es ilegal o poco ética por sí misma.

Esta perspectiva fue tomada por el editor en cuestión, quien nos informó que el objetivo era monetizar el software publicado bajo licencias que lo permiten, sin tener en cuenta las consecuencias sociales o técnicas. El editor se ofreció a dejar de hacer eso una vez contactado.

Por supuesto, es engañoso si no se indica la finalidad secundaria de la solicitud. De hecho, por eso la solicitud fue retirada en la tienda. No hay reglas contra la minería de criptocurrencies, pero engañar a los usuarios es un problema.

Reseñas de software

Uno de los aspectos más desafiantes de manejar un repositorio de software moderno es asegurarse de que el software publicado sólo está haciendo lo que se supone que debe hacer. En los repositorios clásicos de Ubuntu, tenemos el gran privilegio de trabajar sólo con software construido sobre una infraestructura de confianza, desde el origen. Esto tiene ventajas obvias, pero también requiere mucho tiempo hasta que los nuevos programas estén disponibles para millones de usuarios. Los snap permiten un camino mucho más directo para que los editores entreguen su software a los usuarios a través de una amplia gama de distribuciones de Linux, asegurando que esas aplicaciones estén confinadas de forma segura.

Las App Stores de iOS, Android y Windows siguen algunos patrones estándar para el control de calidad y seguridad: puntos de control automatizados por los que los paquetes deben pasar antes de ser aceptados, y revisiones manuales por parte de un humano cuando se detectan problemas específicos. La Snap Store implementa ambos patrones.

Incluso entonces, la complejidad inherente del software significa que es imposible que un repositorio a gran escala sólo acepte software después de que cada archivo individual haya sido revisado en detalle. Esto es cierto tanto si el código fuente está disponible como si no, ya que ninguna institución puede permitirse revisar cientos de miles de líneas de código fuente entrantes cada día. Por eso, el modelo de confianza más exitoso se basa en el origen del software, no en su contenido. En otras palabras, confíanza en el editor y no en la propia aplicación.

También es particularmente útil poder decir con mayor precisión con qué confiamos en el software. Es mejor decir “confiamos en el software de Pauline para acceder a la cámara” que tener una visión binaria de la confianza. La tecnología implementada en los paquetes snap es un paso importante en la dirección correcta, ya que permite definir esa confianza con niveles muy altos de granularidad, utilizando las modernas capacidades de seguridad del núcleo de Linux. Permite responder a preguntas como por ejemplo si el snap puede acceder a una cámara web, o si tiene la capacidad de acceder a archivos en el directorio home, por ejemplo, y también permite tener una opinión sobre ello, por ejemplo revocando ese acceso, y muchas otras variantes sensatas. Pero aún así, el concepto de confianza sigue presente e importante.

Imagine, por ejemplo, que alguien instala un navegador web publicado por una persona desconocida. Incluso si la única cosa a la que este navegador web tiene acceso es a su propio espacio de almacenamiento, la pantalla y la red, sigue siendo que todos los datos que fluyen a través de ese navegador está en juego. No hay manera de confiar en que el editor sea honesto y cuidadoso antes de usarlo.

El camino hacia la seguridad

Hace varios años, cuando empezamos a trabajar en los paquetes snap, comprendimos que no podíamos implementar instantáneamente una alternativa que fuera completamente segura desde todos los puntos de vista. Además de ser seguro, tenía que ser útil. Por lo tanto, el desafío que nos planteamos fue mejorar considerablemente la situación de inmediato y luego allanar el camino para lograr mejoras graduales que pudieran aplicarse gradualmente.

Nuestra hoja de ruta sigue reflejando estas opciones: tenemos características de seguridad muy interesantes en las que estamos trabajando que mejorarán la seguridad del sistema y también la experiencia de las personas que manejan despliegues de software en servidores y escritorios.

Como un ejemplo relevante en el contexto de este evento, una característica simple pero bastante efectiva en la que estamos trabajando es la capacidad de marcar a editores específicos como verificados. Los detalles de esto serán anunciados pronto, pero la idea básica es que será más fácil para los usuarios identificar que la persona u organización que publica el snap es quien dice ser. La necesidad de confianza sigue existiendo, pero ayudará a los usuarios a tomar una decisión más informada antes de la instalación.

Otras características son más graduales y menos visibles, como la codificación regular de nuevas interfaces que permiten la mediación de otros aspectos del sistema, o el upstreaming de todos los parches del núcleo de AppArmor, lo que permite que más distribuciones de Linux se beneficien de capacidades de confinamiento adicionales.

Concluyendo

El evento identificado durante el fin de semana fue desafortunado, pero también se esperaba en el sentido de que cualquier tienda de software popular tendrá que manejar y mitigar el abuso. Nos tomamos muy en serio estos eventos y continuaremos vigilando de cerca la tienda y mejorando la seguridad de la plataforma en su conjunto.

Dirigimos este proyecto como una comunidad abierta y amigable, así que si estás interesado en estos problemas y quieres ayudar a definir el futuro de la distribución de software en Linux, por favor únete a nosotros en nuestras discusiones en snapcraft.io.

Anuncios

Deja un comentario