Les gros titres de la récente violation de données de SolarWinds ont mis trois risques de sécurité sur le devant de la scène : les logiciels en fin de vie, les vulnérabilités des tiers et les risques liés à la chaîne d'approvisionnement en logiciels. Tous ces éléments ont joué un rôle majeur dans l'attaque, qui a amené presque toutes les entreprises dépendantes de logiciels tiers à se poser des questions : Comment éviter une telle situation ?

Si l'ampleur de la faille de SolarWinds est sans précédent, les vulnérabilités exploitées par les pirates ne sont que trop courantes. Selon Deloitte, 83 % des entreprises ont connu un incident impliquant un tiers au cours des trois dernières années, dont 11 % ont eu un impact grave sur le service à la clientèle, la situation financière, la réputation ou la conformité aux réglementations. Compte tenu de ces chiffres, il est essentiel que les entreprises accordent la priorité à la sécurité afin de protéger leurs propres flux de données et de minimiser les risques liés aux logiciels tiers et anciens.

Vulnérabilités des tiers

Si un maillon de votre chaîne d'approvisionnement dépend d'un logiciel tiers, cela peut créer une surface de risque importante, surtout s'il estconnecté en tant que service et que denombreuses autres personnes dépendent également de ce logiciel. L'effet de réseau - l'idée selon laquelle un logiciel devient plus puissant lorsque davantage de personnes l'utilisent - est une arme à double tranchant. Plus de clients, plus de fonctionnalités et moins de frictions pour l'intégration rendent l'outil plus utile, mais ils introduisent également un spectre exponentiel de vulnérabilités.

Si l'on reprend l'exemple de SolarWinds, la faille a servi de tremplin pour compromettre une série d'agences gouvernementales américaines. En raison de l'effet de réseau et de la liste des clients importants qui utilisaient une version obsolète du logiciel (notamment des parties du Pentagone, du ministère de la sécurité intérieure, du département d'État et d'une poignée d'entreprises du classement Fortune 500), le piratage a été "l'attaque la plus importante et la plus sophistiquée que le monde ait jamais connue", selon le président de Microsoft Corp, M. Brad Smith. La faille aurait pu compromettre jusqu'à 18 000 clients de SolarWinds qui utilisaient le logiciel de surveillance de réseau Orion de la société, dont le code source a été modifié.

Pour les fournisseurs de logiciels, il est grand temps d'accorder la priorité à la sécurité automatisée dans le cadre de chaque développement. Chaque nouvelle version de votre logiciel est susceptible de créer de nouvelles vulnérabilités. La sécurité exige une hygiène permanente.

Un logiciel qui a obtenu la note "A" lors d'un test d'intrusion peut se révéler beaucoup moins performant à mesure que de nouvelles fonctionnalités et intégrations sont ajoutées, même s'il ne s'agit que de mises à jour de dépendances fournies par le système d'exploitation ou de bibliothèques partagées telles que les logiciels libres (pensez aux vulnérabilités Heartbleed et Shellshock OpenSSL ou GNU Glibc, il y a quelques années).

Pour les clients qui dépendent de logiciels tiers, il s'agit d'un signal d'alarme. Aujourd'hui plus que jamais, il est essentiel de prendre des mesures de sécurité proactives, d'élaborer des plans d'urgence et de trouver des solutions automatisées et fiables de protection des applications pour protéger vos données, même si votre fournisseur de logiciels est compromis.

La bonne approche en matière de sécurité commence par poser les bonnes questions au cours du processus d'appel d'offres, en demandant et en vérifiant les politiques de sécurité et de violation des données conformes aux normes ISO 27001, GDPR, CCPA, NY SHIELD et autres, en cloisonnant les données sensibles et en insérant des contrôles environnementaux aux points vulnérables de votre flux de travail afin de réduire la surface d'attaque et de garantir que vos applications ne s'exécutent que sur des appareils de confiance, sur des réseaux de confiance, sur des plates-formes de confiance par des utilisateurs de confiance avec des informations d'identification de confiance.

Et surtout, la bonne approche en matière de sécurité est celle qui garantit que vous disposez d'un plan d'entreprise complet pour surveiller, tester, atténuer et résoudre régulièrement toute violation susceptible de se produire, afin d'instaurer une bonne hygiène de sécurité au-delà de l'équipe informatique, mais dans l'ensemble de l'organisation. La sécurité n'est pas l'affaire d'une seule personne ou d'un seul service, c'est la responsabilité de toute l'entreprise.

Protégez les fonctionnalités que vous n'avez pas encore publiées pour éviter qu'elles ne nuisent à la sécurité de l'application.

En outre, de nombreux développeurs ajoutent à leur code ce que l'on appelle des "drapeaux de fonctionnalités" ou des "bascules" qui leur permettent d'activer ou de désactiver des fonctionnalités et d'effectuer des tests A/B sur de nouvelles fonctionnalités pour des utilisateurs et des groupes particuliers, ou de compartimenter les risques. Le risque ironique ici est que si l'application fait l'objet d'une ingénierie inverse et que les pirates peuvent voir le code source, la logique de votre application sera exposée et les criminels seront en mesure de voler ou de compromettre votre propriété intellectuelle.

Cela signifie également que si votre code source contient des indicateurs de fonctionnalités cachées, les fonctionnalités que vous n'avez pas encore annoncées ou livrées publiquement peuvent être communiquées par inadvertance aux pirates informatiques (ou à vos concurrents). En théorie, cela donnerait aux criminels et aux voleurs une longueur d'avance pour apprendre à copier, altérer ou manipuler votre logiciel. Même si les pirates ont accès à un code qui n'est pas encore totalement fonctionnel, il peut néanmoins contenir des commentaires et des indices sur vos projets d'avenir.

Logiciels anciens et en fin de vie (EOL)

Une approche proactive de la sécurité consiste notamment à s'assurer que votre entreprise n'utilise jamais de logiciels en fin de vie (EOL), que vous soyez fournisseur ou destinataire de ces logiciels.

Le meilleur moyen (et le plus simple) de s'assurer que vous utilisez toujours les dernières versions est d'intégrer des mises à jour de sécurité automatiques dans votre pipeline d'intégration continue/développement continu (CI/CD). De cette manière, les dernières améliorations de sécurité validées sont intégrées à chaque nouvelle mise à jour logicielle. L'intégration des protections de code et de la cryptographie Whitebox dans votre pipeline CI/CD signifie que vous n'aurez plus besoin de considérer l'ajout de la sécurité comme une étape manuelle - votre logiciel sera protégé à chaque publication.

Un diagramme décrivant le pipeline CI/CD.

Tout code ancien qui n'a pas été revu récemment, même s'il semble bien fonctionner, peut contenir des vulnérabilités.

Dans le cas des logiciels commerciaux :

Si les paiements de maintenance et d'assistance ont été interrompus, il en va de même pour le flux continu de mises à jour de logiciels en provenance du fournisseur. Il se peut que vous soyez en retard de plusieurs versions par rapport aux dernières mises à jour et que vous ne sachiez pas que ce changement a été interrompu par une personne du service des finances ou des achats qui essayait de contrôler les flux de trésorerie.

Dans le cas des logiciels libres et des logiciels tiers :

Cela peut signifier que le responsable de la maintenance a cessé de la prendre en charge et ne crée pas de correctifs lorsqu'une nouvelle vulnérabilité est découverte, laissant vos applications et vos systèmes vulnérables à des événements de sécurité qui sont de plus en plus exploités. 

Dans le cas d'une base de code dont vous avez hérité :

y compris de votre propre organisation - cela peut signifier que le logiciel n'a pas été soumis à votre processus actuel d'examen du code source et de test de sécurité. Les opérations de fusion et d'acquisition sont l'occasion idéale d'imposer un tel examen du code hérité, de fond en comble, au cours de la procédure de diligence raisonnable et d'intégration.  

Dans le cas d'un logiciel activement développé :

Au fur et à mesure que vos équipes de développement ajoutent de nouvelles fonctionnalités, les anciennes peuvent rester fonctionnelles mais dépréciées, créant ainsi des problèmes de régression. Mais les organisations concentrent souvent leurs efforts de test et de remédiation sur le nouveau code des dernières versions, ce qui peut donner un faux sentiment de sécurité, à savoir que votre application n'est pas vulnérable.  

Tirer parti des offres SaaS et mettre en œuvre la sécurité des applications

Quelle est donc la solution ? Il est certain qu'il n'est pas économiquement possible pour chaque entreprise de faire cavalier seul et de développer son propre logiciel propriétaire pour chaque fonction et chaque cas d'utilisation. À l'heure actuelle, les flux de travail sont collaboratifs et les entreprises dépendent de fournisseurs tiers pour optimiser la valeur de l'organisation, obtenir des gains d'efficacité et augmenter les économies. Il n'est tout simplement pas envisageable de se passer totalement des tiers.

La solution consiste à adopter une approche proactive en matière de sécurité. Vous êtes responsable de votre propre sécurité et de la protection de vos données, même si l'un de vos fournisseurs est compromis. Quelques moments clés peuvent faire toute la différence :

  • Si vous utilisez une version de logiciel en fin de vie, il est temps de la mettre à jour. Vous arrivez en fin de vie ? Passez à une version SaaS afin de toujours bénéficier de la technologie et des correctifs les plus récents. Si vous ne pouvez pas passer au SaaS, activez les mises à jour automatiques dans vos solutions sur site. Et n'oubliez pas de vous assurer que vous payez en permanence des services de maintenance et d'assistance pour que les mises à jour et l'assistance technique restent ininterrompues.
  • Protégez vos applications à l'aide d'une sécurité automatisée à plusieurs niveaux dans le cadre de votre flux de travail CI/CD. Vous protégez ainsi votre propriété intellectuelle, vos clés privées, vos API, vos SDK et les données de vos utilisateurs, en les mettant à l'abri, même en cas de violation par un tiers.

La gestion des risques liés aux tiers est un processus d'amélioration continue de type kaizen. Il s'agit de prévenir plutôt que de réagir.Le fait de botter en touche et de traiter la cybersécurité comme une tâche périphérique peut avoir des conséquences désastreuses pour une entreprise, d'autant plus que toute entreprise devient une entreprise technologique, ce qui est encore accéléré par la numérisation rapide qu'exige la pandémie.

En résumé : Un simple calcul vous indique qu'il sera moins coûteux à long terme de traiter les risques maintenant que d'attendre que les vulnérabilités soient exploitées. Certes, il peut être fastidieux de remédier aux vulnérabilités existantes, mais si vous ne le faites pas, vous risquez d'engendrer des problèmes bien pires qu'un simple mal de tête, ainsi que des responsabilités financières et juridiques pour votre entreprise et vos clients.

Si vous réagissez à un problème de sécurité, il est probablement trop tard. La meilleure façon d'aborder la sécurité est de la devancer avant qu'elle ne fasse de nouveau la une des journaux.

Protégez chaque version de votre logiciel avec des solutions de sécurité en mode SaaS

Réduisez le risque que votre chaîne d'approvisionnement soit rendue vulnérable par de vieux logiciels et des intégrations tierces compromises. Verimatrix XTD Prevent (anciennement App Shield) offre une protection de niveau militaire à des vitesses SaaS pour sécuriser le code source, les clés API, les SDK, les données personnelles et les certificats. Même si vos applications sont exécutées sur des logiciels anciens, XTD Prevent injecte une protection puissante directement dans votre package d'application (Android APK et iOS xcarchive) avec ce service cloud zéro code vous permettant de protéger vos clients sur les versions actuelles qu'ils exécutent sans les obliger à refaire des tests d'acceptation de systèmes complets de bout en bout.