Tous les articles

This Shit is Hard : Maintenir le système d'exploitation Chainguard allégé, à jour et sécurisé - la puissance du garbage collection

James Page, ingénieur logiciel principal, et John Slack, chef de produit principal

La série "This Shit is Hard" de Chainguard présente les travaux d'ingénierie difficiles auxquels nous nous sommes attaqués pour fournir les meilleurs résultats aux clients qui utilisent nos produits. Nous avons couvert plusieurs sujets importants, y compris la Chainguard Factory, les bibliothèques Chainguard pour Java, nos intégrations avec plusieurs partenaires scanners, le durcissement récent de la glibc, notre implémentation de SLSA Level 3, et le concept de "Zero Trust" dans les logiciels open source. Aujourd'hui, nous présentons comment nous maintenons Chainguard OS, le moteur qui alimente tout ce que nous faisons chez Chainguard, léger, actuel et sécurisé.

Chez Chainguard, nous innovons constamment pour fournir aux développeurs les logiciels open source les plus sûrs. Un aspect critique, souvent invisible, de cette mission est le "garbage collection" - la suppression systématique des paquets inutiles de nos dépôts de paquets. Il ne s'agit pas seulement d'une question d'ordre, mais d'une pratique de sécurité fondamentale.

Pourquoi le ramassage des déchets est essentiel pour la sécurité

La Chainguard Factory est une centrale électrique qui produit des milliers de mises à jour automatisées de paquets chaque semaine. Sans un processus robuste de collecte des déchets, nous avons accumulé une longue queue de paquets plus anciens et non maintenus dans les dépôts Chainguard OS et Wolfi APK. À son apogée, les dépôts Wolfi APK contenaient plus de 300 000 paquets, dont beaucoup avaient été créés il y a plusieurs années, contenaient des CVE connus et avaient été remplacés par des versions plus récentes des mêmes paquets. Bien que ces paquets persistants n'aient pas été activement utilisés dans les images de conteneurs Chainguard, ils ont considérablement augmenté la surface d'attaque potentielle pour nos clients - dont beaucoup utilisent des paquets pour personnaliser les images. La collecte des déchets garantit que l'archive des paquets utilisée pour construire et personnaliser les images des conteneurs Chainguard reste légère, à jour et, surtout, sécurisée.

Un problème industriel, une solution automatisée

La gestion de centaines de milliers de paquets est un problème industriel qui ne peut tout simplement pas être traité manuellement. Les paquets ont un arbre de dépendance complexe, et une approche naïve de la suppression des paquets pourrait facilement casser les images de conteneurs ou les flux de travail de personnalisation des images. C'est pourquoi notre analyse des dépendances est entièrement automatisée au sein de Factory. Notre processus commence par un filtre temporel, ciblant tout ce qui date de plus de 12 mois. Ces candidats sont ensuite rigoureusement vérifiés par rapport à nos images de conteneurs et de machines virtuelles, ainsi que par rapport aux définitions de construction de paquets, afin de s'assurer qu'ils ne sont pas activement utilisés dans les produits Chainguard. Cela permet de garantir la cohérence et la reproductibilité de l'archive à tout moment.

Nous exploitons également les données pour comprendre quels paquets nos clients incluent dans leurs images personnalisées, et nous travaillons avec ces clients pour migrer vers des paquets plus récents. Ces "garde-fous" sont cruciaux ; ils garantissent que nos efforts de collecte des déchets ne cassent rien par inadvertance en aval - au contraire, la collecte des déchets maintient l'archive sécurisée et durable.

Nous avons également veillé à ce que ces processus soient réversibles ; Chainguard peut restaurer n'importe quel paquet dans les 60 jours suivant son retrait.

Trouver la bonne période de rétention

Chainguard reconstruit quotidiennement des images de conteneurs et fonctionne avec des versions glissantes. Cet environnement dynamique nécessite une approche réfléchie de l'historique des paquets. Historiquement, nous maintenions un "forever history", ce qui offrait la possibilité de revenir à n'importe quel état antérieur, mais entraînait également une collection croissante de paquets inutilisés. Les distributions traditionnelles adoptent souvent l'approche inverse, en remplaçant complètement les anciennes versions, ce qui peut compromettre la reproductibilité.

Avec Chainguard OS, nous avons adopté une stratégie équilibrée : Nous conservons un historique de 12 mois. Cette durée est suffisamment longue pour reproduire toute version récente bit à bit, mais suffisamment courte pour éviter l'accumulation de paquets périmés sans fin. Cette approche permet à nos clients d'avoir confiance en une chaîne d'approvisionnement vérifiable sans avoir à supporter le fardeau sécuritaire d'une archive en constante expansion.

Pour Wolfi, nous avons également commencé avec une période de rétention de 12 mois, mais nous prévoyons de la réduire à 3 mois à l'avenir.

Chainguard OS : votre distribution sécurisée et compatible

Chainguard OS est la fondation sécurisée qui alimente tout ce que nous faisons à Chainguard, construite sur une philosophie de minimalisme et de renouvellement continu. Ces principes de "garbage collection" ne sont pas seulement destinés à garder les choses propres ; il s'agit d'un mécanisme de sécurité délibéré. En élaguant automatiquement les logiciels inutilisés ou obsolètes, Chainguard OS minimise la surface d'attaque potentielle et réduit votre exposition aux vulnérabilités non corrigées. Cette approche disciplinée garantit que seuls les composants les plus récents, vérifiés et nécessaires restent dans le système.

Le résultat est un système d'exploitation allégé, plus facile à auditer, plus rapide à reconstruire et intrinsèquement plus fiable. Parce que Chainguard maintient un historique de 12 mois, les développeurs peuvent toujours atteindre une reproductibilité parfaite pour les versions récentes sans hériter d'années de bagages périmés et risqués. En substance, Chainguard OS applique la logique du "moins c'est plus" à l'échelle industrielle, transformant ce qui pourrait être un écosystème complexe et tentaculaire en une base étroitement gérée et continuellement vérifiée qui permet des chaînes d'approvisionnement logicielles sûres et reproductibles.

Si vous souhaitez en savoir plus sur Chainguard OS et ses avantages, consultez notre livre blanc "Chainguard Your OS" et découvrez comment Chainguard OS peut ouvrir la voie à des gains de sécurité, d'efficacité et de productivité dans votre entreprise.

Share this article

Articles connexes

Vous souhaitez en savoir plus sur Chainguard?

Contactez-nous