Ciberseguretat dels Serveis Web
Aquesta pàgina complementa el Protocol HTTP i les Arquitectures Web centrant-se en com es pot atacar un servei web i com defensar-se'n.
Atacs més comuns
XSS (Cross-Site Scripting)
L'atacant aconsegueix que el navegador de la víctima executi JavaScript maliciós dins del context del lloc legítim (per exemple, injectant-lo en un camp de comentaris que després es mostra sense filtrar a altres usuaris). Un cop executat, aquest script té accés al DOM de la pàgina i, si les cookies no tenen HttpOnly, pot llegir-les i enviar-les a un servidor de l'atacant.
- Reflected XSS: el codi maliciós viatja en la mateixa petició (per exemple, un paràmetre d'URL) i es reflecteix immediatament a la resposta.
- Stored XSS: el codi maliciós es desa al servidor (base de dades, fitxer) i s'executa cada vegada que algú visualitza aquell contingut.
- DOM-based XSS: la vulnerabilitat és íntegrament al codi JavaScript del client, que manipula el DOM amb dades no confiables sense passar pel servidor.
Mitigació principal: escapar/sanititzar tota entrada abans de mostrar-la, capçalera Content-Security-Policy, i cookies amb HttpOnly.
CSRF (Cross-Site Request Forgery)
L'atacant fa que el navegador de la víctima, ja autenticada en un lloc, enviï sense voler-ho una petició cap a aquell lloc (per exemple, incrustant un formulari auto-enviat en una pàgina maliciosa). Com que el navegador adjunta automàticament les cookies de sessió, el servidor rep una petició aparentment legítima.
Mitigació principal: cookies amb SameSite=Strict o Lax, i un token CSRF únic per formulari que el servidor verifica.
SQL Injection
L'atacant introdueix codi SQL dins d'un camp d'entrada (formulari, paràmetre d'URL) que el servidor concatena directament a una consulta a la base de dades, alterant-ne el comportament: pot arribar a llegir, modificar o esborrar dades a les quals no hauria de tenir accés, o fins i tot saltar-se l'autenticació.
Mitigació principal: consultes parametritzades / prepared statements, mai concatenar entrada d'usuari directament a l'SQL.
Clickjacking
L'atacant incrusta el lloc legítim dins d'un <iframe> invisible superposat a la seva pròpia pàgina, de manera que l'usuari creu que fa clic en un element de la pàgina de l'atacant quan en realitat fa clic en un botó del lloc legítim (per exemple, "M'agrada" o "Transferir").
Mitigació principal: capçalera X-Frame-Options o la directiva frame-ancestors de Content-Security-Policy.
Man-in-the-Middle (MITM)
Un atacant situat a la xarxa (Wi-Fi pública, ARP spoofing...) intercepta el trànsit entre el client i el servidor. Si la connexió és HTTP sense xifrar, pot llegir o modificar les dades en trànsit (credencials, cookies, contingut).
Mitigació principal: HTTPS a tot arreu, i capçalera Strict-Transport-Security (HSTS) perquè el navegador no accepti mai baixar a HTTP.
Segrest de sessió (Session Hijacking)
Ja tractat a la secció de Sessions del Protocol HTTP: si un atacant obté l'ID de sessió d'una víctima, pot suplantar-la sense conèixer la seva contrasenya.
Força bruta i credential stuffing
L'atacant prova moltes combinacions d'usuari/contrasenya (força bruta) o reutilitza credencials filtrades d'altres serveis (credential stuffing) contra el formulari de login, fins a encertar-ne una.
Mitigació principal: rate limiting als intents de login, bloqueig temporal després de diversos intents fallits, CAPTCHA i autenticació de dos factors (2FA/MFA).
Denegació de servei (DoS/DDoS)
L'atacant satura el servidor amb un volum de peticions molt superior al que pot atendre (des d'un sol origen en DoS, o des de milers d'equips compromesos en DDoS), deixant el servei inaccessible per als usuaris legítims.
Mitigació principal: rate limiting, tallafocs d'aplicació web (WAF), i serveis de mitigació especialitzats (CDN amb protecció anti-DDoS).
Millors pràctiques de seguretat
- Utilitzar sempre HTTPS amb certificats vàlids
- Mantenir el software actualitzat
- Configurar firewall adequadament
- Implementar rate limiting
- Utilitzar headers de seguretat (vegeu més avall)
- Monitoritzar logs regularment
- Fer backups periòdics
- Documentar tota la configuració
Capçaleres de Seguretat Recomanades
| Capçalera | Per a què serveix | Atac que mitiga |
|---|---|---|
Strict-Transport-Security (HSTS) |
Obliga el navegador a fer servir sempre HTTPS amb aquest domini, fins i tot si l'usuari escriu http:// |
Man-in-the-Middle |
Content-Security-Policy (CSP) |
Restringeix des d'on es poden carregar scripts, estils o imatges | XSS |
X-Content-Type-Options: nosniff |
Impedeix que el navegador "endevini" el tipus de contingut, evitant que un fitxer pugui executar-se com a script | XSS |
X-Frame-Options / frame-ancestors (dins CSP) |
Evita que el lloc es carregui dins un <iframe> d'un altre domini |
Clickjacking |
Referrer-Policy |
Controla quanta informació de l'URL d'origen s'envia quan es navega cap a un altre lloc | Fuita d'informació |
Referències
Documentació oficial, eines de testatge i vídeos sobre serveis web: consulta la secció Serveis Web a la pàgina d'Annexos · Recursos.