Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

đŸ›Ąïž DDoS / Bot Management — Protection L7, Bots & Abus AutomatisĂ©s

Guide opĂ©rationnel hyper-densifiĂ© pour concevoir, dĂ©ployer et exploiter une protection applicative contre les attaques L7, bots, credential stuffing, scraping, scalping, abus API et DDoS applicatifs — en mode SaaS, cloud provider, on-premise ou Kubernetes.

19cartes détaillées
76onglets techniques
L7HTTP/API/Bots
SaaS → K8sdĂ©ploiements couverts
Angle du guide : dĂ©fense applicative, rĂ©duction de coĂ»t, stabilitĂ© origine, limitation de l’automatisation hostile, observabilitĂ© SOC et exploitation en production. Les exemples sont dĂ©fensifs et doivent ĂȘtre adaptĂ©s Ă  ton contexte mĂ©tier avant activation en blocage.
01

Taxonomie DDoS & Bots

Différencier L3/L4/L7, bots humains simulés, abus automatisés et fraude applicative.

L3/L4/L7BotsRunbook
02

L7 HTTP Flood

HTTP/2, TLS, endpoints coûteux, cache bypass, origine saturée, attaques lentes.

HTTP FloodSlowlorisCost
03

Bot Management

Classification bons/mauvais bots, scores, télémétrie client, fraude et automatisation.

Bot scoreATOScraping
04

OWASP Automated Threats

Mapping OAT : credential stuffing, carding, scraping, scalping, DoS, inventory abuse.

OWASP OATFraudeBusiness abuse
05

Rate Limiting Engineering

Limites par IP, token, compte, ASN, endpoint, coĂ»t, GraphQL complexity et fenĂȘtre glissante.

Token bucketQuota429
06

Fingerprinting & Signaux

TLS/JA3/JA4, HTTP headers, device, comportement, réputation IP/ASN, preuve client.

JA3/JA4TelemetryDevice
07

Challenges & Vérification

Managed challenge, CAPTCHA alternatif, preuve de travail, MFA adaptatif, friction contrÎlée.

ChallengePoWMFA
08

API Abuse & Cost Protection

Unrestricted Resource Consumption, quotas, pagination bornée, GraphQL complexity, coûts tiers.

API4GraphQLQuota
09

Credential Stuffing / ATO

Détection login abuse, passwords connus, MFA adaptatif, velocity et réponse progressive.

ATOLoginMFA
10

Scraping, Scalping & Inventory

Protection catalogue/prix/contenu, files d’attente, jetons de rĂ©servation, anti-scalping.

ScrapingScalpingInventory
11

SaaS / Edge Protection

CDN/Anycast/scrubbing, WAAP SaaS, DNS cutover, origin shielding, mitigation globale.

CDNAnycastSaaS
12

Cloud Provider Protection

AWS Shield/WAF, Google Cloud Armor, Azure DDoS/WAF : intégration load balancers et logs.

AWSGCPAzure
13

On‑Prem / ADC / Reverse Proxy

F5 BIG-IP, NGINX, HAProxy, reverse proxy, rĂšgles locales, protection origine et contraintes DC.

ADCNGINXHAProxy
14

Kubernetes / Containers

Ingress, Gateway API, sidecar, pod-level L7 DoS, HPA/KEDA, mesh et eBPF.

K8sIngresseBPF
15

RĂšgles WAF/WAAP anti-abus

Combinaison modÚle négatif, modÚle positif, rÚgles custom, exceptions et mode simulate.

WAFWAAPRules
16

Observabilité SOC

Logs enrichis, métriques, dashboards, alerting, SIEM/SOAR, preuves de mitigation.

SOCSIEMSLO
17

Incident Response DDoS/Bot

Runbooks minute par minute, war room, décisions block/challenge, communication et rollback.

IRWar RoomTTM
18

Tests, Tuning & Validation

Mode count, replay logs, tests charge contrÎlés, faux positifs, purple team et chaos security.

TestingCount modeTuning
19

Vendor Map & Liens

Cartographie SaaS, cloud, on-prem, conteneurisé avec URLs directes de documentation et produits.

LinksVendorsDocs
01 — Taxonomie DDoS & Bots
Comprendre le problùme : ce n’est pas seulement “beaucoup de trafic”

Une stratĂ©gie DDoS / Bot Management moderne distingue les attaques volumĂ©triques rĂ©seau, les floods applicatifs coĂ»teux, les abus automatisĂ©s discrets et les fraudes mĂ©tier. Le vrai danger L7 vient souvent de requĂȘtes qui semblent valides : login, recherche, panier, API GraphQL, tĂ©lĂ©chargement, scraping ou gĂ©nĂ©ration de devis.

FamilleObjectif attaquantSignal principalRéponse défensive
L3/L4 DDoSSaturer bande passante, SYN/UDP floodspps/bps anormaux, ports/protocolesScrubbing, Anycast, ACL edge, SYN cookies
L7 HTTP FloodÉpuiser CPU/app/db/cacheRPS, latence, chemins coĂ»teuxRate limits, caching, challenges, WAF rules
Bots transactionnelsFraude, ATO, scalping, scrapingComportement, device, séquencesBot score, JA3/JA4, preuve de travail, MFA adaptatif
Abus APIÉpuisement quotas/coĂ»ts, extraction dataToken/user/org, paramĂštres page/limitQuota par identitĂ©, schĂ©ma, pagination bornĂ©e
La pyramide de défense
  • Edge global : absorber les attaques volumĂ©triques avant l’origine.
  • WAF/WAAP : filtrer les requĂȘtes connues malveillantes et imposer un modĂšle positif.
  • Bot layer : classifier l’automatisation par signaux client, rĂ©putation, comportement et challenges.
  • Application : quotas par compte, idempotency, circuit breakers, feature flags.
  • Data layer : requĂȘtes bornĂ©es, cache, index, backpressure.
Internet
↓
CDN / Anycast / Scrubbing
↓
WAAP / WAF / Bot Engine
↓
API Gateway / Ingress
↓
App / Queue / DB
Ce qui casse les architectures en production
ErreurSymptĂŽmeCorrection
Limiter uniquement par IPAttaque distribuée passe sous le radarAgrégation par IP + ASN + pays + session + endpoint + user/token
Tout challengerFaux positifs clients, SEO casséChallenge progressif seulement sur endpoints sensibles
Pas de protection origineL’attaquant bypass le CDNAllowlist IP CDN, mTLS, private origin, firewall source
Pas de mode simulate/countBlocages business en prodDéployer en count/log puis durcir par étapes
02 — L7 HTTP Flood
Pourquoi le L7 est difficile

Une attaque L7 n’a pas forcĂ©ment un volume Ă©norme. Elle exploite l’asymĂ©trie coĂ»t attaquant/dĂ©fenseur : une requĂȘte simple cĂŽtĂ© bot dĂ©clenche cĂŽtĂ© serveur une recherche, un rendu, un appel paiement, un calcul de prix, une gĂ©nĂ©ration PDF, une requĂȘte GraphQL profonde ou un accĂšs DB non cachĂ©.

VecteurImpactSignal
GET /search?q=...CPU + DB + cache missRPS élevés sur URL paramétrée
POST /loginHash password, auth provider, lockout401/403 élevés, usernames variés
GraphQL queryExplosion profondeur/complexitéTemps réponse, taille réponse, resolver count
HTTP/2 rapid resetStress connexion/streamsReset stream anormaux, concurrency
Indicateurs à corréler
  • RPS par endpoint : moyenne, p95, p99, Ă©cart-type, cardinalitĂ© des IPs.
  • CoĂ»t backend : CPU, DB QPS, cache hit ratio, queue depth, temps resolver GraphQL.
  • Distribution : User-Agent, JA3/JA4, ASN, pays, TLS version, HTTP version.
  • Comportement : ratio erreurs, absence de ressources statiques, absence de navigation humaine.
# RequĂȘte observabilitĂ© type — pseudo LogQL / SIEM
count_over_time({service="edge"} | json | path="/search" [1m]) by (ip, asn, ja4, country)
quantile_over_time(0.99, {service="api"} | json | unwrap latency_ms [5m]) by (route)
ContrĂŽles progressifs
  1. Cache agressif sur pages publiques et assets, respect stale-while-revalidate.
  2. Rate limit par endpoint, pas seulement global.
  3. Challenge adaptatif si score bot bas + endpoint cher + anomalie.
  4. Circuit breaker : dĂ©grader la recherche, couper gĂ©nĂ©ration PDF, mettre files d’attente.
  5. Origin shielding : IP d’origine masquĂ©e, accĂšs direct bloquĂ©.
# NGINX — exemple dĂ©fensif basique pour endpoint coĂ»teux
limit_req_zone $binary_remote_addr zone=search_zone:20m rate=30r/m;
location /search {
    limit_req zone=search_zone burst=20 nodelay;
    proxy_cache my_cache;
    proxy_cache_valid 200 30s;
    proxy_pass http://app_backend;
}
Runbook de crise L7
MinuteActionBut
0-5Basculer rĂšgles WAF rate-limit en mode block sur endpoint touchĂ©Stopper l’hĂ©morragie
5-15Activer cache bypass protection, challenge JS/managed challengeFiltrer les clients non humains
15-30Restreindre pays/ASN si légitime business le permetRéduire surface
30+Analyser logs, crĂ©er rĂšgle durable, postmortemÉviter rĂ©cidive
03 — Bot Management
Classifier avant de bloquer

Un bot management sĂ©rieux ne bloque pas “les bots” en bloc. Il sĂ©pare les bons crawlers, les outils de monitoring, les partenaires, les bots IA, les scrapers, les credential stuffers, les scalpers et les scripts maison mal configurĂ©s.

TypeValeur/RisqueAction
Search crawlersSEO / indexationAllowlist vérifiée DNS reverse + ASN
MonitoringSLA externeAllowlist + user-agent contrÎlé + token
ScrapersExtraction prix/contenuThrottle, tarpit, honeypot, watermark
ATO botsCredential stuffingChallenge, MFA adaptatif, passwordless
ScalpersInventory abuseQueue, reservation token, velocity controls
Signaux utiles
  • RĂ©seau : ASN, IP rĂ©putation, proxy/VPN/Tor, datacenter vs rĂ©sidentiel.
  • TLS/HTTP : JA3/JA4, ALPN, ordre headers, HTTP/2 settings, accept-language incohĂ©rent.
  • Client : JS telemetry, canvas/webgl, webdriver, timings, storage, plugins.
  • Comportement : vitesse clics, sĂ©quence pages, absence assets, rĂ©pĂ©tition paramĂštres.
  • IdentitĂ© : compte, token, device, cookie anciennetĂ©, historique achat.
Attention : chaque signal seul est contournable. La robustesse vient de la corrélation multi-signal et de rÚgles par endpoint.
Réponses graduées
Score/RisqueActionCas d’usage
FaibleAllow + logUtilisateur connu, bon device
MoyenThrottle + challenge légerNavigation suspecte mais pas critique
ÉlevĂ©Managed challenge / MFA / denyLogin, checkout, API sensible
CritiqueBlock + ticket SOC + indicateur IOCFraude/ATO confirmé
# Pseudo-politique
IF endpoint in ["/login", "/checkout", "/api/token"]
AND bot_score < 25
AND reputation in ["datacenter_proxy", "credential_stuffing_source"]
THEN challenge_or_block WITH reason="high_risk_bot_transaction"
04 — OWASP Automated Threats
OWASP Automated Threats : lecture opérationnelle

Le référentiel OWASP OAT aide à nommer les abus automatisés qui ne sont pas toujours des vulnérabilités applicatives classiques. Il est précieux pour cadrer les risques métier : inventaire, comptes, cartes, contenu, disponibilité.

OATExemple businessDéfense
Credential StuffingRejeu massif couples email/mot de passeVelocity par compte/IP/device, MFA adaptatif
ScrapingAspiration catalogue/prixBot score, watermark, throttle, honeypots
ScalpingAchat automatisĂ© billets/sneakersQueue, preuve d’humanitĂ©, limite panier
Denial of InventoryRéservation sans achatTTL court, deposit, anti-hold abuse
Denial of ServiceRessources app saturéesRate limit, cache, challenge, circuit breaker
Mesurer autrement que par RPS
  • Login : ratio Ă©chec/succĂšs, usernames distincts par IP, IPs par username.
  • Panier : add-to-cart sans checkout, hold duration, abandons synchronisĂ©s.
  • Scraping : profondeur catalogue, ordre sĂ©quentiel, absence assets, bytes sortants.
  • Checkout : refus paiement, BIN/card velocity, adresse de livraison rĂ©pĂ©tĂ©e.
  • API : coĂ»t unitaire par endpoint, quotas consommĂ©s, appels tiers dĂ©clenchĂ©s.
ContrÎles centrés métier
# Pseudo-contrĂŽle inventory abuse
IF product_drop=true
AND add_to_cart_per_device > 3 in 10m
AND checkout_completion_rate < 10%
THEN require_queue_token AND reduce_reservation_ttl
# Pseudo-contrĂŽle scraping
IF pages_viewed_category > 200 in 5m
AND static_asset_ratio < 0.1
AND mouse_or_touch_events = 0
THEN throttle_to_1_rps AND serve_canary_links
05 — Rate Limiting Engineering
Rate limit : ne pas confondre plafond et sécurité

Le rate limiting efficace combine plusieurs clĂ©s d’agrĂ©gation : IP, compte, token, session, device, ASN, pays, endpoint et coĂ»t mĂ©tier. Une rĂšgle globale “1000 req/min/IP” est rarement suffisante contre des botnets distribuĂ©s.

CléAvantageLimite
IPSimple, disponible partoutContournable par proxies
Compte/UserStoppe abus authentifiésNe protÚge pas pré-auth
EndpointProtÚge les routes coûteusesNécessite cartographie précise
ASN/PaysUtile en criseRisque faux positifs
Coût calculéAdapté GraphQL/APIInstrumentation requise
Algorithmes classiques
AlgorithmeUsageNotes
Fixed windowSimpleEffet de bord aux limites de fenĂȘtre
Sliding windowPlus justePlus coûteux à calculer
Token bucketAutorise rafales contrÎléesTrÚs utilisé pour APIs
Leaky bucketLisse le traficBon pour backends fragiles
AdaptiveAnomalie / baselinesBesoin de tuning et logs
Exemples concrets
# NGINX — login sensible
limit_req_zone $binary_remote_addr zone=login_ip:10m rate=5r/m;
limit_req_zone $http_authorization zone=login_token:10m rate=20r/m;

location = /login {
    limit_req zone=login_ip burst=5 nodelay;
    proxy_pass http://auth_backend;
}
// AWS WAF — extrait JSON dĂ©fensif rate-based
{
  "Name": "RateLimitLoginByIP",
  "Priority": 10,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 300,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "SearchString": "/login",
          "FieldToMatch": {"UriPath": {}},
          "TextTransformations": [{"Priority": 0, "Type": "NONE"}],
          "PositionalConstraint": "EXACTLY"
        }
      }
    }
  },
  "Action": {"Block": {}}
}
Design propre
  • Retourner 429 Too Many Requests avec Retry-After pour APIs lĂ©gitimes.
  • Utiliser count/log mode avant blocage.
  • PrĂ©voir des allowlists partenaires et des quotas contractuels.
  • DiffĂ©rencier lecture publique, login, checkout, admin, API interne.
  • Conserver les logs de dĂ©cisions : rĂšgle, seuil, clĂ©, fenĂȘtre, score.
06 — Fingerprinting & Signaux
Empreintes réseau et transport
SignalUtilitéPiÚge
TLS fingerprintDĂ©tecte librairies automatisĂ©esPeut ĂȘtre mimĂ© par outils avancĂ©s
ASN / hostingRepÚre datacenters/proxiesCertains clients légitimes passent par cloud
HTTP/2 settingsDiffĂ©rencie navigateurs et scriptsÉvolue avec versions browser
Header orderSignal faible mais utileFragile aux middlewares/proxies
Télémétrie navigateur

Les solutions bot injectent souvent un script léger pour mesurer des signaux difficiles à reproduire parfaitement : événements, timings, rendu, stockage, intégrité navigateur, webdriver, cohérence platform/language/timezone.

// Pseudo-signal cĂŽtĂ© client — exemple pĂ©dagogique
{
  "events": {"mousemove": 42, "keydown": 8, "touch": 0},
  "timing": {"first_interaction_ms": 1320, "form_fill_ms": 8400},
  "env": {"webdriver": false, "timezone": "Europe/Paris", "lang": "fr-FR"},
  "integrity": {"cookie_age_days": 54, "local_storage": true}
}
Score composite
Risk Score = réputation IP + bot score + endpoint sensitivity + velocity + comportement + historique identité

Un score fiable doit ĂȘtre expliquĂ© : pourquoi un client a Ă©tĂ© challengĂ© ou bloquĂ© ? Sans raison exploitable, impossible de rĂ©duire les faux positifs.

ComposantPoids typiqueExplication SOC
IP datacenter récent+20Source peu fiable sur login
Bot telemetry absente+15Client ne supporte pas JS/challenge
Velocity login élevée+40Comportement stuffing
Compte connu + device stable-30Contexte légitime
Conformité et minimisation
  • Documenter les signaux collectĂ©s et leur finalitĂ© sĂ©curitĂ©.
  • Limiter la conservation des fingerprints bruts ; prĂ©fĂ©rer scores et raisons.
  • Permettre une voie de support pour faux positifs.
  • Éviter les dĂ©cisions opaques sur fonctionnalitĂ©s critiques sans fallback.
07 — Challenges & VĂ©rification
Challenge n’est pas synonyme de CAPTCHA
TypePrincipeQuand l’utiliser
JS ChallengeValide exécution navigateurNavigation publique suspecte
Managed ChallengeDĂ©cide entre invisible, JS, CAPTCHAÉquilibre UX/sĂ©curitĂ©
Proof-of-workRend coĂ»teuse l’automatisationAPI publique, scraping
MFA adaptatifPreuve identité forteLogin/checkout/admin
Queue tokenOrdre d’accĂšs Ă©quitableDrop produit, billetterie
Friction proportionnée

Le bon modÚle est progressif : laisser passer les clients sûrs, ralentir les suspects, challenger les risqués, bloquer les malveillants confirmés.

IF risk < 30      THEN allow
IF risk 30..60    THEN add_rate_limit AND log
IF risk 60..80    THEN managed_challenge
IF risk > 80      THEN block OR MFA_STEP_UP on sensitive endpoints
Préserver le business
  • Ne jamais challenger les callbacks paiement/webhooks partenaires : utiliser mTLS/signature.
  • Éviter CAPTCHA sur endpoints SEO et assets.
  • Conserver une allowlist pour monitoring synthĂ©tique et partenaires.
  • Tester accessibilitĂ© : lecteurs d’écran, faibles connexions, mobile ancien.
  • Mettre une page d’erreur explicite avec identifiant de blocage support.
Politique par endpoint
EndpointAction suspicion moyenneAction suspicion forte
/Allow + logManaged challenge
/loginThrottleMFA adaptatif / deny
/checkoutQueue tokenMFA / manual review
/api/public/searchToken bucketPoW / 429
08 — API Abuse & Cost Protection
Les APIs exposent des coûts cachés

Une requĂȘte API peut consommer CPU, mĂ©moire, bande passante, stockage, appels SMS/email, appels IA, vĂ©rification biomĂ©trique ou transactions partenaires. L’abus API est donc Ă  la fois un risque disponibilitĂ© et un risque financier.

PatternRisqueContrĂŽle
?limit=100000DB/mémoire/réponse énormeMax limit + pagination cursor
Batch Ă©normeCoĂ»t par requĂȘte masquĂ©Max items + coĂ»t par item
GraphQL profondResolvers explosifsDepth/complexity/cost limit
OTP resendCoûts SMS + nuisanceCooldown par user/device/phone
Limiter par identité, pas uniquement par IP
# Exemple de quotas API
anonymous:       60 req/min/IP + endpoints lecture seulement
auth_user:       600 req/min/user + burst 100
partner_app:     quota contractuel par client_id + mTLS
tenant/org:      budget journalier + alertes 80/95/100%
expensive_route: coût = base + rows + external_calls + payload_size
ContrĂŽles GraphQL
# Pseudo-policy GraphQL
max_depth: 8
max_complexity: 1000
max_aliases: 20
max_batch_operations: 5
introspection: disabled_in_prod_for_public_clients
persisted_queries: required_for_mobile_app
  • Calculer un coĂ»t par champ/resolver.
  • Refuser les aliases massifs.
  • Limiter les variables de pagination.
  • Journaliser operationName + hash de query.
Validation de contrat
# Exemple JSON Schema défensif
{
  "type": "object",
  "required": ["page", "page_size"],
  "properties": {
    "page": {"type": "integer", "minimum": 1, "maximum": 1000},
    "page_size": {"type": "integer", "minimum": 1, "maximum": 100},
    "sort": {"type": "string", "enum": ["date", "price", "name"]}
  },
  "additionalProperties": false
}
09 — Credential Stuffing / ATO
Credential stuffing : attaque L7 discrĂšte

L’attaquant rĂ©utilise des identifiants issus de fuites. Chaque requĂȘte peut ĂȘtre valide syntaxiquement. Le risque est l’Account Takeover : fraude, vol de donnĂ©es, changement email, achat, vidage de points fidĂ©litĂ©.

SignalInterprétationAction
Beaucoup de usernames par IPStuffing classiqueThrottle IP/ASN + challenge
Beaucoup d’IPs par usernameDistributed guessingThrottle compte + step-up MFA
Connexion impossible puis succĂšsCompte compromis possibleRisk session + notification
Device jamais vu + pays inhabituelRisque élevéMFA adaptatif
Défense multicouche
  • Ne pas rĂ©vĂ©ler si email existe.
  • DĂ©tecter passwords compromis Ă  l’inscription/changement.
  • MFA adaptatif, pas MFA aveugle partout.
  • Limiter username velocity et IP velocity.
  • Surveiller changements sensibles post-login.
# Pseudo décision
IF login_success=true
AND device_new=true
AND ip_reputation="proxy"
AND country_distance_from_last_login > 2000km
THEN require_mfa_step_up AND mark_session_high_risk
Champs de logs indispensables
{
  "event":"login_attempt",
  "result":"failed",
  "username_hash":"sha256:...",
  "ip":"203.0.113.10",
  "asn":"AS64500",
  "device_id":"dvc_abc",
  "bot_score":18,
  "rule":"login_velocity_user_ip",
  "action":"challenge",
  "request_id":"req_123"
}
Runbook ATO
  1. Passer login en challenge/rate-limit renforcé.
  2. Identifier comptes avec succÚs anormal aprÚs échecs.
  3. Forcer reset/MFA pour comptes Ă  risque.
  4. Bloquer IP/ASN uniquement si faible impact business.
  5. Notifier support et fraude.
10 — Scraping, Scalping & Inventory
Scraping : protéger la valeur des données

Le scraping n’est pas toujours un pic massif. Il peut ĂȘtre lent, distribuĂ©, rĂ©sidentiel et fortement mimĂ©tique. Les signaux mĂ©tier sont souvent plus efficaces que les signatures rĂ©seau.

SignalExplicationRéponse
Parcours séquentiel catalogueExtraction systématiqueThrottle progressif
Faible ratio assets/htmlClient ne charge pas CSS/imagesBot score + challenge
Prix consultés trÚs viteVeille concurrentielle automatiséeCache + watermark + limite
Canary links visitésBot suit liens invisiblesBlock score fort
Scalping et drops
  • Utiliser une file d’attente avec jeton signĂ©.
  • Limiter le nombre d’articles par compte/device/adresse/paiement.
  • TTL de rĂ©servation court et renouvellement contrĂŽlĂ©.
  • DĂ©tecter comptes fraĂźchement créés avant drop.
  • Ralentir l’accĂšs API stock/checkout.
# Pseudo token de queue
queue_token = HMAC(secret, user_id + device_id + drop_id + position + expires_at)
reject_if: expired OR reused OR mismatched_device OR position_not_reached
Honeypots défensifs

Les honeypots doivent ĂȘtre invisibles aux humains mais tentants pour les bots : liens CSS-hidden, champs formulaire invisibles, endpoints canary dans sitemap interne non public.

<a href="/product/__canary-price-feed" class="visually-hidden" aria-hidden="true" tabindex="-1"></a>

IF request.path contains "__canary"
THEN increase_bot_score(50) AND block_if_repeated
Mesurer l’effet
KPIAvantAprĂšs protection
Inventory hold sans achatÉlevĂ©Diminue
Checkout legit conversionDégradé sous attaqueStabilisé
Pages catalogue par session suspecteTrÚs élevéThrottlé
Faux positifs VIP/partenairesÀ surveillerDoit tendre vers 0
11 — SaaS / Edge Protection
Protection edge SaaS

Les offres SaaS/edge mettent la dĂ©fense prĂšs de l’attaquant : DNS ou CNAME vers un rĂ©seau Anycast, inspection WAF/WAAP, bot engine, rate limiting, DDoS managed rules, cache, puis proxy vers l’origine.

Client/Bot → Edge Anycast → DDoS/WAF/Bot/Rate Limit → Cache/Origin Shield → App Origin
AvantageLimite
Absorption globale, faible latenceDépendance fournisseur et DNS
RĂšgles managĂ©es mises Ă  jourBesoin d’exceptions mĂ©tier
Masquage origineÀ configurer strictement cĂŽtĂ© firewall
EmpĂȘcher le bypass de l’edge
  • Firewall origine : n’autoriser que les ranges du CDN/WAAP.
  • Utiliser mTLS entre edge et origin si possible.
  • Changer IP origine aprĂšs onboarding si dĂ©jĂ  exposĂ©e.
  • Surveiller accĂšs direct Host header et IP brute.
  • DĂ©sactiver DNS historiques et vieux sous-domaines.
# NGINX — exemple blocage Host/IP non attendu
if ($host !~* ^(www\.example\.com|api\.example\.com)$) { return 444; }

# Firewall cloud/on-prem : allowlist IP ranges fournisseur edge
# Deny all direct internet -> origin:443
Exemples d’offres edge
FournisseurCapacités typiquesLiens
CloudflareDDoS, WAF, Bot Management, Rate Limiting, Turnstile, API ShieldDocs Bots
AkamaiApp & API Protector, Bot Manager, Behavioral DDoS EngineApp & API Protector
ImpervaCloud WAF, Advanced Bot Protection, DDoS ProtectionDDoS Protection
Plan de migration DNS
  1. Basculer en mode monitor/log.
  2. Réduire TTL DNS 24h avant.
  3. Configurer certificats, Hostnames, cache, rĂšgles de base.
  4. Tester chemins critiques : login, paiement, API, webhooks.
  5. Changer DNS/CNAME.
  6. Bloquer accĂšs direct origine aprĂšs validation.
  7. Passer progressivement certaines rĂšgles en block.
12 — Cloud Provider Protection
AWS Shield + AWS WAF
  • AWS Shield Standard : protection DDoS de base intĂ©grĂ©e.
  • Shield Advanced : protections avancĂ©es, rĂ©ponse DDoS, intĂ©gration WAF.
  • AWS WAF : rĂšgles managed, rate-based rules, Bot Control, ACL web sur CloudFront/ALB/API Gateway.
# Pseudo architecture AWS
Route53 → CloudFront + AWS WAF + Shield Advanced → ALB → ECS/EKS/EC2
Logs: WAF logs → Kinesis Firehose/S3/OpenSearch/SIEM
Google Cloud Armor

Cloud Armor protÚge les applications derriÚre les load balancers Google Cloud avec politiques de sécurité, rÚgles WAF, rate limiting et Adaptive Protection pour les attaques L7 à haut volume.

# Pseudo architecture GCP
Cloud DNS → Global External HTTPS Load Balancer + Cloud Armor → Cloud CDN → GKE/Cloud Run/Compute
Logs: Cloud Logging → BigQuery/SIEM
Azure Front Door / Application Gateway / DDoS Protection
  • Azure Front Door WAF : protection edge globale pour HTTP/S.
  • Application Gateway WAF : WAF rĂ©gional proche workloads.
  • Azure DDoS Protection : protection rĂ©seau pour ressources Azure exposĂ©es.
  • Rate limit : selon combinaison WAF/policies/API Management.
# Pseudo architecture Azure
Azure Front Door + WAF → Private Link / App Gateway WAF → AKS/App Service/API Management
Logs: Diagnostic settings → Log Analytics / Sentinel
Quand choisir cloud provider vs edge SaaS ?
ContexteChoix naturelPourquoi
Tout AWS/GCP/AzureProvider-nativeIAM/logs/intégration billing
Multi-cloud/hybrideEdge SaaS ou WAAP globalPoint de contrĂŽle commun
Latence mondialeCDN/edgeMitigation proche utilisateurs
Contraintes on-prem fortesADC/WAF local + scrubbingContrÎle réseau interne
13 — On‑Prem / ADC / Reverse Proxy
Pourquoi garder une couche on-prem

MĂȘme avec un CDN, une couche locale protĂšge les applications internes, les environnements non internet, les cas de compliance, les workloads legacy et les attaques qui traversent l’edge via partenaires/VPN.

Internet/Private WAN → Scrubbing/CDN optionnel → ADC/WAF local → Reverse Proxy → App
ContrĂŽles reverse proxy
# NGINX — timeout anti-slow clients
client_body_timeout 10s;
client_header_timeout 10s;
keepalive_timeout 15s;
large_client_header_buffers 4 8k;

# Protection méthodes
if ($request_method !~ ^(GET|POST|PUT|PATCH|DELETE|OPTIONS)$) { return 405; }
# HAProxy — stick-table rate limit simplifiĂ©
frontend fe_https
  stick-table type ip size 1m expire 10m store http_req_rate(10s)
  http-request track-sc0 src
  http-request deny deny_status 429 if { sc_http_req_rate(0) gt 100 }
  default_backend app
F5 / NGINX App Protect DoS

Les solutions F5/NGINX ciblent le L7 DoS en environnement DevOps, avec dĂ©ploiement sur NGINX Plus, Ingress Controller ou plus prĂšs des pods selon l’architecture.

# Exemple conceptuel NGINX App Protect DoS
# 1) Activer module DoS sur location critique
# 2) Associer policy JSON
# 3) Envoyer logs vers Prometheus/SIEM
location /api/ {
    app_protect_dos_enable on;
    app_protect_dos_policy_file /etc/app_protect_dos/api-policy.json;
    proxy_pass http://api_backend;
}
Limites du on-prem seul
  • Ne peut pas absorber une attaque volumĂ©trique supĂ©rieure Ă  la bande passante opĂ©rateur.
  • Peut protĂ©ger finement L7 mais doit ĂȘtre prĂ©cĂ©dĂ© d’un scrubbing en cas de gros volume.
  • NĂ©cessite HA, capacity planning, logs centralisĂ©s et playbooks d’urgence.
14 — Kubernetes / Containers
OĂč protĂ©ger dans Kubernetes ?
CoucheContrĂŽleUsage
Cloud LB / EdgeDDoS, WAF, BotInternet-facing
Ingress ControllerRate limit, WAF, mTLSRoutes HTTP
Service MeshAuthZ, retries, circuit breakingEst-Ouest
Pod sidecarProtection fine par serviceEndpoints critiques
eBPF/CNINetwork policy, L3/L4 filterBas niveau
Ingress rate limit — exemple gĂ©nĂ©rique NGINX Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: api-ingress
  annotations:
    nginx.ingress.kubernetes.io/limit-rps: "10"
    nginx.ingress.kubernetes.io/limit-burst-multiplier: "5"
    nginx.ingress.kubernetes.io/proxy-body-size: "1m"
spec:
  rules:
  - host: api.example.com
    http:
      paths:
      - path: /v1/search
        pathType: Prefix
        backend:
          service:
            name: api
            port:
              number: 8080
Autoscaling ≠ protection

Scaler sous attaque peut transformer un incident disponibilitĂ© en facture cloud. L’autoscaling doit ĂȘtre couplĂ© Ă  des limites d’entrĂ©e, budgets, circuit breakers et backpressure.

  • HPA sur CPU seul peut amplifier le coĂ»t.
  • Limiter requĂȘtes avant crĂ©ation massive de pods.
  • Mettre des quotas namespaces et PDB.
  • ProtĂ©ger DB/cache, pas seulement pods web.
  • Utiliser files/queues pour opĂ©rations coĂ»teuses.
eBPF et runtime security

eBPF peut aider à observer et filtrer à bas niveau : connexions, drops, latences, appels réseau. Il complÚte mais ne remplace pas la logique L7/bot.

# Objectifs eBPF typiques
- détecter spikes connexions par pod/service
- appliquer network policies efficaces
- profiler latence réseau
- exporter métriques vers Prometheus/SIEM
- identifier origine interne d’un flood est-ouest
15 — Rùgles WAF/WAAP anti-abus
Combiner signatures et modĂšle attendu
ApprocheDéfend contreLimite
ModÚle négatifPayloads connus, CVE, scannersContournements/mutations
ModĂšle positifRequĂȘtes hors contratMaintenance schĂ©ma nĂ©cessaire
ComportementBots/DoS/abus lentBesoin d’historique
Threat intelIPs/proxies connusFaux positifs possibles
Exemples de rÚgles défensives
# Cloudflare expression — exemple conceptuel
(http.request.uri.path eq "/login" and http.request.method eq "POST" and cf.bot_management.score lt 30)
→ Managed Challenge or Block depending on sensitivity
# ModSecurity CRS style — limiter mĂ©thodes inattendues
SecRule REQUEST_METHOD "!^(GET|POST|PUT|PATCH|DELETE|OPTIONS)$"   "id:100100,phase:1,deny,status:405,msg:'Unexpected HTTP method'"
Gérer les exceptions sans trouer la sécurité
  • Exception par route prĂ©cise, pas par domaine entier.
  • Exception temporelle avec ticket et propriĂ©taire.
  • Conditionner par mTLS/IP/secret header pour partenaires.
  • Loguer les exceptions autant que les blocages.
  • Revue mensuelle des exceptions expirĂ©es.
Pipeline de changement
  1. Créer rÚgle en count/simulate.
  2. Comparer faux positifs sur 24/72h.
  3. Restreindre scope si besoin.
  4. Activer block/challenge sur subset endpoints.
  5. Ajouter dashboard et alerte.
  6. Documenter raison et rollback.
16 — ObservabilitĂ© SOC
Champs indispensables
{
  "ts":"2026-07-06T12:00:00Z",
  "request_id":"req_...",
  "edge_action":"managed_challenge",
  "rule_id":"bot_login_score_low",
  "route":"POST /login",
  "ip":"203.0.113.10",
  "asn":"AS64500",
  "country":"FR",
  "ja4":"t13d...",
  "bot_score":12,
  "rate_key":"ip+route",
  "rate_window":"60s",
  "origin_status":403,
  "latency_ms":18
}
Dashboard Ă  construire
WidgetBut
Requests allowed/challenged/blockedVue protection
Top rules by actionIdentifier rĂšgle trop agressive
Top endpoints attackedPrioriser tuning
Origin 5xx / latency p99Voir impact réel app
Bot score distributionCalibrer seuils
Top ASN/countriesDécision géo/ASN en crise
Alertes utiles
# Conditions d’alerte typiques
- blocked_requests > baseline * 5 for 5m
- origin_5xx_rate > 2% AND edge_allowed_rps > baseline * 3
- bot_score_lt_10 on /login > 1000 in 10m
- cache_hit_ratio drops below 40% on public pages
- WAF rule false_positive_report > threshold
- queue_depth/payment/login latency p99 critical
Postmortem DDoS/Bot
  • DĂ©but/fin, volume, endpoints, pays/ASN, actions edge.
  • Impact client : erreurs, latence, perte conversion.
  • RĂšgles activĂ©es, seuils, faux positifs, rollback.
  • CoĂ»ts : cloud, SMS/email, DB, autoscaling.
  • Mesures durables : cache, quotas, code app, runbook.
17 — Incident Response DDoS/Bot
RĂŽles en crise
RÎleResponsabilité
Incident CommanderDécisions, priorité business, communication
Edge/WAF EngineerRĂšgles, rate limits, challenges
App OwnerEndpoints coûteux, feature flags, dégradations
SRECapacity, autoscaling, DB/cache, rollback
SOCAnalyse source, IOC, SIEM, timeline
Runbook minute par minute
  1. 0-5 min : confirmer attaque vs incident interne, ouvrir war room.
  2. 5-10 min : identifier endpoints, actions edge temporaires.
  3. 10-20 min : activer rate limits/challenges ciblés.
  4. 20-40 min : protéger origine, cache, dégrader features coûteuses.
  5. 40-60 min : analyser faux positifs, stabiliser rĂšgles.
  6. AprĂšs : postmortem, durcissement durable.
Décider vite sans casser tout le business
DécisionQuandRisque
Bloquer pays/ASNAttaque trÚs concentrée + faible businessClients légitimes impactés
Challenge globalOrigine proche saturationUX dégradée
Couper endpointFeature non critique détruit SLOPerte fonctionnelle temporaire
Full cache/staleContenu public critiqueDonnées moins fraßches
Messages prĂȘts
Interne:
Incident DDoS/Bot L7 en cours. Impact: latence sur /search et /login. Actions: rate limit ciblé + challenge adaptatif. Prochaine update dans 15 min.

Support:
Certains utilisateurs peuvent voir une vĂ©rification supplĂ©mentaire. Demander request_id ou code d’erreur pour analyse faux positif.

Post-incident:
L’incident est stabilisĂ©. Les protections temporaires restent en surveillance 24h avant revue.
18 — Tests, Tuning & Validation
Tester sans devenir le problĂšme

Les tests doivent ĂȘtre autorisĂ©s, limitĂ©s et rĂ©alisĂ©s sur environnement prĂ©vu. L’objectif est de valider les protections, pas de saturer des systĂšmes tiers.

  • Environnement staging ou fenĂȘtre de test validĂ©e.
  • Plafonds de trafic connus.
  • Coordination SRE/SOC/support.
  • Stop condition explicite.
  • Logs et mĂ©triques activĂ©s avant test.
Rejouer le trafic réel
# Pipeline conceptuel de tuning
1. Exporter logs edge anonymisés
2. Étiqueter: legit / bot / partner / monitoring / attack
3. Simuler nouvelles rĂšgles en offline
4. Mesurer: block rate, false positive rate, coverage
5. Déployer en count mode
6. Activer progressivement
KPIs de qualité
KPICible
Time to DetectMinutes, idéalement automatique
Time to MitigateLe plus court possible sans FP massif
False Positive RateMesuré par endpoint et segment client
Origin offloadRéduction RPS/CPU/DB sous attaque
Challenge solve rateIndicateur UX et bot bypass
Exercices Purple Team
  • Credential stuffing simulĂ© avec comptes de test.
  • Scraping de catalogue factice.
  • HTTP flood contrĂŽlĂ© sur endpoint staging.
  • GraphQL complexity sur queries de test.
  • Bypass origine : vĂ©rification firewall/mTLS.
  • Incident tabletop avec dĂ©cisions de blocage.
19 — Vendor Map & Liens
Edge / CDN / WAAP SaaS
SolutionCouverture typiqueURL
CloudflareDDoS, Bot, WAF, Rate Limiting, API Shielddevelopers.cloudflare.com/bots
AkamaiBot Manager, App & API Protector, L7 DDoSakamai.com/products/bot-manager
ImpervaAdvanced Bot Protection, DDoS, WAFimperva.com/products/advanced-bot-protection-management
FastlyEdge WAF, Next-Gen WAF, rate limiting selon offrefastly.com/products/web-application-api-protection
Cloud provider-native
CloudComposantsURL
AWSAWS Shield, AWS WAF, Bot Control, CloudFront/ALB/API GatewayAWS WAF Developer Guide
Google CloudCloud Armor, Adaptive Protection, Load Balancer, Cloud CDNCloud Armor
AzureAzure DDoS Protection, Front Door WAF, App Gateway WAFAzure DDoS Protection
On-prem / ADC / Kubernetes
SolutionDéploiementURL
F5 BIG-IP / Distributed CloudADC, WAF, DDoS, bot selon modulesf5.com/products/security
F5 DoS for NGINXNGINX Plus, NGINX Ingress, pods Kubernetesdocs.nginx.com/nginx-app-protect-dos
HAProxy EnterpriseADC/reverse proxy avec rate limiting et WAF selon moduleshaproxy.com
ModSecurity + OWASP CRSWAF open-source NGINX/Apachecoreruleset.org
Questions Ă  poser au fournisseur
  • DĂ©tection bot : quels signaux exacts ? score explicable ? mobile/API couverts ?
  • DDoS L7 : mitigation automatique ? baselines ? time-to-mitigate ?
  • Rate limiting : clĂ©s composites, par token/user/org ? fenĂȘtres ? logs ?
  • DĂ©ploiement : SaaS, private edge, on-prem, Kubernetes ?
  • Origin protection : mTLS, IP ranges, private link ?
  • ObservabilitĂ© : logs bruts, SIEM, dashboards, API, rĂ©tention ?
  • Faux positifs : workflow d’exception, mode count, simulation offline ?