Rejoignez Keyfactor à la RSA Conference™ 2024 | du 6 au 9 mai | En savoir plus

Bonnes pratiques pour une signature sécurisée du code

Signature du code

Nous vivons dans un monde qui fonctionne avec du code. Software est partout. Il se trouve chez vous, dans votre voiture, sur votre lieu de travail et pratiquement partout où vous allez - le tout alimenté par des milliards de lignes de code.

La signature de code sécurisée est la pratique qui consiste à signer numériquement un morceau de software (ou firmware) afin de garantir que les utilisateurs finaux puissent identifier sa source (l'auteur du software) et vérifier que le code n'a pas été modifié depuis sa publication.

La plupart des développeurs de software et des fabricants de IoT reconnaissent la nécessité d'applications signées, mais peuvent être confrontés à la difficulté de mettre en œuvre la signature de code en toute sécurité. Signer du code sans protéger vos clés cryptographiques et vos certificats peut en fait vous exposer à plus de risques que de ne pas signer de code du tout.

Pourquoi ?

Parce qu'il s'agit de cibles lucratives. Les attaquants cherchent à compromettre ces certificats et clés numériques pour signer et distribuer des codes malveillants masqués sous la forme de software ou de microprogrammes légitimes.

Lorsque les organisations ne parviennent pas à sécuriser les processus de signature de code, les "clés virtuelles du royaume des affaires" sont vulnérables aux attaques. La confiance et l'intégrité de software dépendent entièrement de la sécurité de ces clés de signature de code, mais les sécuriser n'est pas une tâche simple. Pensez-y :

  • Sécurité contre rapidité : les équipes chargées de la sécurité et de l'infrastructure à clé publique (PKI) préféreraient isoler et verrouiller les clés privées de signature du code, mais les développeurs ont toujours besoin d'un accès rapide pour signer le code et le mettre en production.
  • Développement dispersé : les équipes de développement d'aujourd'hui travaillent sur des sites dispersés dans le monde entier. Les clés de signature de code sont souvent laissées à la portée des pirates sur les postes de travail des développeurs et les serveurs de construction.
  • Pas de perturbation : Dans le cadre de DevOps, les constructions incrémentales fréquentes software sont la règle du jeu. Toute modification du cycle de développement Software (SDLC) peut entraîner des risques et retarder la mise sur le marché.

 

Les récentes attaques de signature de code soulignent l'importance de suivre les meilleures pratiques pour répondre efficacement aux besoins des développeurs et des équipes de sécurité informatique. Que vous utilisiez software ou que vous le construisiez, votre entreprise doit prendre des mesures pour éviter que vos clés et vos certificats ne tombent entre de mauvaises mains.

Meilleures pratiques pour sécuriser la signature de code

Examinons les quatre meilleures pratiques que votre organisation peut suivre pour prévenir les attaques par signature de code et surmonter les difficultés rencontrées par les développeurs et les équipes de sécurité informatique.

1.) Protégez vos clés privées

La charge de la signature du code incombe souvent aux développeurs, des personnes spécialisées dans l'écriture du code et non dans la sécurité. En conséquence, les clés de signature privées se retrouvent sur des réseaux non sécurisés où elles peuvent être extraites par des pirates pour vendre ou créer des logiciels malveillants signés par le code.

Commencez par déterminer le nombre de clés de signature de code et de certificats dont vous disposez, où ils se trouvent et comment ils sont stockés. Localisez et transférez toutes les clés privées dans un module de sécurité hardware (HSM) certifié FIPS 140-2 de niveau 2 afin d'empêcher les attaquants d'obtenir un accès physique ou logique.

Protégez vos clés privées

Conseil : Optez pour un service HSM en nuage qui offre tous les avantages de la sécurité de niveau hardware, mais sans les coûts initiaux, la configuration manuelle et la maintenance continue des HSM dédiés hardware .

2.) Appliquer les politiques et les pratiques

Si un pirate s'introduit dans votre réseau de développeurs, il n'a pas nécessairement besoin de voler vos clés. En accédant à un serveur de construction ou à un poste de travail de développeur ayant accès à l'infrastructure de signature de code, les pirates peuvent simplement soumettre des logiciels malveillants pour qu'ils soient signés et distribués sans être détectés.

Veillez à ce que seuls les bons développeurs puissent signer le bon code avec la bonne clé, au bon moment. En appliquant des contrôles d'accès et des politiques de signature, vous pouvez vous assurer que, même si un pirate s'introduit dans le réseau, il ne peut pas compromettre votre infrastructure de signature de code.

Conseil : séparez les rôles entre ceux qui peuvent soumettre du code à signer et ceux qui peuvent approuver les demandes de signature de certificats. La séparation des tâches permet d'éviter efficacement toute utilisation abusive des certificats de signature de code.

3.) S'intégrer à DevOps

La sécurité n'est efficace que si elle est adoptée. Les développeurs doivent pouvoir signer n'importe quel code, de n'importe où, sans interruption. Dans le cas contraire, des failles de sécurité apparaîtront inévitablement.

La signature du code devrait être une responsabilité collaborative entre les équipes de sécurité et de développement afin d'atteindre les objectifs mutuels de protection des clés sans perturber le cycle de développement durable. Intégrer les processus de signature de code aux outils et flux de travail existants des développeurs.

Conseil : Trouvez une solution qui permette aux développeurs de signer le code de n'importe où, sans avoir à stocker les clés de signature de code localement sur différents postes de travail, serveurs de compilation, cartes à puce et jetons.

4.) Contrôler et auditer en permanence

Les certificats expirent, les clés et les algorithmes s'affaiblissent avec le temps et les menaces continuent d'évoluer. Gardez une longueur d'avance sur ces risques en surveillant en permanence l'état des certificats de signature de code, la force des algorithmes utilisés et toutes les activités de signature de code. Enregistrez et vérifiez régulièrement l'utilisation des clés pour vous assurer que rien n'a été oublié.

Contrôler et auditer en permanence

Conseil : intégrez les certificats de signature de code dans votre stratégie de gestion du cycle de vie des certificats, en prévoyant des dispositions sur la manière dont ils sont demandés, émis, renouvelés ou révoqués.

Vous voulez en savoir plus ? Téléchargez la feuille de route définitive pour une signature de code sécurisée, qui comprend des informations détaillées sur les récentes attaques de signature de code et sur la manière dont elles auraient pu être évitées.

Prêt à démarrer ? Keyfactor Code Assure est conçu pour vous aider à relever vos plus grands défis en matière de signature de code.