Protezione e Sicurezza dei Siti Web: Una Guida Completa
La protezione e sicurezza dei siti web è una **disciplina multi-livello** che combina hardening del server, codifica sicura, controllo degli accessi, crittografia e monitoraggio continuo per difendere la riservatezza, integrità e disponibilità (triade CIA) degli asset web.
1. Sicurezza Lato Server (Livello Infrastruttura)
- Firewall di Rete: Limita l'inbound solo alle porte necessarie (80/443, forse 22/3389 limitato agli IP admin). Usa cloud WAF (Cloudflare, AWS WAF, Azure Front Door) per mitigazione DDoS e regole OWASP Top 10.
- Hardening Host: Installazione OS minima, disabilita login root SSH, auth solo con chiave, fail2ban/UFW, aggiornamenti di sicurezza automatici (`unattended-upgrades` / `dnf-automatic`).
- Configurazione Web Server (Nginx/Apache): Disabilita listing directory, server tokens, metodo TRACE. Abilita HSTS, CSP, X-Frame-Options, Referrer-Policy headers.
- SSL/TLS: Solo TLS 1.2/1.3. Certificato valido (Let's Encrypt / DigiCert). Automatizza rinnovo (Certbot). Testa via SSL Labs (Target A+).
- IDS/IPS: Wazuh, OSSEC, o cloud-native GuardDuty/Defender for Cloud.
- Backup: Regola 3-2-1. Automatizzati, criptati, offsite, ripristini testati (RPO/RTO definiti).
2. Sicurezza Lato Applicazione (Livello Codice e Logica)
- Secure SDLC: Threat modeling, SAST (SonarQube, CodeQL), DAST (OWASP ZAP, Burp), SCA (Dependabot, Snyk) in CI/CD.
- Validazione Input e Output Encoding: Previeni XSS, SQLi, Command Injection. Usa query parametrizzate / ORM. Encodifica contestualmente (HTML, JS, URL, CSS).
- AuthN/AuthZ: MFA obbligatorio (TOTP/WebAuthn). JWT a breve vita (15m) + Refresh tokens (HttpOnly, Secure, SameSite=Strict cookies). RBAC/ABAC applicato lato server.
- Gestione Sessione: Cookie Secure, HttpOnly, SameSite. Ruota al cambio di privilegio. Invalida su logout/cambio password.
- Sicurezza API: Rate limiting, validazione schema (OpenAPI), OAuth2/OIDC, mTLS per servizio-servizio.
- WAF (Web App Firewall): ModSecurity (OWASP CRS) o Cloud WAF in modalità blocco per virtual patching.
3. Controlli Client-side e Utente-Centrici
- Policy Password: NIST 800-63B: Min 8 caratteri, nessuna regola di complessità, controlla contro corpus di violazioni (API HaveIBeenPwned), consenti paste/gestori password.
- MFA: TOTP (app autenticatore) + WebAuthn/FIDO2 (Passkeys/YubiKeys) — deprecata SMS/Email OTP.
- Recupero Account: Flussi sicuri, non ingegnerizzabili socialmente (codici di backup, recupero delegato).
- Educazione Utente: Simulazioni di phishing, documentazione di sicurezza chiara, pulsante "Segnala Phishing".
4. Protezione Dati e Conformità
- Crittografia a Riposo: AES-256 (LUKS, RDS encryption, S3 SSE-S3/KMS). Gestione chiavi via HSM/KMS.
- Crittografia in Transito: TLS 1.2+ ovunque (internal mTLS via Istio/Linkerd/Consul).
- Minimizzazione Dati: Raccogli solo ciò che serve. Pseudonimizza/anonimizza analytics.
- Regolamenti Privacy: GDPR (Art. 32 sicurezza), CCPA/CPRA, HIPAA, PCI-DSS (se pagamenti). DPIA per elaborazioni ad alto rischio. DPA con sub-processori.
5. Monitoraggio, Rilevamento e Risposta
- SIEM / Aggregazione Log: Elastic/EFK, Splunk, Datadog, Loki/Grafana. Centralizza: Log App, Log Accesso, Trace di Audit, CloudTrail, Log Auth.
- Allerting: Picchi login falliti, anomalie 4xx/5xx, blocchi WAF, escalata privilegi, integrità file (AIDE/Tripwire), picchi CPU mining cripto.
- Piano Risposta Incidenti: Ruoli definiti, runbook (contenere, eradicare, recuperare), template comunicazione, tempistiche notifica legale/regolamentare (72h GDPR). Esercitazioni da tavolo trimestrali.
- Gestione Vulnerabilità: Scansioni mensili autenticate (OpenVAS, Nessus, Trivy). Patch SLA: Critical 48h, High 2 settimane, Med 30 giorni.
- Penetration Testing: Annuale terzo parti + dopo cambiamenti importanti. Bug bounty (HackerOne, Intigriti) per copertura continua.
La Sicurezza è un Processo, Non un Prodotto
Automatizza baseline (Terraform/Ansible + Policy-as-Code: OPA/Gatekeeper). Tratta la sicurezza come codice. Rivedi, adatta, ripeti.