Incidència #8631
tancatSobrecàrrega de petions de Singapur i Estats Units
Descripció
Des de fa un parell de dies tornem a tenir una sobrecàrrega de peticions, sobretot dels Estats Units i Singapur:
https://ddd.uab.cat/accessos/2024/access_a2024m9_geoip.svg
Després d'analitzar els logs d'Apache, he vist un patró curiós. De cada 1000 peticions, la meitat eran /youraccount, /yourbaskets, /youralerts i /rss, i coincidien amb els accessos dels Estats Units i Singapur.
Això permet pensar una estratègia per aturar-los.
FJ Actualitzat per Ferran Jorba fa més d'un any
- Estat ha canviat de Creada a En curs
He pensat que totes aquestes peticions venen d'usuaris que no estan identificats al DDD, perquè són robots. De fet, quan Invenio detecta una petició que requereix autenticació, et redirigeix a la pàgina d'identificació.
Per tant, una manera de discriminar els usuaris legítims dels que no és que si van a aquestes pàgines sense haver-se identificat prèviament, retorni un error 503 Service unavailable, que és el que provoquen ells. Si t'has identificat prèviament, funciona amb normalitat.
De moment ho he fet per a:
- /yourbaskets/add (68 peticions de les darreres 1000)
- /youralerts/input (377 peticions de les darreres 1000)
- /rss (420 peticions de les darreres 1000)
També he afegit aquestes adreces al robots.txt
FJ Actualitzat per Ferran Jorba fa més d'un any
- S'ha actualitzat Descripció (diferències)
FJ Actualitzat per Ferran Jorba fa més d'un any
Després d'unes quantes hores, encara generem moltes més respostes amb codi d'error 503 (Service unavailable) que no amb 200 (Ok). De fet, tres quartes parts de les nostres respostes són per defensar-nos d'aquest atac:
ddd@mompou:~/invenio$ tail -1000 ~/invenio/var/log/ddd-ssl.log | awk '{ print $9 }' | sort | uniq -c
178 200
55 302
1 304
10 404
756 503
Però al menys ara no accedexien a la base de dades i consumeixen pocs recursos del servidor.
He après que fent un time.sleep() no millora. Concretament, si els hi feia fer un time.sleep(5) a les peticions espúries, a mi em donava molts més errors 503 Service unavailable. Quan l'he baixat ha millorat. Ara mateix el tinc a 0.1, i des d'aleshores no m'ha donat cap error.
FJ Actualitzat per Ferran Jorba fa més d'un any
- Estat ha canviat de En curs a Tancada
CA Actualitzat per Cristina Azorin fa 8 mesos
Open repositories are being profoundly impacted by AI bots and other crawlers: Report from a COAR Survey