Certains diront que la présence d'outils de développement sur une machine de production facilitera la vie des attaquants. Cependant, il s’agit là d’une si petite route pour un attaquant que tout autre argument que vous pourrez trouver pour ou contre l’installation des outils de développement pèsera plus lourd.
Si un attaquant parvient jusqu'à présent à pénétrer dans le système et à invoquer tous les outils présents sur le serveur, vous êtes déjà victime d'une grave atteinte à la sécurité. Sans outils de développement, il existe de nombreuses autres manières d'écrire des données binaires dans un fichier, puis d'exécuter un chmod sur ce fichier. Un attaquant souhaitant utiliser un exécutable personnalisé sur le système à ce stade pourrait tout aussi bien le construire sur son propre ordinateur et le transférer sur le serveur.
Il y a d'autres choses beaucoup plus pertinentes à surveiller. Si un logiciel installé contient un bogue de sécurité, il peut être exposé à un attaquant de plusieurs manières:
- Le paquet peut contenir un exécutable suid ou sgid.
- Le paquet pourrait être des services de démarrage sur le système.
- Le paquet peut installer des scripts invoqués automatiquement dans certaines circonstances (cela inclut les tâches périodiques, mais les scripts peuvent être invoqués par d'autres événements, par exemple lorsque l'état d'une interface réseau change ou lorsqu'un utilisateur se connecte).
- Le paquet pourrait installer des inodes de périphérique.
Je ne m'attendrais pas à ce que les outils de développement correspondent à l'un des éléments ci-dessus et, en tant que tel, n'est pas un paquet à haut risque.
Si vous avez des workflows dans lesquels vous utiliseriez des outils de développement, vous devez d'abord déterminer si ces workflows sont raisonnables et, le cas échéant, vous devez installer les outils de développement.
Si vous constatez que vous n'avez pas vraiment besoin de ces outils sur le serveur, évitez de les installer pour plusieurs raisons:
- Économise de l'espace disque, à la fois sur le serveur et sur les sauvegardes.
- Moins de logiciels installés facilitent le suivi de vos dépendances.
- Si vous n’avez pas besoin du progiciel, il n’ya aucun intérêt à prendre le risque de sécurité supplémentaire lié à son installation, même si le risque de sécurité est minime.
Si vous décidez que, pour des raisons de sécurité, vous n'autoriserez pas les utilisateurs non privilégiés à placer leurs propres étiquettes d'exécution sur le serveur, vous devez éviter les outils de développement, mais plutôt les répertoires accessibles en écriture aux utilisateurs des systèmes de fichiers montés avec des autorisations d'exécution. Même dans ces circonstances, les outils de développement peuvent toujours être utiles, mais ce n’est pas très probable.