Sécurisation du code avec SECTIK
Sécurisation du code avec SECTIK
Université de la Manouba
SECTIK
Réalisé par :
KHANTOUCHE Hasna
Encadré par :
M. Sofiene Hamza
Organisme :
DefensyLab
Sofiene Hamza
1
Résumé — Le but de ce projet est de concevoir une extension pour Visual Studio Code,
appelée SECTIK, qui exploite les avancées récentes en intelligence artificielle et en sécurité
applicative afin d’auditer et d’améliorer la sécurité du code source. L’extension permet
de détecter dynamiquement les fichiers, de les analyser en utilisant l’API d’OpenAI,
et de vérifier leur conformité avec les normes de sécurité de l’OWASP. SECTIK inclut
également un tableau de bord dédié à l’affichage et au suivi des vulnérabilités détectées,
offrant aux utilisateurs une vue détaillée des problèmes de sécurité à résoudre. De plus,
SECTIK calcule et suit l’utilisation des jetons pour optimiser les coûts liés à l’utilisation
de l’API.
Mots Clés : Sécurité applicative, Extension VS Code, OWASP, API OpenAI, Calcul
des jetons, Audit de code, Intelligence artificielle.
2
Remerciements
”AI will change the world. It’s up to us to make sure it’s for the better—by
embedding security into every line of code, every API, every extension. ”
–Andrew Ng
Je tiens également à exprimer ma gratitude envers les membres du jury pour l’honneur
qu’ils me font en acceptant d’évaluer ce travail.
3
Table des matières
Introduction 8
1 Etude préalable 10
I Cadre général du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I.1 Contexte général . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
II Etude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
II.1 Etude des solutions existantes . . . . . . . . . . . . . . . . . . . . 10
II.1.1 Présentation des solutions existantes . . . . . . . . . . . 11
II.1.2 Critique des solutions existantes . . . . . . . . . . . . . . 11
II.2 Solution proposée et travail demandé . . . . . . . . . . . . . . . . 12
III Méthodologie adoptée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Conception 19
I Conception globale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
I.1 Architecture physique . . . . . . . . . . . . . . . . . . . . . . . . 19
I.2 Architecture logique . . . . . . . . . . . . . . . . . . . . . . . . . 20
II Conception détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
II.1 La partie Modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4
TABLE DES MATIÈRES
4 Réalisation 24
I Environnements de travail . . . . . . . . . . . . . . . . . . . . . . . . . . 24
I.1 Environnements de développement matériel . . . . . . . . . . . . 24
I.2 Environnements de développement logiciel . . . . . . . . . . . . . 24
II Implémentation et Développement . . . . . . . . . . . . . . . . . . . . . . 26
II.1 Développement de l’extension VS Code . . . . . . . . . . . . . . . 26
II.2 Développement de l’application web . . . . . . . . . . . . . . . . . 27
II.3 Architecture de communication . . . . . . . . . . . . . . . . . . . 28
III Résultats du Projet et Visualisations . . . . . . . . . . . . . . . . . . . . 29
IV Chronogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Bibliographie 34
Netographie 35
5
Table des figures
6
Liste des abréviations
7
Introduction générale
L ’évolution rapide des technologies web et la complexité croissante des systèmes logi-
ciels ont accentué les défis en matière de sécurité du code. Dans ce contexte, ga-
rantir la conformité aux meilleures pratiques de sécurité devient crucial pour prévenir les
vulnérabilités et les failles dans les applications. Le projet SECTIK vise à répondre à cette
problématique en développant non seulement une extension pour la révision de code dans
Visual Studio Code, mais aussi une interface frontend pour la gestion des vulnérabilités
détectées. Cette interface, sous forme d’un tableau de bord, permet de suivre en temps
réel les vulnérabilités et les corrections appliquées par les utilisateurs, tout en intégrant
les services d’intelligence artificielle de l’API OpenAI et les checklists de sécurité OWASP.
Ce rapport est structuré en quatre chapitres principaux qui retracent les étapes clés
du projet SECTIK :
Le premier chapitre introduit le cadre général du projet, les défis liés à la sécurité
du code, et les solutions existantes. J’y présente SECTIK, qui se distingue par une ap-
proche intégrée associant révision de code, interface utilisateur web, et optimisation des
ressources à travers l’utilisation de l’API OpenAI.
Le deuxième chapitre se concentre sur l’analyse des besoins fonctionnels et non fonc-
tionnels. Cette analyse couvre non seulement les exigences de l’extension Visual Studio
Code, mais également celles du développement de l’interface web permettant une visua-
lisation claire et interactive des vulnérabilités détectées.
Le quatrième chapitre est dédié aux résultats obtenus, en mettant en avant comment
SECTIK aide les développeurs à identifier et corriger les failles de sécurité à travers
une plateforme unifiée, combinant une extension et une interface web réactive. J’aborde
également les aspects d’optimisation des coûts en suivant l’utilisation des jetons liés à
l’API.
Enfin, je conclus avec une récapitulation des réalisations du projet SECTIK, en met-
tant en lumière les défis techniques surmontés et les compétences acquises. J’aborde
8
Liste des abréviations
9
Chapitre 1
Etude préalable
I.2 Problématique
La révision de code pour la sécurité est une tâche complexe et souvent chronophage pour
les développeurs et les équipes de sécurité. Les outils de révision de code traditionnels
peuvent ne pas toujours offrir une couverture complète des normes de sécurité ou s’adapter
rapidement aux nouvelles menaces et vulnérabilités. De plus, l’intégration des checklists
de sécurité d’OWASP dans le processus de révision peut être laborieuse et nécessite
souvent une expertise spécialisée. Le manque d’automatisation dans cette analyse peut
entraı̂ner des lacunes dans la détection des failles de sécurité. Pour surmonter ces défis,
SECTIK propose une solution innovante qui automatise l’évaluation du code en utilisant
l’API OpenAI, facilitant ainsi la conformité avec les standards de sécurité tout en offrant
des recommandations adaptées pour améliorer la sécurité du code.
II Etude de l’existant
Cette section examine les solutions déjà présentes sur le marché qui répondent à des
besoins similaires.
10
CHAPITRE 1. ETUDE PRÉALABLE
SonarQube [https://www.sonarqube.org/] :
• SonarQube fournit des analyses de qualité de code, y compris la détection de vulnérabilités
et de failles de sécurité en se basant sur des règles prédéfinies.
• Il supporte de nombreux langages de programmation et offre une intégration avec
divers outils de développement pour une analyse continue.
Checkmarx [https://www.checkmarx.com/] :
• Checkmarx propose une solution de scan de code source pour détecter les vulnérabilités
de sécurité avant la mise en production.
• Il utilise des techniques d’analyse statique pour identifier les failles de sécurité à
différents niveaux du code.
CodeQL [https://codeql.github.com/] :
• CodeQL permet d’effectuer des requêtes de sécurité sur le code source pour identifier
des patterns de vulnérabilités.
• Il est intégré avec GitHub pour offrir des analyses de sécurité sur les projets open
source et privés.
SonarQube :
• Couverture limitée des checklists de sécurité : SonarQube se concentre sur des règles
de qualité de code généralistes et peut ne pas toujours couvrir spécifiquement les
checklists de sécurité telles que celles proposées par OWASP.
• Nécessité de configurations personnalisées : Pour obtenir une couverture complète,
une configuration et une personnalisation peuvent être nécessaires, ce qui peut com-
plexifier son utilisation.
Checkmarx :
11
CHAPITRE 1. ETUDE PRÉALABLE
• Temps de scan : Les scans peuvent être longs, surtout sur des projets de grande
envergure, ce qui peut ralentir le cycle de développement.
• Coût élevé : Checkmarx peut être coûteux, particulièrement pour les petites entre-
prises ou les projets à budget limité.
CodeQL :
• Courbe d’apprentissage : CodeQL nécessite une compréhension approfondie de son
langage de requêtes pour écrire des requêtes efficaces.
• Dépendance à GitHub : CodeQL est fortement intégré à GitHub, ce qui peut res-
treindre son utilisation dans des environnements de développement non-GitHub.
Après avoir examiné les solutions existantes, nous avons identifié le besoin d’une ap-
proche plus intégrée et automatisée pour la révision de code axée sur la sécurité. La
solution proposée, SECTIK, répond à cette exigence en utilisant l’API OpenAI pour
analyser le code en fonction des checklists de sécurité d’OWASP tout en fournissant un
tableau de bord interactif pour la gestion des vulnérabilités.
Notre solution vise à améliorer la sécurité du code grâce aux fonctionnalités suivantes :
12
CHAPITRE 1. ETUDE PRÉALABLE
13
CHAPITRE 1. ETUDE PRÉALABLE
Conclusion
Ce chapitre présente la méthodologie adoptée pour le projet SECTIK, en mettant
en évidence les différentes étapes nécessaires pour le développement et l’intégration de
l’extension.
14
Chapitre 2
L ’application SECTIK que nous développons doit répondre aux exigences des différents
utilisateurs impliqués dans le processus de révision de code et de sécurité. Pour ce
faire, il est essentiel de réaliser une analyse approfondie des besoins des acteurs concernés.
Le chapitre actuel se divise en deux parties principales : d’abord, nous présentons les
besoins fonctionnels et non fonctionnels des différents acteurs. Ensuite, nous spécifions
ces besoins à l’aide de diagrammes de cas d’utilisation.
15
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS
Fonctionnalités de l’Extension :
• Sélection de Fichiers : L’extension doit permettre à l’utilisateur de sélectionner des
fichiers pour l’analyse.
• Suivi des Tokens : Suivre et gérer l’utilisation des tokens pour optimiser les coûts.
Intégration et Communication :
• Communication avec le Serveur : L’extension doit être capable de communiquer avec
le serveur pour l’envoi des demandes d’analyse et la réception des résultats.
• Intégration des Composants : Assurer une intégration fluide entre l’extension VS
Code, l’API OpenAI, et la web app.
Performance et Réactivité
• Temps de Réponse : L’extension doit fournir des résultats d’audit rapidement pour
ne pas impacter la productivité de l’utilisateur.
• Scalabilité : Le système doit être capable de gérer un volume croissant de code et de
vulnérabilités sans dégradation significative des performances.
Sécurité
• Protection des Données : Les données sensibles et les résultats d’audit doivent être
protégés contre les accès non autorisés.
• Conformité aux Normes : L’extension et la web app doivent respecter les normes de
sécurité en vigueur, notamment en ce qui concerne la protection des informations
des utilisateurs.
Facilité d’utilisation
16
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS
• L’application doit offrir une interface simple et intuitive pour permettre aux utilisa-
teurs de tirer parti des fonctionnalités
17
CHAPITRE 2. ANALYSE ET SPÉCIFICATION DES BESOINS
Conclusion
Le chapitre ”Analyse et Spécification des Besoins” a clarifié les exigences essentielles
du projet SECTIK, en détaillant les fonctionnalités nécessaires pour l’audit de code,
la gestion des vulnérabilités, et l’intégration des outils. Dans le prochain chapitre, on
débutera la section de conception.
18
Chapitre 3
Conception
C e détaillée
chapitre se penchera sur l’élément crucial du développement, à savoir la définition
de l’architecture et des composants du système. Nous commencerons par
une vue d’ensemble de l’architecture intégrée, englobant l’extension VS Code, la web app,
et l’API OpenAI. Ensuite, nous explorerons en détail chaque composant, en utilisant des
notations UML pour décrire les diagrammes de classes et de séquences. Cette approche
nous permettra de visualiser et de spécifier les interactions entre les différentes parties du
projet et d’assurer une conception cohérente et fonctionnelle.
I Conception globale
I.1 Architecture physique
L’architecture quatre tiers a été choisie pour la conception de cette application. Elle
vise à différencier quatre niveaux logiciels au sein d’une application, en les présentant
comme un empilement de couches distinctes dont le rôle est bien défini :
Couche de Présentation
Ce niveau comprend l’extension VS Code et la web app. Il est responsable de l’interface
utilisateur, permettant aux utilisateurs d’interagir avec l’application, de sélectionner des
fichiers, de lancer des audits de code, et de consulter les résultats.
Couche de Services
Cette couche inclut l’API OpenAI, qui est utilisée pour l’analyse du code et la détection
des vulnérabilités. Elle fournit les services nécessaires pour effectuer des audits automa-
tisés et appliquer des checklists de sécurité.
Couche de Données
La base de données représente ce niveau, stockant les informations relatives aux fichiers
19
CHAPITRE 3. CONCEPTION
analysés, aux résultats des audits, et aux statistiques d’utilisation des tokens. Cette couche
assure la persistance des données et leur gestion efficace.
Service de Serveur :
• Agit comme le cœur du système, orchestrant les interactions entre les différents
services. Il gère les demandes des utilisateurs, interagit avec l’API OpenAI pour
l’analyse de code, et communique avec la base de données pour stocker et récupérer
les informations.
API OpenAI :
• Intégrée comme un service externe, elle effectue l’analyse de code et détecte les
vulnérabilités. Ce service est indépendant mais fournit des résultats au service de
20
CHAPITRE 3. CONCEPTION
traitement.
II Conception détaillée
Dans cette section, nous allons commencer à présenter les spécificités conceptuelles du
projet SECTIK.
21
CHAPITRE 3. CONCEPTION
La figure 3.3 ci-dessous représente le scénario qui illustre comment l’extension VS Code
détecte les fichiers, les envoie à la web app, qui à son tour les transmet à l’API OpenAI
pour l’analyse.
Figure 3.3 – Diagramme de séquences de détection et envoi des fichiers pour analyse.
L’extension VS Code commence par détecter les fichiers de code à analyser, en utili-
sant Linguist pour identifier le langage de chaque fichier et Tree-sitter pour segmenter le
code en morceaux plus petits. Une fois ces fichiers prêts, ils sont envoyés à l’application
web, qui joue un rôle central en recevant les fichiers et en les préparant pour l’analyse.
L’application web transmet ensuite ces fichiers à l’API OpenAI pour une analyse appro-
fondie. Après traitement, l’API renvoie les résultats d’analyse à l’application web, où ils
sont filtrés et présentés de manière structurée, incluant les vulnérabilités détectées, leur
statut, leur priorité, ainsi que les recommandations pour les résoudre. Enfin, ces résultats
sont renvoyés à l’extension VS Code, permettant ainsi à l’utilisateur de visualiser les
informations directement dans l’extension.
La figure 3.4 ci-dessous représente le scénario qui illustre comment l’utilisateur consulte
les résultats d’analyse des vulnérabilités via la web app et marque certaines vulnérabilités
comme résolues.
Après que l’application web ait reçu et affiché les résultats d’analyse des vulnérabilités
détectées par l’API OpenAI, l’utilisateur peut consulter ces résultats directement via le ta-
bleau de bord de l’application web. Chaque vulnérabilité est listée avec des détails tels que
22
CHAPITRE 3. CONCEPTION
Figure 3.4 – Diagramme de séquences de Consultation des Résultats et Marquage des Vulnérabilités
comme Résolues.
Conclusion
Dans ce chapitre, nous avons présenté notre conception de l’application. Tout d’abord,
nous avons exposé une perspective globale de l’organisation de notre système. La concep-
tion de l’application a ensuite été exposée en détail à l’aide des diagrammes UML. Par
la suite, nous pouvons entamer la phase de réalisation.
23
Chapitre 4
Réalisation
I Environnements de travail
Durant la création de ce projet, on a employé des équipements et des logiciels spécifiques.
Poste de travail :
- Système d’exploitation : Windows 11
- Disque dur : 1 To
- Ram : 16 Go
- Processeur : 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz 2.42 GHz
React :
24
CHAPITRE 4. RÉALISATION
Flask :
• Framework léger en Python pour le développement du backend.
• Utilisé pour recevoir les requêtes de l’application web et retourner les résultats
d’analyse de code.
♦ Outils et Langages
TypeScript :
• Langage utilisé pour le développement de l’extension VS Code.
Svelte :
• Utilisé pour le développement de l’interface utilisateur dans l’extension VS Code.
♦ Bibliothèques utilisées
Axios :
• Bibliothèque JavaScript pour effectuer des requêtes HTTP.
Tree-sitter :
• Utilisé pour le découpage et l’analyse du code source dans l’extension VS Code.
25
CHAPITRE 4. RÉALISATION
Linguist :
• Utilisé pour détecter les types de fichiers et sélectionner les fichiers de code à
analyser.
Tiktokenizer :
• Utilisé pour le découpage et le comptage des tokens dans le code pour optimiser
les requêtes à l’API OpenAI.
OpenAI :
• Bibliothèque pour intégrer l’API OpenAI et effectuer des analyses de code.
JSON :
• Utilisé pour la gestion et le parsing des données échangées entre les composants.
II Implémentation et Développement
II.1 Développement de l’extension VS Code
Le développement de l’extension VS Code commence par la configuration des scripts
dans extension.ts. Cette configuration inclut la définition des commandes et des inter-
actions utilisateur, permettant d’exécuter les actions de manière fluide et intuitive. La
classe SidebarProvider.ts joue un rôle central dans la gestion de la communication entre
l’extension et la webapp. Elle est responsable de l’envoi des fichiers détectés et segmentés
pour analyse, ainsi que de la réception des résultats d’analyse depuis la webapp.
L’affichage des résultats d’analyse dans l’extension se fait via sidebar.svelte, qui génère
une interface utilisateur interactive. Cette interface permet non seulement de présenter
les résultats de l’analyse de manière claire et structurée, mais offre également à l’utilisa-
teur la possibilité d’interagir directement avec les données.
Le lien entre sidebar.svelte et SidebarProvider.ts permet de créer une expérience utilisa-
teur fluide, où les résultats sont mis à jour en temps réel dans l’extension, garantissant
ainsi une interaction continue entre l’utilisateur et l’outil d’analyse.
L’extension utilise Linguist pour détecter les fichiers de code et identifier précisément
le langage de chaque fichier. Cette détection est cruciale pour garantir que chaque fichier
soit traité et analysé en fonction de ses spécificités linguistiques, assurant ainsi une ana-
lyse plus précise et pertinente. En effet, chaque langage de programmation possède des
structures syntaxiques et sémantiques uniques, et Linguist permet de classifier automa-
tiquement ces fichiers, facilitant ainsi le processus d’analyse.
Une fois les fichiers détectés et classifiés, l’utilisateur a la possibilité de sélectionner les
26
CHAPITRE 4. RÉALISATION
fichiers qu’il souhaite analyser. Cette étape est particulièrement importante dans le cas
de projets contenant un grand nombre de fichiers, car l’utilisateur peut choisir de ne sou-
mettre à l’analyse que les fichiers les plus pertinents, réduisant ainsi les coûts en termes
de jetons lors de l’interaction avec l’API d’OpenAI.
En termes de techniques, l’extension repose fortement sur l’API VS Code, qui offre plu-
sieurs fonctionnalités indispensables pour la gestion des fichiers et des interactions utili-
sateur. Grâce à cette API, il est possible d’implémenter des commandes personnalisées,
de gérer dynamiquement les événements de l’éditeur, et d’interagir avec l’arborescence
des fichiers. Par exemple, l’API permet d’écouter les modifications de fichiers, d’afficher
des résultats dans des panneaux personnalisés, et de créer des interfaces interactives à
travers les webviews. L’intégration avec l’API assure également une expérience utilisateur
fluide et une flexibilité accrue dans l’analyse en temps réel du code.
Chaque vulnérabilité détectée peut être marquée comme résolue une fois corrigée dans le
code. Les utilisateurs ont la possibilité de cocher une vulnérabilité comme résolue direc-
tement depuis le tableau de bord. Cette action met automatiquement à jour le statut de
la vulnérabilité, ce qui est ensuite communiqué au backend et envoyé à l’extension VS
Code pour synchronisation. Cette interaction permet à l’extension de mettre à jour l’état
des fichiers analysés et de confirmer que les correctifs ont été appliqués.
27
CHAPITRE 4. RÉALISATION
L’application web ne se limite pas à la réception des résultats d’analyse, elle joue également
un rôle actif en renvoyant des informations à l’extension. Lorsqu’une vulnérabilité est
marquée comme résolue sur l’application web, cette mise à jour est renvoyée à l’extension
VS Code, assurant ainsi une synchronisation bidirectionnelle. Cela permet aux utilisa-
teurs de gérer les vulnérabilités de manière centralisée depuis l’interface web, tout en
ayant une vue à jour dans l’extension.
Axios est utilisé pour la communication entre l’application web et le serveur backend.
Les résultats d’analyse sont reçus du backend, traités, et affichés sur le tableau de bord.
Les recommandations générées par OpenAI sont également intégrées dans l’interface uti-
lisateur pour offrir des conseils contextuels sur la manière de corriger les vulnérabilités.
Grâce à ces recommandations, les développeurs peuvent comprendre non seulement la na-
ture des vulnérabilités détectées, mais aussi les étapes concrètes à suivre pour y remédier
efficacement.
Lorsque l’utilisateur sélectionne des fichiers à analyser depuis l’extension VS Code, ceux-
ci sont envoyés directement à l’application web, et non au backend, pour des raisons de
sécurité. En centralisant cette interaction via l’application web, les informations sensibles
ne sont pas exposées directement au backend, réduisant ainsi le risque de compromission.
Cette approche permet de limiter les points d’entrée potentiels pour des attaques.
Une fois que l’application web reçoit les fichiers, elle les traite en interne et se charge de
les transmettre au serveur backend, qui envoie ensuite les fichiers à l’API OpenAI pour
analyse. Cette double étape assure que le backend n’a pas directement accès aux fichiers
envoyés par l’utilisateur, ce qui renforce la sécurité du système.
Après l’analyse par l’API OpenAI, les résultats sont filtrés par le backend et envoyés
à l’application web, qui affiche les vulnérabilités, leur statut, leur priorité, et les recom-
mandations d’OpenAI. L’application web permet également de marquer une vulnérabilité
comme résolue une fois corrigée, et met à jour ce statut dans l’extension VS Code pour
une visualisation en temps réel.
Ce flux de communication bidirectionnel garantit que l’extension VS Code et l’applica-
tion web sont synchronisées en temps réel, offrant une expérience utilisateur cohérente.
Tandis que l’extension se concentre sur l’affichage local des résultats d’analyse et des
recommandations dans l’environnement de développement, l’application web fournit une
vue d’ensemble globale avec un suivi des vulnérabilités.
Cette séparation des rôles et des flux de données est essentielle pour assurer la sécurité du
système tout en facilitant une interaction fluide entre les différents composants. Le choix
de faire transiter les fichiers par l’application web, plutôt que de les envoyer directement
28
CHAPITRE 4. RÉALISATION
au backend, limite les risques de sécurité liés à la gestion des fichiers sensibles.
Dans le volet de gauche, l’utilisateur peut sélectionner des fichiers à analyser (comme
main.js, auth.js, admin.js, et readme.md) en cochant les cases correspondantes. L’exten-
sion offre également un aperçu de l’état des vérifications de sécurité via l’API OWASP,
avec des indicateurs de succès ou d’échec (ici, 12 vérifications réussies et 10 échouées).
Parmi les vulnérabilités détectées, on peut observer la mention de failles critiques comme
l’authentification défaillante (Broken authentication) et la consommation de ressources
non restreinte (Unrestricted resource consumption), indiquées par des icônes rouges si-
gnalant une priorité élevée.
Enfin, la section ”Tokens” située en bas de l’interface permet de suivre l’utilisation des
jetons, une fonctionnalité essentielle pour contrôler les coûts liés à l’utilisation des APIs
29
CHAPITRE 4. RÉALISATION
comme celle d’OpenAI. Ici, on voit qu’un total de 1000 jetons est disponible, avec 500
déjà utilisés et 500 restants.
La figure 4.2 ci-dessous représente l’interface utilisateur de l’application web qui suit
les vulnérabilités et leur statut.
Ce tableau de bord offre un aperçu clair et détaillé de l’état de sécurité d’un projet,
en mettant en avant les vulnérabilités critiques, élevées, moyennes et faibles. Voici les
éléments clés :
• Le graphique circulaire en haut à gauche indique le nombre total de vulnérabilités
détectées, ici 7, réparties par niveau de gravité : 2 critiques, 3 élevées, 1 moyenne,
et 1 faible.
• Juste à côté, des indicateurs colorés permettent d’identifier rapidement les catégories
de vulnérabilités par leur gravité, de la plus critique à la moins dangereuse.
• La partie centrale liste les vulnérabilités spécifiques. On peut voir deux vulnérabilités
détectées : Brute Force Attack et Unrestricted File Upload
• Une fonctionnalité de filtre permet de trier les vulnérabilités par statut : Résolu,
Ouvert, ou Accepté. Ici, les deux vulnérabilités sont marquées comme ouvertes.
• Une option d’exportation est disponible, pour générer des rapports détaillés.
30
CHAPITRE 4. RÉALISATION
Cette interface met clairement en lumière les vulnérabilités critiques et offre des recom-
mandations pratiques pour chaque problème détecté.
Les cases à cocher situées à gauche de chaque ligne permettent à l’utilisateur de choisir
les vulnérabilités qu’il souhaite gérer en groupe. Cette fonctionnalité améliore l’efficacité
en permettant de sélectionner plusieurs éléments pour effectuer des actions en masse,
comme les modifications ou les résolutions.
Une fois les vulnérabilités choisies, l’utilisateur peut décider de leur attribuer un nou-
veau statut, facilitant ainsi la gestion des risques. Cette fonctionnalité assure une bonne
31
CHAPITRE 4. RÉALISATION
IV Chronogramme
Ce projet a été effectuée sur une durée de 2 mois. Le diagramme de Gantt réel de la
figure 4.3 ci-dessous illustre la répartition des tâches tout au long de la réalisation du
projet.
Conclusion
L’ensemble du travail effectué lors de ce projet de conception et de développement
est résumé dans ce chapitre, ainsi que les résultats obtenus. En effet, on a présenté les
infrastructures matérielles et logicielles sur lesquelles on a l’application. Par la suite, on
a présenté quelques interfaces de l’application, puis on a conclu ce chapitre en exposant
le calendrier des tâches.
32
Conclusion générale et perspectives
C e spécialisée
stage d’immersion en entreprise a été réalisé au sein de DefensyLab, une société
dans la cybersécurité et le développement de solutions avancées pour
la protection des systèmes informatiques. Il s’inscrit dans le cadre de la création et de
la mise en œuvre du projet SECTIK, une plateforme innovante dédiée à l’audit de code
automatisé et à la gestion des vulnérabilités.
Avant de débuter ce projet, je pensais que les objectifs définis seraient atteints de
manière fluide et directe. Cependant, au fur et à mesure de la progression du projet, j’ai
pris conscience des défis complexes auxquels j’étais confrontée. La création d’une exten-
sion VS Code intégrée à une application web et à un backend utilisant l’API OpenAI a
révélé des obstacles imprévus. La principale difficulté résidait dans la synchronisation des
interactions entre les différents composants du système et l’optimisation des performances
pour une utilisation en temps réel.
Ce projet a été extrêmement enrichissant, tant sur le plan professionnel que person-
nel. Il m’a permis d’acquérir une expérience précieuse en développement logiciel, en cy-
bersécurité et en intégration de systèmes complexes. J’ai également appris à gérer des défis
techniques, à travailler de manière autonome, et à collaborer efficacement avec une équipe
d’experts. L’encadrement et le soutien reçus au sein de DefensyLab ont été déterminants
dans la réussite de ce projet.
33
Bibliographie
34
Netographie
35