Les pièges des bibliothèques tierces
Categories:
- Les pièges des bibliothèques tierces
Aujourd’hui, j’ai discuté d’une vulnérabilité récente découverte dans une bibliothèque de logs tierce, qui peut être exploitée très facilement pour exécuter des commandes à distance. Une bibliothèque de logs et les commandes à distance semblent totalement sans rapport, mais les bibliothèques tierces ajoutent souvent des fonctionnalités inutiles.
Plus on lit de code, plus on prend conscience que le niveau de nombreux codes open source est très médiocre, peu importe leur nombre d’étoiles. Les étoiles reflètent la demande, pas le niveau de développement.
L’avantage de l’open source est qu’il y a plus de développeurs, ce qui entraîne une augmentation rapide des fonctionnalités, des bugs corrigés et du code revu. Mais les niveaux de compétence sont inégaux.
Sans contraintes strictes sur les commits, il est difficile de garantir la qualité du code.
Plus il y a de code, plus la surface d’attaque augmente.
Bien que réinventer la roue soit déconseillé, les besoins des produits sont comme les roues d’un landau : une petite roue en plastique suffit largement. Installer un gros pneu d’avion ne fait qu’augmenter la surface d’attaque et les coûts de maintenance. Par conséquent, si vous avez besoin d’une petite roue, inutile d’utiliser un gros pneu.
Les coûts de maintenance sont élevés. Les bibliothèques tierces nécessitent des processus et du personnel dédiés pour leur maintenance. Un framework de test modifié par Huawei a directement causé l’échec des cas de test lors de la mise à jour du compilateur, créant un conflit entre la mise à jour du framework et celle du compilateur, ce qui a entraîné de longs temps de maintenance pour continuer à modifier ce framework. En tant que participant, j’ai profondément ressenti les difficultés de modifier une bibliothèque tierce. Si les modifications peuvent être intégrées à la bibliothèque open source, c’est encore acceptable. Mais modifier de façon invasive pour ses propres besoins rend la maintenance très difficile.
Huawei a mis en place une série de processus pour gérer les bibliothèques tierces, ce qui peut être décrit comme très restrictif.
Le seuil d’entrée est très strict : l’ajout de bibliothèques tierces nécessite l’approbation d’un expert de niveau 18 et d’un directeur de niveau 20. Seules les bibliothèques tierces très reconnues peuvent être utilisées.
Toutes les bibliothèques tierces sont placées dans le dossier thirdparty. Lors de la compilation complète, le CI compare avec le dépôt source, interdisant strictement les modifications invasives.
Un outil spécialisé suit toutes les versions des bibliothèques tierces. Cette partie est gérée par du personnel externalisé. Si un développeur demande une mise à jour de version, il doit soumettre une demande approuvée par le directeur.
Il est très difficile de trouver un directeur pour traiter ce genre de tâches. Lorsqu’un processus est très compliqué, il décourage en fait de le faire.
Il faut adopter une attitude de méfiance envers les bibliothèques tierces et faire confiance au développement interne.