Cela permet à d’autres machines de savoir qu’elles sont authentiques et qu’il est possible de leur faire confiance. Les développeurs signent leur code avec une clé privée, et un utilisateur final utilisent la clé publique de ce développeur pour valider que le code n’a pas changé depuis la signature du développeur.
Si quelqu’un a modifié le code, la signature émettra une alerte d’absence de fiabilité, comme le fait un site web avec un certificat non fiable ou expiré avec les identités machine avec l’option TLS (Transport Layer Security). Sans ce système d’identité, il serait impossible de fournir un logiciel. Sans ce système, vous ne pourriez pas utiliser Windows, Mac, ou laisser l’iPhone fonctionner sur un Airbus ou Boeing moderne. De plus en plus c’est la même chose dans le monde « cloud-native » de Kubernetes.
Bien qu’essentielles, ces identités ont une position privilégiée avec les niveaux les plus élevés d’authentification et de confiance, ce qui en fait une denrée rare pour les personnes malveillantes qui cherchent à infiltrer les systèmes. Au cours des dernières années, nous avons pu constater que ce système d’identité était sujet à des attaques.
Notre recherche montre que ces identités machine à signature de code créent un buzz croissant sur le dark web, avec une série de récentes attaques qui ont caché à faire enfler la rumeur – il semblerait que les identités machine à signature de code soient le prochain objectif à atteindre.
Tout le monde parle des identités machines à signature de code sur le dark web
Les résultats de l’enquête sur le dark web réalisés par Forensic Pathways, complétés que les certificats de signature de code représentent un sujet brûlant parmi les acteurs de la menace. Nous avons pu lire des publications qui annonçaient la publicité de certificats de signature de code pour seulement 100 $ – ce qui représente une chute de prix considérable par rapport à nos premières enquêtes, pendant indiquant les identités machine à signature de code étaient alors en vente pour 1200 $ en 2017.
De nombreuses recherches ont été faites sur la façon de se les procurer et des discussions ont été induites sur la façon de les utiliser. Les résultats de cette enquête sont clairs : les cybercriminels sont à la chasse aux certificats de signature de code et savent commenter les exploiteurs.
Si un certificat de signature de code est compromis, le dommage qui en résulte peut être extrêmement important pour les entreprises. Un hacker peut utiliser un certificat pour signer un code malveillant, tromper des outils de sécurité et faire passer son malware pour un logiciel légitime.
Ces méthodes d’attaques sont devenues l’arme privilégiée de groupes de terroristes d’État. Des groupes nord-coréens, qui ont généré semble-t-il près de 1 milliard de dollars par an de profits de cybercriminels, utilisent souvent des certificats de signature de code pour effectuer des cyber-attaques. Plus tôt cette année, nous avons également vu des attaques en Ukraine pendant lesquelles des hackers ont utilisé des identités machine conçues pour émettre des malwares à travers différentes organisations.
Comment augmenter la sécurité des certificats de signature de code
Ces violations à grande échelle montrent l’énorme dommage qui peut être causé aux sociétés si des terroristes activent la main sur des certificats de signature de code. Cela démontre pourquoi les sociétés doivent faire plus pour protéger ces actifs essentiels et empêcher les utilisations abusives en interne.
Voici cinq étapes que les équipes de sécurité peuvent appliquer afin d’améliorer leur sécurité en matière de signature de code :
1 > Automatiser, automatiser, automatiser dans votre pipeline de DevOps : Des machines construisent maintenant des machines. Le développement de logiciels modernes fonctionne à la vitesse de la machine et utilise des systèmes d’automatisation tels que GitLab, GitHub et Jenkins pour réaliser le processus de fabrication de logiciels. L’intégration de la protection et l’utilisation de la signature de code dans ces pipelines est la première exigence et la plus importante. Non seulement, cela protège contre les tentatives des hackers mais cela implique davantage les développeurs. Autrement, ils trouveront une façon de développer les contrôles et les équipes de sécurité resteront « les mêmes vieilles équipes lentes et inutiles ».
2 > Conserver les clés privées dans un endroit crypté, sécurisé et centralisé : une clé privée n’est jamais aussi sûre que son moyen de stockage. De nombreuses clés privées ne sont pas évoquées dans des emplacements sécurisés ; les administrateurs enregistrent souvent une clé dans un système de fichiers, voire même sur leur bureau. Les clés de signature de code privé ne doivent jamais quitter un emplacement sécurisé, même lorsqu’un développeur y accède pour une opération de signature de code.
3 > Contrôler l’utilisation des clés privées : De même que le contrôle de l’accès aux clés privées, les équipes doivent également en contrôler l’utilisation. Il est important de conserver un registre irréfutable pour chaque opération de signature de code, indiquant à quel outil de signature de code il a été accédé et par qui, quel logiciel a été signé avec elle, et à quelle machine il a été accédé à partir de celle-ci.
4 > Appliquer un processus d’approbation à plusieurs niveaux : Lors de l’accès aux clés de signature de code les plus critiques, les développeurs doivent demander l’approbation d’au moins une personne supplémentaire – idéalement avantage – avant d’être autorisés à les utiliser.
5 > Définir et mettre en application une politique d’accès : Afin de limiter encore davantage les utilisations abusives, les équipes ont besoin de politiques strictes en matière de signature de code et de flux de travail basés sur des paramètres contrôlés. Une politique pourrait déterminer qui a l’autorité nécessaire pour accéder à quelles clés de signature de code ou indiquer que les développeurs peuvent accéder aux clés uniquement à partir d’ordinateurs approuvés pendant un moment défini de la journée.
6 > Faire tourner les clés privées : les équipes peuvent ajouter une couche supplémentaire de sécurité en faisant tourner les clés privées. Cela permet de s’assurer que l’ancienne clé ne donnera plus accès ou ne permettra pas à un acteur de la menace de « signataire » si un certificat de signature de code est compromis. La rotation des clés peut s’avérer être un processus fastidieux, en particulier pour les grandes organisations, mais il n’a pas besoin d’être avec le bon logiciel.
Il n’y a aucun doute que les identités machine à signature de code sont des outils essentiels pour les développeurs de logiciels. Avec des certificats volés qui représentent l’or en barre pour les cybercriminels, et des certificats mal gérés qui créent d’énormes zones de vulnérabilité pour les organisations, les terroristes prennent note et leur présence sur le dark web augmenté.
Sans politiques, ni flux de travail clairement définis et désormais appliqués par les équipes de sécurité, les organisations restent vulnérables aux attaques. Il est essentiel de disposer d’un plan de contrôle qui permet l’automatisation de la gestion de l’identité machine à signature de code pour garantir la protection de ces actifs de valeur. L’industrie doit agir maintenant.