Skip to content

Islah88/NexusGuard-AI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛡️ NexusGuard AI

Context-Aware SecDevOps Agent powered by Knowledge Graph & Gemini AI

Python FastAPI Neo4j Gemini Next.js

Un agent IA autonome qui ne scanne pas le code avec des règles statiques.
Il comprend le contexte métier de l'entreprise pour détecter les failles et générer des patchs.


🎯 Le Problème

Les outils classiques de sécurité (SonarQube, Snyk, etc.) analysent le code de manière statique : ils cherchent des patterns connus de vulnérabilités. Mais ils ne savent pas :

  • Quel ticket Jira ce code est censé implémenter
  • Quelles exigences de sécurité ont été définies pour ce ticket
  • Qui est le développeur et sur quels domaines il a de l'expertise
  • Quelles politiques de conformité (OWASP, PCI-DSS) s'appliquent

NexusGuard AI résout ce problème en connectant un Graphe de Connaissances (Neo4j) à un LLM (Gemini) pour donner un contexte humain et réglementaire à chaque analyse.


🏗️ Architecture

┌─────────────────┐     POST /webhook/pr     ┌──────────────────┐
│   Next.js UI    │ ──────────────────────── │   FastAPI API    │
│   (Port 3000)   │                          │   (Port 8000)    │
└─────────────────┘                          └────────┬─────────┘
                                                      │
                                          ┌───────────┴───────────┐
                                          │                       │
                                    Cypher Query            Prompt + Context
                                          │                       │
                                          ▼                       ▼
                                   ┌─────────────┐      ┌──────────────┐
                                   │   Neo4j     │      │  Gemini 2.5  │
                                   │  Graph DB   │      │    Flash     │
                                   │ (Port 7687) │      │  (Google AI) │
                                   └─────────────┘      └──────────────┘

🧠 Le Knowledge Graph

Le graphe modélise l'écosystème socio-technique d'une équipe de développement :

Type de Nœud Exemples Propriétés
Developer (5) Mhoma EL ISLAH, Bob Code, Eve Lead role, team
Ticket (6) NEX-101 "Implement JWT Auth" security_requirements, priority
File (8) auth.py, payment.py, Dockerfile sensitivity, path
Vulnerability (4) SQL Injection, Broken Auth severity, cwe
Policy (3) OWASP Top 10, PCI-DSS v4 version, scope

Relations clés (34 au total)

Mhoma EL ISLAH ──AUTHORED──→ auth.py ──IMPLEMENTS──→ NEX-101 ("Must use HS256 + 15m expiry")
                       │                        │
                       └──EXPOSED_TO──→ Broken Auth (CWE-287)
                                                 └──MUST_COMPLY──→ OWASP Top 10

🚀 Démonstration

NexusGuard Démo

📸 Démonstration de l'agent IA analysant le code en fonction du graphe de connaissances.

Scénario : Mhoma EL ISLAH soumet du code vulnérable

Mhoma EL ISLAH soumet une Pull Request avec ce code pour auth.py :

def generate_token(user_id):
    import time
    token = f"user_{user_id}_{time.time()}"
    return token

Ce que fait NexusGuard AI :

  1. Intercepte le webhook de la PR
  2. Interroge le graphe : trouve que auth.py implémente le ticket NEX-101 qui exige "HS256 + 15min expiry"
  3. Analyse avec Gemini : détecte 3 failles critiques
  4. Génère un patch automatiquement :
import jwt
from datetime import datetime, timedelta

SECRET_KEY = "load-from-env-variable"  # NEVER hardcode

def generate_token(user_id: str) -> str:
    payload = {
        "user_id": user_id,
        "exp": datetime.utcnow() + timedelta(minutes=15),
        "iat": datetime.utcnow()
    }
    return jwt.encode(payload, SECRET_KEY, algorithm="HS256")

Rapport d'audit :

{
  "is_secure": false,
  "vulnerability_found": "Le code ne respecte PAS les exigences du ticket NEX-101 :
    1. Absence de JWT
    2. Absence de signature HS256
    3. Absence d'expiration 15 minutes",
  "patched_code": "..."
}

🛠️ Installation

Prérequis

  • Python 3.13+
  • Docker Desktop
  • Node.js 18+
  • Clé API Google Gemini (obtenir ici)

1. Cloner le projet

git clone https://github.com/Islah88/NexusGuard-AI.git
cd NexusGuard-AI

2. Lancer Neo4j (Docker)

docker run -d --name neo4j-nexus \
  -p 7474:7474 -p 7687:7687 \
  -e NEO4J_AUTH=neo4j/nexusguard2026 \
  neo4j:latest

3. Backend (FastAPI)

python -m venv .venv
.venv\Scripts\activate  # Windows
pip install fastapi uvicorn neo4j python-dotenv google-genai

Créer un fichier .env :

NEO4J_URI=bolt://localhost:7687
NEO4J_USER=neo4j
NEO4J_PASSWORD=nexusguard2026
GEMINI_API_KEY=your_key_here
python ingestion.py    # Peupler le graphe
uvicorn main:app --reload --port 8000

4. Frontend (Next.js)

cd frontend
npm install
npm run dev

Ouvrir http://localhost:3000


📂 Structure du Projet

NexusGuard-AI/
├── agent.py            # Moteur Graph RAG + Analyse SecDevOps
├── database.py         # Singleton de connexion Neo4j
├── ingestion.py        # Script de peuplement du graphe (26 nœuds)
├── main.py             # API FastAPI (CORS, webhooks, graph data)
├── test_webhook.py     # Script de test CLI
├── .env                # Configuration (clés API)
└── frontend/           # Dashboard Next.js + TailwindCSS
    ├── src/app/page.tsx
    └── src/components/GraphVisualization.tsx

🔑 Technologies Clés

Domaine Technologie Rôle
Graph Database Neo4j Stockage des relations socio-techniques
AI / LLM Google Gemini 2.5 Flash Analyse sémantique + génération de patchs
Backend FastAPI (Python) API REST, webhooks, orchestration
Frontend Next.js 16 + TailwindCSS Dashboard interactif
Visualization react-force-graph-2d Rendu du graphe en temps réel
Infrastructure Docker Conteneurisation de Neo4j

👤 Auteur

Mhoma EL ISLAHDéveloppeur SaaS IA & Expert SecDevOps

  • 🎓 Bachelor Cybersécurité — ESAIP / Le Havre
  • 🎓 Master 2 MIASHS
  • 💡 Passionné par la création de plateformes intelligentes (Agentic IA) et la sécurisation des infrastructures cloud.
  • 🔗 Portfolio | LinkedIn | GitHub

📄 Licence

Ce projet est sous licence MIT — voir le fichier LICENSE pour plus de détails.


Built with 🧠 Knowledge Graphs & 🤖 Gemini AI

About

Agent SecDevOps autonome avec Knowledge Graph (Neo4j) et Graph RAG — Détection de vulnérabilités contextuelle par Gemini AI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors