{"id":31924,"date":"2019-10-31T21:44:01","date_gmt":"2019-10-31T18:44:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy\/"},"modified":"2019-10-31T21:44:01","modified_gmt":"2019-10-31T18:44:01","slug":"ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy","title":{"rendered":"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/9e01506f9103d69af131c7a419b10e42.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Das Unternehmen Variti entwickelt Schutz gegen Bots und DDoS-Angriffe und f\u00fchrt auch Stress- und Lasttests durch. Auf der Konferenz HighLoad++ 2018 haben wir erz\u00e4hlt, wie man Ressourcen vor verschiedenen Arten von Angriffen sch\u00fctzt. Kurz gesagt: Isolieren Sie Teile des Systems, nutzen Sie Cloud-Dienste und CDN und aktualisieren Sie regelm\u00e4\u00dfig. Doch ohne spezialisierte Unternehmen mit Schutz werden Sie es trotzdem nicht schaffen \ud83d\ude42<\/i><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nVor dem Lesen des Textes k\u00f6nnen Sie sich mit kurzen Thesen vertrautmachen <noindex><a rel=\"nofollow\" href=\"http:\/\/www.highload.ru\/moscow\/2018\/abstracts\/4201\">auf der Konferenzwebsite<\/a><\/noindex>.<br \/>\nUnd wenn Sie nicht gerne lesen oder einfach nur das Video ansehen m\u00f6chten, ist die Aufzeichnung unseres Vortrags unten unter dem Spoiler.<\/p>\n<p><b class=\"spoiler_title\">Videoaufzeichnung des Vortrags<\/b><center><div class=\"youtube-placeholder\" data-id=\"Lu4tsUvfYRc\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/Lu4tsUvfYRc\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Viele Unternehmen k\u00f6nnen bereits Lasttests durchf\u00fchren, aber nicht alle f\u00fchren Stresstests durch. Einige unserer Kunden glauben, dass ihre Website unverwundbar ist, weil sie \u00fcber ein Highload-System verf\u00fcgen, das sie gut vor Angriffen sch\u00fctzt. Wir zeigen jedoch, dass das nicht ganz stimmt. <br \/>\nNat\u00fcrlich holen wir vor der Durchf\u00fchrung von Tests die Genehmigung des Kunden mit Unterschrift und Siegel ein, und mit unserer Hilfe kann niemand einen DDoS-Angriff ausf\u00fchren. Die Tests werden zu einem vom Kunden gew\u00e4hlten Zeitpunkt durchgef\u00fchrt, wenn die Besucherzahl auf seiner Ressource minimal ist und sich Probleme mit dem Zugang nicht auf die Kunden auswirken. Dar\u00fcber hinaus haben wir w\u00e4hrend der Testphase stets einen st\u00e4ndigen Kontakt zum Kunden. Dies erm\u00f6glicht es nicht nur, \u00fcber die erzielten Ergebnisse zu berichten, sondern auch w\u00e4hrend des Tests Anpassungen vorzunehmen. Nach Abschluss der Tests erstellen wir immer einen Bericht, in dem wir auf festgestellte M\u00e4ngel hinweisen und Empfehlungen zur Beseitigung von Schwachstellen der Website geben. <\/p>\n<h3>Wie wir arbeiten<\/h3>\n<p>\nBei der Durchf\u00fchrung von Tests emulieren wir ein Botnetz. Da wir mit Kunden arbeiten, die sich nicht in unseren Netzwerken befinden, geben wir die Last nicht von einer IP-Adresse, sondern aus unserem eigenen Subnetz ab, damit der Test nicht schon in der ersten Minute wegen der Ausl\u00f6sung von Limits oder Schutzma\u00dfnahmen endet. Zudem haben wir einen ausreichend leistungsstarken Testserver, um eine signifikante Last zu erzeugen.<\/p>\n<h3>Postulate<\/h3>\n<p><\/p>\n<blockquote><p><b>Viel bedeutet nicht unbedingt gut<\/b><br \/>\nJe geringer die Last ist, die wir ben\u00f6tigen, um eine Ressource zum Ausfall zu bringen, desto besser. Wenn es gelingt, die Website bei einem einzigen Anfrage pro Sekunde oder sogar pro Minute zum Stillstand zu bringen, w\u00e4re das gro\u00dfartig. Denn nach Murphy's Gesetz werden die Nutzer oder Angreifer genau diese Schwachstelle zuf\u00e4llig ansteuern. <\/p><\/blockquote>\n<blockquote><p><b>Ein teilweiser Ausfall ist besser als ein vollst\u00e4ndiger<\/b><br \/>\nWir raten immer dazu, Systeme heterogen zu gestalten. Es ist wichtig, sie auf physischer Ebene zu trennen und nicht nur durch Containerisierung. Bei physischer Trennung, selbst wenn auf der Website etwas ausf\u00e4llt, ist die Wahrscheinlichkeit gro\u00df, dass sie nicht vollst\u00e4ndig funktionsunf\u00e4hig wird, und die Nutzer Zugang zu zumindest einem Teil der Funktionalit\u00e4t behalten.<\/p><\/blockquote>\n<blockquote><p><b>Die richtige Architektur ist die Grundlage der Robustheit<\/b><br \/>\nDie Ausfallsicherheit einer Ressource und ihre F\u00e4higkeit, Angriffe und Lasten standzuhalten, m\u00fcssen bereits in der Planungsphase eingeplant werden, tats\u00e4chlich bereits in der Phase, in der die ersten Blockdiagramme im Notizbuch gezeichnet werden. Denn wenn fatale Fehler eingeschlichen werden, k\u00f6nnen sie sp\u00e4ter zwar behoben werden, was jedoch sehr schwierig ist.<\/p><\/blockquote>\n<blockquote><p><b>Nicht nur der Code, sondern auch die Konfiguration muss gut sein<\/b><br \/>\nViele glauben, dass ein gutes Entwicklungsteam eine Garantie f\u00fcr die Ausfallsicherheit des Dienstes ist. Ein gutes Entwicklungsteam ist tats\u00e4chlich n\u00f6tig, aber es muss auch eine gute Betriebsf\u00fchrung und ein gutes DevOps geben. Das bedeutet, dass Fachleute ben\u00f6tigt werden, die Linux und Netzwerke richtig konfigurieren, die Konfigurationen in nginx richtig schreiben, Limits einstellen und mehr. Andernfalls wird die Ressource nur im Test gut funktionieren, und in der Produktion wird irgendwann alles brechen.<\/p><\/blockquote>\n<blockquote><p><b>Unterschiede zwischen Last- und Stresstests<\/b><br \/>\nLasttests erm\u00f6glichen es, die Grenzen der Funktionalit\u00e4t eines Systems zu ermitteln. Stresstests sind darauf ausgerichtet, Schwachstellen im System zu finden und werden dazu verwendet, dieses System zum Absturz zu bringen und zu beobachten, wie es sich im Falle des Ausfalls bestimmter Teile verh\u00e4lt. Dabei bleibt die Art der Last normalerweise bis zum Beginn des Stresstests unbekannt f\u00fcr den Auftraggeber.<\/p><\/blockquote>\n<p><\/p>\n<h3>Charakteristische Merkmale von L7-Angriffen<\/h3>\n<p>\nArten von Lasten unterteilen wir h\u00e4ufig in Lasten auf L7- und L3&amp;4-Ebene. L7 ist die Last auf Anwendungsebene, meistens versteht man darunter nur HTTP, wir hingegen meinen jede Last auf Protokollebene TCP.<br \/>\nL7-Angriffe haben bestimmte charakteristische Merkmale. Erstens gelangen sie direkt in die Anwendung, so dass es kaum m\u00f6glich ist, sie mit netzwerkbasierten Mitteln zu reflektieren. Solche Angriffe nutzen Logik aus und verbrauchen daher sehr effizient und mit geringem Datenverkehr CPU, Arbeitsspeicher, Festplatte, Datenbank und andere Ressourcen.<\/p>\n<h3>HTTP Flood<\/h3>\n<p>\nIm Fall eines Angriffs ist es einfacher, eine Last zu erzeugen, als sie zu verarbeiten, und das gilt auch f\u00fcr L7. Der Angriffsverkehr l\u00e4sst sich nicht immer einfach von legitimen Anfragen unterscheiden, und h\u00e4ufig gelingt dies nur anhand der Frequenz. Wenn alles jedoch gut geplant ist, ist es aus den Logs unm\u00f6glich zu erkennen, wo der Angriff und wo die legitimen Anfragen sind. <br \/>\nAls erstes Beispiel betrachten wir einen HTTP Flood-Angriff. Aus dem Diagramm ist ersichtlich, dass solche Angriffe normalerweise sehr m\u00e4chtig sind; im folgenden Beispiel \u00fcberschritt die maximale Anzahl der Anfragen 600.000 pro Minute.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/a2bcd4b2babbb3362a717f93a3f3d1b3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHTTP Flood ist der einfachste Weg, um Belastung zu erzeugen. In der Regel wird daf\u00fcr ein Belastungstestwerkzeug wie ApacheBench verwendet, und eine Anfrage sowie ein Ziel werden festgelegt. Bei diesem einfachen Ansatz besteht eine hohe Wahrscheinlichkeit, auf die Server-Caching zu sto\u00dfen, aber dies l\u00e4sst sich leicht umgehen. Zum Beispiel, indem man zuf\u00e4llige Zeichenfolgen in die Anfrage einf\u00fcgt, was den Server zwingt, st\u00e4ndig eine frische Seite auszugeben. <br \/>\nAu\u00dferdem sollte man den User-Agent beim Erzeugen der Belastung nicht vergessen. Viele User-Agents beliebter Testwerkzeuge werden von Systemadministratoren gefiltert, und in solchen F\u00e4llen kommt die Last m\u00f6glicherweise gar nicht bis zum Backend. Das Ergebnis kann erheblich verbessert werden, wenn man in die Anfrage einen mehr oder weniger g\u00fcltigen Header eines Browsers einf\u00fcgt. <br \/>\nTrotz der Einfachheit haben HTTP Flood-Angriffe auch ihre Nachteile. Erstens erfordert die Erstellung von Last gro\u00dfe Ressourcen. Zweitens werden solche Angriffe sehr schnell erkannt, insbesondere wenn sie von einer Adresse ausgehen. In der Folge werden die Anfragen entweder sofort von Systemadministratoren oder sogar auf Ebene des Providers gefiltert. <\/p>\n<h3>Was zu suchen ist<\/h3>\n<p>\nUm die Anzahl der Anfragen pro Sekunde zu reduzieren und dabei die Effizienz nicht zu verlieren, muss man ein wenig Fantasie walten lassen und die Website erkunden. So kann man nicht nur den Kanal oder den Server belasten, sondern auch einzelne Teile der Anwendung, zum Beispiel Datenbanken oder Dateisysteme. Man kann auch nach Bereichen auf der Seite suchen, die gro\u00dfe Berechnungen durchf\u00fchren: Rechner, Seiten zur Produktauswahl usw. Schlie\u00dflich kommt es h\u00e4ufig vor, dass auf der Website ein PHP-Skript vorhanden ist, das eine Seite aus mehreren Hunderttausend Zeilen generiert. Ein solches Skript belastet den Server ebenfalls erheblich und kann zum Ziel eines Angriffs werden.<\/p>\n<h3>Wo suchen<\/h3>\n<p>\nWenn wir eine Ressource vor dem Testen scannen, schauen wir uns vor allem die Website selbst an. Wir suchen nach jeglichen Eingabefeldern, gro\u00dfen Dateien - kurz gesagt, allem, was Probleme f\u00fcr die Ressource verursachen und ihre Leistung verlangsamen k\u00f6nnte. Dabei helfen die einfachen Entwicklungstools in Google Chrome und Firefox, die die Antwortzeiten der Seite anzeigen. <br \/>\nWir scannen auch Subdomains. Zum Beispiel gibt es einen Online-Shop, abc.com, der eine Subdomain admin.abc.com hat. Wahrscheinlich handelt es sich um das Admin-Panel mit Authentifizierung, aber wenn man dort Last erzeugt, k\u00f6nnte es Probleme f\u00fcr die Hauptressource verursachen. <br \/>\nDie Website k\u00f6nnte eine Subdomain api.abc.com haben. Wahrscheinlich ist das eine Ressource f\u00fcr mobile Anwendungen. Man kann die Anwendung im App Store oder bei Google Play finden, einen speziellen Zugangspunkt einrichten, die API untersuchen und Testkonten registrieren. Das Problem ist, dass viele Menschen oft denken, dass alles, was durch eine Authentifizierung gesch\u00fctzt ist, gegen Angriffe auf die Verf\u00fcgbarkeit immun ist. Angeblich ist Authentifizierung die beste CAPTCHA, aber das ist nicht der Fall. Es ist einfach, 10-20 Testkonten zu erstellen, und sobald wir sie haben, erhalten wir Zugang zu komplexen und ungesch\u00fctzten Funktionen. <br \/>\nNat\u00fcrlich betrachten wir die Historie, die robots.txt und WebArchive, ViewDNS und suchen nach alten Versionen der Ressource. Manchmal stellen die Entwickler etwas wie mail2.yandex.net bereit, w\u00e4hrend die alte Version mail.yandex.net bleibt. Dieses mail.yandex.net wird nicht mehr unterst\u00fctzt, die Entwicklungsressourcen werden nicht mehr darauf verwendet, aber es verbraucht weiterhin die Datenbank. Entsprechend kann man mit der alten Version effektiv die Backend-Ressourcen und alles, was hinter der Gestaltung steht, nutzen. Nat\u00fcrlich geschieht das nicht immer, aber wir sto\u00dfen trotzdem h\u00e4ufig auf solche Situationen. <br \/>\nNat\u00fcrlich zerlegen wir alle Anfrageparameter und die Struktur der Cookies. Man k\u00f6nnte beispielsweise einen JSON-Array innerhalb der Cookies mit einem Wert f\u00fcllen, eine gro\u00dfe Verschachtelung erzeugen und die Ressource dazu bringen, nicht sinnvoll lange zu arbeiten.<\/p>\n<h3>Suchlast<\/h3>\n<p>\nDas Erste, was einem bei der Untersuchung einer Website in den Sinn kommt, ist, die Datenbank zu belasten, da fast jeder eine Suchfunktion hat und die meisten leider schlecht gesch\u00fctzt sind. Aus irgendeinem Grund schenken die Entwickler der Suche nicht genug Aufmerksamkeit. Es gibt jedoch eine Empfehlung \u2014 man sollte keine gleichartigen Anfragen durchf\u00fchren, da man sonst auf Caching sto\u00dfen kann, \u00e4hnlich wie bei einem HTTP Flood. <br \/>\nZuf\u00e4llige Anfragen an die Datenbank sind ebenfalls nicht immer effektiv. Es ist viel besser, eine Liste von Schl\u00fcsselw\u00f6rtern zu erstellen, die sich auf die Suche beziehen. Wenn wir zum Beispiel von einem Online-Shop sprechen: Angenommen, die Website verkauft Autoreifen und erm\u00f6glicht es, den Reifenumfang, den Fahrzeugtyp und andere Parameter anzugeben. Entsprechend werden Kombinationen relevanter W\u00f6rter die Datenbank dazu bringen, unter wesentlich komplexeren Bedingungen zu arbeiten. <br \/>\nAu\u00dferdem sollte man Paginierung verwenden: Es ist f\u00fcr die Suche viel schwieriger, die vorletzte Seite der Ergebnisse zur\u00fcckzugeben, als die erste. Das hei\u00dft, durch Paginierung kann man die Last ein wenig variieren. <br \/>\nIm folgenden Beispiel zeigen wir die Suchlast. Man sieht, dass die Website vom ersten Moment des Tests bei zehn Anfragen pro Sekunde ausgefallen ist und nicht reagiert hat.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/dd888d9f3cc0e5058ac9508cee8cc3d5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Gibt es keine Suche?<\/h3>\n<p>\nWenn es keine Suche gibt, bedeutet das nicht, dass die Website keine anderen anf\u00e4lligen Eingabefelder enth\u00e4lt. Ein solches Feld k\u00f6nnte die Authentifizierung sein. Heutzutage neigen Entwickler dazu, komplexe Hashes zu verwenden, um die Login-Datenbank gegen Angriffe mit Rainbow-Table zu sch\u00fctzen. Das ist gut, aber solche Hashes verbrauchen eine gro\u00dfe Menge an CPU-Ressourcen. Ein hoher Ansturm falscher Authentifizierungen f\u00fchrt zu einer \u00dcberlastung des Prozessors, wodurch die Website schlie\u00dflich nicht mehr funktioniert. <br \/>\nDas Vorhandensein verschiedener Formulare f\u00fcr Kommentare und Feedback auf der Website ist ein Grund, sehr gro\u00dfe Texte zu senden oder einfach massiven Spam zu erzeugen. Manchmal akzeptieren Websites auch hochgeladene Dateien, unter anderem im gzip-Format. In diesem Fall nehmen wir eine Datei mit einer Gr\u00f6\u00dfe von 1TB, komprimieren sie mit gzip auf einige Byte oder Kilobyte und senden sie an die Website. Sie wird dann entpackt, was einen sehr interessanten Effekt erzeugt. <\/p>\n<h3>Rest API<\/h3>\n<p>\nEs w\u00e4re sch\u00f6n, ein wenig Aufmerksamkeit auf so popul\u00e4re Dienste wie die Rest-API zu richten. Die Sicherung einer Rest-API ist viel komplexer als bei einer normalen Website. F\u00fcr die Rest-API funktionieren nicht einmal die banalen M\u00f6glichkeiten, sich gegen Password-Knacken und andere illegitime Aktivit\u00e4ten zu sch\u00fctzen. <br \/>\nEine Rest-API ist sehr leicht zu hacken, da sie direkt auf die Datenbank zugreift. Wenn dieser Dienst ausf\u00e4llt, hat das schwerwiegende Folgen f\u00fcr das Gesch\u00e4ft. Denn oft sind nicht nur die Hauptwebsite, sondern auch mobile Anwendungen und interne Gesch\u00e4ftsressourcen von der Rest-API abh\u00e4ngig. Wenn diese Systeme ausfallen, ist der Effekt viel dramatischer, als wenn einfach nur eine normale Website offline geht. <\/p>\n<h3>Last auf schwerem Inhalt<\/h3>\n<p>\nWenn wir dazu aufgefordert werden, eine normale Einseitenanwendung, eine Landingpage oder eine Visitenkarte zu testen, die keine komplexe Funktionalit\u00e4t aufweist, suchen wir nach schwerem Inhalt. Zum Beispiel gro\u00dfe Bilder, die der Server bereitstellt, Bin\u00e4rdateien, PDF-Dokumentationen \u2013 wir versuchen all dies herunterzuladen. Solche Tests belasten das Dateisystem gut und blockieren die Kan\u00e4le, weshalb sie effektiv sind. Das hei\u00dft, selbst wenn Sie den Server nicht zum Absturz bringen, indem Sie eine gro\u00dfe Datei mit niedrigen Geschwindigkeiten herunterladen, werden Sie einfach den Kanal des Zielservers \u00fcberlasten, und es tritt dann ein Dienstversagen auf. <br \/>\nIm Beispiel dieses Tests ist zu sehen, dass die Website bei einer Geschwindigkeit von 30 RPS aufgeh\u00f6rt hat zu antworten oder 500-Fehler an den Server herausgegeben hat.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/615e212d3a95b36a4f8c492d18508d7c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVergessen Sie nicht die Serverkonfiguration. Es ist h\u00e4ufig zu sehen, dass jemand eine virtuelle Maschine gekauft hat, Apache darauf installiert, alles auf die Standardeinstellungen konfiguriert und eine PHP-Anwendung platziert hat. Unten ist das Ergebnis zu sehen. <\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/532a478528f8cd80285209f654411b79.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHier betrug die Last nur 10 RPS auf den Root-Server. Wir warteten 5 Minuten, und der Server fiel aus. Es ist allerdings nicht genau bekannt, warum er abgest\u00fcrzt ist, aber es besteht die Vermutung, dass er einfach \u00fcberlastet war und deshalb aufgeh\u00f6rt hat zu antworten.<\/p>\n<h3>Wellenbasiert<\/h3>\n<p>\nIn den letzten ein bis zwei Jahren sind Wellenangriffe recht popul\u00e4r geworden. Das liegt daran, dass viele Organisationen bestimmte Hardware zum Schutz gegen DDoS erwerben, die eine gewisse Zeit ben\u00f6tigt, um Statistiken zu sammeln, bevor die Attacke gefiltert wird. Das bedeutet, dass sie die Attacke in den ersten 30-40 Sekunden nicht filtern, weil sie Daten sammeln und trainieren. In diesen 30-40 Sekunden kann man so viele Anfragen an die Website senden, dass der Dienst lange ausf\u00e4llt, bis alle Anforderungen bearbeitet sind. <br \/>\nIm Fall des unten beschriebenen Angriffs betrug das Intervall 10 Minuten, nach denen eine neue, ver\u00e4nderte Angriffswelle eintraf.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/1bcc609697e255c6051cd215175801f3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas hei\u00dft, der Schutz hat sich trainiert, die Filterung begonnen, aber es kam eine neue, v\u00f6llig andere Angriffswelle, und der Schutz begann erneut mit dem Training. Tats\u00e4chlich h\u00f6rt die Filterung auf zu funktionieren, der Schutz wird ineffektiv, und die Website ist nicht mehr erreichbar. <br \/>\nWellenangriffe zeichnen sich durch sehr hohe Werte an den Spitzen aus; sie k\u00f6nnen bei L7 bis zu hunderttausend oder eine Million Anfragen pro Sekunde erreichen. Wenn man von L3&amp;4 spricht, kann der Traffic auch Hunderte von Gigabit betragen oder entsprechend Hunderte von mpps, wenn man in Paketen z\u00e4hlt. <br \/>\nDas Problem solcher Angriffe liegt in der Synchronisation. Die Angriffe kommen aus einem Botnetz, und um einen sehr gro\u00dfen, einmaligen Peak zu erzeugen, ist ein hohes Ma\u00df an Synchronisation erforderlich. Diese Koordination gelingt jedoch nicht immer: Manchmal entsteht ein parabolischer Peak, der recht armselig aussieht.<\/p>\n<h3>Nicht nur HTTP<\/h3>\n<p>\nNeben HTTP auf Ebene L7 nutzen wir auch andere Protokolle. In der Regel sind bei einer gew\u00f6hnlichen Website, insbesondere bei einem typischen Hosting, die Mail-Protokolle und MySQL nach au\u00dfen sichtbar. Mail-Protokolle sind weniger anf\u00e4llig f\u00fcr Belastungen als Datenbanken, aber sie k\u00f6nnen ebenfalls recht effektiv belastet werden, was zu einer \u00dcberlastung der CPU auf dem Server f\u00fchrt. <br \/>\nWir haben mit der SSH-Schwachstelle aus dem Jahr 2016 tats\u00e4chlich Erfolge erzielt. Diese Schwachstelle ist mittlerweile fast \u00fcberall behoben, aber das bedeutet nicht, dass man in SSH keine Last erzeugen kann. Man kann es. Es wird einfach eine enorme Anzahl von Authentifizierungen gesendet, die SSH fast die gesamte CPU auf dem Server beansprucht, und die Website f\u00e4llt bereits bei ein oder zwei Anfragen pro Sekunde aus. Diese ein oder zwei Anfragen lassen sich in den Logs jedoch nicht von legitimen Lasten unterscheiden. <br \/>\nEs bleiben viele Verbindungen relevant, die wir auf den Servern \u00f6ffnen. Fr\u00fcher war das ein Problem bei Apache, heutzutage hat es faktisch auch nginx, da es h\u00e4ufig standardm\u00e4\u00dfig konfiguriert wird. Die Anzahl der Verbindungen, die nginx offen halten kann, ist begrenzt; entsprechend \u00f6ffnen wir diese Anzahl von Verbindungen, und eine neue Verbindung wird von nginx nicht mehr akzeptiert, was dazu f\u00fchrt, dass die Website nicht funktioniert. <br \/>\nUnser Test-Cluster verf\u00fcgt \u00fcber ausreichend CPU, um den SSL-Handshake anzugreifen. Prinzipiell ist es so, dass Botnets das manchmal auch gerne machen. Auf der einen Seite ist klar, dass man ohne SSL nicht auskommt, da es um die Google-Ausgabe, die Rangfolge, die Sicherheit geht. Auf der anderen Seite gibt es leider ein Problem mit der CPU bei SSL. <\/p>\n<h3>L3&amp;4<\/h3>\n<p>\nWenn wir von Angriffen auf den L3&amp;4-Ebenen sprechen, meinen wir in der Regel Angriffe auf der Kanalebene. Eine solche Last ist fast immer von legitimer zu unterscheiden, es sei denn, es handelt sich um einen SYN-Flood-Angriff. Das Problem der SYN-Flood-Angriffe f\u00fcr Schutzma\u00dfnahmen liegt im gro\u00dfen Volumen. Die maximale Gr\u00f6\u00dfe f\u00fcr L3&amp;4 betrug 1,5-2 Tbit\/s. Solch ein Verkehr ist selbst f\u00fcr gro\u00dfe Unternehmen, einschlie\u00dflich Oracle und Google, sehr schwer zu verarbeiten. <br \/>\nSYN und SYN-ACK sind die Pakete, die bei der Verbindungsherstellung verwendet werden. Daher ist es schwierig, einen SYN-Flood von legitimer Last zu unterscheiden: Es ist unklar, ob es sich um ein SYN handelt, das zur Verbindungsherstellung angekommen ist, oder um einen Teil des Floods.<\/p>\n<h3>UDP-Flood<\/h3>\n<p>\nNormalerweise haben Angreifer nicht die Kapazit\u00e4ten, die wir haben, daher kann zur Durchf\u00fchrung von Angriffen eine Amplifikation verwendet werden. Das hei\u00dft, der Angreifer scannt das Internet und findet entweder anf\u00e4llige oder falsch konfigurierte Server, die zum Beispiel auf ein SYN-Paket mit drei SYN-ACK antworten. Durch das Spoofing der Quelladresse von der Zielserveradresse kann man mit einem Paket die Kapazit\u00e4t zum Beispiel verdreifachen und den Verkehr auf das Ziel umleiten.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/33c5f42dc437a0bd2a4676a63d753fa6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nDas Problem der Amplifizierungen liegt in deren schwieriger Erkennung. Ein aktuelles Beispiel ist der aufsehenerregende Fall mit dem anf\u00e4lligen Memcached. Au\u00dferdem sind jetzt viele IoT-Ger\u00e4te, IP-Kameras verf\u00fcgbar, die ebenfalls meist standardm\u00e4\u00dfig falsch konfiguriert sind, weshalb Angreifer \u00fcber solche Ger\u00e4te die h\u00e4ufigsten Angriffe durchf\u00fchren. <\/p>\n<p><img decoding=\"async\" alt=\"DDoS zur Hilfe: Wie wir Stress- und Lasttests durchf\u00fchren\" src=\"\/wp-content\/uploads\/2019\/04\/c7e5d01f94db9c5426d50bf21ed85822.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Komplexer SYN-Flood<\/h3>\n<p>\nSYN-Flood ist vielleicht die interessanteste Art von Angriffen aus der Sicht eines Entwicklers. Das Problem besteht darin, dass Systemadministratoren oft IP-Blockaden zur Sicherheit nutzen. Dabei sind nicht nur die Administratoren betroffen, die nach Skripten handeln, sondern leider auch einige Schutzsysteme, die oft teuer gekauft werden. <br \/>\nEine solche Methode kann katastrophal enden, denn wenn die Angreifer <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/de\/lir\/ipv4\/\"   title=\"IP-Adressen\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"623\">IP-Adressen<\/a>, wird das Unternehmen sein eigenes Subnetz sperren. Wenn die Firewall das eigene Cluster blockiert, werden die externen Interaktionen unterbrochen und der Dienst bricht zusammen. <br \/>\nEs ist zudem nicht schwer, das eigene Netzwerk zu blockieren. Wenn es im B\u00fcro des Kunden ein Wi-Fi-Netzwerk gibt oder wenn die Verf\u00fcgbarkeit von Ressourcen mit verschiedenen Monitoring-Tools gemessen wird, nehmen wir die IP-Adresse dieses Monitoring-Systems oder des B\u00fcro-Wi-Fi-Clients und verwenden diese als Quelle. Auf der Ausgabe ist die Ressource scheinbar zug\u00e4nglich, aber die Ziel-IP-Adressen sind blockiert. So kann das Wi-Fi-Netzwerk der HighLoad-Konferenz, auf der ein neues Produkt des Unternehmens pr\u00e4sentiert wird, blockiert werden \u2014 und dies hat bestimmte gesch\u00e4ftliche und wirtschaftliche Kosten zur Folge. <br \/>\nW\u00e4hrend des Tests k\u00f6nnen wir keine Amplifikation \u00fcber Memcached mit externen Ressourcen nutzen, da es Vereinbarungen zur \u00dcbertragung von Verkehr nur an genehmigte IP-Adressen gibt. Daher verwenden wir die Amplifikation \u00fcber SYN und SYN-ACK, wenn das System auf das Senden eines SYN mit zwei bis drei SYN-ACK antwortet, wodurch der Angriff um das Zwei- bis Dreifache multipliziert wird. <\/p>\n<h3>Werkzeuge<\/h3>\n<p>\nEin wichtiges Werkzeug, das wir f\u00fcr die Last auf L7-Ebene nutzen, ist Yandex-tank. Dabei wird insbesondere eine Phantomwaffe eingesetzt, dazu kommen einige Skripte zur Generierung von Munition und zur Analyse der Ergebnisse. <br \/>\nZur Analyse des Netzwerkverkehrs wird Tcpdump verwendet, zur Analyse des Servers \u2013 Nmap. Zur Erzeugung von Last auf L3&amp;4-Ebene nutzen wir OpenSSL und ein wenig eigene Magie mit der DPDK-Bibliothek. DPDK ist eine Bibliothek von Intel, die es erm\u00f6glicht, mit dem Netzwerkinterface zu arbeiten, ohne den Linux-Stack zu durchlaufen, und damit die Effizienz steigert. Nat\u00fcrlich nutzen wir DPDK nicht nur auf L3&amp;4, sondern auch auf L7-Ebene, da sie es erm\u00f6glicht, einen sehr hohen Lastfluss von mehreren Millionen Anfragen pro Sekunde von einem einzigen Rechner zu erzeugen. <br \/>\nWir verwenden auch bestimmte Traffic-Generatoren und spezielle Werkzeuge, die wir f\u00fcr spezifische Tests entwickeln. Wenn man an die Schwachstelle unter SSH denkt, kann sie mit dem oben genannten Satz nicht ausgenutzt werden. Wenn wir das E-Mail-Protokoll angreifen, verwenden wir E-Mail-Utilities oder schreiben einfach Skripte f\u00fcr sie.<\/p>\n<blockquote>\n<h3>Das DBMS Tarantool ist ein attraktives, zukunftstr\u00e4chtiges Produkt zur Erstellung von hochbelasteten Anwendungen.<\/h3>\n<p>\nZusammenfassend m\u00f6chte ich sagen:<\/p>\n<ul>\n<li>Neben klassischem Lasttests ist es unbedingt notwendig, auch Stresstests durchzuf\u00fchren. Wir haben ein echtes Beispiel, bei dem ein Subunternehmer des Partners nur Lasttests durchgef\u00fchrt hat. Diese zeigten, dass die Ressource die normale Belastung aush\u00e4lt. Doch dann trat eine au\u00dfergew\u00f6hnliche Belastung auf, die Besucher der Website begannen, die Ressource anders zu nutzen \u2013 und am Ende fiel der Subunternehmer aus. Daher sollte man nach Schwachstellen suchen, selbst wenn man bereits gegen DDoS-Angriffe gesch\u00fctzt ist.<\/li>\n<li>Es ist notwendig, Teile des Systems voneinander zu isolieren. Wenn Sie eine Suche haben, sollte sie auf separate Maschinen ausgelagert werden, also nicht einmal in Docker. Denn wenn die Suche oder die Authentifizierung ausf\u00e4llt, wird mindestens etwas weiterhin funktionieren. Im Falle eines Online-Shops werden die Nutzer weiterhin Produkte im Katalog finden, von Aggregatoren auf die Seite kommen und einkaufen, wenn sie bereits authentifiziert sind, oder sich \u00fcber OAuth2 anmelden.<\/li>\n<li>Man sollte alle m\u00f6glichen Cloud-Dienste nicht untersch\u00e4tzen. <\/li>\n<li>Verwenden Sie ein CDN nicht nur zur Optimierung von Netzwerkverz\u00f6gerungen, sondern auch als Mittel zum Schutz gegen Kanalersch\u00f6pfungsangriffe und einfaches Flooding in die Statik.<\/li>\n<li>Es ist notwendig, spezialisierte Schutzdienste zu nutzen. Gegen L3&amp;4-Angriffe auf Kanalebene k\u00f6nnen Sie sich nicht selbst sch\u00fctzen, da Sie wahrscheinlich nicht \u00fcber einen ausreichenden Kanal verf\u00fcgen. Ebenso werden Sie sich gegen L7-Angriffe schwer tun, da diese sehr gro\u00df sein k\u00f6nnen. Au\u00dferdem ist das Finden kleinerer Angriffe letztlich das Metier spezialisierter Dienste und spezieller Algorithmen. <\/li>\n<li>Halten Sie sich regelm\u00e4\u00dfig auf dem neuesten Stand. Das betrifft nicht nur den Kernel, sondern auch den SSH-Daemon, besonders wenn diese nach au\u00dfen ge\u00f6ffnet sind. Prinzipiell sollten Sie alles aktualisieren, da Sie kaum in der Lage sein werden, bestimmten Schwachstellen selbstst\u00e4ndig nachzugehen.<\/li>\n<\/ul>\n<\/blockquote>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/variti\/blog\/448626\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Variti \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0449\u0438\u0442\u0443 \u043e\u0442 \u0431\u043e\u0442\u043e\u0432 \u0438 DDoS-\u0430\u0442\u0430\u043a, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0441\u0442\u0440\u0435\u0441\u0441- \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 HighLoad++ 2018 \u043c\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438, \u043a\u0430\u043a \u043e\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u043e\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430 \u0430\u0442\u0430\u043a. \u0415\u0441\u043b\u0438 \u043a\u043e\u0440\u043e\u0442\u043a\u043e: \u0438\u0437\u043e\u043b\u0438\u0440\u0443\u0439\u0442\u0435 \u0447\u0430\u0441\u0442\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0438 CDN \u0438 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0439\u0442\u0435\u0441\u044c. \u041d\u043e \u0431\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u0432\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435 \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u0441\u044c \ud83d\ude42 \u041f\u0435\u0440\u0435\u0434 \u043f\u0440\u043e\u0447\u0442\u0435\u043d\u0438\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23782,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31924","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Variti \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47DDoS \u0432 \u043f\u043e\u043c\u043e\u0449\u044c: \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u0441\u0442\u0440\u0435\u0441\u0441- \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Variti \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:44:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:44:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47DDoS zu Hilfe: wie wir Stress- und Lasttests durchf\u00fchren | ProHoster","description":"Das Unternehmen Variti entwickelt.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47DDoS \u0432 \u043f\u043e\u043c\u043e\u0449\u044c: \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u0441\u0442\u0440\u0435\u0441\u0441- \u0438 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Variti \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:44:01+00:00","article:modified_time":"2019-10-31T18:44:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31924","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-08 20:27:18","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:46:57","updated":"2026-02-08 20:27:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=31924"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31924\/revisions"}],"predecessor-version":[{"id":157814,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/31924\/revisions\/157814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/23782"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=31924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=31924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=31924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}