Quels référentiels de packages de la distribution Linux sont sécurisés et lesquels ne le sont pas?

14

La plupart des distributions que je connais ont une sorte de fonctionnalité de référentiel où de nouveaux packages peuvent être téléchargés après l'installation. Quelles distributions le font de manière sécurisée et lesquelles ne le font pas de manière sécurisée.

Je pense en particulier aux vecteurs d'attaque comme l'homme au milieu et aux problèmes comme la violation de la sécurité sur le méta-serveur du référentiel et les miroirs de fichiers du référentiel.

J'ai entendu dire que Slackware et Arch Linux sont très vulnérables car ils manquent de signature de package. Est-ce vrai? Existe-t-il d'autres distributions Linux majeures qui sont vulnérables aux attaques simples d'homme au milieu?

grm
la source
si le site de la distribution est en texte clair http ou ftp et que la distribution est obtenue en tant qu'iso à partir de cette connexion et que cette connexion de base est MITM'ed, à quel point tout package `` post-mortem '' signant les packages de mise à jour fait-il du bien?
n611x007

Réponses:

7

Ce n'est pas une réponse directe à votre question, mais vous pouvez faire plusieurs choses pour atténuer ce risque. Le plus simple est de comparer vos packages téléchargés avec les sommes de contrôle d'un miroir différent de celui que vous avez téléchargé.

Lorsque mon gestionnaire de packages ( poldek) télécharge un package, je l'ai configuré pour conserver une copie du rpm téléchargé dans un dossier de cache. Il vérifie automatiquement la somme de contrôle du téléchargement par rapport au référentiel de packages et avertit / abandonne en cas de non-concordance, mais si vous craigniez que l'homme du milieu soit attaqué contre votre référentiel de distribution, il serait facile d'écrire un script secondaire qui a parcouru tous vos packages téléchargés et vérifiez-les par rapport aux sommes de contrôle que vous téléchargez à partir d'un autre miroir. Vous pouvez même exécuter votre première installation en tant qu'exécution à sec afin que les packages soient téléchargés mais pas installés, puis exécutez votre script de vérification, puis effectuez l'installation réelle.

Cela n'empêche pas un package compromis d'entrer dans le référentiel de la distribution, mais la plupart des distributions ont d'autres moyens d'atténuer cela, et même les packages signés ne garantissent pas que cela n'a jamais été un problème. Ce qu'il fait, c'est d'étouffer le vecteur d'attaque ciblé de l'homme du milieu. En utilisant une source distincte et en téléchargeant sur un canal séparé, vous tuez la facilité avec laquelle un paquet compromis pourrait être déposé sur une ligne tapée.

Caleb
la source
1
Il existe un package pour Arch appelé paccheckqui fait cela, compare les packages à différents miroirs avant l'installation et avertit de toute divergence.
Wolf
Les listes de miroirs sont probablement publiques, donc un attaquant ne pourrait-il pas théoriquement tracer vers MITM tous par modèle? Si un attaquant cible spécifiquement votre serveur, cela ne semble-t-il pas encore plus probable? Néanmoins, c'est probablement plus que ce que font la majorité Linux.
n611x007
10

Les paquets Debian sont des sommes de contrôle et les sommes de contrôle sont signées par une clé dans le trousseau de clés Debian. Le aptgestionnaire de packages s'assure que le package téléchargé a la somme de contrôle correcte et que le fichier de somme de contrôle a été signé correctement.

jmtd
la source
5

Les packages Fedora sont signés et additionnés. Même les référentiels tiers tels que rpmfusion signent leurs packages.

Yum (le gestionnaire de paquets) nécessite un drapeau spécial ( --nogpgcheck) pour installer les paquets qui n'ont pas été signés.

kanak
la source
et il en va de même pour les packages downsteam, c.-à-d. Red Hat et CentOS
fpmurphy
3

Tous les packages Arch Linux utilisent une somme md5 ou sha1 pour vérifier que tous les bits sont en place. C'est au mainteneur du package de choisir l'algorithme de hachage. Les packages installés depuis AUR (souvent juste un petit fichier texte PKGBUILD) sont censés être vérifiés par l'installee avant d'être installés. Les référentiels contenant les packages binaires officiels sont supervisés par des utilisateurs de confiance (TU).

Mise à jour : Arch a maintenant introduit la signature de packages avec pacman 4

Alexandre
la source
2
Tout cela est vrai, mais les packages ne sont pas signés et restent donc vulnérables aux attaques de compromis mitm et miroir, même si la possibilité est éloignée. C'est une fonctionnalité demandée depuis longtemps et la principale raison pour laquelle j'ai à contrecœur cessé d'utiliser Arch. Cela dit, il y a des discussions en cours sur les forums et wiki d'Arch et Pacman - c'est un problème difficile à résoudre. En dehors de ce problème, Arch est une distribution fantastique.
Eli Heady
@Eli: Je ne discute pas de la vérité - je n'ai aucune idée de la situation - mais ne serait-ce pas un marché extrêmement mince à attaquer. Certes, Arch est une distribution assez populaire, mais tous ces types de méfaits ne sont-ils pas généralement destinés à faire de l'argent?
boehj
1
Bien sûr, après tout, c'est la raison pour laquelle la base d'utilisateurs Windows est plus ciblée que celle de Linux, non? Le fait est que ce qui s'applique à l'agrégat ne s'applique généralement pas exactement à l'individu. Ce que je veux dire, c'est que le modèle de menace de chacun est différent - si vous avez des raisons de craindre d'être isolé pour une attaque, vous devez prendre les mesures appropriées pour réduire le risque. Le manque de signature de paquet présente des vecteurs d'attaque qui ne sont pas si difficiles à exploiter. Si vous avez des éléments précieux à protéger, ce problème doit être pris en compte dans votre stratégie d'atténuation des menaces.
Eli Heady
Vous pouvez installer Arch à partir d'un CD / DVD, puis prendre soin de vérifier que les sommes md5 / sha1 des packages binaires correspondent aux sommes de plusieurs miroirs avant l'installation, similaire à ce que Caleb a suggéré. Il n'y a jamais de sécurité à 100% dans tous les cas, même si je vois l'intérêt de la signature du paquet, et je souhaite qu'Arch l'ait.
Alexander
alors comment est-il possible que la somme de contrôle soit délivrée d'une manière plus sûre que le texte en clair http ou ftp? la vérification de signature doit-elle être mise en place par quel moyen cela se produit-il exactement sur l'arc?
n611x007
1

Qui a dit que Slackware n'avait pas de signature de package?

Les packages Slackware sont signés avec une clé publique de Slackware. Ainsi, chaque paquet a sa signature avec extension .asc. Non seulement les packages, mais d'autres fichiers sont également signés, comme CHECKSUMS.MD5. Il contient la liste des sommes de contrôle des packages.

La distribution dispose d'un outil officiel appelé slackpkgpour télécharger / installer des packages à partir d'un miroir. Après la mise à jour de la base de données repo locale avec slackpkg updatel'outil vérifie la validité de la signature du nouveau fichier MD5 et du journal des modifications, etc ...

Après avoir téléchargé un package (mais avant l'installation), la signature et le MD5 du package sont vérifiés.

On peut obtenir la clé publique avec slackpkg update gpgou simplement l'importer depuis le CD d'installation avecgpg --import GPG-KEY

Il existe un autre outil non officiel slapt-getpour Slackware. Il prend également en charge les contrôles GPG! De la même manière que slackpkg.

fainéant
la source
-2

OpenBSD de loin. L'ensemble du projet est dédié à la sécurité, l'équipe a même mis en place un correctif de plus de 5000 lignes sur l'apache d'origine car ils ne pensaient pas qu'il était suffisamment sécurisé pour être utilisé. C'est via pkg_add mais je n'ai jamais eu de problème avec ça.

baweaver
la source
4
Vous ne répondez pas à la question: il s'agit spécifiquement de vérifier les signatures des packages téléchargés (et des ports, dans le cas de * BSD).
Gilles 'SO- arrête d'être méchant'
1
Je suis d'accord avec @Gilles; OpenBSD est un excellent système d'exploitation, mais @grm a posé des questions sur la sécurité de la distribution des packages Linux.
livingstaccato