Guide d'utilisation
Outil de test DEFENSIF de l'infrastructure Harpie. A n'utiliser que sur une cible autorisee (allowlist) et avec attestation.
Cible active & configuration des URLs
- La barre Cible active (en haut) affiche vos environnements en boutons : un clic remplit le champ cible de tous les onglets (charge, pentest, SEO, planification).
- Les URLs ne sont PAS codees en dur : ouvrez l'onglet Cibles & hosts (Administration) pour definir / modifier / ajouter des cibles (Front-office, Back-office, API, ou tout autre serveur). Ce que vous enregistrez alimente la barre du haut.
- Enregistrer une cible autorise automatiquement son host. Le garde-fou (liste des hosts autorises) reste editable dans le meme onglet.
1. Test de charge
- Renseignez la cible, la cle API (X-API-Key) et/ou un jeton si besoin.
- Choisissez une intensite (Legere / Moyenne / Intense / Stress) ou reglez finement req/min, concurrence, duree, montee en charge, profil (constant / ramp / spike).
- Selectionnez les scenarios (Auto, Moto, Sante, Voyage = vraies comparaisons ; Souscription / Paiement = a effet de bord, OFF par defaut).
- Cochez l'attestation, cliquez Lancer. Le tableau de bord montre debit, latence p50/p95/p99, codes 2xx/4xx/429/5xx et un verdict.
- Test DISTRIBUE (plusieurs sources) : une IP unique plafonne (bridage frontal + un seul process). Pour un debit eleve reel, en CLI :
python -m loadsim.distributed coordinator --config c.yaml --total-rps 1000 --duration 30 --mode ssh --hosts hosts.txt --i-own-this-target. Chaque hote (IP distincte) execute une tranchetotal-rps / N; le coordinateur fusionne les latences BRUTES en percentiles reels. Voirhosts.example.txt.
2. Catalogue (719 endpoints Harpie)
- Tous les endpoints de l'API sont charges par categorie (base SQLite embarquee).
- Filtrez, cochez des endpoints puis Ajouter au test pour les jouer en charge ; ou Tout cocher pour un test general.
- Ajoutez un endpoint manuellement, ou importez-en depuis un openapi.json.
3. Pentest
- Onglet dedie, avec sa propre connexion (cible / cle / jeton / attestation).
- Outils : recon & mauvaise configuration, TLS, resilience d'auth (dictionnaire - verifie rate-limit/verrouillage), fuzzing, audit email SPF/DKIM/DMARC, scan de ports, enumeration d'utilisateurs, IDOR, stress login.
- Les listes de mots de passe (dictionnaire) sont integrees ou telechargeables en ligne.
4. SEO / Analytics
- Analyse une page (FO ou BO) : title, meta, H1, canonical, Open Graph, robots.txt, sitemap.xml.
- Detecte Google Analytics (GA4/UA), Google Tag Manager, Meta Pixel, Hotjar.
5. Workflow
- Execute une sequence de transaction chainee (comparaison → souscription → paiement) et mesure la vitesse (total, moyenne par etape, etape la plus lente).
6. Supervision (etat de sante & alertes, facon HAProxy)
- Surveille en continu les cibles configurees et la sante du serveur hote (disque, charge, memoire).
- Checks configurables comme HAProxy : type L7 (HTTP) (methode, URI, statut attendu
200-399 / 2xx / 200,301, contenu attendu, en-tete Host, port dedie, verif TLS) ou L4 (TCP) (ouverture du port). - Anti-flapping rise/fall : une cible ne bascule DOWN qu'apres N echecs consecutifs (fall) et UP qu'apres N succes (rise). Cadences inter (normale), fastinter (en transition), downinter (en panne).
- Surcharges par cible + mode maintenance (suspend sondes et alertes, comme MAINT). Statistiques par cible (etat UP/DOWN, depuis quand, nombre de checks).
- Sur passage DOWN (ou service /health HS, latence/TLS degrades), un email part vers les adresses configurees ; email de retablissement au retour UP, rappels optionnels. Configurez le SMTP puis testez avec Envoyer un email de test.
7. Repartiteur de charge (load balancer, facon HAProxy)
- Definit des backends (pools de serveurs) avec checks de sante (rise/fall) et algorithmes : roundrobin pondere, static-rr, leastconn, first, random, source (hash IP), uri.
- Frontend L7 (HTTP) : le trafic envoye sur
/lb/<backend>/<chemin>est proxifie vers un serveur sain du pool (GET/HEAD = lecture, autres = ecriture). Serveurs de secours (backup) et mise en maintenance pris en charge. - Frontend TCP (L4) : un backend en mode TCP ouvre un vrai port d'ecoute et relaie les octets bruts (PostgreSQL, MySQL, Redis...) vers un serveur du pool - comme une section
listende HAProxy. Ces ports doivent etre exposes par l'hebergeur (Dokploy). - Bases de donnees : routage lecture/ecriture - deux frontends TCP, un port ecriture vers le primaire RW et un port lecture vers les replicas RO. Le primaire est fixe manuellement ou detecte automatiquement via des endpoints HTTP type Patroni (/primary, /replica) avec bascule au failover. Decision seule (host:port a utiliser) :
GET /api/lb/route?backend=..&mode=read|write. - Alerte email si un backend perd son primaire RW ou tombe entierement (memes destinataires/SMTP que la supervision).
8. Rapport
- Consolide tous les resultats (securite, SEO, workflow, charge) en un rapport HTML imprimable en PDF (Ctrl+P).
Configuration du test de charge
Qualite / intensite
Scenarios a jouer
Documents (CNI, carte grise...)
Tableau de bord
inactifReponses par famille de code
Par scenario
| Scenario | n | ok | p95 (ms) | codes |
|---|---|---|---|---|
| Aucun test lance. | ||||
Rapport final (JSON)
-
Catalogue d'endpoints Harpie
Ajouter un endpoint / importer depuis OpenAPI
Pentest (cible autorisee uniquement)
Reconnaissance & surface d'attaque
En-tetes de securite, cookies, CORS, banniere, chemins sensibles, TLS.
Versions de protocole (TLS 1.0-1.3), cipher, certificat, eligibilite HSTS preload.
Services exposes ; alerte sur ports sensibles ; detecte les proxys/CDN.
Sous-domaines courants qui resolvent (surface d'attaque), via DNS-over-HTTPS.
Authentification & controle d'acces
Verifie que rate-limit / verrouillage s'activent (ne force pas l'acces).
Rafale concurrente : verifie rate-limit / verrouillage sous charge.
Reponse differente entre compte existant et inconnu ?
Parcourt une plage d'IDs (avec jeton) et repere les objets accessibles.
Sonde SANS jeton les endpoints du catalogue marques "auth requise" : un 2xx = controle d'acces casse.
Injection & robustesse des entrees
Injecte des valeurs malformees et detecte les 500.
Exposition, secrets & anti-usurpation
Cherche cles API, tokens, cles privees, JWT dans le bundle et les endpoints de config.
security.txt, methodes HTTP, CORS preflight, redirection ouverte, GraphQL introspection.
Protection anti-usurpation du domaine (via DNS-over-HTTPS).
Resultats
Audit SEO & Analytics
Resultats
Workflow de transaction (vitesse d'execution)
Resultats
Rapport consolide
Genere un rapport HTML (imprimable en PDF) de tous les resultats de la session.
Historique persiste (survit au redemarrage)
Journal du serveur
Aucun log charge.
Scans recurrents & alertes
Planifications
Alertes (nouvelles failles detectees)
Supervision
Reglages generaux & alertes
Parametres de check (facon HAProxy)
Checks par cible & maintenance
Serveur d'envoi (SMTP)
Journal des changements d'etat
Repartiteur de charge (load balancer)
/lb/<backend>/<chemin> (GET/HEAD = lecture, autres = ecriture). Decision seule (sans proxy, utile pour TCP/DB) : GET /api/lb/route?backend=..&mode=read|write.Parametres de check par defaut
Backends (pools de serveurs)
/lb/<nom>/.... Choisissez Base de donnees pour activer le routage RW/RO et la detection du primaire (manuelle ou automatique via endpoints Patroni). Le rôle d'un serveur (RW/RO) sert au routage lecture/ecriture ; backup = serveur de secours ; maint = hors rotation.Export HAProxy
haproxy.cfg reel depuis cette topologie (backends, serveurs, roles RW/RO, checks, algorithmes) pour deployer un vrai HAProxy. Enregistrez d'abord vos backends.Cibles a tester
Hosts autorises
Base de donnees (comptes, cibles, resultats...)
/app/data (voir le guide). Ici : export, sauvegarde et import (un import remplace la base apres une sauvegarde de securite automatique).