"Sélectionner les algorithmes adéquats pour répondre à un problème donné”

🚀 SAÉ associées : Projet Réseau/Sécu (R4.B.11/12/AL4.B.01) + Stage Selltim

ACs visés :

S3 : AC22.01 (structures de données complexes)

S4 : AC22.02 (algorithmes complexes), AC22.03 (sécurisation des données et du code), AC22.04 (impact environnemental et sociétal)

▶︎ Analyse et réflexivité sur vos actions (à compléter max 1 page par question)

<aside> 💡 Démarches, prises de décisions, implication et autonomie

</aside>

Pour le projet réseau/sécu, la compétence Optimiser s'est manifestée principalement dans les choix techniques que nous avons faits pour structurer et sécuriser l'infrastructure. Face aux exigences du sujet, notre groupe a dû réfléchir à la meilleure architecture possible : nous avons choisi de centraliser le serveur DHCP sur un seul nœud plutôt que de multiplier les serveurs par VLAN, ce qui optimise la gestion des baux et réduit la complexité de configuration. Pour l'IDS/IPS, j'ai participé au choix de Suricata plutôt qu'une alternative comme Snort, en argumentant sur ses capacités de traitement multi-thread et sa double fonction détection/prévention simultanée via NFQUEUE.

En stage, cette logique d'optimisation s'est retrouvée dans mon travail sur le CRM Kenteleg V2 : face à des bugs de calculs sur la page comptabilité, j'ai analysé la logique métier existante avant de proposer des corrections, plutôt que de réécrire le code à l'aveugle. J'ai également appris et intégré la librairie CASL pour gérer les permissions de manière structurée, ce qui est une approche bien plus robuste qu'une gestion manuelle des droits au cas par cas.

<aside> 💡 Ressources choisies et combinées

</aside>

Pour le projet réseau/sécu, nous avons combiné plusieurs sources : les cours de R4.B.11 (réseau avancé) et R4.B.12 (sécurité des systèmes) pour les bases théoriques, la documentation officielle d'OpenWRT pour la configuration du routeur et des règles nftables, la documentation Suricata pour la mise en place des règles de détection et le mécanisme NFQUEUE, ainsi que les pages man de Bind9 et Apache pour les serveurs DNS et Web. Pour la partie audit, nous avons utilisé les documentations de Nmap et Metasploit Framework pour mener nos tests de pénétration de manière méthodique.

En stage, pour la librairie CASL, je me suis appuyée sur la documentation officielle (casl.js.org) présentée par Lucien, que j'ai ensuite approfondie de façon autonome pour comprendre son intégration dans un contexte React/Next.js. Pour les optimisations sur Kenteleg V2, je me suis appuyée sur la documentation TypeScript et les bonnes pratiques React pour garantir des composants maintenables et performants.

<aside> 💡 Justification de la maîtrise des apprentissages visés

</aside>

L'AC22.01 (structures de données complexes) est illustrée par l'architecture réseau multi-VLAN que nous avons conçue et configurée : la segmentation en trois sous-réseaux distincts (DSI 10.0.1.0/24, Admin 10.0.2.0/24, DMZ 10.0.3.0/24) avec un plan d'adressage raisonné constitue une structure de données réseau complexe, que nous avons traduite en configuration DHCP multi-scope sur un serveur centralisé.

L'AC22.02 (algorithmes complexes) se retrouve dans la politique de sécurité Suricata : nous avons défini des règles de détection basées sur l'analyse comportementale du trafic réseau (Ping Sweep ICMP, scan SYN TCP, bruteforce SSH, exploitation LFI HTTP), qui constituent des algorithmes de reconnaissance de patterns complexes appliqués en temps réel sur les flux réseau.

L'AC22.03 (sécurisation des données et du code) est la plus représentée : mise en place de HTTPS avec certificats SSL/TLS sur Apache, passage de FTP standard à FTPS, chiffrement des communications entre les VLANs, application du principe du moindre privilège dans les règles pare-feu. En stage, cela se retrouve dans la vérification de sécurité du système de dépôt de fichiers de Kenteleg dès la première semaine, et dans l'intégration de CASL pour sécuriser les accès par rôles dans le CRM.