Comment les développeurs peuvent-ils garantir la sécurité des applications ?

Cropped Favicon Economi Matin.jpg
Par Kyle Suero Publié le 10 septembre 2022 à 10h39
Hacker Cyber Ia
@shutter - © Economie Matin
20%20% des PME ont subi une ou plusieurs cyberattaques ou tentatives de cyberattaques en 2021.

Lors du développement d’un logiciel, il est primordial de s’assurer que l’application réponde aux normes de qualité et de sécurité les plus élevées. Ainsi, avant de passer en production, les revues de code et les tests automatisés et manuels visent à garantir le bon fonctionnement de l’application et la suppression des bugs.

Le test des vulnérabilités de sécurité est un élément essentiel de ce processus et doit être soutenu par des outils spécialisés. En effet, si ces tests sont négligés ou si les outils ne sont pas adéquats, les tests peuvent entraîner des retards importants et des retours en arrière qui mettent en danger les clients et les utilisateurs finaux.

En France, 20% des PME ont subi une ou plusieurs cyberattaques ou tentatives de cyberattaques en 2021. L'ANSSI, de son côté, fait état d’un nombre d'intrusions avérées dans des systèmes d’informations ayant augmenté de 37% entre 2020 et 2021. Pour lutter contre ce fléau, garantir la sécurité des applications est devenu un travail quotidien. De nouvelles vulnérabilités sont découvertes chaque jour, obligeant la revue du code des applications, jusque-là considéré comme imperméable aux attaques. Même si les normes de cybersécurité sont élevées dans la plupart des entreprises, les cybercriminels sont capables d’agir et d’innover rapidement, améliorant constamment leurs capacités. Il reste donc encore beaucoup à faire pour répondre au nombre grandissant d’attaques cyber.

S’inspirer des méthodes des cyberattaquants pour élaborer sa stratégie de défense

Pour améliorer la sécurité au niveau du développement logiciel, les développeurs doivent chercher à pénétrer dans leurs propres systèmes en utilisant les outils et les techniques des cyberattaquants. La technique du test de pénétration offre ainsi des perspectives uniques d’amélioration de la sécurité. Si son approche divergente met en lumière des zones de faiblesse indétectables autrement, il n’est cependant pas destiné à remplacer les tests, analyses ou examens standards qui constituent les pratiques de sécurité actuelles. Il est complémentaires à ces pratiques qui doivent être repensées et évoluer à mesure que de nouveaux risques apparaissent.

Tenter de s’infiltrer dans ses propres applications en utilisant les mêmes outils que les cybercriminels permet d’obtenir un meilleur code et une meilleure sécurité. Plutôt que de veiller à ce que les utilisations prévues d'une application soient autorisées, il faut se concentrer sur les utilisations involontaires. Très souvent, les vulnérabilités se trouvent aux limites de la fonctionnalité. En d'autres termes, le fait de repousser les limites de ce que les programmes sont censés imposer peut révéler des vulnérabilités dans lesquelles les cyberattaquants peuvent s'infiltrer.

Si les vulnérabilités peuvent venir d’oublis dans l’écriture du code, elles viennent le plus souvent de failles dans la conception même du logiciel ou de logiques mercantiles dictant le design de l’application. Bien que le code soit écrit correctement selon des spécifications, ces mêmes spécifications créent de nombreuses possibilités d'abus et de violations. Par ailleurs, les failles créent des vulnérabilités très différentes de celles créées par des erreurs de configuration accidentelles, par l'utilisation de logiciels libres vulnérables ou encore le non-respect des pratiques sécurisées de développement logiciel. Elles ne sont peut-être pas imputables au développeur, mais si le développeur est considéré comme un garant de la sécurité de l'application, elles relèvent alors de ses responsabilités.

Comment effectuer un test de pénétration ?

Le test de pénétration est capable d’automatiser de nombreuses tâches, de la même manière que le font les cyberattaquants cherchant à pénétrer dans les systèmes. Parmi les outils disponibles pour réaliser un test de pénétration, on retrouve des solutions injectant des valeurs inattendues partout où elles peuvent être saisies pour tenter de faire planter l'application ou d'obtenir un accès supplémentaire au code ou aux données qui devraient être cachés. Dans les applications web, les outils sont capables par exemple d’introduire des valeurs particulières dans les formulaires de soumissions de contenu. Les développeurs peuvent ensuite utiliser des kits d'exploitation disponibles auprès de sources responsables pour imiter les techniques des hackers pour tenter de pénétrer la sécurité. Enfin, il existe des logiciels de test de pénétration qui recherchent les points d'entrée possibles plutôt que des logiciels malveillants ou des mauvais acteurs dans le système. Ces logiciels sont capables d’essayer des milliers de techniques d'intrusion différentes, bien plus que les développeurs les plus expérimentés.

Apprendre à effectuer des tests de pénétration est une compétence très précieuse pour les développeurs. Elle leur permet de mieux comprendre les différents aspects de la création d'applications sécurisées, au-delà de ceux qui leur sont familiers du point de vue du créateur de code. De plus, la mise en place de ces tests contribue à créer un état d'esprit qui consiste à toujours penser aux failles et à se prémunir contre les comportements les plus inattendus. Une dimension particulièrement importante pour les entreprises, car ce sont exactement ces voies que les cybercriminels emprunteront.

Laissez un commentaire
Cropped Favicon Economi Matin.jpg

Senior Security Advocate chez Snyk