Notre solution - Les Oies du Cyber

Le Shadow Code représente-t-il une menace cachée pour votre application ?

Janvier 2024

Le développement web est marqué par une évolution constante, stimulée par la demande croissante de sites web et d’applications web, due à la transformation numérique et à la dépendance accrue à l’égard des services en ligne. Traditionnellement, la création de code personnalisé pour chaque composant de site web était chronophage et exigeait une connaissance approfondie de la programmation. Avec la popularité croissante d’Internet, les développeurs ont été confrontés à une forte pression pour accélérer le développement sans sacrifier la qualité. Ce besoin de vitesse a conduit à l’adoption de scripts tiers et de bibliothèques open source, offrant des raccourcis rentables pour ajouter des fonctions aussi variées qu’une carte interactive ou une passerelle de paiement.

Au milieu de cette quête de vitesse et d’efficacité, un phénomène connu sous le nom de Shadow Code s’est discrètement introduit dans le monde du développement web. Le Shadow Code représente n’importe quel morceau de code qui trouve sa place dans une application sans suivre les canaux appropriés d’examen et d’approbation par les équipes de développement et celles de sécurité.

Le terme Shadow Code présente des similitudes avec le concept de Shadow IT, qui fait référence à l’utilisation non autorisée de logiciels, de services et d’appareils informatiques au sein d’une organisation. Tout comme le Shadow IT peut introduire des outils et des technologies non approuvés sur le lieu de travail, le Shadow Code introduit du code non approuvé dans les applications.

Dans le contexte du développement web, le Shadow Code résulte souvent du désir d’accélérer le développement. Les développeurs découvrent des extraits de code, des bibliothèques ou des scripts utiles en ligne, parfois sur des plateformes comme GitHub, qui peuvent accélérer un processus spécifique ou améliorer la fonctionnalité d’un site web. Dans leur quête de respect de délais serrés, les développeurs peuvent choisir d’incorporer directement ces fragments de code dans leurs applications, contournant le processus traditionnel d’examen et d’approbation.

Cette pratique entraîne des gains d’efficacité à court terme, mais elle n’est pas sans risques. Le Shadow Code introduit une couche de complexité et d’incertitude dans le processus de développement. Il expose les applications à des vulnérabilités potentielles et à des menaces de sécurité, rendant difficile pour les entreprises une quelconque garantie de la sécurité de l’application et par extension des données hébergés et des services rendus. Alors que les organisations continuent de digitaliser toujours plus leurs opérations et s’efforcent d’innover rapidement, la compréhension et la gestion du Shadow Code devraient devenir l’une des priorités du développement web.

📊 Quelles sont les causes et les implications du Shadow Code dans les applications web ?

La présence de Shadow Code dans les applications peut être attribuée à leur dépendance aux bibliothèques open source et au code tiers comme moyen d’accélérer l’innovation et de s’adapter aux besoins commerciaux. Il est à noter qu’environ 70 % des scripts trouvés sur un site web proviennent de sources tierces, créant ainsi une voie d’infiltration via le Shadow Code.

Par ailleurs, une tendance importante dans les applications web et mobiles modernes consiste à déplacer une partie importante de la logique d’application du côté client, améliorant ainsi les performances et l’expérience utilisateur. Ce changement se traduit par l’exécution d’une partie substantielle du code de l’application sur les navigateurs des utilisateurs et les appareils mobiles grâce au code JavaScript côté client.

En conséquence, une partie substantielle du code d’un site web provenant de sources externes ne s’exécute pas sur le serveur. Sans la mise en place de mesures de sécurité adéquates, cela expose des vulnérabilités que des acteurs malveillants peuvent exploiter grâce à des attaques basées sur des scripts, mettant ainsi en danger les données sensibles des utilisateurs.

Les exemples de Shadow Code dans le contexte des menaces cybernétiques incluent des techniques telles que JavaScript obfusqué, des iframes cachés, de la stéganographie dans les images, le chargement de scripts externes et du code camouflé dans des plugins tiers. Ces méthodes sont utilisées par les cybercriminels pour exécuter des attaques.

Le Shadow Code peut être présent dans divers emplacements, notamment dans un référentiel interne, dans des bibliothèques open source légitimes, dans du code chargé par des fournisseurs sans que l’organisation en soit informée, dans du code injecté par des acteurs de menace malveillants (comme on peut le voir dans les incidents de vol de données) et dans des plugins tiers développés pour les systèmes de gestion de contenu.

Les défis associés au Shadow Code englobent les vulnérabilités, où même des développeurs de code expérimentés peuvent introduire involontairement des failles de sécurité. Les acteurs de menace peuvent intentionnellement insérer un code nuisible dans les référentiels, espérant que les organisations l’adopteront sans le savoir. Des problèmes de compatibilité peuvent survenir lorsque du code légitime est incompatible avec d’autres applications ou systèmes, introduisant des vulnérabilités et la possibilité d’attaques sur des systèmes interconnectés.

📊 Quels sont les risques principaux associés au Shadow Code ?

L’infiltration d’un code non autorisé dans une application introduit des vulnérabilités qui peuvent être exploitées par des attaquants, entraînant divers types d’attaques telles que l’injection SQL, le cross-site scripting (XSS) et les attaques d’exécution de code.

Le Shadow Code peut contenir des fonctionnalités cachées facilitant l’extraction et la transmission non autorisées de données sensibles, notamment des informations d’identification d’utilisateur, des informations financières ou des données commerciales propriétaires, ce qui entraîne des violations de données et des dommages à la réputation.

Les scripts présents dans le Shadow Code peuvent servir de véhicule pour les attaques contre les applications web, englobant des tentatives de connexion automatisées, la collecte de données sensibles ou la manipulation de sessions utilisateur, ce qui pose des risques de sécurité importants.

L’intégration de scripts tiers dans les pages web joue un rôle central dans la présence du Shadow Code. Lorsqu’une page web fait appel à un script tiers, il se charge directement dans le navigateur de l’utilisateur à partir d’un serveur distant, contournant les contrôles de sécurité tels que les pare-feu et les outils de surveillance du réseau. Si l’un de ces scripts tiers a été compromis par un acteur malveillant, il peut contenir du Shadow Code intégré. Ces scripts tiers peuvent inclure des logiciels open source qui n’ont pas été soumis à des tests rigoureux ou peuvent provenir d’une autre couche de l’organisation où réside un code malveillant.

Ces risques associés aux scripts tiers et au Shadow Code dans la chaîne d’approvisionnement numérique peuvent avoir des conséquences graves, notamment des violations de données, des activités frauduleuses, des violations de la conformité, des dommages à la réputation et d’importantes sanctions financières.

📊Comment le Shadow Code est-il mis en œuvre dans les cyberattaques ?

Le Shadow Code peut extraire des données sensibles, notamment des informations clients, des données financières et des propriétés intellectuelles, qui peuvent être vendues sur le dark web ou utilisées pour d’autres attaques.

Le Shadow Code peut voler des identifiants de connexion, tels que des noms d’utilisateur et des mots de passe, pour un accès non autorisé et une utilisation abusive, notamment le vol d’identité et la fraude.

Le Shadow Code peut servir de passerelle pour la livraison de logiciels malveillants (malware), infectant les visiteurs sans méfiance avec des ransomwares, des enregistreurs de frappe ou d’autres logiciels malveillants, ce qui entraîne des violations de données et une compromission du système.

Les cybercriminels utilisent le Shadow Code pour mener des attaques de man-in-the-middle, interceptant des communications sensibles, telles que des transactions financières ou des sessions de connexion, ce qui peut entraîner un accès non autorisé ou un vol de données.

Le Shadow Code peut exploiter des vulnérabilités zero-day, c’est-à-dire les vulnérabilités précédemment inconnues dans les logiciels ou les applications web, pour infiltrer des systèmes, perturber les opérations ou voler des données sans que l’organisation en ait connaissance.

📊Examinons maintenant quelques conséquences du Shadow Code, illustrant les risques précédemment discutés à l’aide d’exemples concrets.

Les attaques Magecart ont émergé comme une conséquence directe du Shadow Code caché au sein des applications web. Ces attaques consistent en l’injection de code JavaScript malveillant dans des sites web légitimes, souvent via des scripts tiers non autorisés. Une fois exécuté côté client, ce code collecte des informations personnelles sensibles des utilisateurs, telles que les détails de leur carte de crédit, au fur et à mesure qu’ils saisissent des données sur un site. La nature furtive de l’exécution JavaScript le rend difficile à détecter, mettant ainsi les données des utilisateurs en danger et ternissant la réputation d’une entreprise.

Les attaques digital skimming, également connues sous le nom de formjacking, s’appuient sur le Shadow Code pour voler les informations de carte de paiement lors de transactions en ligne. Les cybercriminels insèrent du code dans un site de e-commerce, interceptant les données de paiement saisies par les clients. Ces informations sont ensuite exfiltrées vers les attaquants, entraînant des transactions frauduleuses, des pertes financières et des conséquences légales pour les entreprises affectées.

Le Shadow Code peut permettre un accès non autorisé aux données, entraînant des violations d’informations sensibles. Dans un incident notable, un code non approuvé au sein d’une application web a permis aux attaquants d’accéder à la base de données clients d’une entreprise. Des informations personnelles, telles que les noms, les adresses et les coordonnées, ont été compromises, entraînant des amendes réglementaires et des dommages à la réputation.

📊Dix signes de risque lié au Shadow Code

Dans le cadre de nos recherches approfondies, nous avons identifié des modèles courants qui servent de signaux d’alerte pour les risques liés au Shadow Code qui pourraient se cacher dans vos applications web. Voici dix indicateurs spécifiques qui pourraient indiquer que vos applications web sont susceptibles de présenter des menaces liées au Shadow Code:

1.      Inventaire incomplet des tiers

Si vous ne disposez pas d’un inventaire complet du code tiers s’exécutant dans vos applications, vous pourriez être inconscient des vulnérabilités potentielles en matière de sécurité introduites par des éléments non examinés.

2.      Déploiements à haute vélocité

Des déploiements fréquents de code exigent des examens de sécurité plus fréquents. Si votre rythme de développement est rapide, les évaluations de sécurité annuelles ou semi-annuelles pourraient ne pas suffire.

3.      Contrôles de sécurité du site mal configurés

Des Politiques de Sécurité du Contenu (CSP) mal configurées laissent votre application vulnérable à des actions non autorisées, y compris l’exfiltration de données. La configuration correcte des CSP est une étape essentielle pour se protéger contre les risques liés au Shadow Code.

4.      Bibliothèques JavaScript tierces non sécurisées

La sécurité de votre application est liée à la sécurité de vos sources de code tiers. Assurez-vous que vos fournisseurs respectent des critères de sécurité de base, notamment la réactivité aux demandes de sécurité et une politique de sécurité publiée.

5.      Absence d’examen formel des bibliothèques open source

Les bibliothèques JavaScript open source, bien qu’elles soient largement utilisées, devraient faire l’objet d’un examen formel et d’un processus d’approbation. Les intégrer aveuglément peut introduire des vulnérabilités imprévues.

6.      Absence de contrôle de version rigoureux

Négliger le contrôle de version peut entraîner l’utilisation de bibliothèques obsolètes et de vulnérabilités connues. Établissez des pratiques rigoureuses de contrôle de version, y compris des examens de sécurité et des tests de contrôle de qualité.

7.      Analyse insuffisante du comportement en temps réel

Se fier uniquement aux environnements de préparation pour les tests peut ne pas permettre de détecter les vulnérabilités côté client. Utilisez des technologies modernes basées sur l’apprentissage automatique pour surveiller et identifier les comportements anormaux en temps réel.

8.      Fournisseurs tiers non réactifs

Les fournisseurs tiers devraient disposer de contacts de sécurité réactifs, ainsi que d’un historique de publication régulière de mises à jour de sécurité.

9.      Surveillance insuffisante des projets open source

Les projets open source avec de nombreux contributeurs peuvent introduire du Shadow Code involontaire ou malveillant. Une surveillance vigilante est essentielle.

10.  Absence de pratiques de DevOps sécurisées

La mise en œuvre d’une approche moderne et proactive de DevOps et de sécurité est primordiale pour maîtriser le Shadow Code. Cela garantit une sécurité accrue de l’application sans entraver la progression du développement.

📊Techniques de détection du Shadow Code

La détection du Shadow Code est essentielle pour atténuer efficacement ses risques. Plusieurs techniques peuvent être utilisées pour l’identification.

Une technique proactive et efficace pour détecter le Shadow Code est d’adopter une approche Secure by Design“. Cette méthodologie intègre des mesures de sécurité tout au long du cycle de développement logiciel, de la phase de conception initiale au déploiement.

Une revue régulière du code et une analyse peuvent révéler des extraits de code ou des bibliothèques non autorisés au sein d’une application. Les développeurs et les équipes de sécurité doivent examiner les modifications apportées au code pour détecter les ajouts non approuvés.

La mise en place d’outils de détection des anomalies comportementales peut aider à identifier les comportements ou les activités inattendus dans une application qui peuvent indiquer la présence de Shadow Code.

La surveillance continue des applications web peut révéler toute modification non autorisée ou activité inattendue, permettant une action rapide.

Établissez un processus formel pour examiner, approuver et intégrer des scripts et du code tiers. Ce processus devrait impliquer l’équipe de sécurité et garantir la conformité aux normes de sécurité.

Gardez un inventaire de tous les scripts et le code tiers utilisés dans vos applications. Cet inventaire devrait inclure des détails sur la source, le but et le statut d’approbation de chaque script.

Mettez en place un mécanisme pour notifier l’équipe de sécurité chaque fois qu’un nouveau script est ajouté à l’application. Cette notification garantit que l’équipe de sécurité peut évaluer rapidement les implications en matière de sécurité du code.

📊Atténuation des risques liés au Shadow Code

Les headers HTTP Content-Security-Policy (CSP) jouent un rôle crucial dans l’atténuation des risques liés au Shadow Code. Ces en-têtes définissent quelles sources de données sont autorisées par une application web, restreignant efficacement l’exécution de scripts non approuvés. La mise en œuvre des en-têtes CSP implique de spécifier les directives appropriées dans l’en-tête de réponse HTTP pour définir la politique de sécurité.

Les processus de validation et de nettoyage du code sont essentiels pour identifier et neutraliser le code malveillant au sein d’une application. Ces processus consistent à inspecter et valider le code entrant pour s’assurer qu’il respecte les normes de sécurité et à supprimer tout élément potentiellement nocif.

Il est essentiel de renforcer les mécanismes de validation des entrées pour prévenir les attaques par injection de code. La validation des entrées doit être rigoureuse, vérifiant les saisies des utilisateurs à la recherche de caractères ou de scripts potentiellement dangereux et les rejetant s’ils sont trouvés.

Les tests de sécurité réguliers et la numérisation des vulnérabilités sont des composants essentiels de l’atténuation du Shadow Code. La réalisation de tests de sécurité, y compris des tests de pénétration et des revues de code, peut révéler les vulnérabilités introduites par le Shadow Code.

Les solutions de protection côté client sont des outils et des services dédiés conçus pour offrir une visibilité sur les scripts tiers et protéger activement contre le Shadow Code. Ces solutions offrent des fonctionnalités telles que la découverte continue et la surveillance, l’approbation et le blocage de scripts, et même l’examen de code alimenté par l’IA.

Les outils de découverte continue et de surveillance aident à identifier les nouveaux scripts ajoutés aux applications. Ils fournissent des alertes en cas de détection de scripts non approuvés, permettant une action rapide pour évaluer et traiter les risques potentiels.

Les solutions de protection côté client permettent aux organisations d’approuver et de bloquer des scripts au sein des applications web. Ce contrôle granulaire garantit que seuls les scripts de confiance sont autorisés à s’exécuter, réduisant ainsi le risque de Shadow Code.

Les solutions de protection côté client avancées intègrent des capacités d’IA qui peuvent automatiquement passer en revue le code et fournir des informations sur sa fonctionnalité. Cela comprend la capacité à expliquer ce que fait le code, ce qui permet de gagner du temps précieux pour les équipes de sécurité.

📊Conformité et Shadow Code

La norme PCI DSS (Payment Card Industry Data Security Standard) accorde une importance significative à la sécurité des applications. En ce qui concerne le Shadow Code, la norme PCI DSS aborde les risques liés aux scripts chargés et exécutés sur les pages de paiement. Elle met en évidence le potentiel d’exécution de scripts malveillants et d’exfiltration de données, et elle établit des exigences spécifiques concernant la gestion des scripts sur les pages de paiement.

La conformité à la norme PCI DSS nécessite la mise en place de mesures visant à atténuer les risques liés au Shadow Code sur les pages de paiement. Cela comprend une validation rigoureuse des scripts, des politiques de sécurité du contenu et une surveillance continue pour garantir l’intégrité des processus de paiement.

Les réglementations sur la protection des données, telles que le Règlement général sur la protection des données (RGPD), le California Consumer Privacy Act (CCPA) et la Lei Geral de Proteção de Dados (LGPD) brésilienne, imposent des exigences strictes en matière de protection des données et de la vie privée pour les entreprises numériques. Le Shadow Code introduit des défis dans le respect de ces réglementations.

Le RGPD, le CCPA et le LGPD définissent des exigences spécifiques pour la protection de la vie privée des individus et le contrôle de leurs données dans les environnements numériques. Le Shadow Code peut compliquer les efforts de conformité, car un code non approuvé peut entraîner des violations de données et de la vie privée.

📊L’avenir du Shadow Code

C’est une bataille constante : la cybersécurité versus le Shadow Code. La lutte entre la cybersécurité et le Shadow Code devrait persister tant que le besoin de développement rapide existera. Les organisations doivent continuellement adapter leurs mesures de sécurité pour contrer les risques associés au Shadow Code.

À mesure que le Shadow Code évolue, les menaces qu’il représente évoluent également. De nouveaux vecteurs d’attaque et techniques peuvent émerger, nécessitant des contre-mesures innovantes. Les équipes de sécurité doivent rester vigilantes et proactives pour identifier et atténuer ces menaces en constante évolution.

L’intelligence artificielle (IA) et le machine learning sont appelés à jouer un rôle significatif dans la gestion des risques liés au Shadow Code. Ces technologies peuvent contribuer à la détection automatisée de code suspect, à l’analyse comportementale, voire à la revue de code. En exploitant l’IA et l’apprentissage automatique, une organisation peut améliorer sa capacité à identifier et à réagir efficacement au Shadow Code.

📊 Recommandations pour un environnement résistant au Shadow Code

Bonnes pratiques des développeurs

Effectuez des examens de code approfondis pour vous assurer que tout le code, y compris les scripts tiers, respecte les normes de code sécurisé. Mettez en place une validation de code pour identifier et atténuer les vulnérabilités potentielles du Shadow Code.

Validez toutes les entrées utilisateur pour prévenir les attaques par injection telles que l’injection SQL et les scripts intersites (XSS). Nettoyez et validez les données avant de les traiter pour éliminer les menaces potentielles.

Incorporez des normes et pratiques de codage sécurisé dans votre processus de développement, en mettant l’accent sur une approche Secure by Design“. Priorisez la validation des entrées pour valider et nettoyer efficacement les saisies des utilisateurs. Assurez-vous que toutes les données entrant dans votre application sont vérifiées pour leur légitimité et leur sécurité.

Mettez en place des techniques d’encodage robustes pour prévenir les vulnérabilités de scripts intersites (XSS). Encodez toutes les données de sortie pour vous protéger contre les injections de scripts malveillants.

Appliquez rigoureusement le principe du moindre privilège. Limitez l’accès et les autorisations au minimum requis pour chaque composant ou rôle utilisateur au sein de votre application. Cela réduit la surface d’attaque et les dommages potentiels en cas d’infiltration.

Restez informé des bonnes pratiques en matière de sécurité et évitez d’utiliser des fonctions et des bibliothèques obsolètes ou non sécurisées. Passez régulièrement en revue votre base de code pour remplacer tout élément risqué par des alternatives sécurisées.

Mettez régulièrement à jour et corrigez les bibliothèques et scripts tiers pour atténuer les vulnérabilités connues. Soyez prudent lors de l’intégration de code tiers et privilégiez les sources bien établies et réputées.

Intégrez les tests de sécurité dans le cycle de développement. Utilisez des outils tels que l’analyse statique, l’analyse dynamique et les tests de pénétration pour identifier et remédier aux vulnérabilités de votre code.

Bonnes pratiques de l’équipe de sécurité

Mettez en place des solutions de surveillance continue capables de détecter les anomalies et les activités suspectes au sein du code de votre application. Utilisez des systèmes de détection d’intrusions et des outils d’analyse des journaux pour repérer les intrusions potentielles du Shadow Code.

Élaborez un plan complet de réponse aux incidents spécifiquement adapté pour faire face aux menaces liées au Shadow Code. Assurez-vous que votre équipe est bien préparée à réagir rapidement et efficacement à tout incident de sécurité.

Restez informé des menaces émergentes et des vulnérabilités liées au Shadow Code. Abonnez-vous aux flux de renseignements sur les menaces et collaborez avec les communautés de cybersécurité pour partager des informations et des meilleures pratiques.

Effectuez régulièrement des audits des scripts et des bibliothèques tiers intégrés à vos applications. Vérifiez leur intégrité et leur sécurité pour prévenir l’infiltration du Shadow Code.

Réalisez des tests de pénétration sur vos applications pour simuler des attaques du monde réel et identifier les vulnérabilités, y compris celles liées au Shadow Code.

📊 Appel à l’action

Il est temps d’agir et de faire de la sensibilisation au Shadow Code un aspect fondamental de votre approche de développement. Les développeurs doivent assumer la responsabilité de la sécurité du code en identifiant et en atténuant de manière proactive les risques liés au Shadow Code. Assurez-vous que la sécurité est intégrée à chaque phase du développement et encouragez une culture d’apprentissage continu pour rester en avance sur les menaces émergentes. Protégez vos actifs numériques en prenant des mesures immédiates contre les dangers cachés du Shadow Code.

Pour faire face efficacement à la menace du Shadow Code, envisagez d’adopter l’approche Secure by Design. En intégrant la sécurité dans tous les aspects de votre processus de développement, vous pouvez prévenir l’infiltration de code malveillant. Pour plus d’informations et de conseils sur la mise en œuvre des pratiques de Secure by Design, n’hésitez pas à nous contacter.

Sources:

Tech Target, 6 dangers of shadow IT and how to avoid them

https://www.techtarget.com/searchcio/tip/6-dangers-of-shadow-IT-and-how-to-avoid-them

Microsoft, Shining a light on how Microsoft manages Shadow IT

https://www.microsoft.com/insidetrack/blog/shining-a-light-on-how-microsoft-manages-shadow-it/

TechStrong, The rise of Shadow AI

https://techstrong.ai/aiops/the-rise-of-shadow-ai/

ThirdPartyTrust, Building a Shadow IT Policy: What CEOs, CTOs, and CISOs Need to Know

https://www.thirdpartytrust.com/blog/building-shadow-it-policy-ceo-cto-ciso/

McKinsey Digital, Low-code/no-code: A way to transform shadow IT into a next-gen technology asset

https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/tech-forward/low-code-no-code-a-way-to-transform-shadow-it-into-a-next-gen-technology-asset

MIT Technology Review, Low-code and no-code: A marked movement for digital platform development

https://www.technologyreview.com/2023/02/14/1068365/low-code-and-no-code-a-marked-movement-for-digital-platform-development/amp/

Demandez à être contacté