GH GambleHub

Web Application Firewall e protezione da attacchi

Breve riepilogo

WAF/WAAP filtra e controlla HTTP (S )/WebSocket a livello di applicazione: blocca le vulnerabilità (OWASP Top 10), cerca di eludere l'autenticazione, scansione, bot automatizzato e L7. Lo stack moderno è completato da un motore anti-bot, protezione API, rate limiting, patch virtuali, e una stretta integrazione con il CI/CD, in modo che le regole vengano visualizzate in modo sicuro come il codice.

Ruoli e posizione nell'architettura

Edge/CDN WAF (cloud): bassa latitanza, reputazione globale/Managed Rule, L7 DDoS.
Self-hosted WAF (on-prem/K8s) - Integrazione profonda con reti interne, configurazione sottile.
Approccio WAAP: WAF + API-Gateway funzioni (schema-validation, ), anti-bot, L7, .
Diagrammi di attivazione: Reverse-proxy prima dell'applicazione; Controller Ingress in K8s; Filtri servizio Mesh; sidecar.

Modello di protezione

Negative security (firme/CRS) - Copertura rapida di tecnologie conosciute (SQLI/XSS/SSRF/RCE).
Positive security (allow-list) - Consente solo le query «validi» (metodi/percorsi/diagrammi/tipi di contenuto).
Virtual Patching - Blocca online l'esportazione fino al fisso del codice.
Contestualità: regole diverse per contenuti statici, API, ammiraglio, download, webhoop.

Minacce e misure tipiche

OWASP Top 10: SQLI, XSS, IDOR/PALLA, SSRF, iniezioni in modelli, deserializzazione, misconfigi.
L7 : query/titoli lenti, burst per endpoint hot, protezione: rate-limits, challenge, unità auto.
Bot/screen - Comportamento, frequenza, pattern «non umani», device-fingerprinting, token dinamici.
Credential Stuffing/ATO: intercettazione/sovraccarico di logine, anomalia per IP/ASN, velocity rule, fattori aggiuntivi.
Download: tipo/dimensione/animato da antivirus, «immagine-only» nei media.
API/GraphQL: schema-validation, «maxDepth »/« maxCost», divieto di wildcard, controllo dei metodi e dei titoli.

Criteri e regole di progettazione

Scheletro di base per qualsiasi applicazione:

1. Trasporti: TLS 1. 2+/1. 3, HSTS, mTLS su backend sensibili.

2. I metodi allow-list ('GET, POST, PUT, DELETE, PATCH, OPTIONS') sono univoci per la risorsa.

3. Percorsi: maschere rigide/regexpi rigorose; adminca/billing è un prefisso/dominio separato.

4. I titoli sono elenchi bianchi, non è necessario impedire i pericolosi ('X-Originale-URL', non standard).

5. Corpi: JSON-only/Multipart-only lungo il percorso; limiti di Content-Length, unità di binari per login/ricerca.

6. Rate limits: per-IP/ASN/chiave/organizzazione; Limiti separati per le richieste «costose».

7. Anti-Bot: scorciatoie comportamentali, challenge «non rivelatori», pendenza di identità (cookie-token, JA3/TLS FP).

8. CRS/Managed Rule: abilitati, sintonizzati con FP.

9. Virt patch - Blocca rapidamente i parametri o i modelli di attacco conosciuti.

10. Fogli/metriche: formato unico, correlazione con «trace _ id», report FP/TP.

Pratica di sintonizzazione come ridurre i falsi funzionamenti

Avvia nuove regole in Detect-only/Count-mode (shadow) con un campione di traffico.
Crea eccezioni per contesto ('path =/search', 'param = q'consenti speciali).
Dividi area: pagine pubbliche vs «operazioni sensibili» (la soglia di aggressività è diversa).
Catena di montaggio: regola di stage del canarino (1-5%) del ; rollback per metriche FP.
Cataloga i «falsi» payload per i test di regressione.

Integrazione nella DevSecOps

CI: regole statiche in Git; test: repliche di richieste reali + sintetico dal catalogo degli attacchi.
CD: cartelle canarie, bandiere di fiocchi; Monitoraggio «politico» (modifica delle regole = change).
RASP e SAST/DAST: WAF completa ma non sostituisce la correzione del codice.

Osservabilità e SLO

Metriche:
  • p95/99 di latitanza tramite WAF; Percentuale di bloccati/saltati share Managed Rules vs custom; «attack rate».
  • Anti-bot: FP/TP
  • L7 DDoS: burst-rate, auto-mitigation events.
SLO esempi:
  • «Non più». 5% FP per operazioni autorizzate/24 ore ".
  • «p95 overhead WAF ≤ 10 мс».
  • «TTR è una patch virtuale di 30 minuti».
  • Alarma: picco 4xx/5xx dopo il rilascio delle regole; crescita FP; Caduta del passaggio dei capch; degrado della validazione JWKS/mTLS.

Esempi di configurazione

ModSecurity + OWASP CRS (Nginx)

nginx
Enabling ModSecurity modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main. conf;
`/etc/nginx/modsec/main. conf`:
apache
SecRuleEngine On
Include /usr/local/owasp-modsecurity-crs/crs-setup. conf
Include /usr/local/owasp-modsecurity-crs/rules/.conf

Example of an exception for a search parameter
SecRule REQUEST_URI "@beginsWith /search" "id:900100,phase:1,pass,nolog,ctl:ruleRemoveByTag=attack-xss"
SecRule REQUEST_URI "@beginsWith /search" "id:900101,phase:2,pass,ctl:ruleRemoveTargetById=942100; ARGS:q"

AWS WAF (JSON, rate limit + blocco di paesi)

json
{
"Name": "prod-web-acl",
"Scope": "CLOUDFRONT",
"DefaultAction": { "Allow": {} },
"Rules": [
{
"Name": "BurstLogin",
"Priority": 1,
"Statement": {
"RateBasedStatement": {
"Limit": 100,
"AggregateKeyType": "IP",
"ScopeDownStatement": { "ByteMatchStatement": {
"SearchString": "/login",
"FieldToMatch": { "UriPath": {} },
"TextTransformations": [{ "Priority": 0, "Type": "NONE" }],
"PositionalConstraint": "CONTAINS"
}}
}
},
"Action": { "Block": {} },
"VisibilityConfig": { "MetricName": "BurstLogin", "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true }
}
]
}

Cloudflare (Expression Rules)


(http. request. uri. path contains "/admin" and ip. geoip. country ne "UA")
or (http. request. uri. path eq "/login" and cf. threat_score > 10)
or (http. request. uri. path contains "/api" and not http. request. headers["authorization"][0] contains "Bearer ")

Regola NGINX semplice su metodi/corpi

nginx location /api/withdraw {
limit_except POST { deny all; }
if ($request_method = POST) {
set $cl $http_content_length;
if ($ cl = "") {return 411;} # length is required if ($ cl> 1048576) {return 413;} # ≤ 1MB add_header X-Idempotency-Required "true";
}
}

GraphQL: limitatori

«maxDepth=6», «maxCost=1000», «__ schema», «allow-list», «Content-Type: application/json».

Controlli anti-bot e collaterali

Invisibile challenge (JS challenge senza capchi), proof-of-work su percorsi «costosi», analitica comportamentale (movimento/timing).
TLS/JA3-fingerprinting, reputazione IP/ASN, elenco proxy/VPN (entro limiti ragionevoli).
Trappole (campi honeypot) sui moduli, token dinamici modulo/sessione.
Protezione della privacy: riduzione del tracking, regole trasparenti, opzioni opt-out.

Attivazione API

Schema-first: OpenAPI/JSON Schema per la convalida; Vietare i campi superflui.
Auth: è obbligatorio Bearer JWT o mTLS; reject без `Authorization`.
Rate/Quota: per-key/per-org; se superata, «soft block «/slowing.
Webhooks firma HMAC, 'timestamp + nonce', una breve finestra di ricezione.
GraphQL: vedi i vincoli sopra; logica il nome o l'etichetta dell'operazione.

Download e media

Limite di dimensioni, whitelists MIME/estensioni, rinominazione dei file;

AC-scan (multi-motori), ImageMagick policy (senza decoder pericolosi);

Servizio Thumb su un dominio separato, serve-only-image.

Protezione di ammiragli e zone critiche

Dominio/percorso separato, mTLS/divieto con ASN/paesi comuni, rate limits rigidi, JIT, IP allow-list.
I segnali aggiuntivi (device posture, risk score) possono richiedere una seconda verifica.

Operazioni, incidenti e patch virtuali

Runbook - Rilascia rapidamente regole block, vincolo TTL, notifica comandi.
Criteri di rientro: 4xx/5xx> soglia, FP> soglia, p95 latency↑.
Post-mortem - Aggiunge un test a un set di regole di regressione, fissa il SIGMA-ALERT in SIEM.

Complaence e privacy

Logica minimo: percorso/metodo/codice/causa del blocco/ID; non conservare PII/segreti del corpo.
Data di conservazione dei fogli di criteri Accesso - per ruolo crittografia su disco.

Caratteristiche per iGaming/Fintech

Pagamenti/pagamenti/portafogli: per-org quote, mTLS a PSP, rigidi allow-list percorsi, HMAC per webhoop PSP.
ATF/bonus-abuse: regole velocity per login/registrazione/bagni, limiti comportamentali e anti-bot.
Fornitori di contenuti/studi: singoli domini/regole, IP/ASN allow-list, monitoraggio Time-to-Wallet/Conversioni sull'impatto WAF.
Requisiti regionali: geo-politiche (paesi/regioni), trasparenza dei guadagni per il GDPR.

Road map di implementazione

1. Inventario delle aree (pubbliche, API, adminca, download).
2. Profilo base: TLS, metodi/percorsi allow-list, Managed Rule/CRS.
3. Rate limits + anti-bot su percorsi sensibili.
4. Patch virtuali e regole di emergenza (SLA 30 min).
5. CI/CD per le regole, stage/canarino/shadow-mode.
6. Telemetria, SLO, test di regressione delle regole.
7. Revisione periodica delle eccezioni e pulizia dei giri.

Errori tipici

«Accendete tutti i CRS al massimo».
Regole senza canarini e modalità shadow.
Nessuna segmentazione: un solo criterio per tutto.
Ignora le specifiche (schema/limits).
Fogli senza correlazione ('trace _ id') e senza metriche di qualità.

FAQ

WAF sostituisce il codice sicuro?
No, no. È uno strato di allentamento e una patch virtuale, ma è necessario eliminare il codice.

Come si fa a capire che è ora di attivare i blocchi rigidi?
Quando il report shadow-modalità mostra un FP basso e ci sono test di regressione delle regole.

È necessario un WAF separato per l'API?
È meglio WAAP/integrazione con il gateway API: schema, limiti, autenticazione, firme web.

Totale

WAF/WAAP efficiente è una combinazione di CRS/Managed Rule di base, modello positivo, anti-bot, limiti e patch virtuali, supportata da processi di DevSecOps, telemetria e SLO nitidi. Questo approccio consente di rispondere rapidamente alle vulnerabilità, alla resistenza agli attacchi automatizzati e all'impatto prevedibile su UX e prestazioni.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.