DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

Hoʻokumu ʻo Variti i ka pale ʻana i nā bots a me DDoS hoʻouka, a ke alakaʻi pū nei hoʻi i ke koʻikoʻi a me ka hoʻāʻo ʻana. Ma ka hālāwai HighLoad ++ 2018 ua kamaʻilio mākou e pili ana i ka hoʻopaʻa ʻana i nā kumuwaiwai mai nā ʻano hoʻouka kaua. I ka pōkole: hoʻokaʻawale i nā ʻāpana o ka ʻōnaehana, hoʻohana i nā lawelawe kapuaʻi a me nā CDN, a hoʻonui mau. Akā ʻaʻole hiki iā ʻoe ke mālama i ka pale me ka ʻole o nā ʻoihana kūikawā :)

Ma mua o ka heluhelu ʻana i ka kikokikona, hiki iā ʻoe ke heluhelu i nā abstract pōkole ma ka pūnaewele hālāwai kūkā.
A inā ʻaʻole ʻoe makemake e heluhelu a makemake paha e nānā i ke wikiō, aia ka hoʻopaʻa ʻana o kā mākou hōʻike ma lalo o ka mea hao.

Paʻi wikiō o ka hōʻike

Nui nā hui i ʻike i ka hana ʻana i ka hoʻāʻo ʻana, akā ʻaʻole nā ​​​​mea a pau e hana i ka hoʻāʻo kaumaha. Ke manaʻo nei kekahi o kā mākou mea kūʻai aku ʻaʻole hiki ke hoʻopilikia ʻia kā lākou pūnaewele no ka mea he ʻōnaehana kiʻekiʻe kā lākou, a pale maikaʻi ia mai nā hoʻouka ʻana. Hōʻike mākou ʻaʻole pololei loa kēia.
ʻOiaʻiʻo, ma mua o ka hana ʻana i nā hoʻokolohua, loaʻa iā mākou ka ʻae mai ka mea kūʻai aku, kau inoa ʻia a hoʻopaʻa ʻia, a me kā mākou kōkua ʻaʻole hiki ke hoʻokō ʻia kahi hoʻouka kaua DDoS i kekahi. Hana ʻia ka hoʻāʻo ʻana i ka manawa i koho ʻia e ka mea kūʻai aku, i ka wā liʻiliʻi o ke kaʻa ʻana i kāna kumu waiwai, a ʻaʻole pili nā pilikia komo i nā mea kūʻai aku. Eia kekahi, no ka mea hiki i kekahi mea ke hele hewa i ka wā o ka hoʻāʻo ʻana, loaʻa iā mākou ka pilina mau me ka mea kūʻai aku. ʻAe kēia iā ʻoe ʻaʻole e hōʻike i nā hopena i loaʻa, akā e hoʻololi hoʻi i kekahi mea i ka wā hoʻāʻo. I ka pau ʻana o ka hoʻāʻo ʻana, hana mau mākou i kahi hōʻike e kuhikuhi ai mākou i nā hemahema i ʻike ʻia a hāʻawi i nā manaʻo no ka hoʻopau ʻana i nā nāwaliwali o ka pūnaewele.

Pehea mākou e hana nei

I ka hoʻāʻo ʻana, hoʻohālikelike mākou i kahi botnet. Ma muli o kā mākou hana pū ʻana me nā mea kūʻai aku ʻaʻole i loaʻa ma kā mākou pūnaewele, i mea e hōʻoia ai ʻaʻole i pau ka hoʻāʻo ʻana i ka minuke mua ma muli o nā palena a i ʻole ka pale ʻana i hoʻāla ʻia, hāʻawi mākou i ka ukana mai hoʻokahi IP, akā mai kā mākou subnet ponoʻī. Eia kekahi, no ka hana ʻana i kahi ukana koʻikoʻi, loaʻa iā mākou kā mākou kikowaena hoʻāʻo ikaika ponoʻī.

Postulates

ʻAʻole maikaʻi ka manaʻo nui loa
ʻO ka liʻiliʻi o ka ukana hiki iā mākou ke lawe i kahi kumuwaiwai i ka hemahema, ʻoi aku ka maikaʻi. Inā hiki iā ʻoe ke hoʻōki i ka hana ʻana o ka pūnaewele i hoʻokahi noi i kekona, a i ʻole hoʻokahi noi i kēlā me kēia minuke, maikaʻi ia. No ka mea, e like me ke kānāwai o ka meanness, e hāʻule ʻole nā ​​​​mea hoʻohana a i ʻole nā ​​​​mea hoʻouka i kēia pilikia.

ʻOi aku ka maikaʻi o ka hāʻule hapa ma mua o ka hāʻule piha
Manaʻo mau mākou e hana i nā ʻōnaehana heterogeneous. Eia kekahi, pono e hoʻokaʻawale iā lākou ma ka pae kino, ʻaʻole wale ma ka containerization. I ka hihia o ka hoʻokaʻawale kino, ʻoiai inā hāʻule kekahi mea ma ka pūnaewele, aia kahi kūlana kiʻekiʻe ʻaʻole ia e hoʻōki i ka hana holoʻokoʻa, a e hoʻomau nā mea hoʻohana i kahi ʻāpana o ka hana.

ʻO ka hoʻolālā maikaʻi ke kumu no ka hoʻomau
ʻO ka ʻae ʻana i ka hewa o kahi kumuwaiwai a me kona hiki ke pale aku i nā hoʻouka ʻana a me nā ukana pono e waiho ʻia ma ka pae hoʻolālā, ʻoiaʻiʻo, ma ke kaʻina o ke kaha kiʻi ʻana i nā kiʻi kahe mua ma kahi puke. No ka mea, inā komo nā hewa make, hiki ke hoʻoponopono iā lākou i ka wā e hiki mai ana, akā paʻakikī loa.

ʻAʻole maikaʻi wale ke code, akā ʻo ka config
Manaʻo ka poʻe he nui ka hui hoʻomohala maikaʻi he hōʻoia o ka lawelawe hoʻomanawanui hewa. Pono maoli kahi hui hoʻomohala maikaʻi, akā pono pū kekahi mau hana maikaʻi, DevOps maikaʻi. ʻO ia hoʻi, pono mākou i nā loea e hoʻonohonoho pono i ka Linux a me ka pūnaewele, kākau pololei i nā configs ma nginx, hoʻonohonoho i nā palena, etc. A i ʻole, e hana maikaʻi ka waiwai i ka hoʻāʻo ʻana, a i kekahi manawa e haki nā mea a pau i ka hana.

ʻO nā ʻokoʻa ma waena o ka hoʻāʻo ʻana a me ke kaumaha
Hiki iā ʻoe ke ʻike i nā palena o ka hana ʻana o ka ʻōnaehana. ʻO ka hoʻāʻo koʻikoʻi ka manaʻo e ʻimi i nā nāwaliwali i loko o kahi ʻōnaehana a hoʻohana ʻia e wāwahi i kēia ʻōnaehana a ʻike i ke ʻano o ka hana ʻana i ke kaʻina o ka hemahema o kekahi mau ʻāpana. I kēia hihia, ʻike ʻole ʻia ke ʻano o ka ukana i ka mea kūʻai aku ma mua o ka hoʻomaka ʻana o ka hoʻāʻo kaumaha.

Nā hiʻohiʻona ʻokoʻa o ka hoʻouka ʻana o L7

Hoʻokaʻawale pinepine mākou i nā ʻano haʻahaʻa i nā ukana ma nā pae L7 a me L3&4. ʻO L7 kahi haʻahaʻa ma ka pae noi, ʻo ka pinepine ʻo ia ʻo HTTP wale nō, akā ke manaʻo nei mākou i kekahi ukana ma ka pae protocol TCP.
Loaʻa i nā hoʻouka L7 kekahi mau hiʻohiʻona kūʻokoʻa. ʻO ka mea mua, hele pololei lākou i ka noi, ʻo ia hoʻi, ʻaʻole paha e ʻike ʻia lākou ma o ke ʻano pūnaewele. Hoʻohana ia mau hoʻouka ʻana i ka loiloi, a ma muli o kēia, hoʻopau lākou i ka CPU, ka hoʻomanaʻo, ka disk, ka waihona a me nā kumuwaiwai ʻē aʻe me ka maikaʻi loa a me ka liʻiliʻi.

Kahinahina HTTP

I ka hihia o kekahi hoʻouka kaua, ʻoi aku ka maʻalahi o ka hoʻouka ʻana ma mua o ka mālama ʻana, a i ka hihia o L7 he ʻoiaʻiʻo nō hoʻi kēia. ʻAʻole maʻalahi ka hoʻokaʻawale ʻana i ka hoʻouka kaua mai nā kaʻa kūpono, a ʻo ka pinepine hiki ke hana ʻia e ka alapine, akā inā i hoʻolālā pololei ʻia nā mea āpau, a laila ʻaʻole hiki ke hoʻomaopopo ʻia mai nā lāʻau i kahi o ka hoʻouka ʻana a me kahi o nā noi kūpono.
E like me ka laʻana mua, e noʻonoʻo i kahi hoʻouka HTTP Flood. Hōʻike ka pakuhi i ka ikaika loa o ia mau hoʻouka ʻana; i ka laʻana ma lalo nei, ʻoi aku ka nui o nā noi ma mua o 600 tausani i kēlā me kēia minuke.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

ʻO HTTP Flood ke ala maʻalahi loa e hana i ka ukana. ʻO ka maʻamau, lawe ia i kekahi ʻano mea hana hoʻāʻo hoʻouka, e like me ApacheBench, a hoʻonohonoho i kahi noi a me kahi pahuhopu. Me kēia ʻano maʻalahi, aia kahi kiʻekiʻe o ka holo ʻana i ka cache server, akā maʻalahi ke kaʻe ʻana. No ka laʻana, e hoʻohui i nā kaula maʻamau i ka noi, e koi ai i ke kikowaena e lawelawe mau i kahi ʻaoʻao hou.
Eia kekahi, mai poina e pili ana i ka mea hoʻohana-agent i ke kaʻina o ka hana ʻana i kahi ukana. Nui nā mea hoʻohana o nā mea hana hoʻāʻo kaulana e kānana ʻia e nā luna ʻōnaehana, a ma kēia hihia ʻaʻole hiki ke hoʻouka i ka hope. Hiki iā ʻoe ke hoʻomaikaʻi maikaʻi i ka hopena ma ka hoʻokomo ʻana i kahi poʻomanaʻo kūpono a ʻoi aʻe paha mai ka polokalamu kele pūnaewele i ka noi.
E like me ka maʻalahi o ka hoʻouka ʻana o HTTP Flood, loaʻa iā lākou kā lākou drawbacks. ʻO ka mea mua, pono ka mana nui e hana i ka ukana. ʻO ka lua, he maʻalahi loa ka ʻike ʻana i ia mau hoʻouka ʻana, ʻoi aku ka nui inā hele mai lākou mai kahi helu. ʻO ka hopena, hoʻomaka koke nā noi e kānana ʻia e nā luna ʻōnaehana a i ʻole ma ka pae hoʻolako.

ʻO nā mea e nānā ai

No ka ho'ēmiʻana i ka helu o nā noi i kēlā me kēia kekona me ka nele i ka pono, ponoʻoe e hōʻike i kahi noʻonoʻo liʻiliʻi a eʻimi i ka pūnaewele. No laila, hiki iā ʻoe ke hoʻouka ʻaʻole wale i ke kahawai a i ʻole server, akā i nā ʻāpana hoʻokahi o ka noi, no ka laʻana, nā waihona a i ʻole nā ​​ʻōnaehana faila. Hiki iā ʻoe ke ʻimi i nā wahi ma ka pūnaewele e hana i nā helu nui: nā calculators, nā ʻaoʻao koho huahana, etc. ʻO ka mea hope loa, loaʻa pinepine ka pūnaewele i kekahi ʻano palapala PHP e hoʻopuka i kahi ʻaoʻao o nā haneli haneli mau laina. Hoʻouka nui ʻia kēlā ʻano palapala i ke kikowaena a hiki ke lilo i pahuhopu no ka hoʻouka ʻana.

Aia e nānā

Ke nānā mākou i kahi kumuwaiwai ma mua o ka hoʻāʻo ʻana, nānā mua mākou, ʻoiaʻiʻo, i ka pūnaewele ponoʻī. Ke ʻimi nei mākou i nā ʻano mea hoʻokomo āpau, nā faila koʻikoʻi - ma ka laulā, nā mea āpau e hiki ke hana i nā pilikia no ka kumuwaiwai a hoʻolohi i kāna hana. Nā mea hana hoʻomohala Banal ma Google Chrome a me Firefox kōkua ma aneʻi, e hōʻike ana i nā manawa pane ʻaoʻao.
Hoʻopili pū mākou i nā subdomain. No ka laʻana, aia kekahi hale kūʻai pūnaewele, abc.com, a he subdomain admin.abc.com. ʻO ka mea nui paha, he panel admin kēia me ka ʻae, akā inā ʻoe e kau i kahi ukana ma luna, hiki iā ia ke hana i nā pilikia no ka kumu kumu.
Loaʻa paha i ka pūnaewele kahi subdomain api.abc.com. ʻO ka mea nui paha, he kumuwaiwai kēia no nā polokalamu kelepona. Hiki ke loaʻa ka noi ma ka App Store a i ʻole Google Play, e hoʻokomo i kahi kikoʻī kūikawā, wehe i ka API a hoʻopaʻa inoa i nā moʻokāki hoʻāʻo. ʻO ka pilikia, manaʻo pinepine ka poʻe ʻo nā mea a pau i pale ʻia e ka ʻae ʻia e pale ʻole i ka hōʻole ʻana i nā hoʻouka lawelawe. Manaʻo ʻia, ʻo ka ʻae ka CAPTCHA maikaʻi loa, akā ʻaʻole ia. He mea maʻalahi ke hana i nā moʻolelo hoʻāʻo 10-20, akā ma ka hana ʻana iā lākou, hiki iā mākou ke komo i ka hana paʻakikī a me ka ʻike ʻole.
Ma keʻano maʻamau, nānā mākou i ka mōʻaukala, ma robots.txt a me WebArchive, ViewDNS, a nānā i nā mana kahiko o ka punawai. I kekahi manawa ua ʻōwili ʻia nā mea hoʻomohala, e ʻōlelo, mail2.yandex.net, akā ʻo ka mana kahiko, mail.yandex.net, e mau ana. ʻAʻole kākoʻo hou ʻia kēia mail.yandex.net, ʻaʻole i hoʻokaʻawale ʻia nā kumuwaiwai hoʻomohala iā ia, akā hoʻomau ia e hoʻopau i ka waihona. No laila, me ka hoʻohana ʻana i ka mana kahiko, hiki iā ʻoe ke hoʻohana pono i nā kumuwaiwai o ka backend a me nā mea āpau ma hope o ka hoʻolālā. ʻOiaʻiʻo, ʻaʻole hiki kēia i nā manawa a pau, akā ʻike pinepine mākou i kēia.
Ma keʻano maʻamau, ke kālailai mākou i nā ʻāpana noi āpau a me ke ʻano kuki. Hiki iā ʻoe, e ʻōlelo, e hoʻolei i kekahi waiwai i loko o kahi hui JSON i loko o kahi kuki, hana i ka nui o ka nesting a hana i ka waiwai no ka manawa lōʻihi ʻole.

Haawe huli

ʻO ka mea mua i hiki mai i ka noʻonoʻo i ka wā e noiʻi ai i kahi pūnaewele, ʻo ia ka hoʻouka ʻana i ka waihona, no ka mea, ʻaneʻane loaʻa i kēlā me kēia kanaka kahi hulina, a no nā mea āpau, ʻaʻole naʻe, ʻaʻole i pale ʻia. No kekahi kumu, ʻaʻole mālama pono nā mea hoʻomohala i ka ʻimi. Akā aia hoʻokahi manaʻo ma aneʻi - ʻaʻole pono ʻoe e noi i nā ʻano like, no ka mea hiki iā ʻoe ke hālāwai me ka caching, e like me ka hihia me ke kahe HTTP.
ʻAʻole maikaʻi ka hana ʻana i nā nīnau maʻamau i ka waihona. ʻOi aku ka maikaʻi o ka hana ʻana i kahi papa inoa o nā huaʻōlelo pili i ka ʻimi. Inā hoʻi mākou i ka laʻana o kahi hale kūʻai pūnaewele: e ʻōlelo mākou e kūʻai aku ka pūnaewele i nā kaʻa kaʻa a hiki iā ʻoe ke hoʻonohonoho i ka radius o nā kaʻa, ke ʻano o ke kaʻa a me nā ʻāpana ʻē aʻe. No laila, ʻo ka hui pū ʻana o nā huaʻōlelo kūpono e koi aku i ka ʻikepili e hana i nā kūlana paʻakikī loa.
Eia kekahi, pono e hoʻohana i ka pagination: ʻoi aku ka paʻakikī o ka huli ʻana e hoʻihoʻi i ka ʻaoʻao penultimate o nā hopena hulina ma mua o ka mua. ʻO ia hoʻi, me ke kōkua o ka pagination hiki iā ʻoe ke hoʻololi iki i ka ukana.
Hōʻike ka laʻana ma lalo nei i ka ukana huli. Hiki ke ʻike ʻia mai ke kekona mua loa o ka hoʻāʻo ʻana i ka wikiwiki o nā noi he ʻumi i kēlā me kēia kekona, ua iho ka pūnaewele a ʻaʻole i pane.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

Inā ʻaʻohe huli?

Inā ʻaʻohe ʻimi, ʻaʻole kēia manaʻo ʻaʻole i loaʻa i ka pūnaewele nā ​​kahua hoʻokomo pilikia. He ʻae paha kēia kahua. I kēia mau lā, makemake nā mea hoʻomohala e hana i nā hashes paʻakikī e pale i ka ʻikepili hoʻopaʻa inoa mai kahi hoʻouka papa anuenue. Maikaʻi kēia, akā ʻai nā hashes i ka nui o nā kumuwaiwai CPU. ʻO ke kahe nui o nā mana hoʻopunipuni e alakaʻi ai i kahi hemahema o ka mea hana, a ma muli o ka hopena, pau ka hana ʻana o ka pūnaewele.
ʻO ka hele ʻana ma ka pūnaewele o nā ʻano ʻano like ʻole no nā manaʻo a me nā manaʻo he kumu ia e hoʻouna ai i nā kikokikona nui loa ma laila a i ʻole e hana wale i kahi kahe nui. I kekahi manawa, ʻae nā pūnaewele i nā faila i hoʻopili ʻia, me ka ʻano gzip. I kēia hihia, lawe mākou i kahi faila 1TB, hoʻopaʻa iā ia i nā bytes a i ʻole kilobytes me ka gzip a hoʻouna iā ia i ka pūnaewele. A laila wehe ʻia a loaʻa kahi hopena hoihoi.

Hoʻomaha API

Makemake wau e nānā iki i nā lawelawe kaulana e like me ka Rest API. ʻOi aku ka paʻakikī o ka mālama ʻana i kahi API hoʻomaha ma mua o kahi pūnaewele maʻamau. ʻO nā ʻano hana liʻiliʻi o ka pale ʻana i ka password brute force a me nā hana hewa ʻē aʻe ʻaʻole e hana no ka API hoʻomaha.
He maʻalahi loa ka hoʻomaha API no ka mea hiki ke komo pololei i ka waihona. I ka manawa like, ʻo ka hāʻule ʻole o ia lawelawe e komo i nā hopena koʻikoʻi no ka ʻoihana. ʻO ka ʻoiaʻiʻo ʻo ka Rest API e hoʻohana pinepine ʻia ʻaʻole wale no ka pūnaewele nui, akā no ka noi kelepona a me kekahi mau kumuwaiwai ʻoihana kūloko. A inā hāʻule kēia mau mea a pau, a laila ʻoi aku ka ikaika o ka hopena ma mua o ke kumu o kahi hemahema o ka pūnaewele maʻalahi.

Ke hoʻouka nei i nā mea kaumaha

Inā hāʻawi ʻia iā mākou e hoʻāʻo i kekahi palapala noi maʻamau ʻaoʻao hoʻokahi, ʻaoʻao pae, a i ʻole pūnaewele kāleka ʻoihana ʻaʻohe hana paʻakikī, ʻimi mākou i nā mea kaumaha. No ka laʻana, nā kiʻi nui i hoʻouna ʻia e ke kikowaena, nā faila binary, nā palapala pdf - hoʻāʻo mākou e hoʻoiho i kēia mau mea āpau. ʻO ia mau hoʻāʻo e hoʻouka maikaʻi i ka ʻōnaehana faila a hoʻopaʻa i nā kahawai, a no laila ua kūpono. ʻO ia hoʻi, inā ʻaʻole ʻoe e kau i ke kikowaena, e hoʻoiho i kahi faila nui ma nā wikiwiki haʻahaʻa, e hoʻopaʻa wale ʻoe i ke kahawai o ke kikowaena kikowaena a laila e hōʻole ʻia ka lawelawe.
Hōʻike ʻia kahi hiʻohiʻona o ia hoʻokolohua ma ka wikiwiki o 30 RPS ua hoʻōki ka pūnaewele i ka pane ʻana a i ʻole hana i nā hewa kikowaena 500th.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

Mai poina e pili ana i ka hoʻonohonoho ʻana i nā kikowaena. Hiki iā ʻoe ke ʻike pinepine ua kūʻai kekahi kanaka i kahi mīkini virtual, hoʻokomo ʻo Apache ma laila, hoʻonohonoho i nā mea āpau ma ka paʻamau, hoʻokomo i kahi palapala PHP, a ma lalo ʻoe e ʻike ai i ka hopena.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

Maanei ua hele ka ukana i ke kumu a he 10 RPS wale nō. Ua kali mākou i 5 mau minuke a hāʻule ke kikowaena. He ʻoiaʻiʻo ʻaʻole maopopo loa ke kumu o kona hāʻule ʻana, akā aia kekahi manaʻo he nui wale kāna hoʻomanaʻo a no laila ua pau ka pane ʻana.

Ma muli o ka nalu

I ka makahiki i hala a ʻelua paha, ua kaulana loa ka hoʻouka kaua ʻana. ʻO kēia ke kumu o ka nui o nā hui e kūʻai i kekahi mau ʻāpana lako no ka pale DDoS, e koi ana i kahi manawa e hōʻiliʻili ai i nā helu helu e hoʻomaka i ke kānana ʻana i ka hoʻouka ʻana. ʻO ia, ʻaʻole lākou e kānana i ka hoʻouka ʻana i nā kekona 30-40 mua, no ka mea, hōʻiliʻili lākou i ka ʻikepili a aʻo. No laila, i loko o kēia mau 30-40 kekona hiki iā ʻoe ke hoʻomaka i ka nui ma ka pūnaewele e moe ka punawai no ka manawa lōʻihi a hoʻopau ʻia nā noi āpau.
I ka hihia o ka hoʻouka ʻana ma lalo, aia kahi manawa o 10 mau minuke, a ma hope iho ua hiki mai kahi ʻāpana hou o ka hoʻouka ʻana.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

ʻO ia hoʻi, ua aʻo ka pale, hoʻomaka i kāna kānana, akā ua hōʻea mai kahi ʻāpana ʻokoʻa hou o ka hoʻouka ʻana, a hoʻomaka ka pale e aʻo hou. ʻOiaʻiʻo, pau ka hana ʻana i ka kānana, lilo ka pale ʻana i mea ʻole, a ʻaʻole loaʻa ka pūnaewele.
Hōʻike ʻia ka hoʻouka kaua ʻana e nā waiwai kiʻekiʻe loa ma ka piko, hiki ke hōʻea i hoʻokahi haneli tausani a i ʻole miliona mau noi i kēlā me kēia kekona, i ka hihia o L7. Inā mākou e kamaʻilio e pili ana iā L3&4, a laila hiki ke loaʻa nā haneli o nā gigabits o ke kaʻa, a i ʻole, e like me nā haneli o nā mpps, inā ʻoe e helu i nā ʻeke.
ʻO ka pilikia me ia mau hoʻouka ʻana ʻo ka synchronization. Hele mai nā hoʻouka ʻana mai kahi botnet a koi i kahi kiʻekiʻe o ka hoʻonohonoho ʻana e hana i kahi spike hoʻokahi manawa nui loa. A ʻaʻole holo mau kēia hoʻonohonoho ʻana: i kekahi manawa he ʻano parabolic peak ka hopena, he mea minamina.

ʻAʻole ʻo HTTP wale nō

Ma kahi o HTTP ma L7, makemake mākou e hoʻohana i nā protocol ʻē aʻe. Ma ke ʻano maʻamau, ʻo kahi pūnaewele maʻamau, ʻoi aku ka hoʻokipa maʻamau, loaʻa nā protocols mail a me MySQL e kū nei. Hiki ke hoʻouka ʻia nā protocols me ka liʻiliʻi ma mua o nā waihona, akā hiki ke hoʻouka maikaʻi ʻia a hoʻopau ʻia me kahi CPU overloaded ma ke kikowaena.
Ua lanakila maikaʻi mākou me ka hoʻohana ʻana i ka vulnerability 2016 SSH. I kēia manawa ua hoʻopaʻa ʻia kēia haʻahaʻa no nā mea āpau, akā ʻaʻole kēia manaʻo ʻaʻole hiki ke waiho ʻia ka ukana iā SSH. Hiki. Loaʻa wale ka ukana nui o nā ʻae, ʻai ʻo SSH i kahi kokoke i ka CPU holoʻokoʻa ma ke kikowaena, a laila hāʻule ka pūnaewele mai hoʻokahi a ʻelua mau noi i kekona. No laila, ʻaʻole hiki ke hoʻokaʻawale ʻia kēia mau noi hoʻokahi a ʻelua paha e pili ana i nā lāʻau mai kahi ukana kūpono.
Nui nā pilina a mākou e wehe ai i nā kikowaena pili pū kekahi. Ma mua, ua hewa ʻo Apache i kēia, i kēia manawa ua hewa ʻo nginx i kēia, no ka mea ua hoʻonohonoho pinepine ʻia e ka paʻamau. Ua kaupalena ʻia ka helu o nā pilina e hiki ai i ka nginx ke wehe, no laila wehe mākou i kēia helu o nā pilina, ʻaʻole ʻae hou ʻo nginx i kahi pilina hou, a no laila ʻaʻole hana ka pūnaewele.
Loaʻa i kā mākou pūʻulu hoʻāʻo ka CPU e hoʻouka i ka lima lima SSL. Ma ke kumu, e like me ka hōʻike ʻana i ka hana, makemake nā botnets i kekahi manawa e hana i kēia. Ma kekahiʻaoʻao, ua maopopoʻaʻole hiki iāʻoe ke hana me kaʻole SSL, no ka mea, nā hualoaʻa Google, kūlana, palekana. Ma ka ʻaoʻao ʻē aʻe, he pilikia ka SSL i ka CPU.

L3&4

Ke kamaʻilio mākou e pili ana i kahi hoʻouka kaua ma nā pae L3&4, ke kamaʻilio pinepine nei mākou e pili ana i kahi hoʻouka kaua ma ka pae loulou. ʻAneʻane hiki ke hoʻokaʻawale ʻia kēlā ukana mai kahi mea kūpono, ke ʻole ia he hoʻouka SYN-kahe. ʻO ka pilikia me ka hoʻouka ʻana o SYN-kahe no nā mea hana palekana ʻo kā lākou leo ​​nui. ʻO ka nui o ka waiwai L3&4 he 1,5-2 Tbit/s. He paʻakikī loa kēia ʻano kaʻa kaʻa no nā hui nui, me Oracle a me Google.
ʻO SYN a me SYN-ACK nā ʻeke i hoʻohana ʻia i ka wā e hoʻokumu ai i kahi pilina. No laila, he paʻakikī ka hoʻokaʻawale ʻana o ka SYN-flood mai kahi haʻahaʻa kūpono: ʻaʻole maopopo inā he SYN kēia i hele mai e hoʻokumu i kahi pilina, a i ʻole kahi hapa o kahi kahe.

UDP-kahe

ʻO ka maʻamau, ʻaʻole i loaʻa i nā mea hoʻouka nā mana i loaʻa iā mākou, no laila hiki ke hoʻohana ʻia ka amplification e hoʻonohonoho i nā hoʻouka kaua. ʻO ia hoʻi, ʻimi ka mea hoʻouka i ka Pūnaewele a ʻike i nā kikowaena palupalu a i hoʻonohonoho hewa ʻole ʻia, no ka laʻana, i ka pane ʻana i hoʻokahi paʻi SYN, pane me ʻekolu SYN-ACK. Ma ka hoʻopunipuni ʻana i ka helu kumu mai ka helu o ka server i hoʻopaʻa ʻia, hiki ke hoʻonui i ka mana ma, e ʻōlelo, ʻekolu manawa me ka ʻeke hoʻokahi a hoʻihoʻi hou i ke kaʻa i ka mea i pepehi ʻia.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

ʻO ka pilikia me ka amplifications he paʻakikī ke ʻike. Loaʻa nā hiʻohiʻona hou i ka hihia koʻikoʻi o ka memcached palupalu. Eia kekahi, i kēia manawa he nui nā mea IoT, nā kāmeʻa IP, ka mea i hoʻonohonoho ʻia e ka paʻamau, a ma ka maʻamau ua hoʻonohonoho hewa ʻia lākou, ʻo ia ke kumu e hana pinepine ai nā mea hoʻouka i nā hoʻouka ʻana ma o ia mau mea.

DDoS i ka hoʻopakele: pehea mākou e hana ai i ke kaumaha a me ka hoʻouka ʻana

Paʻakikī SYN-kahe

ʻO SYN-flood paha ke ʻano hoʻouka ʻoi loa mai ka manaʻo o ka mea hoʻomohala. ʻO ka pilikia, hoʻohana pinepine nā luna ʻōnaehana i ka pale IP no ka pale. Eia kekahi, pili ka pale IP ʻaʻole i nā luna hoʻomalu wale nō e hana me ka hoʻohana ʻana i nā palapala, akā naʻe, ʻo kekahi mau ʻōnaehana palekana i kūʻai ʻia no ka nui o ke kālā.
Hiki i kēia ala ke lilo i pōʻino, no ka mea, inā hoʻololi nā mea hoʻouka i nā IP address, e kāohi ka hui i kāna subnet ponoʻī. Ke hoʻopaʻa ʻia ka pā ahi i kāna puʻupuʻu ponoʻī, e hāʻule ka hopena i nā pilina o waho a e hāʻule ke kumu waiwai.
Eia kekahi, ʻaʻole paʻakikī ke kāohi i kāu pūnaewele ponoʻī. Inā loaʻa i ke keʻena o ka mea kūʻai aku kahi pūnaewele Wi-Fi, a inā paha e ana ʻia ka hana o nā kumuwaiwai me ka hoʻohana ʻana i nā ʻōnaehana nānā like ʻole, a laila lawe mākou i ka IP address o kēia ʻōnaehana nānā a i ʻole ke keʻena Wi-Fi o ka mea kūʻai aku a hoʻohana iā ia i kumu. I ka hopena, ʻike ʻia ka loaʻa ʻana o ka waiwai, akā ua paʻa ʻia nā leka uila IP. No laila, hiki ke hoʻopaʻa ʻia ka pūnaewele Wi-Fi o ka HighLoad conference, kahi e hōʻike ʻia ai ka huahana hou o ka hui, a pili kēia i kekahi ʻoihana a me nā kumukūʻai waiwai.
I ka wā o ka hoʻāʻo ʻana, ʻaʻole hiki iā mākou ke hoʻohana i ka amplification ma o memcached me nā kumuwaiwai o waho, no ka mea aia nā ʻaelike e hoʻouna i nā kaʻa i nā helu IP i ʻae ʻia. No laila, hoʻohana mākou i ka amplification ma o SYN a me SYN-ACK, i ka manawa e pane ai ka ʻōnaehana i ka hoʻouna ʻana i hoʻokahi SYN me ʻelua a ʻekolu paha SYN-ACK, a ma ka hoʻopuka e hoʻonui ʻia ka hoʻouka ʻana i ʻelua a ʻekolu mau manawa.

Nā Mea Hana

ʻO kekahi o nā mea hana nui a mākou e hoʻohana ai no ka hana L7 ʻo Yandex-tank. ʻO ka mea kūikawā, hoʻohana ʻia kahi phantom e like me ka pū, a aia kekahi mau palapala no ka hana ʻana i nā pahu pahu a no ka nānā ʻana i nā hopena.
Hoʻohana ʻia ʻo Tcpdump no ka nānā ʻana i ka ʻoihana pūnaewele, a hoʻohana ʻia ʻo Nmap e nānā i ke kikowaena. No ka hana ʻana i ka ukana ma ka pae L3&4, ua hoʻohana ʻia ʻo OpenSSL a me kahi liʻiliʻi o kā mākou hana kilokilo me ka waihona DPDK. He hale waihona puke ʻo DPDK mai Intel e hiki ai iā ʻoe ke hana me ka ʻoihana pūnaewele me ke kāʻei ʻana i ka waihona Linux, a laila e hoʻonui ai i ka pono. Ma keʻano maʻamau, hoʻohana mākou i ka DPDK ʻaʻole wale ma ka pae L3&4, akā ma ka pae L7, no ka mea hiki iā mākou ke hana i kahi kahe haʻahaʻa kiʻekiʻe loa, i loko o ka laulā o nā miliona mau noi i kekona mai kahi mīkini.
Hoʻohana pū mākou i kekahi mau mea hana kaʻa a me nā mea hana kūikawā a mākou e kākau ai no nā hoʻokolohua kikoʻī. Inā hoʻomanaʻo mākou i ka nāwaliwali ma lalo o SSH, a laila ʻaʻole hiki ke hoʻohana ʻia ka mea i luna. Inā hoʻouka mākou i ka protocol mail, lawe mākou i nā pono leka uila a kākau wale i nā palapala ma luna o lākou.

haʻina

I ka hopena, makemake wau e ʻōlelo:

  • Ma waho aʻe o ka hoʻāʻo haʻahaʻa maʻamau, pono ia e hana i ka hoʻāʻo koʻikoʻi. Loaʻa iā mākou kahi hiʻohiʻona maoli kahi i hana ai ka subcontractor o kahi hoa hana i ka hoʻāʻo ukana. Ua hōʻike ʻia hiki i ka waiwai ke kū i ka ukana maʻamau. Akā, ua ʻike ʻia kahi haʻahaʻa maʻamau, hoʻomaka ka poʻe malihini kipa e hoʻohana i ka waiwai i kahi ʻano ʻokoʻa, a ʻo ka hopena ua moe ka subcontractor. No laila, pono ke ʻimi ʻana i nā mea nāwaliwali inā ʻoe i pale ʻia mai nā hoʻouka kaua DDoS.
  • Pono e hoʻokaʻawale i kekahi mau ʻāpana o ka ʻōnaehana mai nā mea ʻē aʻe. Inā he ʻimi kāu, pono ʻoe e neʻe iā ia i nā mīkini kaʻawale, ʻo ia hoʻi, ʻaʻole i Docker. No ka mea, inā hāʻule ka ʻimi ʻana a i ʻole ka ʻae ʻana, e hoʻomau ka hana ʻana o kekahi mea. Ma ka hihia o kahi hale kūʻai pūnaewele, e hoʻomau nā mea hoʻohana i ka ʻimi ʻana i nā huahana ma ka papa inoa, e hele mai ka aggregator, kūʻai inā ua ʻae ʻia lākou, a i ʻole ʻae ʻia ma OAuth2.
  • Mai haʻalele i nā ʻano lawelawe ao āpau.
  • E hoʻohana i ka CDN ʻaʻole wale no ka hoʻopaneʻe ʻana i ka lohi o ka pūnaewele, akā me ke ʻano o ka pale ʻana i ka hoʻouka ʻana i ka pau ʻana o ke kahawai a me ke kahe wale ʻana i nā kaʻa static.
  • Pono e hoʻohana i nā lawelawe palekana kūikawā. ʻAʻole hiki iā ʻoe ke pale aku iā ʻoe iho mai ka hoʻouka ʻana o L3&4 ma ka pae kahawai, no ka mea ʻaʻole paha ʻoe i lawa pono. ʻAʻole paha ʻoe e hakakā i nā hoʻouka kaua L7, no ka mea hiki ke nui loa. Eia kekahi, ʻo ka ʻimi ʻana i nā hoʻouka liʻiliʻi ke kuleana o nā lawelawe kūikawā, nā algorithms kūikawā.
  • Hoʻohou mau. ʻAʻole pili kēia i ka kernel wale nō, akā i ka daemon SSH, ʻoi aku ka nui inā wehe ʻoe iā lākou i waho. Ma ke kumu, pono e hoʻonui ʻia nā mea a pau, no ka mea ʻaʻole hiki iā ʻoe ke hahai i kekahi mau nāwaliwali iā ʻoe iho.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka