5 questions pour évaluer vos processus de signature de code

Les clés de signature de code non protégées représentent un véritable danger : après avoir signé un logiciel malveillant, celui-ci semblera à tout jamais légitime aux utilisateurs crédules.

La signature de code assure une fonction très importante chez tous les éditeurs de logiciels, qui est devenue essentielle à la quasi-totalité des entreprises avec l'avènement de la transformation digitale. Employé depuis des décennies, ce processus permet de valider l'auteur réel d'un logiciel ainsi que l'absence de modification par une tierce partie telle qu'un pirate. La plupart des systèmes d'exploitation de premier plan utilisent la signature de code pour vérifier l'authenticité des logiciels installés. Le recours à la signature de code est amené à se développer à court terme en raison des tendances technologiques telles que les applications mobiles, DevOps et les périphériques IdO. En effet, 69% des entreprises prévoient d'utiliser davantage cette technologie l'année prochaine.

Les clés de signature de code non protégées représentent un véritable danger : après avoir signé un logiciel malveillant, celui-ci semblera à tout jamais légitime aux utilisateurs crédules. La révocation du certificat n'implique pas nécessairement l'invalidation du logiciel malveillant signé.

Que doivent donc faire les sociétés pour se protéger ?

Déterminer la racine du problème

Les entreprises ne peuvent pas se passer de la signature de code, car il s'agit d'un composant de base de la distribution de logiciels. Cela ne veut pas dire pour autant que ce système est parfait. Les identifiants de signature de code fournissent un haut niveau de confiance, ce qui en fait des cibles très prisées pour les cybercriminels, qui les dérobent chez les entreprises légitimes de manière à signer leur code malveillant. Si le code est signé avec un certificat légitime, les mécanismes de défense autorisent le logiciel malveillant à accéder au système sans déclencher d'alerte, tandis que les utilisateurs naïfs pensent que l'application peut être installée et utilisée sans danger.

L'efficacité des attaques par signature de code s'explique par le vol et le détournement par les pirates des clés de signature de code légitimes des entreprises.  Cela implique que celles-ci n'en font pas assez pour protéger leurs clés et leurs certificats de signature de code. Cette situation a été illustrée par une récente étude Venafi, qui a conclu que seules 28 % des entreprises appliquent systématiquement un processus de sécurité défini pour les certificats de signature de code. Pire encore, les sociétés ne disposent pas de flux de travail visant à restreindre l'utilisation des identifiants de signature de code à une liste limitée d'employés autorisés, ce qui signifie que quiconque peut signer le code. 35% des entreprises n'ont pas défini clairement le propriétaire des clés privées utilisées lors des processus de signature de code.

Reprendre le contrôle

Malgré ces données peu rassurantes, les entreprises peuvent prendre le contrôle de leurs processus de signature de code. Il leur est impératif de connaître la nature et l'emplacement des certificats de signature de code qu'elles utilisent. À l'heure actuelle, les équipes informatiques sont saturées de demandes et peuvent éprouver des difficultés pour effectuer tous les suivis nécessaires. En outre, l'accélération de la transformation digitale de la plupart des entreprises ne leur facilite pas la tâche. Voici cinq questions qui vous aideront à jauger l'état de vos procédures de signature de code afin de revenir sur la bonne voie :

  1.  Politique : Votre entreprise dispose-t-elle d'une politique de signature de code qui définit l'emplacement des clés privées, les personnes autorisées à y accéder ainsi que celles qui doivent approuver leur utilisation ?
  2. Contrôle : Votre organisation applique-t-elle sa politique de signature de code à toutes les équipes de développement logiciel, qu'il s'agisse de logiciels exclusivement internes ou d'applications qui seront distribuées aux clients et à d'autres tierces parties ?
  3. Visibilité : Votre entreprise possède-t-elle l'inventaire complet des certificats de signature de code utilisés par tous les services, indépendamment de leur emplacement et de leur autorité de certification d'origine ? Si vous découvriez sur Internet des logiciels malveillants signés par le certificat de signature de code de votre société, sauriez-vous où commencer à chercher pour déterminer la source du piratage ?
  4. Rapidité : Votre entreprise a-t-elle mis en place un processus manuel lent et laborieux pour gérer les opérations de signature de code ? Si oui, avez-vous observé que vos équipes de développement cherchent à le contourner (ou croyez-vous que certaines y sont parvenues) ?
  5. Bande passante : Votre société limite-t-elle le code qu'elle signe, car les équipes de développement ne parviennent pas à gérer elles-mêmes les certificats de signature de code ou qu'elles ne possèdent pas la bande passante nécessaire ?

Si vous avez répondu oui à une ou plusieurs de ces questions, vous rencontrez probablement un problème avec votre processus de signature de code. Si vous avez répondu oui à quatre ou cinq reprises, vous faites face à un grave problème avec votre processus de signature de code et devez agir immédiatement. Il s'avère parfois difficile, laborieux et en définitive impossible pour des équipes informatiques déjà surchargées de gérer à elles seules l'ensemble des processus et des préoccupations en matière de signature de code. Les organisations doivent toujours recourir à l'automatisation pour alléger ces fardeaux dans la mesure du possible, et développer des bases de données centralisées assurant une visibilité.

Signature de code nouvelle génération

Les entreprises doivent réfléchir en termes de création d'un processus de signature de code sécurisé.  Il n'est plus suffisant de stocker les clés de signature de code dans un emplacement de stockage sécurisé.  D'autres mesures doivent être prises, notamment :

1. Visibilité

  • L'équipe InfoSec doit connaître les certificats de signature de code utilisés par la société, qu'il s'agisse des certificats générés en interne comme de ceux émis par une autorité de certification externe.
  •  Tenez le registre de chaque opération de signature de code effectuée par la société : auteur, logiciel signé, certificat utilisé, date et heure, certificat utilisé, date de signature de ce dernier, approbateur de l'opération et ordinateur utilisé pour la signature.

Contrôle, automatisation et sécurité

  • Pour chaque certificat de signature de code, définissez respectivement qui a le pouvoir d'utiliser la clé de signature de code et d'approuver chacune de ses utilisations.
  •  L'équipe InfoSec doit pouvoir automatiquement appliquer les politiques de signature de code chez toutes les équipes de développement, MAIS...
  •  Sans les gêner.  La solution doit être proposée en libre-service et fonctionner dans différents environnements de développement (tels que DevOps) avec divers outils de signature natifs.
  •   Le processus doit être automatisé tout en restant flexible.  Les certificats de signature de code de grande valeur doivent nécessiter l'approbation de différentes personnes lors de chaque utilisation.
  • Le processus ne doit pas ralentir les organisations de développement.  Les cycles de publication des logiciels étaient de l'ordre de trimestres ou d'années.  Ils se mesurent désormais en heures et en minutes.  La signature de code ne doit pas ralentir ce processus afin que les développeurs ne soient pas tentés de contourner les règles.
  • Les clés privées de signature de code ne doivent JAMAIS quitter un emplacement de stockage sécurisé.  La moindre copie de celles-ci sur un serveur de build ou sur l'ordinateur portable d'un développeur l'expose à un vol et met ainsi en péril la réputation de l'entreprise dans son ensemble.

2. Intelligence

  • En bénéficiant d'un accès à différentes informations, notamment qui a utilisé les clés et à quel moment, vous pouvez identifier les tendances suggérant des schémas de risque ou la présence d'un pirate. À titre d'exemple, si une clé donnée est utilisée quotidiennement, toujours à 14 heures (par un serveur de build automatisé), mais qu'elle a été employée à 2 heures du matin un jour donné, vous devez enquêter sur cette anomalie.
  •  En connaissant le nombre de certificats de signature de code ainsi que les équipes qui les utilisent, vous disposez des renseignements nécessaires pour établir les risques globaux.

Armé de ces informations, vous serez prêt à mettre en place des processus robustes. Vous atteler seul à cette tâche représenterait un travail gigantesque. Pour obtenir un système exhaustif et atténuer vos vulnérabilités, vous devez implémenter des solutions fournissant une visibilité, une intelligence et un contrôle automatisé de la signature de code de tous les services de l'entreprise.