Was ist Rate Limiting? | Rate Limiting und Bots

Rate Limiting blockiert Benutzer, Bots oder Anwendungen, die eine Website überbeanspruchen oder missbrauchen. Rate Limiting kann bestimmte Arten von Bot-Angriffen stoppen.

Share facebook icon linkedin icon twitter icon email icon

Rate Limiting

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Wofür braucht man Rate Limiting?
  • Wie funktioniert Rate Limiting?
  • Wie wird Rate Limiting angewandt?
  • Was ist der Unterschied zwischen Rate Limiting und anderen Arten von Bot-Management?

Was ist Rate Limiting?

Rate Limiting ist eine Strategie zur Begrenzung des Netzwerkverkehrs. Damit wird festgelegt, wie oft jemand eine Aktion innerhalb eines bestimmten Zeitraums wiederholen kann, z. B. um sich bei einem Konto anzumelden. Rate Limiting kann dazu beitragen, bestimmte Arten von böswilligen Bot-Aktivitäten zu stoppen. Es kann auch die Belastung von Webservern verringern. Allerdings ist Rate Limiting keine vollständige Lösung für den Umgang mit Bot-Aktivität.

Welche Arten von Bot-Angriffen werden durch Rate Limiting gestoppt?

Rate Limiting wird häufig angewendet, um zu verhindern, dass böswillige Bots eine Website oder Anwendung negativ beeinflussen. Rate Limiting kann helfen, folgende Bot-Angriffe zu bekämpfen:

Rate Limiting schützt auch vor API-Überbeanspruchung, die nicht unbedingt böswillig oder auf Bot-Aktivitäten zurückzuführen ist, aber dennoch verhindert werden sollte.

Wie funktioniert Rate Limiting?

Rate Limiting wird in einer Anwendung ausgeführt, anstatt auf dem Webserver selbst. In der Regel basiert Rate Limiting darin, IP-Adressen zu verfolgen, die Anfragen versenden, und zu beobachten, wie viel Zeit zwischen den Anfragen vergeht. Die IP-Adresse ist das wichtigste Instrument, mit der eine Anwendung identifizieren kann, wer oder was die Anfrage stellt.

Eine Rate-Limiting-Lösung misst die Zeitspanne zwischen jeder Anfrage von jeder IP-Adresse und auch die Anzahl der Anfragen innerhalb eines bestimmten Zeitrahmens. Wenn innerhalb des angegebenen Zeitrahmens zu viele Anfragen von einer einzelnen IP-Adresse eingehen, wird die Rate-Limiting-Lösung die Anfragen der IP-Adresse für einen bestimmten Zeitraum nicht erfüllen.

Im Wesentlichen sagt eine Anwendung mit Rate Limiting zu eindeutigen Benutzern, die Anfragen zu schnell stellen: „Hey, mach mal langsam“. Also ganz so als würde die Polizei, einen Autofahrer wegen Geschwindigkeitsüberschreitung anhalten oder als würden die Eltern ihr Kind ermahnen, nicht allzu viele Süßigkeiten auf einmal zu essen.

Was ist eine IP-Adresse?

Eine IP-Adresse ist die eindeutige numerische (oder in IPv6 alphanumerische) Kennung, die jedem internetfähigen Gerät zugewiesen wird. Für seine gesamte Onlinezeit hat ein Gerät seine eigene IP-Adresse. Wie mit richtigen Straße oder eine Telefonnummern können Geräte mithilfe ihrer IP-Adressen Nachrichten hin und her senden. Eine herkömmliche Adresse (IPv4) sieht folgendermaßen aus: 198.41.129.1

Für Benutzergeräte sind IP-Adressen normalerweise nicht permanent, da in IPv4 nicht genügend IP-Adressen für alle vorhanden sind. Stattdessen weist der Internet Service Provider (ISP) des Benutzers Adressen dynamisch zu, wenn Geräte eine Verbindung zum Internet herstellen.

Eine Rate-Limiting-Lösung kann eine IP-Adresse als Grundlage verwenden, um zu bestimmen, welche Geräte zu viele Anfragen auf einmal stellen und vorübergehend blockiert werden sollten.

Wie funktioniert Rate Limiting bei Benutzer-Logins?

Benutzer können aus ihrem Konto ausgesperrt werden, wenn sie in kurzer Zeit zu viele erfolglose Anmeldeversuche unternehmen. Dieser Fall tritt auf, wenn eine Website Rate Limiting verwendet.

Diese Vorsichtsmaßnahme dient nicht dazu, Benutzer zu ärgern, wenn sie ihre Passwörter vergessen haben, sondern um Brute-Force-Angriffe zu blockieren, bei denen ein Bot Tausende verschiedener Passwörter ausprobiert, um das richtige zu erraten und in das Konto einzubrechen. Wenn ein Bot nur drei oder vier Anmeldeversuche pro Stunde ausführen kann, ist der Erfolg eines solchen Angriffs statistisch unwahrscheinlich.

Rate Limiting auf einer Anmeldeseite kann auf Grundlage der IP-Adresse des Benutzers oder auf Grundlage seines Benutzernamens angewendet werden. Idealerweise handelt es sich um eine Kombination aus beidem, weil:

  • Wenn Rate Limiting nur auf die IP-Adresse angewendet wird, können Brute-Force-Angreifer diesen Umstand umgehen, indem sie versuchen, sich von mehreren IP-Adressen aus anzumelden (möglicherweise mithilfe eines Botnetzes).
  • Wenn Rate Limiting nur über den Benutzernamen erfolgt, kann jeder Angreifer mit einer Liste bekannter Benutzernamen eine Vielzahl häufig verwendeter Kennwörter mit diesen Benutzernamen ausprobieren und wird zumindest in einige Kontos erfolgreich einbrechen können – und das alles von nur einer IP-Adresse aus.

Da man Rate Limiting braucht, um diese Brute-Force-Angriffe zu verhindern, können Benutzer, die sich nicht an ihre Kennwörter erinnern können, zusammen mit böswilligen Bots von Rate Limiting betroffen sein. Benutzer sehen dann eine Meldung wie „Zu viele Anmeldeversuche“ und werden aufgefordert, es innerhalb eines bestimmten Zeitraums erneut zu versuchen, oder sie werden sogar darauf hingewiesen, dass sie vollständig aus ihrem Konto ausgesperrt wurden.

Wie funktioniert die Rate Limiting für APIs?

API oder Application Programming Interface sind dafür da, bestimmte Funktionen von einem Programm anzufragen. APIs sind für die meisten Benutzer unsichtbar, aber für die ordnungsgemäße Funktion von Anwendungen äußerst wichtig. Beispielsweise kann sich die Website eines Restaurants auf die API eines Tischreservierungsdienstes stützen, damit ihre Kunden online einen Tisch reservieren können. Eine E-Commerce-Plattform kann die API eines Versandunternehmens integrieren, um den Benutzern genaue Versandkosten anzuzeigen.

Jedes Mal, wenn eine API auf eine Anfrage antwortet, muss der Eigentümer dieser API die Rechenzeit bezahlen: die Serverressourcen, die erforderlich sind, um den Code auszuführen und eine Antwort auf diese API-Anfrage zu erstellen. Im obigen Beispiel führt die API-Integration des Restaurants dazu, dass der Tischreservierungsdienst die Rechenzeit bezahlt, wenn ein Restaurantkunde eine Reservierung vornimmt.

Aus diesem Grund kann jede Anwendung oder jeder Dienst, der eine API für Entwickler anbietet, die Anzahl der API-Aufrufe durch jeden einzelnen Benutzer pro Stunde oder Tag einschränken. Auf diese Weise können Entwickler von Drittanbietern eine API nicht übermäßig verwenden.

Rate Limiting kann Entwickler auch dazu motivieren, mehr für die Nutzung der API zu zahlen: Oft können sie nur begrenzt viele API-Aufrufe tätigen, bevor sie mehr für den API-Dienst bezahlen.

Rate Limiting für APIs schützt auch vor böswilligen Bot-Angriffen. Ein Angreifer kann Bots verwenden, um so viele wiederholte Aufrufe an eine API zu tätigen, dass der Dienst für andere nicht verfügbar ist oder der Dienst insgesamt abstürzt. Dies ist eine Art DoS- oder DDoS-Angriff.

Wie nutzen Social Media-Plattformen wie Twitter und Instagram Rate Limiting?

Rate Limiting für Social-Media-Plattformen ist im Grunde nur API-Rate-Limiting. Jede Drittanbieteranwendung, die beispielsweise Twitter integriert, kann nur begrenzt oft pro Stunde aktualisieren, um nach neuen Tweets oder Nachrichten zu suchen. Instagram hat ähnliche Grenzen für Apps von Drittanbietern. Aus diesem Grund sehen Benutzer gelegentlich den Hinweis „Rate Limiting überschritten“.

Diese Grenzwerte gelten normalerweise nicht für Benutzer, die die Social Media-Plattform direkt nutzen.

Was ist der Unterschied zwischen Bot-Management und Rate Limiting?

Rate Limiting ist ziemlich eindimensional: Es ist zwar nützlich, kann jedoch nur ganz bestimmte Arten von Bot-Aktivitäten stoppen. Darüber hinaus gilt Rate Limiting nicht nur für Bots, sondern um die Verwendung allgemein zu beschränken. Cloudflare Rate Limiting schützt beispielsweise vor DDoS-Angriffen, API-Missbrauch und Brute-Force-Angriffen, bekämpft jedoch nicht unbedingt andere Formen böswilliger Bot-Aktivitäten und unterscheidet nicht zwischen guten und schlechten Bots.

Im Gegensatz dazu kann Bot-Management die Bot-Aktivität im Allgemeinen ganzheitlich erfassen. Zum Beispiel verwendet Cloudflare Bot Management Machine Learning, um wahrscheinliche Bots zu identifizieren, wodurch eine größere Vielfalt von Bot-Angriffen blockiert werden kann (z. B. Credential Stuffing, Spam Posting, Inventory Hoarding usw.).