Bonjour Matthieu, ravie de te rencontrer et d’échanger sur ton parcours ! Pour commencer, peux-tu décrire ton rôle actuel en tant que développeur fullstack, ayant un attrait particulier pour la cybersécurité ?
Bonjour, et merci de me recevoir. Pour être concis tout en étant complet, je suis responsable de la conception, du développement et de la maintenance d’applications web et mobiles. Mon travail implique de coder à la fois côté serveur (PHP, Python) et côté client (HTML, CSS, TWIG, Tailwind, JavaScript). Peut-être avez-vous déjà entendu ces mots ? Si ce n’est pas le cas, ils vous semblent peut-être quelque peu obscurs : ce sont des langages de programmation utilisés pour développer des logiciels, des applications web et d’autres systèmes informatiques.
Tu l’as dis, j’ai un intérêt marqué pour la cybersécurité, ce qui signifie que j'intègre des pratiques de sécurité dès le début du cycle de développement. Mes principales responsabilités incluent :
- L'analyse des exigences fonctionnelles et techniques des projets
- La conception et l'implémentation des architectures logicielles
- La réalisation de tests de sécurité et de performances
- La surveillance continue et la gestion des vulnérabilités
En utilisant ces moyens de manière correcte, on assure la sécurité des applications développées. De plus, j’utilise un framework (imagine toi une boîte à outils préfabriquée pour les développeurs de logiciels. Elle contient donc des outils prêts à l’emploi et des règles à suivre qui aident à construire des applications de manière efficace et organisée, sans avoir à tout créer depuis le début à chaque fois). Cela rend le processus de développement plus rapide, plus structuré et plus sécurisé).
C’est très technique ! Mais malgré que je sois novice en la matière, j’ai à présent une bonne compréhension de ton métier. Peux-tu me dire comment tu arrives à équilibrer les exigences fonctionnelles d’une application et ses impératifs de sécurité ?
C’est un point important. Pour cela :
- Je commence par une analyse approfondie des besoins afin de comprendre les exigences fonctionnelles de l’application.
- Par la suite, j’utilise des frameworks et des bibliothèques (ou librairie, ensemble de fonctions et de classes réutilisables qui simplifient et accélèrent le développement de logiciels), reconnus pour leur sécurité.
- J'effectue des revues de code régulières et des tests de pénétration pour identifier et corriger les vulnérabilités.
- Je mets en place des contrôles d'accès et une gestion des permissions.
- Pour finir, j’assure la sensibilisation de toute l’équipe et des clients au travers de formations continues sur les bonnes pratiques de sécurité.
« Les principales menaces viennent souvent de l'humain. Même si le système informatique est conçu correctement, sans faille connue, le risque 0 n'existe pas. »
Peux-tu décrire un projet où tu as dû prendre en compte des considérations de sécurité dès la conception ? Quelles technologies et pratiques as-tu utilisées pour assurer la sécurité de l’application ?
Un des projets notables où j'ai dû prendre en compte la sécurité dès la conception est le développement de la plateforme ENGECO. Voici les étapes et technologies que j’ai utilisé :
- Analyse de risques : identification des menaces potentielles dès le départ.
- Architecture sécurisée : séparation des rôles et minimisation des surfaces d'attaque.
- Utilisation de HTTPS (version sécurisée du protocole HTTP utilisé pour sécuriser les échanges de données sur Internet) pour toutes les communications.
- Validation et sanitation des entrées : pour prévenir les injections SQL et XSS.
- Chiffrement des données sensibles : utilisation de bibliothèques cryptographiques pour le chiffrement des données en transit et au repos.