8 stratégies pour améliorer la sécurité de la signature de code

8 stratégies pour améliorer la sécurité de la signature de code

8 stratégies pour améliorer la sécurité de la signature de code PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

COMMENTAIRE

La récente nouvelle selon laquelle des pirates informatiques avaient piraté une société de solutions d'accès à distance AnyDesk a mis en lumière la nécessité pour les entreprises de réfléchir longuement et attentivement aux pratiques de signature de code afin de garantir une chaîne d'approvisionnement en logiciels plus sécurisée.  

La signature de code ajoute une signature numérique aux logiciels, micrologiciels ou applications qui garantit que le code utilisateur provient d'une source fiable et n'a pas été falsifié depuis sa dernière signature. Mais la signature du code ne vaut que par son exécution, et des pratiques inadéquates peuvent conduire à des injections de logiciels malveillants, à des altérations du code et des logiciels, ainsi qu'à des attaques par usurpation d'identité. 

Les clés privées doivent être protégées, mais de nombreux développeurs (principalement pour des raisons de commodité) conservent les leurs et les stockent sur leurs machines locales ou sur des serveurs de build. Cela les expose au vol et aux abus, et crée des angles morts pour les équipes de sécurité.  

Suite au Piratage de SolarWinds en 2020, le forum des autorités de certification/navigateurs (CA/B) a publié un nouvel ensemble de exigences de base pour la maintenance des certificats de signature de code qui imposent l'utilisation de modules de sécurité matériels (HSM), de dispositifs qui maintiennent et sécurisent les clés cryptographiques, ainsi que d'autres mesures pour protéger les clés privées. 

Les HSM offrent le plus haut niveau de sécurité, mais ils augmentent également les coûts, la complexité et les exigences de maintenance. À moins qu’ils ne puissent être intégrés aux outils de signature de code utilisés par l’équipe DevOps, la déconnexion peut compliquer l’accès à la signature de code et ralentir le processus.  

La migration vers le cloud a fait de la sécurité une priorité majeure, mais le cloud offre également une solution de signature de code. La signature de code cloud et les HSM peuvent fournir la vitesse et l'agilité souhaitées par les développeurs, ainsi qu'un contrôle centralisé qui prend en charge les équipes de développement distribuées, s'intègre dans les processus de développement et peut être plus facilement surveillé par la sécurité. 

Le parcours vers la signature de code intégrée 

Avec les récents changements du Forum CA / B, il est temps pour les organisations de se lancer dans la modernisation de leur signature de code avec un contrôle centralisé pour soutenir les équipes de développement. De nombreuses entreprises restent au stade « ad hoc », où les clés sont gérées localement et où les développeurs utilisent divers processus et outils de signature de code. D'autres ont centralisé le contrôle pour donner aux équipes de sécurité visibilité et gouvernance en utilisant des HSM pour sécuriser les clés, mais l'utilisation d'outils de signature de code distincts a toujours un impact sur la vitesse de développement logiciel. 

La structure idéale et mature nécessite une intégration de sécurité clé, d'outils de signature de code et de flux de travail de développement pour rendre le processus transparent et rationalisé dans toutes les versions, conteneurs, artefacts et exécutables. Les équipes de sécurité gèrent les HSM et bénéficient d'une visibilité totale sur la signature du code, tandis que les développeurs disposent désormais d'un pipeline de développement agile et rapide. 

Quelques bonnes pratiques peuvent aider à ouvrir la voie dans ce voyage : 

  • Sécurisez vos clés : Stockez les clés de signature de code dans un emplacement sécurisé, tel qu'un HSM conforme aux exigences cryptographiques du CA/B Forum (FIPS 140-2 niveau 2 ou Common Criteria EAL 4+). Les HSM sont inviolables et empêchent l’exportation des clés privées.

  • Contrôler l'accès : Minimisez le risque d’accès non autorisé et d’utilisation abusive des clés privées en limitant l’accès grâce à un contrôle d’accès basé sur les rôles. Définissez des flux de travail d'approbation et appliquez des politiques de sécurité pour réglementer l'accès uniquement au personnel nécessaire, et maintenez des journaux d'audit qui enregistrent qui a déclenché la demande de signature, qui a accédé aux clés et pourquoi. 

  • Rotation des clés : Si une clé est compromise, toutes les versions signées avec elle risquent d'être compromises. Faites régulièrement pivoter les clés de signature de code et utilisez des clés uniques et distinctes pour signer différentes versions au sein de plusieurs équipes DevOps. 

  • Code d'horodatage :  Les certificats de signature de code ont une durée de vie limitée : un à trois ans, voire de moins en moins. L'horodatage du code lors de sa signature peut vérifier la légitimité d'une signature même après l'expiration ou la révocation du certificat, étendant ainsi la confiance du code et du logiciel signés.

  • Vérifiez l'intégrité du code : Effectuez une révision complète du code avant de signer et de publier la version finale en comparant le code du serveur de build avec le référentiel de code source, et vérifiez toutes les signatures des développeurs pour vous assurer qu'elles sont infalsifiables. 

  • Centraliser la gestion : Les entreprises d’aujourd’hui sont mondiales. Un processus de signature de code centralisé peut aider à surveiller les activités de signature et les certificats dans toute l'entreprise, quel que soit l'endroit où se trouvent les développeurs. Il améliore la visibilité, renforce la responsabilité et élimine les vulnérabilités de sécurité.

  • Appliquer les politiques : Standardisez le processus de signature de code en définissant et en mappant des politiques, notamment les autorisations d'utilisation des clés, les approbations, l'expiration des clés, le type d'autorité de certification, la taille de la clé, le type d'algorithme de signature, etc. Automatisez l’application des politiques pour garantir que tous les codes, fichiers et logiciels sont signés en fonction de la politique et sont conformes aux normes du secteur. 

  • Simplifiez la signature du code : L'intégration et l'automatisation de la signature de code avec les outils CI/CD simplifient le processus DevOps sans compromettre la sécurité tout en favorisant la vitesse et l'agilité.

Dans un monde d'intégration et de déploiement continus, de solides bonnes pratiques en matière de signature de code constituent un moyen inestimable d'instaurer la confiance dans le processus de développement et de permettre une chaîne d'approvisionnement logicielle plus sécurisée.

Horodatage:

Plus de Lecture sombre