Comment élaborer et appliquer une politique efficace de signature de code ? Réponse : en rédigeant un guide des politiques internes de signature de code.
Face à des exigences de signature toujours plus strictes, les organisations et les équipes de développement doivent élaborer et appliquer des politiques et processus de signature solides pour protéger les logiciels. En créant et en documentant une politique formelle de signature de code, vous donnez les moyens à vos développeurs et ingénieurs de suivre les bonnes pratiques indispensables à la protection des logiciels que vous concevez.
Que faut-il inclure dans un guide des politiques de signature de code ?
Pour être efficaces, les politiques de signature de code doivent comporter des directives et procédures relatives à l’émission et à l’utilisation des clés de signature de code. Elles englobent notamment les problématiques suivantes :
Émission des clés
Lorsque vous définissez des protocoles de gestion, établissez des contrôles et procédures pour savoir qui peut émettre des clés et à quel moment. Selon leur rôle, les membres de l’équipe doivent savoir dans quelles circonstances ils peuvent émettre des clés. En parallèle, gérez les types de clés émises, ainsi que les attributs qui leur sont associés. L’objectif : éviter d’émettre de nouvelles clés avec des algorithmes trop faibles introduisant des vecteurs d’attaque.
Gestion des clés
Définissez des contrôles et des procédures pour les rôles des utilisateurs. À cette fin, déterminez qui gère les clés et comment la gestion des clés est répartie en fonction du rôle au sein de l’équipe, de l’entreprise ou du stade de production. Enfin, veillez à inclure le suivi de la localisation de toutes les clés de l’organisation dans ces procédures.
Stockage des clés
Il est impératif de protéger les clés – et donc, de définir des contrôles et procédures pour les stocker lorsqu’elles sont utilisées ou non. Dans cette optique, vous avez intérêt à vous appuyer sur des modules de sécurité matériels (HSM), des jetons et des clés USB et à sécuriser l’accès aux clés à l’aide de l’authentification multifacteur. En outre, les membres de l’équipe doivent savoir comment ne pas perdre ou stocker les clés de façon incorrecte.
Autorisations de signature
Les membres de l’équipe doivent savoir qui dispose d’une autorisation de signature et dans quels cas il est approprié de l’utiliser. Ils doivent également être avertis lorsqu’une autorisation de signature leur est refusée et savoir comment demander une signature.
Utilisation des clés
L’efficacité des procédures de signature dépend en grande partie de la façon dont les clés sont utilisées, ou non. Ces dernières doivent être employées au bon moment par les bonnes personnes.
Prévention du partage de clés
Bien que courante, le partage de clés est une pratique, extrêmement dangereuse. En aucun cas, les membres de l’équipe ne doivent partager des clés – même au sein de référentiels ou de serveurs, systèmes et réseaux internes. Les clés doivent être émises, contrôlées et stockées de manière unique par une personne autorisée par son rôle.
Signature continue
La signature de code et de logiciel ne devrait jamais être envisagée après coup ou considérée comme une étape de conformité fastidieuse. Ainsi, pour garantir la sécurité des codes de façon efficace et systématique, la signature continue (CS – Continuous signing) doit faire partie intégrante de tout pipeline CI/CD.
Pour découvrir en détail comment rédiger une politique interne de signature de code, consultez notre guide.