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

par David Walter 6 novembre 2025
Project Context Michelin aimed to develop a new generation of digital services based on data from connected tires. The goal was to deliver added value to truck fleet managers and maintenance centers worldwide. The challenge lay in the collection, processing, and supervision of massive sensor data, while ensuring robustness, scalability, and relevance of analytics. Objectives The main objective was to establish a technical and architectural framework to: Efficiently collect and process data from connected tires Monitor data flows and measure the impact of business use cases Create a Big Data platform ready to evolve with growing data volumes Mission Duration A long-term engagement , combining initial architectural study, implementation of monitoring systems, and ongoing support. Implementation Agaetis leveraged its Data and Cloud expertise to: Initial architecture study: Define technological and structural choices Platform monitoring: Implement monitoring principles to ensure robustness and availability Load analysis: Evaluate the impacts of various business use cases Big Data framework definition: Integrate best practices to accelerate implementation Data Science work: Perform domain-specific analysis and develop new indicators and services Results Achieved New digital services: Creation of innovative solutions for fleet managers Robust and scalable platform: A Big Data environment ready to handle massive data volumes Operational optimization: Improved traceability and KPI tracking Enhanced innovation: Data transformed into strategic levers for Michelin Key Success Factors Agaetis’ expertise in Big Data and IoT data processing End-to-end methodology: From architecture to Data Science Immersion in the client’s business environment Proactive supervision ensuring robustness and reliability  And You? Are you wondering about: Leveraging data from your connected equipment ? Creating new digital services based on Data? Implementing a robust and scalable Big Data architecture ? 👉 Contact our experts to transform your IoT data into innovative, value-generating services.
par David Walter 6 novembre 2025
Project Context France’s first research foundation dedicated to innovation in pain management aimed to launch a market-ready application resulting from its clinical research and development program. The goal was to transform the app into a Digital Therapeutic (DTx) reimbursed by the national health insurance system. Objectives The organization focuses on driving healthcare innovation through extensive collaborations with hospitals, research institutes, universities, and technology companies. The main challenges included: Transforming an application into a Digital Therapeutic (DTx) reimbursed by the national health system. Managing the transition of patients to this new platform. Preparing a new data warehouse to support scientific research. Mission Duration 3 collaborators over 3 years Methodology Agaetis provided its expertise through targeted and structured actions: Audit of existing systems: Evaluation of current infrastructure to identify needs and areas for improvement. Decision support for partner selection: Assistance in choosing competent and reliable technology partners. Technology advisory: Guidance on application architecture, security, and scalability to ensure long-term viability. Results Achieved Development of an application supporting patients in chronic pain management, progressing toward recognition as a reimbursable DTx. Rigorous technical assessment and selection of strategic partners. Adherence to roadmap milestones , ensuring steady progress and alignment with expectations. This project highlights how Agaetis leverages its technological and strategic expertise to transform challenges into innovative, effective solutions — creating tangible value for clients in the healthcare sector.
Show More