Que penser des paquets snap?

Bonjour,
que peut-on penser des paquets snap ?
J’ai eu une très courte expérience sous Ubuntu (pc d’occase avec Ubuntu installé) qui m’a laissé perplexe : quand un logiciel existe dans les dépots deb et les dépots snap on peut se retrouver avec des versions plus ou moins incompatibles si on n’est pas très rigoureux dans la gestion des deux types de paquets.
Je suis revenu sous Debian stable.

Sachant qu’ils ne partagent pas leur librairies il est où le problème ? seul l’espace disque en prends pour son grade finalement :wink:

Que ce ne sont pas des flatpaks, sinon rien de plus que ce qu’il a déjà été dit par leurs détracteurs et leurs supporters.

Bonjour,

Ce que je vais dire n’est pas souvent mentionné, mais malgré tous leurs défauts, les snaps apportent potentiellement (j’ai bien dit « potentiellement ») quelques avantages :

  1. les Snaps apportent une amorce de cloisonnement applicatif qui manque tant à nos distributions préférées (sous réserve d’une mise en oeuvre stricte d’AppArmor, on obtient un niveau intéressant de sécurité) ;
  2. les Snaps permettent une mise à jour régulière pour bénéficier des dernières versions logiciels, indépendamment du socle système, ce qui peut être intéressant pour de nombreux utilisateurs.

Mais malheureusement, cela s’accompagne de défauts qui doivent être questionnés :

  1. les distributions n’ont pas la main sur le contenu du Snap poussé par le développeur… ce qui en fait un nid à malwares…
  2. les Snaps ne sont pas tous protégés de la même manière via AppArmor, ce qui amène certaines installations de Snaps à un cloisonnement… nul.
  3. on se perd vite dans le store Ubuntu de par les versions Snap ou APT qui s’affichent…

Bref, il y a du potentiel, mais pour le moment, c’est sans moi ! :sweat_smile:
Bonnes fêtes à toutes et tous en passant :wink:
Fred

EDIT : si ce n’est pas évident pour tous, il faut préciser que toutes les solutions de cloisonnement actuelles comparables sur nos distributions tournent également avec des droits root ou équivalent, donc en gros, c’est game over si l’attaquant trouve une faille.

C’est bien ce qui m’est arrivé : deux versions de VLC, l’une par snap l’autre en ligne de commande par apt… La première ne prenait pas en compte la caméra du PC, le seconde si. J’ai mis pas mal de temps à comprendre pourquoi VLC avait des comportements différents suivant le façon dont je le lançais.
Merci en tout cas pour ces éclaircissements.
Ce que je voulais entre autres savoir était la question des librairies (merci à Clochette).

Comme je ne connais pas le problème, mes questions sont de vraies questions.

  • Quel est l’intérêt technique des snaps par rapport à ce qui a existé d’abord, c’est à dire la liaison statique des bibliothèques ?
    -En quoi le snap apporterait-il une meilleure protection ?

Bonnes fêtes à tous.

Par défaut sous linux les liaisons sont dynamiques, pas statiques. Cela explique le fait que quand les librairies partagées sont installées les logiciels sont souvent très légers, même pour des applications vidéo, par exemple.
Le défaut des librairies partagées est que l’ensemble des logiciels installés doivent être cohérents du point de vue des versions. C’est l’un des rôles des dépôts officiels de Debian d’assurer cette cohérence. Quand on rajoute sans précaution des dépôts externes au fichier /etc/apt/sources.list on peut se retrouver face à un problème de « FrankenDebian » par évocation de Frankenstein…
Pour les éditeurs de logiciels il est intéressant de créer des applications exécutables qui contiennent toutes leurs librairies (dans une plage de versions de Linux) pour ne pas être obligés de compiler autant de versions du logiciel que de versions d’environnements Linux.
C’est, par exemple,le cas des modules Appimage (https://appimage.org/).
je n’étais pas sûr que ce soit le cas de Snap.

1 J'aime

Ça je le sais. Mais avant d’avoir des bibliothèques liées dynamiquement, on en avait des statiques et il est toujours possible de demander une liaison statique dans les options du compilateur (-static). Dans ces conditions, qu’apportent les snap par rapport à une liaison statique bien traditionnelle ?

Non ça cloisonne l’installation, par le fonctionnement (au delà des standard du système proprement dit, ce qui n’est pas aussi important qu’on le crois), d’autant que la sécurisation des snap est très largement considérée comme faible. Aucune architecture sécurisé n’utilisera jamais en l’état des choses du snap (i.e.:! ubuntu n’est pas considéré comme un système qui puisse être fiablement sécurisé à cause des snap notamment).
et je confirme la suite ;):

Avoir des versions plus récente que les paquets des dépots.

Aucune. snap n’apporte absolument aucune protection, et c’est même le contraire d’ailleurs. Chez la totalité des clients de ma boite qui utilisent Linux, les Snap sont tous interdits d’où d’ailleurs souvent la non utilisation de Ubuntu…

Ce qui est souvent un héritage de développement à la windows, où c’est assez fréquent.

Pai ailleurs il n’"y a aucun contrôle réellement décent des snap, donc la possibilité d’une faille importante est largement supérieure à n’importe quel paquet des dépots que ce soit en main, contrib ou non-free car il cumule tous les risques; comme en métrologie, la succession de risques ne s’additionne pas mais se multiplie (à cause du fait que mathématiquement cela implique des logarithme, et une addition de logarithme est un logarithme de multiplication (log(a) + log(b) = log(a*b) ), si ma mémoire de mes cours de mathématique post bac ne me font pas défaut :wink:
.

Je ne suis pas d’accord sur ce point (du moins sur la manière dont tu l’expliques).
Snap associé à une configuration AppArmor stricte pour chaque Snap installé, c’est un bon début de cloisonnement. C’est le cas sur Ubuntu.
Sur Debian, installer Snap est une autre affaire puisqu’aucun confinement AppArmor n’est configuré.
Bref, Snap sur Ubuntu, je pense que ce n’est pas si mauvais techniquement qu’on le dit (je ne reviens sur les points négatifs déjà cités et qui sont pour moi déjà rédhibitoire !). Mais sur un autre système, c’est à fuire :wink:

Concernant les autres (Flatpak & cie), ce n’est pas mieux pour le moment.

Ce n’est pas tout à fait exact (je chipotte là !) : comme je le disais plus haut, SNAP+AppArmo, c’est pas mal techniquement en terme de sécurité. Mais la distribution perd la main sur le contenu du Snap, ce qui est pratique pour avoir la dernière version d’une application, mais rédhibitoire pour la sécurité.
Autrement dit, il faudrait une validation - contrôle des Snap en amont par la distribution pour avoir la main (c’est le cas des Snap de Canonical, par exemple).