{"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\/et\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy","title":{"rendered":"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/9e01506f9103d69af131c7a419b10e42.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Ettev\u00f5te Variti arendab botivastast kaitset ja DDoS-r\u00fcnnakute vastu, samuti viib l\u00e4bi stressi- ja koormustestimist. Konverentsil HighLoad++ 2018 r\u00e4\u00e4kisime, kuidas kaitsta ressursse erinevate r\u00fcnnakute eest. L\u00fchidalt: isoleerige s\u00fcsteemi osi, kasutage pilveteenuseid ja CDN-i ning uuendage regulaarselt. Kuid ilma spetsialiseeritud kaitsefirmadeta ei suuda te siiski hakkama saada \ud83d\ude42<\/i><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEnne teksti lugemist v\u00f5ite tutvuda l\u00fchikeste kokkuv\u00f5tetega <noindex><a rel=\"nofollow\" href=\"http:\/\/www.highload.ru\/moscow\/2018\/abstracts\/4201\">konverentsi veebisaidil<\/a><\/noindex>.<br \/>\nJa kui te ei armasta lugemist v\u00f5i soovite lihtsalt videot vaadata, siis allpool spoliers jaotises on meie ettekande salvestus.<\/p>\n<p><b class=\"spoiler_title\">Ettekande video<\/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=\"M\u00e4ngi videot\" 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>Paljud ettev\u00f5tted oskavad juba teha koormusteste, kuid mitte k\u00f5ik ei tee stressiteste. M\u00f5ned meie kliendid arvavad, et nende veebisait on haavatamatu, sest neil on highload s\u00fcsteem, mis kaitseb r\u00fcnnakute eest. Me n\u00e4itame, et see ei ole kaugeltki t\u00f5si. <br \/>\nMuidugi saame enne testide l\u00e4biviimist kliendilt loa, allkirja ja templiga, ja meie abiga ei saa DDoS-r\u00fcnnakut kellelegi teha. Testimine toimub kliendi valitud ajal, kui tema ressursi k\u00fclastatavus on minimaalne ja ligip\u00e4\u00e4su probleemid ei kajastu klientides. Lisaks, kuna testimise ajal v\u00f5ib alati juhtuda midagi ootamatut, on meil pidev kontakt kliendiga. See v\u00f5imaldab mitte ainult saavutatud tulemusi edastada, vaid ka testimise k\u00e4igus midagi muuta. Testimise l\u00f5ppedes koostame alati aruande, kus m\u00e4rgime avastatud puudused ja anname soovitusi n\u00f5rkade kohtade k\u00f5rvaldamiseks veebisaidil. <\/p>\n<h3>Kuidas me t\u00f6\u00f6tame<\/h3>\n<p>\nTestimise l\u00e4biviimisel emuleerime botiv\u00f5rku. Kuna t\u00f6\u00f6tame klientidega, kes ei asu meie v\u00f5rkudes, siis et test ei l\u00f5ppeks esimese minuti jooksul limiitide v\u00f5i kaitse aktiveerimise t\u00f5ttu, suuname koormuse mitte \u00fchelt IP-aadressilt, vaid oma alamv\u00f5rgust. Lisaks on meil piisavalt v\u00f5imas testserver, et genereerida m\u00e4rkimisv\u00e4\u00e4rset koormust.<\/p>\n<h3>Postulaadid<\/h3>\n<p><\/p>\n<blockquote><p><b>Palju \u2014 ei t\u00e4henda h\u00e4sti<\/b><br \/>\nMida v\u00e4iksem on koormus, millega suudame ressursi rikki ajada, seda parem. Kui saame saavutada, et veebisait l\u00f5petab toimimise \u00fche p\u00e4ringu sekundis v\u00f5i isegi \u00fche p\u00e4ringu minutis, oleks see suurep\u00e4rane. Sest Murphy seaduse kohaselt satuvad kasutajad v\u00f5i pahatahtlikud isikud juhuslikult just sellesse haavasse. <\/p><\/blockquote>\n<blockquote><p><b>Osaline rike on parem kui t\u00e4ielik<\/b><br \/>\nSoovitame alati, et s\u00fcsteemid oleksid heterogeensed. Ja neid tuleks jagada f\u00fc\u00fcsilisel tasandil, mitte ainult konteineriseerimisega. F\u00fc\u00fcsilise eraldamise korral, isegi kui veebisaidil midagi eba\u00f5nnestub, on t\u00f5en\u00e4osus, et see ei lakkaks t\u00e4ielikult toimimast, suur ja kasutajatel s\u00e4ilib juurdep\u00e4\u00e4s v\u00e4hemalt osa funktsionaalsusele.<\/p><\/blockquote>\n<blockquote><p><b>\u00d5ige arhitektuur on stabiilsuse alus<\/b><br \/>\nRessursi t\u00f5rke taluvus ja selle v\u00f5ime taluda r\u00fcnnakuid ja koormusi peaksid olema kavandatud juba projekteerimise etapil, sisuliselt esimestel mustritel joonistades. Sest kui sisse imbuvad fataalsed vead, on hiljem nende parandamine v\u00f5imalik, kuid v\u00e4ga keeruline.<\/p><\/blockquote>\n<blockquote><p><b>Hea peaks olema mitte ainult kood, vaid ka konfiguratsioon<\/b><br \/>\nPaljud arvavad, et hea arendusmeeskond tagab teenuse t\u00f5rke taluvuse. Hea arendusmeeskond on t\u00f5epoolest vajalik, kuid vajalik on ka hea kasutus, hea DevOps. Ehk on vajalikud spetsialistid, kes konfigureerivad \u00f5igesti Linuxi ja v\u00f5rgu, kirjutavad \u00f5igesti nginx\u2019i konfiguratsioonid, seadistavad limiidid jne. Vastasel juhul t\u00f6\u00f6tab ressurss h\u00e4sti ainult katses, kuid tootmises murdub mingi hetk k\u00f5ik kokku.<\/p><\/blockquote>\n<blockquote><p><b>Koormuse ja stressitestimise erinevused<\/b><br \/>\nKoormustestimine v\u00f5imaldab tuvastada s\u00fcsteemi toimimise piire. Stressitestimine on suunatud s\u00fcsteemi n\u00f5rkade kohtade leidmisele ja seda kasutatakse selleks, et s\u00fcsteemi purustada ja vaadata, kuidas see k\u00e4itub teatud osade rikke korral. Samas j\u00e4\u00e4b koormuse iseloom tavaliselt kliendile teadmata enne stressitestimise algust.<\/p><\/blockquote>\n<p><\/p>\n<h3>L7 r\u00fcnnakute erip\u00e4rad<\/h3>\n<p>\nLiike koormusi jagame tavaliselt L7 ja L3&amp;4 tasemete koormusteks. L7 on rakenduse taseme koormus, mille alla m\u00f5istetakse k\u00f5ige sagedamini ainult HTTP, kuid meie m\u00f5istame alla igasugust koormust TCP protokolli tasemel.<br \/>\nL7 r\u00fcnnakutel on teatavad iseloomulikud tunnused. Esiteks, need tulevad otse rakendusse, seega ei ole neid t\u00f5en\u00e4oliselt v\u00f5imalik v\u00f5rgu vahenditega peegeldada. Sellised r\u00fcnnakud kasutavad loogikat ja seet\u00f5ttu tarbivad nad v\u00e4ga efektiivselt CPU-d, m\u00e4lu, ketast, andmebaasi ja muid ressursse, isegi v\u00e4ikese liikluse korral.<\/p>\n<h3>HTTP Flood<\/h3>\n<p>\nIga r\u00fcnnaku korral on koormuse tekitamine lihtsam kui selle t\u00f6\u00f6tlemine ja L7 puhul on see samuti t\u00f5si. R\u00fcnnaku liiklust on sageli keeruline eristada seaduslikust liiklusest ning enamikul juhtudel on v\u00f5imalik seda teha ainult sageduse p\u00f5hjal. Kuid kui k\u00f5ik on korralikult planeeritud, on logide p\u00f5hjal v\u00f5imatu m\u00f5ista, kus on r\u00fcnnak ja kus seaduslikud p\u00e4ringud. <br \/>\nEsimese n\u00e4itena vaatleme HTTP Flood r\u00fcnnakut. Graafikult on n\u00e4ha, et sellised r\u00fcnnakud on tavaliselt v\u00e4ga v\u00f5imsad; allolevas n\u00e4ites \u00fcletas haripunktis tehtud p\u00e4ringute arv 600 000 minutis.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/a2bcd4b2babbb3362a717f93a3f3d1b3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHTTP Flood on k\u00f5ige lihtsam viis koormuse tekitamiseks. Tavaaliselt kasutatakse selleks mingit koormustestimise t\u00f6\u00f6riista, n\u00e4iteks ApacheBench, ja m\u00e4\u00e4ratakse p\u00e4ring ja siht. Sellise lihtsa l\u00e4henemise puhul on suur t\u00f5en\u00e4osus sattuda serveri caching'usse, kuid seda on lihtne \u00fcle petta. N\u00e4iteks lisades p\u00e4ringusse juhuslikke kujundeid, mis sunnib serverit pidevalt uuendama lehte. <br \/>\n\u00c4rge unustage, et koormuse tekitamise protsessis on oluline ka user-agent. Paljusid populaarsest testimisest kasutatavad user-agent'id filtreerivad s\u00fcsteemiadministratorid, ja siis v\u00f5ib koormus lihtsalt mitte j\u00f5uda tausts\u00fcsteemi. Tulemusi on oluliselt v\u00f5imalik parandada, lisades p\u00e4ringusse enam-v\u00e4hem valideeritud veebibrauseri pealkirja. <br \/>\nMaljerpoli all lihtsuses, HTTP Flood r\u00fcnnakutel on ka oma puudused. Esiteks, koormuse tekitamiseks on vaja suurt v\u00f5imsust. Teiseks, sellised r\u00fcnnakud on v\u00e4ga kergesti tuvastatavad, eriti kui nad tulevad \u00fchest aadressist. L\u00f5ppkokkuv\u00f5ttes hakkavad p\u00e4ringud koheselt filtreerima kas s\u00fcsteemiadministraatorid v\u00f5i isegi teenusepakkuja tasemel. <\/p>\n<h3>Mida otsida<\/h3>\n<p>\nKuna v\u00e4hendada sekundis esitatavate p\u00e4ringute arvu, kaotamata samas efektiivsust, tuleb veidi loovust ja uurida saiti. Niisiis, koormata v\u00f5ib mitte ainult kanalit v\u00f5i serverit, vaid ka konkreetseid rakenduse osi, n\u00e4iteks andmebaase v\u00f5i failis\u00fcsteeme. Samuti tasub otsida kohti saidil, mis teevad suuri arvutusi: kalkulaatorid, tooteotsingu lehed jne. L\u00f5puks juhtub tihti, et saidil on mingi php-skript, mis genereerib lehe mitmest sajast tuhandest reast. Selline skript koormab samuti serverit suurel m\u00e4\u00e4ral ja v\u00f5ib muutuda r\u00fcnnaku objektiks.<\/p>\n<h3>Kus otsida<\/h3>\n<p>\nKui me skaneerime ressurssi enne testimise l\u00e4biviimist, vaatame k\u00f5igepealt loomulikult saiti endalt. Otsime igasuguseid sisendv\u00e4lju, suuri faile \u2014 k\u00f5ike, mis v\u00f5ib ressursile probleeme tekitada ja selle t\u00f6\u00f6d aeglustada. Siin aitavad tavalised arendustooted Google Chrome'is ja Firefoxis, mis n\u00e4itavad lehe vastuseaega. <br \/>\nSamuti skaneerime alamdomeene. N\u00e4iteks on olemas mingi veebipood, abc.com, ja sellel on alamdomeen admin.abc.com. T\u00f5en\u00e4oliselt on see administraatorirakendus, kuid kui sellele koormust rakendada, v\u00f5ib see peamise ressursi jaoks probleeme tekitada. <br \/>\nSaidil v\u00f5ib olla alamdomeen api.abc.com. T\u00f5en\u00e4oliselt on see ressurss mobiilirakenduste jaoks. Rakenduse leidmiseks v\u00f5ib minna App Store'i v\u00f5i Google Play'sse, seadistada spetsiaalne juurdep\u00e4\u00e4supunkt, anal\u00fc\u00fcsida API-d ja registreerida testkonto. Probleem on selles, et tihti arvavad inimesed, et k\u00f5ik, mis on autoriseerimisega kaitstud, on teenuse keelamise r\u00fcnnakute suhtes haavatamatu. Oletatakse, et autoriseerimine on parim CAPTCHA, kuid see pole nii. 10\u201320 testkonto loomine on lihtne ja nende loomisega saame juurdep\u00e4\u00e4su keerulisele ja avatud funktsionaalsusele. <br \/>\nMuidugi vaatame ajalugu, robots.txt ja WebArchive'i, ViewDNS-i, otsime ressursi vanu versioone. Vahel juhtub, et arendajad k\u00e4ivitavad, \u00fctleme, mail2.yandex.net, kuid vana versioon, mail.yandex.net, j\u00e4\u00e4b alles. See mail.yandex.net l\u00f5petab toe saamise, selle arendamiseks ei eraldata ressursse, kuid see j\u00e4tkab andmebaasi tarbimist. Seega saab vana versiooni abil t\u00f5husalt kasutada tagapool olevaid ressursse ja k\u00f5ike, mis on seotud kujundusega. Loomulikult see ei juhtu alati, kuid me kohtame sarnaste olukordadega ikka ja j\u00e4lle suhteliselt tihti. <br \/>\nMuidugi uurime k\u00f5iki p\u00e4ringu parameetreid ja k\u00fcpsiste struktuuri. Saame n\u00e4iteks JSON-massiivi k\u00fcpsisesse mingi v\u00e4\u00e4rtuse ja luua suure sisemise struktuuri, sundides ressursi t\u00f6\u00f6tama erilise aeglusega.<\/p>\n<h3>Otsingu koormus<\/h3>\n<p>\nEsimene asi, mis p\u00e4he tuleb, kui uurida veebisaiti, on andmebaasi koormamine, kuna otsing on peaaegu k\u00f5igis ja enamikul neist on kahjuks n\u00f5rk kaitse. Miks arendajad j\u00e4\u00e4vad otsingu piisavalt t\u00e4helepanuta? Kuid siin on soovitus \u2014 v\u00e4ltige \u00fchesuguste p\u00e4ringute tegemist, sest v\u00f5ite kokku puutuda vahem\u00e4luga, nagu ka HTTP \u00fclekoormuse korral. <br \/>\nOtsingu jaoks andmebaasi juhuslike p\u00e4ringute tegemine ei ole ka alati efektiivne. Oluliselt parem on koostada loetelu m\u00e4rks\u00f5nadest, mis on seotud otsinguga. Kui p\u00f6\u00f6rduda tagasi n\u00e4ite juurde, kus veebipood m\u00fc\u00fcb autoteste ja v\u00f5imaldab m\u00e4\u00e4rata rehvide raadiust, autotype'i ja muid parameetreid. Seega kombinatsioonid asjakohastest s\u00f5nadest panevad andmebaasi t\u00f6\u00f6tama palju keerulisemates tingimustes. <br \/>\nLisaks on soovitatav kasutada lehek\u00fclgede jagamist: otsingul on palju keerulisem n\u00e4idata eelviimast otsingutulemust, kui esimest. Seega saab lehek\u00fclgede jagamise abil koormust veidi mitmekesistada. <br \/>\nAllpool on n\u00e4idatud otsingu koormus. N\u00e4hes, et juba testi esimesel sekundil k\u00fcmne p\u00e4ringu tasa hukkas sait ja ei vastanud.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/dd888d9f3cc0e5058ac9508cee8cc3d5.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Mis juhtub, kui otsingut ei ole?<\/h3>\n<p>\nKui otsingut ei ole, ei t\u00e4henda see, et sait ei sisaldaks teisi haavatavaid sisendv\u00e4lju. Selliseks v\u00e4ljad v\u00f5ivad olla autoriseerimine. Praegu armastavad arendajad luua keerulisi r\u00e4si, et kaitsta sisselogimise andmebaasi r\u00fcndamise eest kaarelistest tabelitest. See on hea, aga sellised r\u00e4si tarbivad palju CPU ressurssi. Suur valeautoriseerimise voog toob kaasa protsessori kokkuvarisemise ja seet\u00f5ttu l\u00f5petab sait t\u00f6\u00f6tamise. <br \/>\nErinevate kommentaari- ja tagasiside vormide olemasolu veebisaidil on p\u00f5hjus saata sinna v\u00e4ga suuri tekste v\u00f5i lihtsalt luua massilist r\u00e4mpsposti. M\u00f5nikord aktsepteerivad saidid ka sissehainetud faile, sealhulgas gzip-formaadis. Sellisel juhul v\u00f5tame 1TB faili, komprimeerime selle gzip abil paariks baitiks v\u00f5i kilobaitiks ja saadame saidile. Edasi dekompressitakse see ja saadakse v\u00e4ga huvitav efekt. <\/p>\n<h3>Rest API<\/h3>\n<p>\nSooviksime p\u00f6\u00f6rata natuke t\u00e4helepanu praegu populaarsetele teenustele, nagu Rest API. Rest API kaitsmine on palju keerulisem kui tavalise veebisaidi. Rest API jaoks ei t\u00f6\u00f6ta isegi tavalised parooliv\u00f5tmise ja muu ebaseadusliku tegevuse kaitsemeetodid. <br \/>\nRest API-d on v\u00e4ga lihtne rikki minna, kuna see p\u00f6\u00f6rdub otse andmebaasi poole. Sellegipoolest v\u00f5ib sellise teenuse v\u00e4lja l\u00fclitamine kaasa tuua piisavalt t\u00f5siseid tagaj\u00e4rgi \u00e4ri jaoks. Asi on selles, et Rest API on tavaliselt seotud mitte ainult pea veebisaidiga, vaid ka mobiilirakenduste ja muude sisemiste \u00e4riallikatega. Ja kui k\u00f5ik see kokku kukub, on m\u00f5ju palju t\u00f5sisemat, kui lihtsalt tavalise veebisaidi rikki minek. <\/p>\n<h3>Raske sisu koormus<\/h3>\n<p>\nKui meile pakutakse testida m\u00f5nda tavalist \u00fche lehe rakendust, maandumist v\u00f5i visiitkaarti, millel ei ole keerulisi funktsioone, siis otsime rasket sisu. N\u00e4iteks suured pildid, mida server edastab, binaarfailid, pdf-dokumendid - proovime k\u00f5ike seda alla laadida. Sellised testid koormavad h\u00e4sti failis\u00fcsteemi ja blokeerivad kanaleid, mist\u00f5ttu on need t\u00f5husad. Seega, isegi kui te ei kaota serverit, laadides alla suurt faili madalatel kiirusel, blokeerite te lihtsalt sihtserveri kanali ja siis tekib teenuse katkestus. <br \/>\nSellise testi n\u00e4itel on selge, et kiirusel 30 RPS peatus veebisait vastamast v\u00f5i andis 500. viga serveris.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/615e212d3a95b36a4f8c492d18508d7c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEi tohiks unustada ka serverite seadistamist. Tihti v\u00f5ib kohata, et inimene on ostnud virtuaalserveri, installinud sinna Apache, seadistanud k\u00f5ik vaikeseadetega, paigaldanud PHP-rakenduse ja allpool v\u00f5ib n\u00e4ha tulemust. <\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/532a478528f8cd80285209f654411b79.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin kulges koormus juurtasandil ja oli vaid 10 RPS. Ootasime 5 minutit ja server kukkus kokku. T\u00f5epoolest, ei ole selge, miks see kukkus, aga on oletus, et see lihtsalt \u00fcletas m\u00e4lu ja seet\u00f5ttu l\u00f5petas vastamise.<\/p>\n<h3>Lainep\u00f5hine<\/h3>\n<p>\nViimase \u00fche kuni kahe aasta jooksul on laineatakid muutunud \u00fcsna populaarseks. See on tingitud sellest, et paljud organisatsioonid ostavad erinevaid seadmeid DDoS-i kaitseks, mis vajavad teatud aega statistika kogumiseks, enne kui nad hakkavad r\u00fcnnakut filtreerima. See t\u00e4hendab, et nad ei filtreeri r\u00fcnnakut esimesed 30-40 sekundit, kuna koguvad andmeid ja \u00f5pivad. Seega v\u00f5ib nende 30-40 sekundi jooksul veebisaidile saata nii palju p\u00e4ringuid, et ressurss on pikaks ajaks maas, kuni k\u00f5ik p\u00e4ringud on l\u00e4bi t\u00f6\u00f6deldud. <br \/>\nAntud r\u00fcnnaku puhul oli vahemik 10 minutit, mille j\u00e4rel tuli uus, muudetud r\u00fcnnaku kogus.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/1bcc609697e255c6051cd215175801f3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee t\u00e4hendab, et kaitse \u00f5ppis, aktiveeris filtreerimise, kuid tuli t\u00e4iesti uus, t\u00e4iesti erinev r\u00fcnnakuvoog, ja kaitse alustas uuesti \u00f5ppimist. Tegelikult lakkab filtreerimine t\u00f6\u00f6tamast, kaitse muutub ebaefektiivseks ja veebisait ei ole kergesti ligip\u00e4\u00e4setav. <br \/>\nLaineatakitele on iseloomulikud v\u00e4ga k\u00f5rged tipud, v\u00f5ivad ulatuda saja tuhande v\u00f5i miljoni p\u00e4ringuni sekundis L7 puhul. Kui r\u00e4\u00e4kida L3&amp;4-st, siis seal v\u00f5ivad olla sadu gigabitte liiklust v\u00f5i vastavalt sadu mpps, kui arvestada pakettide kaupa. <br \/>\nSelliste r\u00fcnnakute probleem on s\u00fcnkroniseerimine. R\u00fcnnakud tulevad botiv\u00f5rgust ja suure s\u00fcndmuse loomiseks on vajalik k\u00f5rge s\u00fcnkroniseerimisaste. See koosk\u00f5lastamine ei \u00f5nnestu alati: m\u00f5nikord saadakse v\u00e4ljundiks mingisugune paraboliline tipp, mis n\u00e4eb \u00fcsna kaunis v\u00e4lja.<\/p>\n<h3>Ei ainult HTTP<\/h3>\n<p>\nLisaks HTTP-le L7 tasemel, me armastame ka teisi protokolle \u00e4ra kasutada. Tavalise veebisaidi puhul, veelgi enam tavalise hostimise puhul, on v\u00e4ljas postituse protokollid ja MySQL. Postituse protokollid on koormustele v\u00e4hem vastuv\u00f5tlikud kui andmebaasid, kuid neidki saab koormata \u00fcsna efektiivselt, saades v\u00e4ljundiks serveri k\u00f5rge CPU koormuse. <br \/>\nOleme t\u00e4iesti reaalselt saavutanud edu SSH 2016. aasta haavatavuse kaudu. Praegu on see haavatavus peaaegu k\u00f5igis parendatud, kuid see ei t\u00e4henda, et SSH-le ei saaks koormust anda. Saab. Lihtsalt antakse tohutu autoriseerimise koormus, SSH s\u00f6\u00f6b peaaegu kogu serveri CPU ja seej\u00e4rel visatakse veebisait maas juba \u00fchest-kahest p\u00e4ringust sekundis. Seega neid \u00fchte-kahte p\u00e4ringut logides ei saa kuidagi eristada seaduslikust koormusest. <br \/>\nJ\u00e4tkuvalt on olemas palju \u00fchendusi, mida avame serverites. Varem oli sellega probleeme Apache'is, n\u00fc\u00fcd eksib selles osas tihti ka nginx, kuna see on tihti vaikimisi seadistatud. Nginx'i poolt avatav \u00fchenduste arv on piiratud, seega kui see arv t\u00e4is, ei saa uus \u00fchendus enam luua, mist\u00f5ttu veebisait ei t\u00f6\u00f6ta. <br \/>\nMeie testkluster omab piisavalt CPU-d, et r\u00fcnnata SSL handshake'i. Praktika n\u00e4itab, et botnetid armastavad seda ka teha. \u00dchest k\u00fcljest on selge, et SSL'ist ei saa m\u00f6\u00f6da, kuna see m\u00f5jutab Google'i v\u00e4ljundit, j\u00e4rjestust ja turvalisust. Teisest k\u00fcljest on SSL-il kahjuks probleem CPU kasutuse poolest. <\/p>\n<h3>L3&amp;4<\/h3>\n<p>\nKui r\u00e4\u00e4gime L3&amp;4 taseme r\u00fcnnakutest, r\u00e4\u00e4gime tavaliselt kanalitaseme r\u00fcnnakutest. Selline koormus on peaaegu alati eristatav legaalsest, kui tegemist ei ole SYN-flood r\u00fcnnakuga. SYN-flood r\u00fcnnakute probleemiks kaitsevahendite jaoks on suur maht. Maksimaalne L3&amp;4 maht oli 1,5-2 Tbit\/s. Sellist liiklust on v\u00e4ga raske t\u00f6\u00f6delda isegi suurtele ettev\u00f5tetele, sealhulgas Oracle'ile ja Google'ile. <br \/>\nSYN ja SYN-ACK on paketid, mida kasutatakse \u00fchenduse loomisel. Seet\u00f5ttu on SYN-flood'i keeruline legaalsest koormusest eristada: pole selge, kas SYN tuli \u00fchenduse loomiseks v\u00f5i on see osa flood'ist.<\/p>\n<h3>UDP-flood<\/h3>\n<p>\nTavaliselt ei ole kurjategijatel sama v\u00f5imsust, mis meil, seega v\u00f5ivad nad r\u00fcnnakute korral kasutada amplifikatsiooni. See t\u00e4hendab, et kurjategija skaneerib internetti ja leiab kas haavatavad v\u00f5i valesti seadistatud serverid, mis n\u00e4iteks vastavad \u00fchele SYN-paketile kolme SYN-ACK paketiga. Petetades allika aadressi sihtserveri aadressiga, saab \u00fche paketiga suurendada v\u00f5imsust n\u00e4iteks kolm korda ja suunata liiklus ohvrile.<\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/33c5f42dc437a0bd2a4676a63d753fa6.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nAmplifikatsioonide probleem seisneb nende keerulises avastamises. Viimaste n\u00e4idete hulka kuulub tuntud juhtum haavatava memcached'iga. Lisaks on n\u00fc\u00fcd palju IoT seadmeid, IP-kaameraid, mis on samuti enamasti vaikimisi valesti seadistatud ja seet\u00f5ttu saavad kurjategijad nende kaudu r\u00fcnnakuid tihti teha. <\/p>\n<p><img decoding=\"async\" alt=\"DDoS abi: kuidas me l\u00e4bime stressi- ja koormustestid\" src=\"\/wp-content\/uploads\/2019\/04\/c7e5d01f94db9c5426d50bf21ed85822.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Keeruline SYN-flood<\/h3>\n<p>\nSYN-flood on t\u00f5en\u00e4oliselt k\u00f5ige huvitavam r\u00fcnnakut\u00fc\u00fcp arendaja vaatenurgast. Probleem on see, et s\u00fcsteemiadministraatorid kasutavad sageli kaitseks IP-blokeeringut. Kahjuks kannatavad IP-blokeeringu all mitte ainult administraatorid, kes j\u00e4rgivad skripte, vaid ka m\u00f5ned kalli raha eest ostetud kaitses\u00fcsteemid. <br \/>\nSelline meetod v\u00f5ib osutuda katastroofiliseks, kuna kui kurjategijad annavad vale <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/lir\/ipv4\/\"   title=\"IP-aadressid\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"623\">IP-aadressid<\/a>, siis blokeerib ettev\u00f5te omaenda alams\u00fcsteemi. Kui tulem\u00fc\u00fcri kaudu blokeeritakse oma klaster, v\u00f5ivad v\u00e4lised suhted kokku kukkuda ja ressurss puruneda. <br \/>\nOma v\u00f5rgu blokeerimine pole sugugi keeruline. Kui kliendi kontoris on WI-Fi-v\u00f5rk, v\u00f5i kui ressursside t\u00f6\u00f6d m\u00f5\u00f5detakse erinevate j\u00e4lgimiss\u00fcsteemide abil, v\u00f5tame selle j\u00e4lgimisseadmest v\u00f5i kontori WI-Fi kliendi IP-aadressi ja kasutame seda allikana. Tulemusena n\u00e4ib, et ressurss on saadaval, kuid siht-IP-aadressid on blokeeritud. Nii v\u00f5ib olla blokeeritud HighLoad konverentsi Wi-Fi-v\u00f5rk, kus esitletakse ettev\u00f5tte uut toodet, \u2014 ja see toob kaasa teatud \u00e4rilised ja majanduslikud kulud. <br \/>\nTestimise k\u00e4igus ei saa me kasutada memcachedi kaudu amplifikatsiooni mingite v\u00e4liste ressursside kaudu, kuna on kokkulepped liikluse edastamiseks ainult lubatud IP-aadressidele. Seet\u00f5ttu kasutame amplifikatsiooni SYN ja SYN-ACK kaudu, kui \u00fche SYN saatmisel vastab s\u00fcsteem kahe v\u00f5i kolme SYN-ACK-iga, ja l\u00f5pptulemusena r\u00fcnnak suureneb kaks kuni kolm korda. <\/p>\n<h3>T\u00f6\u00f6riistad<\/h3>\n<p>\n\u00dcks peamisi t\u00f6\u00f6riistu, mida me L7 taseme koormuse jaoks kasutame, on Yandex-tank. T\u00e4psemalt kasutatakse kui suurt\u00fckki fantoomi, lisaks on mitmeid skripte, et genereerida kuulid ja anal\u00fc\u00fcsida tulemusi. <br \/>\nV\u00f5rguliikluse anal\u00fc\u00fcsimiseks kasutatakse Tcpdumpi, serveri anal\u00fch\u00fc\u00fcsiks \u2014 Nmapi. L3&amp;4 taseme koormuse tekitamiseks kasutatakse OpenSSL-i ja veidi oma maagiat DPDK raamatukoguga. DPDK on Intelilt saadud raamatukogu, mis v\u00f5imaldab t\u00f6\u00f6tada v\u00f5rgu liidesega, m\u00f6\u00f6da minnes Linuxi virnast, parandades seel\u00e4bi efektiivsust. Loomulikult kasutame DPDK-d mitte ainult L3&amp;4 tasemel, vaid ka L7 tasemel, kuna see v\u00f5imaldab genereerida v\u00e4ga suurt koormust, ulatudes miljonite p\u00e4ringuteni sekundis \u00fchest masinast. <br \/>\nKasutame ka teatud liiklust genereerivaid t\u00f6\u00f6riistu ja spetsiaalseid vahendeid, mida kirjutame konkreetsete testide jaoks. Kui meenutada SSH haavatavust, siis eeltoodud komplektiga ei saa seda \u00e4ra kasutada. Kui r\u00fcndame e-posti protokolli, siis v\u00f5tame kasutusele e-posti t\u00f6\u00f6riistad v\u00f5i kirjutame neile lihtsalt skripte.<\/p>\n<blockquote>\n<h3>J\u00e4reldused<\/h3>\n<p>\nKokkuv\u00f5tteks sooviksin \u00f6elda:<\/p>\n<ul>\n<li>Lisaks klassikalisele koormustestimisele tuleb kindlasti l\u00e4bi viia ka stressitestimine. Meil on reaalne n\u00e4ide, kus partneri allt\u00f6\u00f6v\u00f5tja viis l\u00e4bi ainult koormustestimise. See n\u00e4itas, et ressurss talub etten\u00e4htud koormust. Kuid seej\u00e4rel ilmus etten\u00e4gematu koormus, veebisaidi k\u00fclastajad hakkasid ressursi kasutama veidi muul moel, \u2014 ja tulemuseks j\u00e4i allt\u00f6\u00f6v\u00f5tja seisma. Seega, haavatavuste otsimine on vajalik, isegi kui te juba kaitsete end DDoS-r\u00fcnnakute eest.<\/li>\n<li>On oluline isoleerida \u00fched osad s\u00fcsteemist teistest. Kui teil on otsing, tuleb see viia eraldi masinatesse, isegi mitte Dockerisse. Sest kui otsing v\u00f5i autentimine eba\u00f5nnestuvad, siis v\u00e4hemalt midagi j\u00e4tkab t\u00f6\u00f6d. Internetipoe puhul saavad kasutajad j\u00e4tkuvalt leida tooteid kataloogist, liikuda kinnisvaraportaalist, ostma, kui nad on juba autentitud, v\u00f5i autentima end OAuth2 kaudu.<\/li>\n<li>\u00c4rge alahinnake igasuguseid pilveteenuseid. <\/li>\n<li>Kasutage CDN-i mitte ainult v\u00f5rgul\u00e4henemise optimeerimiseks, vaid ka kaitsevahendina kanalite ammendamise r\u00fcnnakute ja lihtsalt staatilise fludi eest.<\/li>\n<li>On vajalik kasutada spetsialiseeritud kaitsete teenuseid. L3&amp;4 r\u00fcnnakute kaitsmine kanalitasemel on keeruline, sest t\u00f5en\u00e4oliselt pole teil piisavalt kanalit. L7 r\u00fcnnakutelt kaitsmine on samuti keeruline, kuna need v\u00f5ivad olla v\u00e4ga suured. Lisaks on v\u00e4ikeste r\u00fcnnakute leidmine siiski spetsiaalsete teenuste ja algoritmide privileeg. <\/li>\n<li>Uuendage regulaarselt. See kehtib mitte ainult tuuma, vaid ka SSH deemonite kohta, eriti kui need on avatud v\u00e4ljastpoolt. \u00dcldiselt tuleks uuendada k\u00f5ike, sest te t\u00f5en\u00e4oliselt ei suuda iseseisvalt j\u00e4lgida teatud haavatavusi.<\/li>\n<\/ul>\n<\/blockquote>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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 toeks: kuidas me viime l\u00e4bi stressi- ja koormustestimise | ProHoster","description":"Ettev\u00f5te Variti arendab.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/ddos-v-pomoshh-kak-my-provodim-stress-i-nagruzochnye-testy","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/31924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=31924"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31924\/revisions"}],"predecessor-version":[{"id":157814,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31924\/revisions\/157814"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/23782"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=31924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=31924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=31924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}