Frage:
Wie und warum wird meine Website missbraucht?
Marc
2019-12-18 20:15:18 UTC
view on stackexchange narkive permalink

Ich besitze eine beliebte Website, auf der Benutzer eine Telefonnummer eingeben und Informationen über diese Telefonnummer zurückerhalten können, z. B. den Namen des Telefonanbieters. Es ist ein kostenloser Service, aber es kostet uns Geld für jede Anfrage, sodass wir Anzeigen auf der Website schalten, um die Bezahlung zu erleichtern. Um sicherzustellen, dass die Leute es nicht missbrauchen, haben wir ein Captcha und verwenden die IP-Adressen, um die Anzahl der Abfragen auf 30 pro Monat zu begrenzen.

Aber wir haben trotzdem Missbrauch gesehen. Wir werden plötzlich eine große Anzahl von Anfragen von allen verschiedenen IP-Adressen erhalten, die Anfragen stellen (Hunderte pro Minute) und die richtigen Captchas erhalten. Also ändere ich das Captcha ständig - ich habe es mit Wörtern, mathematischen Gleichungen, reCAPTCHA usw. versucht. Wenn ich das mache, stoppt es den "Angriff" für ungefähr 24 Stunden und dann beginnt es von vorne.

Ich verstehe, dass Menschen OCR und andere Methoden verwenden können, um Captchas zu umgehen, aber ich verstehe nicht, warum sie von vielen verschiedenen und nicht verwandten IP-Adressen stammen.

Vielleicht fälschen sie die IP-Adressen? Wenn ja, können sie die Ergebnisse der Abfragen nicht erhalten, richtig? In diesem Fall besteht das Ziel möglicherweise darin, uns finanziell zu verletzen, anstatt nur die Daten zu wollen.

Wenn sie die IP-Adressen nicht fälschen, haben sie möglicherweise eine große Anzahl verschiedener Computer gehackt und führen Abfragen von ihnen aus? Dies ist für mich aufgrund der schieren Anzahl von IP-Adressen, die wir sehen (Hunderte von Transaktionen pro Minute mit maximal 30 Abfragen pro IP-Adresse über einen längeren Zeitraum) und der Tatsache, dass diese Daten wirklich sind, nicht sinnvoll ist das nicht wertvoll

Ich versuche also, ihre Motivation zu verstehen und zu verstehen, wie sie dies erreichen, um sich angemessen wehren zu können.

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (https://chat.stackexchange.com/rooms/102500/discussion-on-question-by-marc-how-and-why-is-my-site-being-abused).
Zehn antworten:
mti2935
2019-12-18 21:58:11 UTC
view on stackexchange narkive permalink

Interessantes Problem. Ich frage mich, ob eine Lösung für dieses Problem darin bestehen könnte, die Webbrowser Ihrer Benutzer zu zwingen, ein kryptografisches Problem zu lösen (unter Verwendung von Javascript, das in ihrem Webbrowser ausgeführt wird), das "schwer" zu lösen ist, aber für Ihre Website "einfach" zu überprüfen ist. Mit "schwer" zu lösen meine ich ein Problem, dessen Lösung mit den Ressourcen eines typischen Desktops oder Laptops ~ 10 Sekunden dauern würde. Ein Problem, das dem Problem ähnelt, das Bitcoin-Miner lösen, wenn neue Blöcke abgebaut werden, aber natürlich in einem viel einfacheren Maßstab.

Ihre legitimen Benutzer würden den Unterschied nicht bemerken, da das Skript beim Ausfüllen abläuft das Formular auf Ihrer Website. Dies würde die Missbraucher jedoch erheblich verlangsamen und sie dazu zwingen, viel mehr Ressourcen zuzuweisen, und sie dazu zwingen, das Tool zu überarbeiten, mit dem sie diese Posts auf Ihrer Website automatisieren.

Dieses Konzept liegt mehrere Jahre vor Kryptowährungen und war Inspiration für Bitcoins.https://en.wikipedia.org/wiki/Hashcash
Interessante Lösung.Dies könnte die einzige Lösung sein, die sowohl Bots als auch Captcha-lösende Menschen in Ländern der Dritten Welt blockieren würde.Es würde zu teuer werden.
Dies kann von Browsern als Malware angesehen und entsprechend blockiert werden.
@Mast, nein, würde es nicht.Mir sind einige einigermaßen wichtige Websites bekannt, die genau dies ohne Probleme tun (außer dass sie ohne Javascript nicht zugänglich sind).
Würde dies tatsächlich helfen, wenn es aus einem Botnetz stammt?Ja, es wäre mehr Rechenaufwand für das Botnetz, aber da er bereits die Geschwindigkeit begrenzt, erhöht dies nur die Zeit auf 300 Sekunden pro IP im Botnetz anstatt auf 30 * (unabhängig von der Captcha-Cracking-Zeit).
Cloudflare wird mit einem solchen Service geliefert.Sehr empfehlenswert.
Ich verstehe nicht, wie das tatsächlich jemanden blockiert.Ein verteilter Angriff würde nur 10 zusätzliche Sekunden pro Runde dauern.Ein Captcha dauert normalerweise sowieso 5-10 Sekunden, wenn ich etwas falsch mache.Mögen einige Auto-Browser JS nicht auch Selen?
@zero298, die Sache ist, Sie begrenzen jede Anfrage aus dem Botnetz, außerhalb jeder Methode, die ein Mensch lösen könnte.Sie beschränken auch die Skalierbarkeit der ihnen zur Verfügung stehenden verteilten Computerressourcen.
@Anders - Es gibt ein [gebrauchsfertiges Python-Modul] (https://github.com/VeNoMouS/cloudscraper), um dies zu umgehen. - Es scheint, dass CF derzeit nur prüft, ob der Client JavaScript unterstützt.Im Prinzip sollte dies jedoch funktionieren - man könnte sogar eine Minute lang eines der verschiedenen clientseitigen Crypto-Mining-Skripte ausführen (man müsste es serverseitig erzwingen, um sicherzustellen, dass der Client die Berechnungsarbeit tatsächlich ausführt) oder so als Herausforderung.Möglicherweise müssen Sie Benutzer bitten, ihren Adblocker auszuschalten, aber vielleicht lohnt es sich, selbst wenn einige Ihrer Benutzer das Unternehmen verlassen würden.
Jetzt, wo ich darüber nachdenke, erinnert mich das daran, wie TeamSpeak den öffentlichen Schlüssel für Profile erstellen würde.Wenn Sie ein Profil sperren, benötigen sie ein neues Profil, das nur 1 Sekunde bis mehrere Tage dauern kann.(Die erforderliche Zeit wurde pro Server angepasst.)
> Cloudflare wird mit einem solchen Service geliefert. Ja, und es gibt Beispielcode.Ein Freund von mir und mir, der dies für versteckte Dienste getan hat, hat Freunde bei Cloudflare, die es benutzt haben.https://github.com/jsavoie/proof-of-work-login
Tun Sie dies nicht, wenn Sie jemals mobile Geräte unterstützen möchten. Eine harte Kryptoberechnung wird die doppelte Zeit in Anspruch nehmen und den Akku Ihres Benutzers absolut entlasten.
Es erscheint nicht unfair, wenn die OP-Website den Benutzern eine gültige Hash-Lösung "in Rechnung stellt", die einer echten Cryptocurrency-Mining-Umfrage unterzogen werden könnte.Selbst wenn es für den Angreifer kostengünstig ist, wenn jedes Botnet-Gerät etwa 10 Sekunden pro Anforderung warten muss, wird OP dennoch dafür bezahlt.
@lvella Ich dachte das Gleiche.Einige Message-Boards tun ähnliche Dinge, um leichter schwarze Zahlen zu schreiben.
Ivella, SeldomNeedy - Es ist eine großartige Idee, aber daraus kann sehr wenig gemacht werden.Javascript, das in meinem Webbrowser ausgeführt wird (auf einem anständigen, ziemlich neuen Laptop), kann (bestenfalls) ungefähr 20.000 Hashes pro Sekunde ausführen.Im Gegensatz dazu machen alle zusammenarbeitenden Bitcoin-Miner ~ 100.000.000 Tera-Hashes pro Sekunde.Sie alle mahlen ungefähr 10 Minuten lang, um 12,5 Bitcoin zu verdienen, was einem Wert von ungefähr 90.000 USD entspricht.Wenn Sie also das Mathe-Javascript in meinem Browser ausführen, ist das Hashing für 10 Sekunden mit 20.000 Hashes / Sekunde ungefähr 0,0000000003 USD wert.
Das ist keine so gute Idee.Eine Diskussion darüber, warum das so ist, siehe https://news.ycombinator.com/item?id=7944540
Zach Mierzejewski
2019-12-19 23:01:36 UTC
view on stackexchange narkive permalink

Wie?

Vermietete Botnet- und Captcha-Farmen.

Warum?

Jemand möchte Ihre Daten. Es ist billiger, es zu stehlen als es zu kaufen.

Was tun?

Es zu stehlen ist billiger, aber nicht kostenlos. Es kostet "sie" (wer letztendlich die Daten will, nicht das Botnetz oder die Captcha-Farm) Geld, um diese Angriffe auszuführen. Machen Sie es teurer, Sie anzugreifen, als die Daten wert sind.

  1. Identifizieren Sie Muster, um Spammer zu identifizieren.

  2. Geben Sie legitimes Aussehen zurück. aber falsche Daten an die Spammer.

  3. ol>

    Beginnen Sie nach einer bestimmten Anzahl gültiger Antworten, falsche Daten mit den gültigen Daten zu vermischen. Dann müssen sie zusätzliche Schritte unternehmen, um Ihre Daten zu validieren. Diese zusätzlichen Schritte kosten zusätzliches Geld.

    Wenn sie nicht validiert werden, sind ihre Daten weniger nützlich, d. H. Weniger wert. Sie können es möglicherweise weiterhin verwenden oder verkaufen, aber es ist weniger wertvoll, sodass die Kosten für einen Angriff höher sind als der zurückgegebene Wert.

Dies würde das Problem nicht wirklich lösen.Es würde immer noch viel Zeit dauern, bis der Botnetzbesitzer erkennt, dass Sie mit ihm spielen und er Ihre Website weiterhin spammt.Und wenn Ihre gefälschten Daten zu offensichtlich sind, stoppt der Botter den Bot für diese IP, sobald er gefälschte Daten erkennt.
Sie haben Recht, den Angriff am besten zu blockieren.Dies ist einfach / billig genug, um die anderen Vorschläge * zusätzlich * umzusetzen.Alle Vorschläge können zu einem Preis überwunden werden.Wenn Sie zusätzliche Methoden verwenden, erhöht sich der Preis.Aber Sie haben Recht, es stoppt nicht sofort die Kosten für OP.
Wie gehen Sie mit der Tatsache um, dass Sie legitimen Benutzern falsche Daten geben können?
MechMK1
2019-12-18 20:51:08 UTC
view on stackexchange narkive permalink

Sie machen CAPTCHA falsch.

Die Idee von CAPTCHA ist es, es einem Computer schwer zu machen (lesen Sie "fast unmöglich"), es zu lösen, aber für einen Menschen einfach, dies zu tun. Wenn Sie Verwenden Sie einfach ein statisches Bild und fragen Sie beispielsweise nach der Eingabe von 4 . Dann kann ein Computer problemlos 4 wiederholt eingeben, wenn er dazu aufgefordert wird.

Verwenden Sie stattdessen reCAPTCHA oder ähnliche Technologien. Diese Probleme wurden bereits gelöst, und das Rad muss nicht neu erfunden werden, wie unten gezeigt:

[Reinventing the Wheel]

CC-BY-NC 2.5, Randall Munroe, xkcd.com/2140/ sup>

Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (https://chat.stackexchange.com/rooms/102499/discussion-on-answer-by-mechmk1-how-and-why-is-my-site-being-abused).
Harper - Reinstate Monica
2019-12-20 06:24:10 UTC
view on stackexchange narkive permalink

Wenn Sie ein einfaches CAPTCHA "Geben Sie die Nummer in dieses Bild ein" erstellen und diesen Stick 24 Stunden lang haben können, wissen Sie, dass Ihr Feind ein Amateur ist. Sie wissen, dass diese Art von primitivem Gerät mit maßgeschneidertem Code sie 24 Stunden lang verlangsamt. Das könnte Spaß machen :)

Ich würde Stylesheets ausgiebig verwenden, um Informationen im Seitencode auszublenden: in zweierlei Hinsicht: erstens CAPTCHAs ausblenden und zweitens informative Antworten ausblenden. Mit dem Ziel, Schaber sadistisch irrezuführen.

Ich würde ein bisschen Code auf der Serverseite schreiben, um falsche Antworten zu erstellen, die auf den ersten Blick glaubwürdig sind, aber auf eine Weise falsch sind, die nicht leicht zu bestätigen ist. Verwenden Sie außerdem Random Seeding oder MD5s, um sicherzustellen, dass dieselbe Eingabe immer dieselbe falsche Antwort liefert.

Irreführend bei CAPTCHAs:

Lassen Sie beispielsweise das zuletzt verwendete CAPTCHA-System. Verwenden Sie jedoch Stylesheets, um sie auszublenden. Folgen Sie mit einem anderen CAPTCHA, das von Javascript verschleiert wird. Vielleicht sogar ein anderes reCaptcha mit einem anderen Schlüssel.

Jetzt merkt der Schaber nicht, dass das erste CAPTCHA mit Stylesheets unterdrückt wird. Es wird fröhlich das CAPTCHA lösen und die Antwort mit dem falschen Schlüssel zurückgeben. Gotcha . Genau wie beim Knacken von Enigma können Sie jedoch nicht klar machen, dass Sie den Code kaputt gemacht haben. Der Schaber muss weiterhin glauben, dass er funktioniert. .

Irreführende Antworten:

Präsentieren Sie eine Antwort wie gewohnt mit einem Stylesheet. Das Stylesheet verbirgt dieses Ergebnis für normale Personen. Der Schaber merkt nicht, dass dieses Blatt die Eigenschaft "versteckt" hat. Die Antwort, die Sie hier präsentieren, ist die Fälschung . Präsentieren Sie anschließend das wahre Ergebnis. Präsentieren Sie für Bonuspunkte die Ergebnisse in einer Grafik , wodurch sie nicht mehr verschrottbar sind. Versuchen Sie dies natürlich zu verbergen.

Wenn Sie Telemetrie (falsches CAPTCHA gelöst) haben, dass es sich um eine verkratzte Abfrage handelt, müssen Sie das Abfrageergebnis nicht einmal von Ihrem Dienstanbieter kaufen . Geben Sie einen Ruhezustand (t + zufällig) für den typischen Zeitraum ein, den Ihr Dienstanbieter benötigt, und senden Sie dann eine falsche Antwort zurück.

Sieht normal aus

Der Angreifer glaubt, dass die Dinge normal funktionieren und nur auf Erfolg der Abfrage prüfen, nicht auf Qualität der Ergebnisse. Mit etwas Glück hat Ihr Angreifer nicht protokolliert, als jede Abfrage durchgeführt wurde , und speichert die Antworten einfach in einer Datenbank. Es kann ziemlich lange dauern, bis der Angreifer feststellt, dass Sie die Daten vergiftet haben. Zu diesem Zeitpunkt wäre die gesamte Datenbank beschädigt, da er keine Ahnung hat, welche Einträge gültig und welche giftig sind (siehe, wie wichtig es ist, dass die gefälschten Daten legitim aussehen ?) Auch wenn der Angreifer jeden Eintrag mit einem Zeitstempel versehen hat, was für eine Fehlersuche! Sie müssen mehrere Einträge für jeden Tag manuell überprüfen, um festzustellen, wann die Daten fehlerhaft waren.

Und noch etwas. Cache echte Antworten, und wenn sich eine Botnet-Abfrage im Cache befindet, geben Sie immer die richtige Antwort aus dem Cache. Der Scraper, der Fehler behebt, trifft Ihre reale Website mit einem Browser und fragt nach einer Testnummer von 213-456-7890. Das Ausblenden funktioniert und dies verhält sich wie eine echte Abfrage. Sie berechnen also die echte Antwort und geben sie zurück. Als nächstes weist der Schaber das Botnetz an, nach 213-456-7890 zu fragen. Um zu sehen, ob der Bot ein anderes Ergebnis erzielt. Sie erkennen die Bot-Abfrage . Wenn Sie jetzt eine falsche Antwort geben, weiß der Schaber, dass die Schablone hoch ist, und wiederholt dies, wenn Ihre Erkennung unterbrochen wird. Da Sie also die richtige Antwort im Cache haben, geben Sie sie auch in den versteckten Feldern. Jetzt ist der Scraper ratlos: Das Botnetz scheint zu funktionieren .


Warum und wie

Offensichtlich findet jemand Ihre Daten wertvoll. Sie würden es von Ihrer Quelle bekommen, aber sie wollen nicht dafür bezahlen, also kratzen sie Sie.

  • Es ist möglich, dass es sich tatsächlich um eine Konkurrenz-Website handelt, die dasselbe tut wie Sie, und sie generieren eine Anfrage an Sie, wenn sie eine von ihrem Besucher erhalten. Im Wesentlichen ist dies ein Schema, um Ihren Service zu nutzen, aber deren Anzeigen zu schalten. Sie selbst kennen den Wert davon. Sie können dies testen, indem Sie auf jeder Website eines Mitbewerbers unklare und unterschiedliche Abfragen durchführen und sehen, welche Abfragen in Ihren Protokollen angezeigt werden.

Es gibt unzählige Möglichkeiten, CAPTCHAs zu lösen. Im Beispiel einer Mitbewerber-Website, auf der Ihre Daten für ihre Kunden abgerufen werden, geben diese möglicherweise einfach Ihr CAPTCHA an ihre Kunden weiter. Es gibt auch Möglichkeiten, Menschen dazu zu bringen, CAPTCHAs für Sie zu erstellen, z. B. "CAPTCHAs lösen, um kostenlosen Porno zu erhalten" oder indem Sie einen nicht verwandten Dienst anbieten, für den CAPTCHAs aus irgendeinem Grund erforderlich sind, z. B. ein anonymes Bulletin Board. Jedes Mal, wenn jemand etwas veröffentlicht, sendet er Ihnen eine Anfrage und erhält sein Poster, um Ihr CAPTCHA zu lösen. Es gibt auch CAPTCHA, das im Wesentlichen die Sklaverei in der Dritten Welt löst.

Exzellente Idee.Anstatt nur die gefälschte Antwort auszublenden, möchten Sie sie möglicherweise indirekt ausblenden, indem Sie sie zufällig außerhalb des Ansichtsfensters positionieren oder unter ein anderes Element stellen, da dies schwieriger zu erkennen ist.
phLOx
2019-12-19 10:57:18 UTC
view on stackexchange narkive permalink

Warum?
Daten zu Telefonnummern, Namen und E-Mail-Adressen sind sowohl auf dem legalen als auch auf dem unterirdischen Markt äußerst wertvoll.

Wie?
Es hört sich so an, als würde jemand ein Botnetz verwenden, um Daten von Ihnen abzubauen. Dies könnte Verbindungen von ein paar Dutzend global verstreuten IPs zu Tausenden von IPs bedeuten. Persönlich habe ich keine Ahnung, wie sie sich mit reCapchas umgehen, außer mit manueller Arbeit von Websites, die Capcha-Lösungsdienste anbieten. All dies kostet sie auf die eine oder andere Weise Geld.

Lösung?
Haftungsausschluss: Ich bin kein Sicherheitsexperte.
Einige kostenlose Dienste verwenden nach einer bestimmten Anzahl von Abfragen ein Warteschlangensystem. Angenommen, Sie möchten Ihr System nicht überlasten, sondern lassen maximal 30 Anforderungen (oder eine beliebige Anzahl gleichzeitiger Anforderungen, die Ihr System problemlos verwalten kann) gleichzeitig zu. Anfragen, die eingehen, während die Warteschlange voll ist, erhalten eine Meldung, dass der Server ausgelastet ist und sie es entweder zu einem späteren Zeitpunkt erneut versuchen müssen oder automatisch in die Warteschlange gestellt werden. Diese Lösung ist nicht ohne Probleme, da Ihre legitimen Clients manchmal warten müssen serviert werden, besonders in Spitzenzeiten oder während eines Angriffs.

Sie haben erwähnt, dass eine Änderung Ihrer Capcha-Methode die Angriffe für eine Weile bremst. Vielleicht gibt es eine Möglichkeit, die Capcha-Methode für jeden Besucher bei jeder Anfrage nach dem Zufallsprinzip zu ändern? Zumindest müsste der Angreifer einige seiner Methoden neu schreiben. Im besten Fall werden ihre erfolgreichen Angriffe durch die Anzahl der verschiedenen Methoden geteilt, die Sie einbeziehen.

Erwägen Sie, im selben Thread wie das Erkennen des Missbrauchs und das Ändern Ihrer Antwort mit Junk-Daten zu antworten, die plausibel erscheinen.Sie müssen sicher sein, dass die Anfrage faul ist.Ich bin gespannt, ob das Timing, die Quell-IPs oder die Anfrage keine einzigartige Qualität aufweisen, die Sie einschalten könnten.
Ohne geeignete Methoden zum Trennen von Bots von legitimen Benutzern verwandeln sowohl diese Lösung als auch die Lösung von "Hosen" in den Kommentaren die Botnetz-Aktivität in einen DOS-Angriff.Ich bin mir nicht sicher, ob es der beste Weg ist, einen Angriff in einen anderen zu verwandeln.
Viele Informationsdienste wie OPs liefern Ihre Daten per E-Mail.Dies könnte vermieden werden, ermöglicht es Ihnen jedoch, die Anzahl der Lieferungen an eine Domain zu begrenzen.
Kein Sicherheitsexperte, aber ich bin mir ziemlich sicher, dass die drei Triadenbereiche der Sicherheit Vertraulichkeit, Integrität und Verfügbarkeit sind.Das letzte Bein wird von der vorgeschlagenen Lösung irgendwie umgehauen.
Ich mag deinen Grund für den Angriff.Ich könnte sehen, ob Sie ein Offshore-Text- / Telefon-Betrüger sind. Informationen über die Telefonnummer, die Sie anrufen, könnten sehr wertvoll sein.
Stephen Bailey
2019-12-19 20:51:30 UTC
view on stackexchange narkive permalink

Ihre Motivation kann einfach sein, dass sie selbst einen ähnlichen Dienst aufbauen und Daten benötigen. Ihr Dienst könnte eine solche Datenquelle sein, die sie gefunden haben und die sie kratzen müssen.

Haben Sie versucht, Ihre Anfragen ratenbegrenzend zu gestalten? Sie sagen, Sie erhalten Hunderte pro Minute (unter der Annahme derselben IP-Adresse / n), können diese Anfragen dann nicht protokollieren, wiederkehrende Besucher innerhalb eines angemessenen Zeitraums erkennen und dann das IP-Verbot vorübergehend für einen bestimmten Zeitraum festlegen?

Sie können Ihrem Formular auch Formularelemente "honeypot" hinzufügen. Honeypot-Formularelemente sind vor echten Benutzern verborgen, werden jedoch automatisch von Bots ausgefüllt. Jede Anfrage mit Daten in diesen Feldern wird automatisch verworfen und möglicherweise sogar gesperrt.

In diesem Fall sieht es so aus, als würde die Website des OP speziell ausgerichtet (da sie sich um Captchas dreht), und Honeypot-Formulare funktionieren nur mit generischen Bots (z. B. solchen, die Kommentarformulare auf vielen verschiedenen Websites prüfen).Wenn der Angreifer speziell auf Ihre Website abzielt, überprüft er in der Regel manuell Ihren Website-Code und schreibt ein Skript, um Formulare zu senden oder Aktionen auszuführen. Dabei werden die Honeypot-Formulare berücksichtigt.
Hobbamok
2019-12-19 16:14:53 UTC
view on stackexchange narkive permalink

Verwenden Sie nicht eine Captcha-Lösung, verwenden Sie sie alle!

Da bereits mehrere verschiedene Lösungen herumliegen, können Sie sie (zufällig) auf einer 2 drehen Stunde oder sogar pro Anfrage? Selbst wenn die Angreifer sie theoretisch alle geknackt haben, ist das Erkennen der Art von Captcha an sich ein weiteres Captcha, das für Computer gelöst werden muss (ohne Menschen zu beeinträchtigen).

Fügen Sie möglicherweise auch dumme Fragen als Captchas hinzu wie "Welche Telefonnummer suchen Sie wieder?" usw. Je zufälliger die Dinge, desto schwieriger ist es für Bots.

Insbesondere, wenn Sie verschiedene Disziplinen verwenden (Bilderkennung, Lesen von Zahlen, Mathematik, Allgemeinwissen, usw.) Den Bottern würde es schwer fallen, nachzufolgen.

Und Sie müssen sie nicht perfekt überlisten, sondern nur dafür sorgen, dass sich ihre Zeit nicht mehr lohnt.

Bearbeiten : Dies würde auch das regelmäßige Einwerfen neuer Captcha-Typen erfordern

Was ist Ihre Grundlage, um zu sagen, dass das Erkennen der Art von Captcha schwieriger ist als das Lösen der Captcha?Es scheint mir intuitiv, dass es viel einfacher sein sollte, da es alle Arten von Metadaten geben wird, die zwischen den Typen variieren.
Sie gehen davon aus, dass Bots für einen bestimmten Captcha-Typ fest codiert sind und nur den knacken, für den sie entwickelt wurden.Sie gehen nicht davon aus, dass Bots prüfen, welches Captcha angezeigt wird, und den entsprechenden Prozess anwenden.
@schroeder Wenn OP weiterhin mit dem Layout der Site in Konflikt gerät, würde es * manuelle * manuelle Hardcodierung erfordern, um es zu lösen!Ganz zu schweigen von Stylesheets, um Material zu verbergen.
mottek
2019-12-21 02:43:31 UTC
view on stackexchange narkive permalink

Ich versuche also, ihre Motivation zu verstehen und zu verstehen, wie sie dies erreichen, um sich angemessen wehren zu können.

Es ist auch möglich, dass Proxys werden verwendet, um auf Ihren Dienst zuzugreifen. Google für offene Proxy-Liste gibt einige Sites zurück, die offene Proxys präsentieren, die auch zum Maskieren der IP-Adresse des Clients verwendet werden können.

Ich empfehle, den HTTP-Header X- zu protokollieren. Forwarded-For und Über auf der Serverseite für einige Zeit und prüfen Sie dann, ob es plausibel ist, dass solche Proxys verwendet werden, um Ihr System zu missbrauchen. X-Forwarded-For enthält normalerweise die IP-Adresse des Clients, Via enthält die IPs der Proxys in der Kette (falls vorhanden). Bitte beachten Sie, dass die Verwendung von Proxys im Allgemeinen erfolgt ist legitim, aber es könnte einige interessante Muster geben, z wenn Sie sehen, dass innerhalb eines Angriffszeitraums immer wieder dieselben Proxys verwendet werden.

FarhadGh
2019-12-19 20:28:17 UTC
view on stackexchange narkive permalink

Ich betrachte dies nicht als vollständige Antwort. Ich sage, was ich in einer ähnlichen Situation tun würde.

  1. Protokollieren Sie die Abfragen. Gibt es ein Muster in ihren Abfragen? Beispiel: Bestimmtes Land oder bestimmtes Gebiet. Wenn sie wirklich Ergebnisse verwenden, muss es ein Muster geben. Wenn nicht, würde ich Nummer 2 in Betracht ziehen.

  2. Sie sagten, wenn Sie den Captcha-Typ und die Technologie ändern, stoppt der Angriff für etwa 24 Stunden. Ich habe das folgendermaßen gelesen:

    Wenn ich 10 Minuten Arbeitszeit kämpfe, beschädige ich den Gegner 24 Stunden lang.

    Alles, was Sie tun müssen, ist, weiter Schaden zu verursachen ihre Stunden und bestehen darauf. Es macht jeden, der dies tut, müde, und Sie können sicher sein, dass er der Erste ist, der aufhört zu kämpfen. Die tatsächlichen Gewinnchancen sind -> 1 - (10/1440)

    Das ist keine echte Lösung, sondern etwas, das ich in Betracht ziehen würde, bevor ich zu Nummer 3 gehe.

    Denken Sie daran Sie kommen vielleicht nächsten Monat oder sechs Monate später zurück, aber jetzt wissen sie, dass Sie hartnäckig zurückschlagen und derjenige sind, der zu wenig verliert.

    Sie könnten es sogar etwas schwieriger machen, für sie zu kämpfen. Bei mehr als drei Abfragen an einem Tag muss der Benutzer beispielsweise zwei Arten von Captcha eingeben. Nach dem 10. wird das System noch mehr hart bewertet, so dass Ihr wirklicher Besucher dies nicht merkt.

  3. Traurig, aber Autorisierung verwenden. Selbst Sie können optional die ersten n (n<10) Abfragen anonym verfügbar machen, aber mehr als das erfordert die Anmeldung.

  4. ol>
Dan Stepaniak
2019-12-20 19:46:14 UTC
view on stackexchange narkive permalink

Ich habe ein Kontaktformular entwickelt, das Missbrauchstäter seit über einem Jahr zu missbrauchen versuchen und das durchweg gescheitert ist.

Mein Ansatz umfasst eine Kombination aus:

  1. After Jedes erforderliche Feld überprüft, ob es einen Ajax-Aufruf auslöst, der einen neuen zufällig generierten 32-48-Zeichen-Feldnamen abruft, der vorübergehend in einer Datenbank-Datenbank für die Formularüberprüfung gespeichert ist. Wenn das Formular gesendet wird, wird ein Feld mit einem Namen eingegeben, der nicht vom Server generiert wurde oder dessen ursprünglicher Feldname die Anmeldung bei der Remote-IP-Adresse der Datenbank sowie die Übermittlung im Zusammenhang mit der Formularübermittlung auslöst. Sobald der Feldname geändert wurde, wird jede Übermittlung mit dem ursprünglichen Feldnamen als Missbrauch erkannt und entsprechend behandelt.
  2. Sie müssen sich auf der Seite befinden, auf der sich das Formular mindestens 1,3 Sekunden lang pro erforderlichem Feld und allen Feldern befindet müssen überprüft werden, bevor die Deaktivierungseigenschaft der Schaltfläche "Senden" entfernt wird und mindestens der Name der Übermittlungseingabe entweder durch einen neuen Ajax-Aufruf oder durch einen Namen und / oder Wert geändert wird, der von einem vorherigen Aufruf des Ajax-Feldnamens empfangen wurde. Der Name und der Wert der Schaltfläche müssen während der Formularüberprüfung auf dem Server übereinstimmen. Andernfalls wird Missbrauch erkannt und entsprechend behandelt.
  3. Ich protokolliere alle Übermittlungen bei db und kennzeichne den Missbrauch mit einem DENY-Ziel und sobald sie mein Formular missbraucht haben Sie sind dauerhaft daran gehindert, die Formularseite zu besuchen, und werden nach der Protokollierung des versuchten Besuchs direkt zu einer 403-Antwort umgeleitet.
  4. Während eines der Ajax-Aufrufe generiere ich manchmal zufällig ein neues Feld und einen neuen Wert, der abgerufen wird vor der Übermittlung an das Formular angehängt und muss vorhanden sein, sonst wird die Übermittlung nicht validiert und als Missbrauch erkannt.
  5. Sie können Honeypot-Felder einschließen, aber das zu erkennende Feldobjekt nicht ausblenden. Blenden Sie ein übergeordnetes Objekt aus, wenn Sie das Feld ausblenden möchten. Sie können es auch absolut positionieren und weit außerhalb der Sicht positionieren. Alle Honeypot-Felder, die mit einem Wert jeglicher Art auf dem Server eingehen, werden als Missbrauch erkannt und als solcher behandelt.
  6. ol>

    Stellen Sie sicher, dass Sie alle Übermittlungen protokollieren, damit Sie nach neuen Mustern suchen können soll Ihre Sicherheit umgehen.

All dies kann von einem gezielten Angreifer gefälscht / dupliziert werden, der sich die Zeit nimmt, Ihre Validierungsregeln zu verstehen.In diesem Fall scheint das OP gegen einen Angreifer anzutreten, der speziell auf seine Systeme abzielt, so dass dies eine Menge Arbeit sein kann, die nur einen sehr vorübergehenden Nutzen bringt
Ich habe wirklich nicht vorgetragen oder beabsichtigt, dass dies irgendeine Art von permanenter Silberkugel sein würde.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...