Projet Secure Programming – AI-Powered Security Code Review
(Local LLMs)
Document d’explication
1. Objectif du Projet
Développer un système complet et entièrement local d’analyse de sécurité du code, basé sur des LLM
spécialisés en programmation (DeepSeek-Coder V2, Code Llama, Qwen3-Coder…), exécutés via
Ollama.
Le système devra détecter les vulnérabilités dans du code Python, Java et JavaScript, générer des
explications, proposer des correctifs et offrir une visualisation claire des résultats.
Le tout doit fonctionner offline, afin de garantir la confidentialité du code.
2. Concepts Clés à Maîtriser
• Analyse de sécurité du code (SAST + LLM-based inspection)
• Vulnérabilités courantes (OWASP, CWE)
• Fonctionnement des LLM spécialisés en code
• AST Parsing (Python, Java, JS)
• Prompt engineering pour la sécurité
• Intégration d’un modèle local via Ollama
• Code embeddings et analyse contextuelle du code
• Visualisation : diff, interface, reporting
3. Contenu Théorique à Mettre dans le PPT
3.1 Contexte & Motivation
• Pourquoi l’analyse de sécurité du code est cruciale
• Problèmes des solutions cloud : confidentialité du code, dépendance, coûts
• Avantages des LLM locaux pour la sécurité
3.2 Théorie : Comment un LLM comprend le code
• Embeddings
• Apprentissage de patterns de vulnérabilités
• Limites : hallucinations, contexte limité
3.3 Analyse statique + Analyse LLM
• AST (Abstract Syntax Tree) : rôle, structure, extraction
• SAST traditionnel vs approche LLM
3.4 Architecture Complète
• Serveur Ollama local
• Parser AST
• Analyseur LLM
• Moteur de détection
• Base des vulnérabilités (CWE/OWASP)
• Générateur de rapports
• Interface utilisateur (Streamlit ou Web)
3.5 Datasets
• CWE database
• OWASP Top 10 exemples
• Codes vulnérables GitHub
• Jeux de données synthétiques
3.6 Comparaisons
• Cloud LLM vs Local LLM
• SAST (Semgrep, Bandit) vs LLM
• Avantages, limites, performances
3.7 Démonstration à Préparer
• Analyse d’un fichier Python/Java/JS contenant des vulnérabilités
• Explication + fix proposé automatiquement
• Visualisation du diff (avant / après)
3.8 Perspectives Futures
• Fine-tuning spécialisé sécurité
• Intégration CI/CD
• Support multi-langages
4. Implémentation du Prototype (à développer)
Le prototype devra :
• Déployer un modèle local via Ollama
• Analyser des fichiers (Python/Java/JS)
• Extraire un AST (via tree-sitter/libcst/javalang/esprima)
• Identifier des vulnérabilités :
o SQLi
o XSS
o CSRF
o Insecure deserialization
o Command injection
o Hardcoded secrets
• Générer :
o une explication claire
o une recommandation
o un patch / diff
• Attribuer une sévérité (Low / Medium / High / Critical)
• Générer un rapport complet
• Optionnel : Interface simple (Streamlit, Flask UI ou React)
5. Résultats Attendus
• Système opérationnel de revue de code
• Mesures d’efficacité :
o précision de détection
o taux de faux positifs
o temps d’analyse
• Dashboard ou interface simple
• Documentation complète :
o architecture
o installation
o API
o exemples d’intégration
• Notebook Jupyter montrant différents tests
6. Technologies Recommandées
Backend
• FastAPI (recommandé)
• Django
• Flask
• Spring Boot (Java)
LLMs
• DeepSeek-Coder V2 (le meilleur pour ce projet)
• Code Llama 70B
• Qwen3-Coder
Analyse de code
• tree-sitter (multi-langages)
• libcst (Python)
• javalang (Java)
• esprima (JavaScript)
• Semgrep, Bandit, ESLint pour la comparaison
Outils LLM
• Ollama
• LangChain (pipelines)
Visualisation
• Streamlit
• Dash/Plotly
• CodeMirror / Monaco Editor pour afficher le code
DevOps
• Docker
• Git
• GitHub Actions (optionnel)
7. Répartition du Travail entre les 4 Membres (Détaillé et Structuré)
Membre 1 – Partie Théorique & PPT (Architecture + Concepts + Vulnérabilités)
Responsabilités :
• Collecte complète des informations pour la partie théorique
• Étude des concepts clés :
o Fonctionnement des LLMs spécialisés
o SAST vs LLM analysis
o AST parsing
o Types de vulnérabilités OWASP/CWE
• Préparation du PowerPoint :
o Contexte
o Théorie
o Architecture
o Comparaisons
o Avantages & limites
• Rédaction d’un résumé des références et sources utilisées
Livrables du Membre 1 :
• PPT complet
• Pages théoriques dans le rapport
• Documentation de l’architecture générale
Membre 2 – Parsing du Code & Extraction AST (Python/Java/JS)
Responsabilités :
• Choisir les bibliothèques de parsing (tree-sitter recommandé)
• Implémenter :
o Extraction AST pour chaque langage
o Normalisation du code
o Découpage par fonction/bloc pour analyse
• Préparer un module Python « code_preprocessor.py »
• Intégrer des détecteurs SAST :
o Semgrep
o Bandit
o ESLint
Livrables du Membre 2 :
• Module d’extraction AST fonctionnel
• Exemple d’AST affiché pour chaque langage
• Script de prétraitement du code
• Documentation du fonctionnement du parsing
Membre 3 – Intégration du LLM Local + Analyse de Sécurité
Responsabilités :
• Installer Ollama et importer un modèle (DeepSeek-Coder V2 recommandé)
• Créer les prompts spécialisés sécurité :
o Analyse du code
o Classification des vulnérabilités
o Explication du risque
o Suggestion de correction
o Génération d’un diff
• Implémenter :
o Module d’appel au LLM
o Algorithme de scoring de sévérité
o Comparaison SAST vs LLM
• Tester le modèle sur plusieurs échantillons de code vulnérable
Livrables du Membre 3 :
• Script Python « llm_security_analyzer.py »
• Prompts de sécurité optimisés
• Tests sur différents langages
• Table comparative LLM vs SAST
• Documentation sur l’intégration Ollama
Membre 4 – Interface, Reporting & Intégration Git
Responsabilités :
• Développer une interface (Streamlit ou Web) pour afficher :
o le code source
o les vulnérabilités détectées
o les explications
o un diff proposé (avant/après)
• Générer un PDF/HTML de rapport automatique
• Intégrer Git :
o Hook pre-commit
o Analyse automatique sur un dépôt
• Préparer une démo fluide pour la présentation
Livrables du Membre 4 :
• Interface graphique fonctionnelle
• Module « report_generator.py »
• Intégration Git opérationnelle
• Vidéo/démo ou scénario de présentation
• Documentation utilisateur
8. Planning de Travail (Suggestion sur 4 semaines)
Semaine 1
• Recherche, compréhension du projet
• Installation : Ollama, tree-sitter, environnement Python
• Définition de l’architecture générale
Semaine 2
• Parsing du code (Membre 2)
• Prompt engineering + tests LLM (Membre 3)
• Avancement PPT (Membre 1)
Semaine 3
• Développement du moteur d’analyse (Membre 3)
• Interface + Git integration (Membre 4)
• Consolidation AST + SAST (Membre 2)
Semaine 4
• Finalisation du prototype
• Tests et démonstration
• Finalisation PPT et rapport
• Préparation présentation
9. Livrables & Dates Importantes
• PPT + Code + Screenshots → à envoyer à :
[Link]@[Link]
• Deadline : 10 décembre 2025
• Présentations :
o Jeudi 11 décembre 2025
o Jeudi 18 décembre 2025