Harpie

Configuration initiale

Aucun administrateur n'existe encore. Creez le compte administrateur. Le mot de passe est stocke en base (aucune variable d'environnement).

Harpie

Simulateur & Pentest Harpie

Acces reserve. Identifiez-vous.

Harpie
Harpie
Simulateur & Pentest
Apercu
Tests
Securite
Supervision
Resultats
Administration
Cible active

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 tranche total-rps / N ; le coordinateur fusionne les latences BRUTES en percentiles reels. Voir hosts.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 listen de 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).
Hors perimetre : le phishing (collecte d'identifiants / usurpation) n'est pas fourni. Le volet anti-usurpation est couvert par l'Audit email (SPF / DKIM / DMARC), disponible dans l'onglet Pentest -> categorie Exposition, secrets & anti-usurpation.

Configuration du test de charge

Qualite / intensite

Scenarios a jouer

Documents (CNI, carte grise...)

Requis par la Souscription. Deposez ici ou dans le dossier serveur.
-

Tableau de bord

inactif
0
requetes
0
req/s
0%
succes
0s
ecoule

Reponses par famille de code

Par scenario

Scenarionokp95 (ms)codes
Aucun test lance.

Rapport final (JSON)

-

Catalogue d'endpoints Harpie

Cochez des endpoints puis "Ajouter au test de charge", ou "Tout cocher" pour un test general.
Ajouter un endpoint / importer depuis OpenAPI

Pentest (cible autorisee uniquement)

Reconnaissance & surface d'attaque

Reconnaissance / mauvaise config + TLS

En-tetes de securite, cookies, CORS, banniere, chemins sensibles, TLS.

TLS approfondi

Versions de protocole (TLS 1.0-1.3), cipher, certificat, eligibilite HSTS preload.

Scan de ports (TCP)

Services exposes ; alerte sur ports sensibles ; detecte les proxys/CDN.

Enumeration de sous-domaines

Sous-domaines courants qui resolvent (surface d'attaque), via DNS-over-HTTPS.

Authentification & controle d'acces

Resilience d'authentification (dictionnaire)

Verifie que rate-limit / verrouillage s'activent (ne force pas l'acces).

Stress login (BO / FO)

Rafale concurrente : verifie rate-limit / verrouillage sous charge.

Enumeration d'utilisateurs

Reponse differente entre compte existant et inconnu ?

IDOR (acces horizontal par ID)

Parcourt une plage d'IDs (avec jeton) et repere les objets accessibles.

Couverture d'autorisation (OpenAPI)

Sonde SANS jeton les endpoints du catalogue marques "auth requise" : un 2xx = controle d'acces casse.

Injection & robustesse des entrees

Fuzzing d'entrees

Injecte des valeurs malformees et detecte les 500.

Exposition, secrets & anti-usurpation

Secrets exposes (HTML / JS / config)

Cherche cles API, tokens, cles privees, JWT dans le bundle et les endpoints de config.

Suite avancee

security.txt, methodes HTTP, CORS preflight, redirection ouverte, GraphQL introspection.

Audit email (SPF / DKIM / DMARC)

Protection anti-usurpation du domaine (via DNS-over-HTTPS).

Resultats

Aucun test lance.

Audit SEO & Analytics

L'audit rendu charge la page dans un navigateur (Chromium) : fidele pour React/Vue (titre, analytics reels, performance).

Resultats

Aucun audit lance.

Workflow de transaction (vitesse d'execution)

Utilise la connexion de l'onglet Pentest (cible / cle / jeton / attestation).

Resultats

Aucun workflow lance.

Rapport consolide

Genere un rapport HTML (imprimable en PDF) de tous les resultats de la session.

Historique persiste (survit au redemarrage)

Journal du serveur

Dernieres lignes de log de l'application (requetes, erreurs 500 avec trace, planifications). Utile pour diagnostiquer un test qui echoue.
Aucun log charge.

Scans recurrents & alertes

Programme des scans periodiques ; toute NOUVELLE faille high/critical genere une alerte.

Planifications

Alertes (nouvelles failles detectees)

Supervision

Sonde les cibles (HTTP, latence, /health, TLS) et le serveur ; alerte par email sur etat critique.
Reglages generaux & alertes
Parametres de check (facon HAProxy)
Defauts pour toutes les cibles. L7 (HTTP) = methode + URI + statut/contenu attendus ; L4 (TCP) = ouverture du port. rise/fall = checks consecutifs pour confirmer UP/DOWN ; inter/fastinter/downinter = cadences normale / transition / panne.
Checks par cible & maintenance
Vide = herite des defauts ci-dessus. Cochez Maintenance pour suspendre sondes et alertes d'une cible.
Serveur d'envoi (SMTP)
Identifiants stockes en base, jamais reaffiches. Mot de passe vide = on conserve l'actuel.
Journal des changements d'etat

Repartiteur de charge (load balancer)

Repartit le trafic sur des pools de serveurs avec checks de sante (rise/fall), algorithmes facon HAProxy, serveurs de secours et routage lecture/ecriture pour les bases (ecritures -> primaire RW, lectures -> replicas RO). Frontend L7 : envoyez le trafic sur /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)

Chaque backend est joignable via /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

Genere un 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

Definissez les URLs de vos environnements (Front-office, Back-office, API, ou tout autre). Elles alimentent les boutons de la barre "Cible active" et sont reutilisees sur tous les onglets. Aucune URL n'est codee en dur : ce que vous enregistrez ici fait foi.
L'enregistrement autorise automatiquement le host de chaque cible.

Hosts autorises

Garde-fou de securite : seules ces cibles peuvent etre testees (charge et pentest). Un host par ligne. Une URL complete est acceptee, seul le host est conserve.

Base de donnees (comptes, cibles, resultats...)

Tout est stocke dans une base SQLite : comptes et mots de passe (haches), cibles, hosts, planifications, alertes, resultats. Pour qu'elle survive aux redeploiements, montez un volume persistant sur /app/data (voir le guide). Ici : export, sauvegarde et import (un import remplace la base apres une sauvegarde de securite automatique).

Importer une base

Attention : remplace la base courante (une sauvegarde de securite est creee avant).

Sauvegardes sur le serveur

Gestion des comptes

Le superadmin cree des comptes et attribue des roles / permissions.

Creer un compte

Comptes existants

Mon compte

Modifiez votre propre mot de passe. Minimum 8 caracteres.