# Cahier des charges — BugForge (AI Bug Hunter)

> **Nom :** BugForge  
> **Concept d’origine :** AI Bug Hunter  
> **Date :** 27 juillet 2026  
> **Statut :** infra OK — CDC validé, dev par l’agent LXC  
> **Version document :** 0.3  
> **Domaine :** `https://bugforge.watys.fr/`

**Autres noms envisagés :** VAPentest · VulnAI · SecAuto · PolyglotSec  
**bugforge.fr** : semble libre (DNS) — optionnel plus tard.

---

## 1. En une phrase

**BugForge** est un agent IA qui **penteste une application web** (exploration, formulaires, injections, etc.), produit un **rapport** avec preuves (captures / PoC, **PDF**) et **suggère des correctifs**.

---

## 2. Objectifs

- Proposer une alternative abordable au pentest humain (PME, startups, agences)
- Automatiser des tests de sécurité récurrents (CI/CD plus tard)
- À terme : failles de logique métier (V2+), pas seulement des patterns connus
- Exploiter aussi les **failles connues (CVE)** liées aux versions des logiciels détectés

---

## 3. Cibles

- PME / startups avec une app web  
- SaaS B2B (exigences sécu clients)  
- Agences web (tests avant livraison)  
- E-commerces  

---

## 4. Qui développe

| Rôle | Qui |
|------|-----|
| Spec / Lab | Cahier des charges ici |
| **Code** | **Agent Cursor sur le LXC** (`/var/www/app`) |
| Infra | LXC + reverse proxy Watys |

---

## 5. Fonctionnalités

### V1 (MVP) — OWASP Top 10 basique + autonomie + CVE connues

- Exploration autonome : endpoints, pages, formulaires  
- Auth cible : formulaire, OAuth, cookie  
- **Liste blanche de domaines** : seuls les hôtes autorisés sont scannés (ex. tout `*.mondomaine.fr` + `mondomaine.fr`) — permet de couvrir un domaine entier sans sortir du périmètre  
- **Profils de scan** : **rapide** ou **complet** (définis ci-dessous)  
- **Niveau d’agressivité** au choix (prudent / standard / agressif) — voir §5.1  
- **Fingerprinting** : détecter techno / apps / versions (CMS, frameworks, libs JS, serveur web, etc.)  
- **CVE sur versions** : croiser avec bases de failles connues ; tenter l’exploitation automatique selon le niveau d’agressivité choisi  
- Tests : XSS, SQLi, CSRF, IDOR, SSTI, path traversal, open redirect  
- Rapport web + **export PDF** : URL, paramètre, payload, capture/vidéo, code PoC (curl/Python), sévérité CVSS, CVE si applicable  
- Suggestion de correctif par faille  

### 5.1 Niveaux d’agressivité (au choix par scan)

L’utilisateur **choisit** le niveau avant de lancer le scan. L’autorisation écrite reste obligatoire dans tous les cas.

| Niveau | Usage typique | Ce que l’agent a le droit de faire |
|--------|----------------|-------------------------------------|
| **Prudent** (défaut) | Prod live, site fragile | Détection + PoC **léger** (preuve minimale). Pas de DoS, pas de wipe, payloads doux, peu de requêtes agressives |
| **Standard** | Staging / préprod | PoCs plus poussés, plus de variantes d’injection, CVE « sûres » à impact limité |
| **Agressif** | Avant mise en prod, lab, environnement jetable | Tests plus lourds (fuzzing plus large, exploits CVE plus complets, charge plus haute). **Toujours interdit** : destruction volontaire de données, ransomware, wipe disque. DoS « stress » uniquement si explicitement coché en plus |

Règle : même en **agressif**, pas d’actions irréversibles de sabotage. L’idée = tester fort, pas détruire.

### 5.2 Profils de scan : rapide vs complet

| | **Rapide** | **Complet** |
|---|------------|-------------|
| **Objectif durée** | &lt; 15 min | &lt; 2 h |
| **Exploration** | Page d’entrée + liens proches (profondeur limitée, ex. 2–3 niveaux) ; plafond bas d’URLs | Crawl large du périmètre whitelist ; profondeur haute ; plafond d’URLs élevé |
| **Fingerprinting** | Oui (rapide) | Oui + plus d’indices (JS, chemins connus, etc.) |
| **CVE / Nuclei** | Templates critiques / haute sévérité + techno détectées | Jeu large de templates + variantes |
| **OWASP V1** | Sous-ensemble prioritaire (XSS, SQLi, open redirect, path traversal) | Toute la liste V1 (XSS, SQLi, CSRF, IDOR, SSTI, path traversal, open redirect) |
| **Auth** | Optionnelle ; 1 parcours connecté si fourni | Auth + plusieurs zones / rôles si fournis |
| **Preuves** | Capture + PoC court | Captures / vidéo + PoCs détaillés |
| **Rapport** | Web + PDF résumé | Web + PDF détaillé |

### V2

- Logique métier (workflow bypass, race conditions, mass assignment, rate limit)  
- Scan dépendances projet (SCA : `package.json`, Composer, etc.)  
- API GraphQL / REST  
- CI/CD (blocage sur critique)  

### V3

- Fuzzing intelligent, chaînage multi-étapes  
- SSRF, RCE, XXE, désérialisation  
- Mode chasse 24/7  
- Couverture type OWASP WSTG  

---

## 6. Stack

| Couche | Choix |
|--------|--------|
| Front | HTML5, CSS3, JS **vanilla** |
| Back | PHP 8.x **natif** |
| BDD | SQLite en démarrage (PostgreSQL si besoin plus tard) |
| Nginx | Oui |
| Orchestration | PHP + systemd / workers (scans longs) |
| Browser | Playwright **headless** (CLI depuis PHP) — **pas besoin d’interface graphique** sur le LXC |
| Scan | Nuclei, SQLmap, ZAP (CLI) selon besoin ; fingerprinting (WhatWeb / httpx / en-têtes HTTP, etc.) |
| Rapport PDF | Génération côté serveur (ex. bibliothèque PHP PDF) |
| **LLM** | **LM Studio distant** sur PC perso (GPU) — **pas** sur le LXC en phase test |
| Hébergement app | LXC Debian 12 |

### LM Studio (phase test)

```
LXC BugForge  ──HTTP──▶  PC perso (GPU) : LM Studio
```

- URL LM Studio configurable (ex. `http://IP-PC:1234` — API souvent compatible OpenAI `/v1`)  
- Le LXC ne charge **pas** le modèle localement  
- Le PC GPU doit être joignable depuis le LXC (réseau / pare-feu)  
- Plus tard : autre hébergement GPU si besoin  

### Playwright sur LXC

- Mode **headless** (navigateur sans fenêtre) : adapté à un LXC sans bureau  
- Installer les dépendances système + Chromium Playwright sur le LXC  
- Surveiller `/dev/shm` (taille suffisante) pour éviter les plantages Chromium  

---

## 7. Architecture (simple)

```
Utilisateur (web)
    → App PHP (orchestrateur + jobs)
        → Agent (LLM distant LM Studio + outils)
            → Playwright / Nuclei / SQLmap / ZAP / fingerprint
                → Site cible (uniquement domaines en liste blanche)
```

---

## 8. Contraintes

- Scan **rapide** &lt; 15 min, **complet** &lt; 2 h (objectifs)  
- **Liste blanche obligatoire** : aucune requête hors domaines autorisés (ex. `exemple.fr` + `*.exemple.fr`)  
- **Autorisation écrite / case à cocher obligatoire** avant tout scan  
- Niveau d’agressivité **choisi par l’utilisateur** (défaut = prudent)  
- Interdit dans tous les modes : wipe, ransomware, destruction volontaire de données  
- Hébergement UE, données clients protégées  
- Payloads stockés de façon sécurisée  
- Pas de Docker-in-LXC si possible (outils installés dans le LXC)  
- Jobs longs hors timeout PHP (worker / systemd)  

---

## 9. Monétisation (plus tard)

- Pay-per-scan : 29–99 €  
- Abo : 99–299 €/mois  
- Enterprise : sur devis  

---

## 10. Infrastructure (créée le 27/07/2026)

| Élément | Valeur |
|---------|--------|
| **URL** | `https://bugforge.watys.fr/` |
| **CTID** | 9027 |
| **IP** | 10.10.11.143 |
| **SSH** | `dev@10.10.11.143` |
| **Dossier** | `/var/www/app` |
| **RAM / CPU** | **8192 Mo / 12 cœurs** |
| **DNS + HTTPS** | OK |
| **Telegram** | `-5567569247` |
| **Cursor CLI** | à installer |
| **LM Studio** | distant (PC GPU) — à configurer |

---

## 11. Défis connus

- Qualité du raisonnement selon le modèle LM Studio distant  
- WAF (Cloudflare…) peut bloquer l’agent  
- Site cible fragile → privilégier le mode **prudent** en prod  
- Versions parfois **masquées** ou fausses → fingerprints / CVE pas toujours fiables  
- Mode **agressif** sur un mauvais environnement = risque de charge / effets de bord → UI claire + confirmation  
- Roadmap V1 complète = travail long ; livrer par tranches **vers** la V1 CDC  

---

## 12. Ordre de dev suggéré (pour l’agent LXC)

1. Socle app + auth utilisateurs  
2. Lancer un scan (job + statut) + **garde d’autorisation** + **liste blanche** + choix **profil** / **agressivité**  
3. Exploration autonome (bornée par whitelist + profil rapide/complet)  
4. Auth sur la cible  
5. **Fingerprinting + CVE / Nuclei** (selon agressivité)  
6. Tests OWASP V1 un par un  
7. Rapport web + **export PDF** + captures / PoC  
8. Branche LM Studio distant → suggestions de correctifs  

---

## 13. Prochaines étapes Lab

1. Groupe Telegram dédié  
2. Renseigner l’URL LM Studio du PC GPU dans la config app  
3. L’agent LXC démarre le socle  

---

## 14. Changelog document

| Version | Date | Changements |
|---------|------|-------------|
| 0.1 | 27/07/2026 | Première version CDC BugForge |
| 0.2 | 27/07/2026 | Ollama → LM Studio ; Playwright headless LXC ; fingerprinting + CVE en V1 ; garde exploitation prudente |
| 0.3 | 27/07/2026 | Agressivité au choix (prudent/standard/agressif) ; scan rapide défini vs complet ; liste blanche domaines ; rapport PDF en V1 |
