Comment on Another massive distributed HTTP flood is currently hitting git.friendi.ca a
utzer@f.utzer.de@f.utzer.de 3 weeks ago @pasjrwoctx thanks, that is not what I will try, but just realized I can block the top10 or top11 user-agents and this will block 95% of this bullshit access.
tom_s@friendica.ambag.es@friendica.ambag.es 3 weeks ago
tcpdump oder tshark, Anubis kann JA3 selbst berechnen, wenn man es dort als Log-Feld ergänzt
tom_s@friendica.ambag.es@friendica.ambag.es 3 weeks ago
@utzer
Nein. Fast.
50.000 weltweit gestreute IPs mit identischen Signaturen = eine einzige Software, die durch ein rotierendes Proxy-Netz sendet.
gleicher TLS-/JA3-Fingerprint
dieselbe feste UA-Liste, perfekt gleichverteilt rotiert
dasselbe Ziel
....
tom_s@friendica.ambag.es@friendica.ambag.es 3 weeks ago
@utzer @pasjrwoctx
Das hat einige Begleiterscheinungen, die man nicht möchte.
Prüf aus dem Log das tatsächliche Header-Profil des Floods (Accept-Language leer/nicht leer, Anzahl eindeutiger Sec-CH-UA/Accept-Kombinationen). Wenn da ein konstanter Unterschied zu echten Browsern ist, kann ich dir eine gezielte Regel bauen, die genau diesen Header-Set blockt statt der UA-Version. Das ist der einzige UA-nahe Filter, der hier sauber zwischen Flood und echten Nutzern trennt.
@tom_s Es ist tatsächlich ein neuer dominanter User-Agent nachgerückt:
Android 6 / Nexus 5 / Chrome 65In einer Stunde kamen damit 527 Requests von 526 unterschiedlichen IPv4-Adressen. Das sieht also weiterhin nach demselben rotierenden Proxy-Netz aus.
Das Headerprofil hat sich allerdings geändert:
vorher:
Accept-Language: en-US,en;q=0.9jetzt:
Accept-Language: en-US,en;q=0.5Priority:
u=0, iist gleich geblieben, wird aber auch von echten Browsern verwendet. Darauf kann ich daher nicht sauber filtern.TLS wird bereits im Reverse-Proxy-Nginx terminiert. Anubis sitzt dahinter und erhält nur noch normales HTTP. Anubis kann in diesem Aufbau deshalb keine TLS-/JA3-Fingerprints ermitteln. Dafür müsste ich den ClientHello vor der TLS-Terminierung am Nginx separat erfassen.
tom_s@friendica.ambag.es@friendica.ambag.es 2 weeks ago
@utzer tja, q=0.9 -> q=0.5 Das bedeutet meist, dass der Betreiber beobachtet und anpasst. Egal auf was an dieser Stelle.
nginx kann euch einen groben TLS-Fingerprint direkt ins Access-Log schreiben, das ist mehr als nix.
nginx -tund reload.Mein Chatfenster mach das leider ein wenig kaputt.
Chrome 65 ist gut gewählt, aber so kannst Du rausfinden, ob es überhaupt einer ist.
Eins noch, löst das Ding die Anubis-Challenges?
Im SLOG_LEVEL=DEBUG-Log von Anubis siehst Du das. Wenn er sie nicht löst, verbrennt er nur Anubis-CPU und es kann weg.
@tom_s aber sind das nicht alles echt alte UA, also wenn ich die blocke was kann das für Nebeneffekte haben? Firefox 119 oder 120 ist doch echt alt.
Aber ich schaue morgen nochmal ob ich es weiter optimieren kann.
@pasjrwoctx
@utzer@f.utzer.de
Ich hatte neulich ähnliche Erlebnisse und habe dann begonnen, einige UserAgents via .htaccess zu blocken. Darunter alte Versionen von Chrome, Firefox, etc.
Nebeneffekt: Man blockt ggf. mehr, als man denkt.
Zum Beispiel habe ich festgestellt, daß der BingBot aktuell Chrome/116 im UserAgent angibt.
@tom_s@friendica.ambag.es
@pasjrwoctx@social.2ndshot.photos
tom_s@friendica.ambag.es@friendica.ambag.es 3 weeks ago
@utzer @pasjrwoctx Der Flood rotiert UAs bewusst gleichverteilt durch 160 Identitäten – das ist ein Tool, das darauf gebaut ist, dass man es am UA erkennt. Hier wirst du also mit UA-Blocking nur die nächste der 160 Identitäten sehen, nicht weniger Traffic.
Was helfen kann ist TLS-Fingerprint und die Challenge-Ökonomie (Anubis-PoW-Difficulty).