Que sont les API et pourquoi sont-elles importantes?
Les API sont des interfaces de programmation des applications. Une interface de programmation d’application est un ensemble de fonctions connexes ou de points d’entrée nommés dans un logiciel utilisé par les programmeurs pour permettre aux applications logicielles d’émettre des appels spécifiques pour communiquer avec un système d’exploitation1.
[1] Robinson, Michael (2004) : Dictionnaire de technologie numérique : anglais-français, français-anglais = Dictionary of Digital Technology : English-French, French-English, Paris, Ellipses, 809 p.
De nature ininterrompue, les API sont des services intégrés qui relient différents services à l’aide d’un ensemble de définitions et de protocoles. Comme on peut l’imaginer, l’utilisation des API a considérablement augmenté. Selon la plateforme Salt Security, le nombre des appels d’API a augmenté de 82 % d’une année à l’autre en 2022, ce qui connecte les gens à plus de services que jamais auparavant2. Les données des clients de Salt Security démontrent que le nombre moyen d’API par client a augmenté de 82 % par rapport à l’année dernière, passant de 89 % en juillet 2021 à plus de 162 % en juillet 2022. Au cours de la même période et dans son ensemble, le trafic d’API par client a augmenté de 168 %, ce qui indique que l’utilisation de l’API connaît également une croissance exponentielle. Cela dit, la quantité de trafic malveillant sur les API a grimpé en flèche de 121 % d’une année à l’autre au cours de la période susmentionnée.
Une telle augmentation a porté le trafic des maliciels à 2,1 % de la totalité des trafics API pour les clients de Salt Security, ce qui signifie que les activités de cyberattaque continuent de suivre le rythme de cette expansion spectaculaire de l’utilisation des API. Parce que le trafic d’API malveillants dépasse l’augmentation de l’ensemble du trafic d’API, les entreprises ont de plus en plus besoin d’investir dans des outils de cybersécurité qui empêchent les API de production d’appeler des sources malveillantes tout en maintenant la disponibilité des services de base.
[1] https://salt.security/api-security-trends
Qu’est-ce que la sécurité Open Source (source libre) et pourquoi est-elle importante?
Communément appelée Software Composition Analysis (SCA), c’est-à-dire Analyse compositionnelle de logiciel (ACL), la sécurité Open Source est une méthodologie offrant aux utilisateurs une meilleure visibilité sur l’inventaire Open Source de leurs applications3. Cela est réalisé en examinant les composantes via des empreintes digitales binaires, en utilisant des recherches professionnelles et exclusives, en comparant des balayages numériques précis à cette intelligence exclusive, ainsi qu’en démontrant et en vérifiant pour les développeurs de logiciels cette intelligence exclusive dans leurs outils préférés. En outre, la sécurité Open Source fait référence à la mesure d’assurance ou de garantie dans l’absence de danger et de risque inhérent à un système de logiciel Open Source4.
[3] https://www.microfocus.com/en-us/what-is/open-source-security
[4] https://www.schneier.com/crypto-gram/archives/1999/0915.html#OpenSourceandSecurity
Qu’est-ce qu’un logiciel Open Source et pourquoi est-ce que c’est important?
Open Source Software (OSS) – un logiciel Open Source – est un modèle de développement décentralisé qui distribue publiquement le code source pour une collaboration ouverte et une production par les pairs connues sous le nom de la « voie Open Source »1. Un logiciel Open Source, c’est-à-dire un logiciel libre, est un logiciel librement utilisable, modifiable et distribuable. Un logiciel libre s’appuie sur une communauté en ligne d’utilisateurs fidèles et engagés envers la marque pour fournir un service client et des avantages de dépannage. Les logiciels libres sont intrinsèquement axés sur la communauté et nécessitent l’expertise et la contribution du personnel au sein de l’environnement de l’Open Source Initiative.
En tant que société à but non lucratif d’utilité publique californienne fondée en 1998 avec le statut d’exonération fiscale 501(c)3, et en tant que responsable de la Open Source Definition, l’Open Source Initiative (OSI) se rapporte à l’ensemble des règles qui définissent le logiciel Open Source, c’est-à-dire le logiciel libre5.
Produite par l’Open Source Initiative (OSI), la Open Source Definition est un document publié pour déterminer si une licence de logiciel peut être étiquetée avec la marque de certification Open Source6.
Malgré la possibilité que des vulnérabilités soient engendrées par les contributions de nombreuses personnes différentes, les logiciels Open Source peuvent être très sécurisés. Les cyberattaquants peuvent profiter de ces failles pour s’introduire dans les systèmes ou voler des informations confidentielles. Les nombreux utilisateurs de logiciels Open Source doivent être informés des mises à jour et les appliquer rapidement pour remédier à toute vulnérabilité connue. De plus, c’est une bonne idée d’utiliser des outils de sécurité pour vérifier les faiblesses des logiciels Open Source (libres) et pour se conformer aux meilleures pratiques de codage sécurisé lors de la conception ou création de ces logiciels Open Source.
[5] https://opensource.org/pressreleases/certified-open-source.php
[6] https://opensource.org/about
Que pouvons-nous faire pour sécuriser les logiciels Open Source?
Les développeurs de logiciels Open Source (libres) peuvent se mettre en conformité avec une variété de pratiques sécurisées et recommandées afin de fournir une assistance aux utilisateurs et pour garantir que le code qu’ils créent soit protégé et sécuritaire. Quelques-unes des pratiques les plus indispensables comprennent entre autres :
La validation des entrées
La validation des entrées effectuées par l’utilisateur peut aider à empêcher les cyberattaquants d’injecter du code malveillant dans votre application
Le codage de la sortie
Le codage de la sortie peut aider à empêcher les cyber-attaques des éléments dynamiques du script intersite (XSS), dans lesquelles un cyberattaquant injecte du code malveillant dans votre application, laquelle injection est exécutée par le navigateur de l’utilisateur.
L’authentification des utilisateurs
La mise en œuvre de mécanismes d’authentification robustes, tels que l’authentification multi-facteur, peut aider à empêcher l’accès non autorisé à votre application.
L’autorisation des utilisateurs
Contrôler soigneusement les actions que les utilisateurs sont autorisés à effectuer peut aider à empêcher l’accès non autorisé aux données confidentielles ou aux fonctions sensibles.
La protection des données en transit
L’utilisation du cryptage ou chiffrement pour protéger les données lorsqu’elles sont transmises entre les systèmes peut contribuer à empêcher l’écoute clandestine ou la falsification.
La protection des données inactives ou entreposées
Le cryptage ou chiffrement des données stockées sur des disques ou d’autres supports amovibles peut aider à empêcher l’accès non autorisé aux données confidentielles.
Les pratiques de codage sécurisé
Suivre des pratiques de codage sécurisé, comme éviter l’utilisation de mots de passe codés en dur et éviter l’utilisation de bibliothèques vulnérables, peut aider à empêcher l’introduction des défaillances dans votre code.
Le test des vulnérabilités
Tester régulièrement les faiblesses de votre code peut aider à identifier et à résoudre les problèmes avant qu’ils ne soient exploités par des cyberattaquants.
Qui peut aider?
En raison de la dépendance sur les contributions de la communauté des informaticiens, l’identification et la gestion des vulnérabilités peuvent s’avérer fastidieuses et difficiles dans le domaine des technologies Open Source. Par conséquent, il est plutôt difficile de trouver des professionnels qualifiés et expérimentés pour fournir une assistance ciblée. Il y a aussi des défis supplémentaires en parallèle à l’évolution des paysages de la cybersécurité et du développement des logiciels. Même s’il existe de nombreux outils réputés sur le marché avec des prix très variables.
il est judicieux que les responsables de la cybersécurité fassent preuve de diligence raisonnable pour approuver le meilleur outil adapté à leurs entreprises. Les entreprises doivent s’efforcer de demander des conseils à leurs partenaires de test d’intrusion pour recommander des outils adaptés à leurs budgets et correspondant à leurs exigences. De manière plus précise, les testeurs d’intrusion des applications sont capables d’identifier et d’exploiter les vulnérabilités à l’aide d’outils communs.
De plus, les testeurs de pénétration des applications peuvent fournir des informations précieuses sur les SDK Open Source et les cadres de code pour les trousses de développement logiciel afin de déceler rapidement les vulnérabilités.
Les ressources disponibles sur le marché
Heureusement, il existe d’excellentes ressources disponibles pour que les entreprises se familiarisent avec les pratiques sécurisées de développement logiciel. Des cadres tels que NIST Secure Software Development, OWASP ou Mitre Att&ck Framework sont d’excellents points de départ pour éduquer les développeurs de logiciels au sujet des méthodologies adverses. Grâce à ces connaissances, les personnes qui travaillent sur le développement des applications peuvent mettre en pratique ces considérations dans leur utilisation des bibliothèques Open Source et des SDK.
Il existe de nombreux outils réputés sur le marché avec un large éventail de prix. C’est pourquoi il est essentiel que les responsables de la cybersécurité fassent preuve de diligence raisonnable pour valider les outils qui conviennent le mieux aux besoins de leurs propres entreprises. Certains d’entre eux incluent notamment :
OWASP Zed Attack Proxy (ZAP)
Cet outil de sécurité gratuit et open source qui peut être utilisé pour tester les vulnérabilités des applications Web. Par ailleurs, il peut être utilisé pour identifier et exploiter des vulnérabilités telles que les scripts intersites et l’injection SQL.
mitmproxy
Il s’agit d’un proxy man-in-the-middle compatible SSL pour HTTP. Il fournit une interface console qui permet d’inspecter et de modifier les flux de trafic à la volée. Il comprend également mitmdump, un outil en ligne de commande qui fournit une interface de type tcpdump pour sauvegarder, visualiser et manipuler le trafic HTTP.
Dependabot
Il s’agit d’un outil de protection qui peut être utilisé pour identifier et réparer automatiquement les vulnérabilités relatives aux dépendances Open Source. Dependabot peut être également utilisé pour maintenir à jour les dépendances Open Source et les sécuriser.
MergeBase
Ce produit canadien offre un éventail plus large de fonctionnalités, notamment des vérifications de licences, des conseils en matière de remédiation, la gouvernance des logiciels libres et l’application de politiques, ainsi qu’une protection de la chaîne d’approvisionnement des logiciels grâce à un SCA complet, orienté vers les développeurs. La plateforme offre une couverture DevOps complète, du codage au déploiement et à l’exécution en passant par la construction.
Matières à réflexion
Comme pour tout ce qui concerne le secteur de la cybersécurité, il appartient en fin de compte aux entreprises de définir leur tolérance des risques et de se conformer aux meilleures pratiques qui correspondent à leur vision d’affaires.
Il est primordial que les dirigeants de ces entreprises procèdent à des évaluations des risques et identifient la bonne approche adaptée aux besoins de leurs organisations. Comme il sera de plus en plus difficile d’éviter l’utilisation des services fondés sur des API ou des outils Open Source, il est donc essentiel pour nous de nous préparer de manière proactive pour faire face à une croissance rapide dans ce secteur.
Dans la mesure du possible, les entreprises doivent s’efforcer d’obtenir des conseils de parties externes expérimentées pour s’assurer que l’expertise en la matière est prise en compte tout au long des processus stratégiques de cybersécurité.