Qualité de code et sécurité : deux alliés des applications

15 avril 2022

La sécurité vient en partie de la qu alité du code. Chez Agaetis, la sécurité et les bonnes pratiques de développement des applications sont au cœur de nos préoccupations. C’est pourquoi nous proposons aujourd’hui à nos clients une formation pour maîtriser tous les aspects du développement de leur solution. Cette formation vise à conseiller les développeurs sur les risques cybers impactant leurs applications, et à leur donner de bons réflexes en ce qui concerne les bonnes pratiques de code (craftsmanship).  Au travers de sessions de formations, nos consultants-formateurs aident les développeurs à prendre en compte les exigences pour délivrer des applications sécurisées, pérennes et facilement maintenables. Qualité de code et sécurité des applications, ou comment limiter les faiblesses et les vulnérabilités de nos développements.

Les bonnes pratiques de développement : les questions à se poser

L’adoption des bonnes pratiques de code doit faire partie intégrante de la stratégie des développements. Voici quelques questions à se poser avant de débuter votre projet. 


Quelles bonnes pratiques mettre en place dans mon équipe pour que mon projet réussisse ? 

Il faut instaurer de la transparence au sein des équipes en développant les softs skills (compétences générales) : auto-évaluation, amélioration continue, transmission de connaissances… Ces pratiques permettront ensuite de travailler de façon plus collégiale sur l’identification des causes de dysfonctionnement et pour proposer des nouvelles alternatives. 


Quelles pratiques devons-nous adopter pour assurer une bonne qualité de développement ?

Il faut d’abord mettre en oeuvre les bonnes pratiques : TDD, SOLID, YAGNI, KISS… Mettre en place des tests pour s’assurer du bon fonctionnement de la solution : TDD/BDD, tests acceptance, tests d'intégration et e2e. Il faut également s’assurer d’un bon niveau de documentation pour une utilisation et une reprise facilitée du développement pour d’autres équipes ou le client. Il faut automatiser au maximum la documentation. Il faut favoriser une programmation modulaire pour une bonne décomposition de l’application en modules, groupes de fonctions, de méthodes et pouvoir ainsi les optimiser de façon indépendante. 

Quelles architectures logicielles doivent être mises en place ?

Faut-il plutôt opter pour une clean architecture, une onion architecture, une architecture Hexagonale ou encore une architecture plus traditionnelle ? Les différents niveaux d'architecture à considérer : logicielle, technique, design.

La sémantique peut-elle être apparentée à du Domain Driven Design (DDD) ?  

L'objectif du DDD est de créer un langage commun entre les différents membres d'une équipe projet, qu'il soit technique, fonctionnel, commercial ou autre, pour faciliter la communication et la compréhension. De cette manière, les développeurs qui découvrent le projet peuvent progressivement comprendre le métier du client en lisant le code.

Quels choix dois-je éviter ? 

Premièrement les modèles anémiques : ce sont des modèles de domaine logiciel où les objets de domaine contiennent peu ou pas de logique métier (validations, calculs, règles métiers…). Autrement dit, leurs classes contiennent essentiellement des propriétés qui ne gèrent pas elles-mêmes leurs états et n’assurent pas elles-mêmes la cohérence de leurs états. Ces modèles sont souvent hérités des modèles en couches centrés sur la base de données, avec la logique dans un contrôleur qui multiplie les tests conditionnels (« if »). Pour chaque nouveau cas d'utilisation on ajoute un test, et on augmente du coup la complexité du code. Ce type de modèle va à l’encontre des principes SOLID et l’architecture est peu testable, en tout cas unitairement.
Deuxièmement, les « god objects ». Ce type d’objet prend en charge et organise tellement d'informations à lui seul qu’il joue un rôle identique à celui d'un décideur. Au lieu de blocs de programme communicant indépendamment entre eux et sans intermédiaire, les autres parties du programme sont dépendantes du god object pour communiquer et prendre leurs informations. Les god objects ne respectent pas les principes SOLID : ils peuvent, par exemple, entraîner des dépendances trop intriquées, ou encore un manque de clarté dans la compréhension du code, des difficultés à refactoriser, etc.
En conclusion l’ensemble de ces pratiques doit permettre une meilleure lisibilité du code, une meilleure maintenabilité, moins d'erreurs et une meilleure gestion des performances. 
C’est un gain de temps et un gain financier important pour nos clients dans l’évolution et/ou la reprise de nos développements.

Quels sont les standards de la sécurité applicative ?

La sécurité des applications englobe les processus, les outils et les pratiques conçus pour protéger les applications contre les menaces tout au long de leur cycle de vie. Les cybercriminels sont organisés, compétents et proactifs pour identifier et exploiter les vulnérabilités des applications d'entreprise afin de voler des données, de la propriété intellectuelle et/ou des informations sensibles, voire de l’argent. La sécurité applicative aide les entreprises à protéger une variété d'applications (qu'elles soient héritées, de bureau, de navigateur Web, mobiles ou en tant que microservices) utilisées par les parties prenantes internes et externes ou les clients, les partenaires commerciaux et les employés.
La majorité des violations réussies ciblent des vulnérabilités exploitables qui résident dans la couche applicative, ce qui suggère que les services informatiques des entreprises doivent être particulièrement vigilants quant à la sécurité des applications. 
Voici de façon non exhaustive quelques standards de la sécurité applicative :
  • Exigences en matière d'architecture, de conception et de modélisation des menaces : disponibilité, confidentialité, intégrité du traitement, non-répudiation et vie privée. 

  • Sécurisation de l'authentification : authentification multifactorielle (MFA), one-time password (OTP), captcha.

  • Exigences de vérification de la gestion des sessions : sessions uniques, coupure de sessions après une période d'inactivité.

  • Gestion des contrôles d'accès : bonne définition de rôles et de privilèges, protection contre la falsification de rôle.

  • Exigences de vérification de la cryptographie stockée : générateur de nombres aléatoires approprié, accès aux clés géré de manière sécurisée, mais aussi algorithmes et longueurs des clés.

  • Et enfin, gestion des erreurs et journalisation.


Vulnérabilité et remédiation : les éléments à prendre en compte

Il existe trois principes de sécurité à appliquer pour garantir la sécurité d’une application ou d’une infrastructure :
  • la confidentialité : c'est l'assurance que les personnes non autorisées n'accèdent pas à des informations sensibles ;
  • l'intégrité : elle permet de s’assurer que les données sont fiables et n'ont pas été modifiées par des personnes non autorisées ;
  • la disponibilité : c'est l’assurance qu'il n'y a pas de perturbation d'un service ou de l'inaccessibilité aux données.

De plus, une communauté telle que l’OWASP, organisation internationale qui se consacre à la sécurité des applications web, publie des recommandations de sécurisation Web pour les internautes, administrateurs et entreprises. Elle préconise des méthodes et outils de référence permettant de contrôler le niveau de sécurisation de leurs applications Web.
L’objectif est de minimiser la surface d’attaque ; les logiciels en font partie, il est important dès la conception d’intégrer ces réflexions en amont. Voici une liste d’éléments et de questions à considérer pour une solution efficiente : Quels sont les risques encourus et leurs impacts  ? Risques sur la pérennité des données, risques d’image, risques sur la disponibilité, risques réglementaires…
La typologie des attaques informatiqu es  : Kill chains : L’approche par “Kill chain” (chaîne d’attaque) permet de cartographier une faille de sécurité potentielle en dépistant les phases de l’attaque, depuis la phase initiale de reconnaissance jusqu’à l’exfiltration des données.
Les principales vulnérabilités web, le  top 10 de l’OWASP   :
  • A01:2021-Contrôles d'accès défaillants 
  • A02:2021-Défaillances cryptographiques 
  • A03:2021-Injection 
  • A04:2021-Conception non sécurisée 
  • A05:2021-Mauvaise configuration de sécurité 
  • A06:2021-Composants vulnérables et obsolètes 
  • A07:2021-Identification et authentification de mauvaise qualité
  • A08:2021-Manque d'intégrité des données et du logiciel 
  • A09:2021-Carence des systèmes de contrôle et de journalisation, 
  • A10:2021-Falsification de requête côté serveur

Il est important de comprendre ces menaces et de s’en prémunir.
Les parades et les outils pour contrer ses vulnérabilités  : OWASP Zed Attack Proxy, Nessus,Trivy, Vuls, SonarQube, audit d’intrusion…
La qualité du code et sa sécurisation sont des piliers pour délivrer des logiciels robustes et pérennes. Pour répondre à ces exigences, nous proposons 3 à 4 jours de formation et d’exercices pratiques pour amener vos équipes de développeurs à intégrer ces modes de travail. 

The body content of your post goes here. To edit this text, click on it and delete this default text and start typing your own or paste your own from a different source.

Ressources Agaetis

4 septembre 2025
Le contexte du projet : Un prototype de stylo connecté destiné au secteur de la santé avait rencontré un vif succès auprès du marché. Face à une demande croissante, le client devait passer à une phase d’ industrialisation afin de répondre aux attentes tout en respectant les réglementations strictes en matière de données de santé ( Hébergement de Données de Santé – HDS ). L’objectifs : L’objectif principal était de transformer un prototype en solution industrialisée en : définissant les critères de sélection et les options technologiques, garantissant la conformité aux réglementations de santé, et assurant la montée en charge (scale-up) pour répondre à la demande croissante. Durée de mission : Mission en plusieurs phases : cadrage, tests techniques, mise en conformité et accompagnement au scale-up industriel. Mise en œuvre : Agaetis a déployé une approche complète combinant expertise IoT et réglementaire : Définition des critères de sélection : cadrage des besoins fonctionnels et techniques. Évaluation technologique : étude des solutions potentielles et tests de leur adéquation. Mise en conformité HDS : accompagnement dans la sélection de l’hébergement et structuration du modèle de données. Développement et industrialisation : assistance dans l’implémentation des composants techniques et préparation à la montée en charge. Résultats obtenus : Accélération de la production : industrialisation réussie permettant de répondre rapidement à la demande. Conformité assurée : solution alignée sur les exigences HDS et réglementations de santé. Innovation valorisée : passage du prototype au produit commercialisable sur le marché santé. Flexibilité opérationnelle : architecture et modèle de données prêts à évoluer avec les usages. Facteurs clés de succès : Expertise pointue en IoT santé et données réglementées . Approche sur mesure intégrant la dimension technique et humaine. Collaboration rapprochée avec les équipes du client. Vision orientée impact concret et mise sur le marché rapide. Et vous ? Vous vous interrogez sur : l’industrialisation de vos prototypes IoT santé, la conformité réglementaire (HDS, ISO, etc.) de vos solutions, ou la préparation de vos innovations pour passer du prototype au scale-up industriel ? 👉 Contactez nos experts pour transformer vos prototypes IoT en solutions santé industrialisées et conformes.
par David Walter 4 septembre 2025
Le contexte du projet : Groupe Aérospatial souhaitait optimiser le temps de contrôle dimensionnel des réservoirs de son lanceur spatial. Les méthodes traditionnelles, longues et peu satisfaisantes, ralentissaient la production et augmentaient les risques d’erreurs. Le besoin était de développer une application de contrôle qualité et dimensionnel intégrant de nouveaux moyens de mesure plus rapides et précis. L’objectifs : L’objectif principal était de concevoir et déployer une application installée sur un PC concentrateur capable de : lancer différents programmes de contrôle dimensionnel, intégrer des technologies de mesure avancées (profilomètres lasers, trackers laser), et améliorer la précision et la répétabilité des contrôles. Durée de mission : Mission de plusieurs mois, de la conception logicielle à la formation des équipes, en passant par l’intégration et les tests. Mise en œuvre : Agaetis a déployé une approche technique et collaborative : Développement de l’application : architecture logicielle adaptée aux besoins d’intégration industrielle. Collecte et traitement des données : intégration des mesures issues des machines à commande numérique, trackers laser et profilomètres. Optimisation des processus : automatisation des contrôles pour gagner en rapidité et réduire les erreurs. Accompagnement & formation : transfert de compétences aux équipes internes pour assurer la continuité. Résultats obtenus : Temps de contrôle réduit : amélioration notable de la productivité. Précision accrue : fiabilisation des mesures grâce à l’intégration de nouvelles technologies. Réduction des erreurs : contrôles plus rapides et répétables. Compétences préservées : maintien de la connaissance technique dans l’organisation. Facteurs clés de succès : Expertise technique d’Agaetis en développement industriel et IoT . Grande flexibilité dans la collaboration avec le client. Intégration fluide des données issues de différents équipements. Approche orientée impact et résultats mesurables. Et vous ? Vous vous interrogez sur : l’optimisation de vos processus de contrôle industriel, l’intégration de nouvelles technologies de mesure, ou la digitalisation de vos applications qualité ? 👉 Contactez nos experts pour moderniser vos contrôles industriels et accroître votre performance opérationnelle.
Show More