Projecte

General

Perfil

Accions

Incidència #8631

tancat
FJ FJ

Sobrecàrrega de petions de Singapur i Estats Units

Incidència #8631: Sobrecàrrega de petions de Singapur i Estats Units

Afegit per Ferran Jorba fa més d'un any. Actualitzat fa 8 mesos.

Estat:
Tancada
Prioritat:
Alta
Assignat a:
Categoria:
Tecnologia
Inici:
19-09-2024
Data de venciment:
Paraula clau:

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 Accions #1

  • 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 Accions #2

FJ Actualitzat per Ferran Jorba fa més d'un any Accions #3

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.

CA Actualitzat per Cristina Azorin fa 8 mesos Accions #5

Open repositories are being profoundly impacted by AI bots and other crawlers: Report from a COAR Survey

https://coar-repositories.org/news-updates/open-repositories-are-being-profoundly-impacted-by-ai-bots-and-other-crawlers-results-of-a-coar-survey/

Accions

També disponible a: PDF Atom