Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Toeitiiti 9 tausaga talu ai o Cloudflare o se kamupani laʻititi, ma ou te leʻi galue i ai, na o aʻu o se tagata faʻatau. I le masina talu ona faʻalauiloa Cloudflare, na ou mauaina se faʻamatalaga o laʻu upega tafaʻilagi jgc.orgDNS e foliga mai e le aoga. Cloudflare ua faia se suiga i Polokalama Puipuiga, ma sa i ai se DNS gau.

Na vave ona ou tusi atu ia Matthew Prince ma le ulutala "O fea o loʻo i ai laʻu DNS?" Ma na ia toe lafo mai se tali umi e tumu i faʻamatalaga faʻapitoa (faitau le tusi atoa iinei), lea na ou tali atu ai:

Mai: John Graham-Cumming
Aso: Oketopa 7, 2010, 9:14
Mataupu: Re: O fea la'u DNS?
Ia: Matthew Prince

Manaia lipoti, faafetai. E mautinoa lava ou te valaau pe a iai ni faʻafitauli. Atonu e aoga le tusiina o se pou e uiga i lenei mea pe a uma ona e aoina uma faʻamatalaga faʻapitoa. Ou te manatu o le a fiafia tagata i se tala tatala ma faamaoni. Aemaise pe afai e te faʻapipiʻi i ai kalafi e faʻaalia ai le faʻatupulaia o feoaiga talu mai le faʻalauiloaina.

E lelei la'u mata'ituina i luga o la'u 'upega tafa'ilagi, ma ou maua se SMS e uiga i fa'aletonu uma. O le mataʻituina o loʻo faʻaalia ai o le toilalo na tupu mai le 13:03:07 i le 14:04:12. E faia su'ega ile lima minute.

Ou te mautinoa o le ae malamalama i ai. E te mautinoa e te le manaʻomia lou lava tagata i Europa? 🙂

Ma sa ia tali mai:

Mai: Matthew Prince
Aso: Oketopa 7, 2010, 9:57
Mataupu: Re: O fea la'u DNS?
Ia: John Graham-Cumming

Fa'afetai. Sa matou tali atu i tagata uma na tusi mai. O lea ua ou alu atu i le ofisa ma o le a matou tusia se mea i luga o le blog pe pine se pou aloaia i luga o le matou laupapa puletini. Ou te ioe atoatoa, o le faamaoni o mea uma lava.

O le taimi nei o Cloudflare o se kamupani tele lava, ou te galue i ai, ma o lea e tatau ona ou tusi faʻaalia e uiga i la tatou mea sese, o ona taunuuga ma a tatou gaioiga.

Mea na tutupu ia Iulai 2

I le aso 2 o Iulai na matou fa'alauiloa ai se tulafono fou i Tulafono Fa'afoe mo WAF ona o lea Ua leai ni punaoa a le CPU i so'o se fa'agasologa autu fa'agaioiga HTTP/HTTPS fefa'ataua'iga i luga ole feso'ota'iga Cloudflare i le lalolagi atoa. Matou te faʻaleleia pea tulafono faʻatonutonu mo WAFs e tali atu ai i faʻafitauli fou ma faʻamataʻu. Mo se faataitaiga, ia Me, sa matou faanatinati faaopoopo le tulafonoe puipuia mai se fa'afitauli matuia ile SharePoint. O le uiga atoa o la tatou WAF o le mafai lea ona faʻavave ma faʻasalalau tulafono faʻavaomalo.

Ae paga lea, o le faʻafouga o le Aso Tofi talu ai o loʻo i ai se faʻamatalaga masani e faʻaumatia tele HTTP / HTTPS CPU punaoa i tua. O le matou sui autu, CDN, ma galuega WAF na afaina ona o se taunuuga. O le kalafi o loʻo faʻaalia ai o punaoa gaosi mo le tautua HTTP / HTTPS fefaʻatauaʻiga e oʻo atu i le toeitiiti 100% i luga o sapalai i la tatou fesoʻotaʻiga.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019
Fa'aaogāina ole PPU ile tasi taimi ole iai ile taimi ole fa'alavelave

O le iʻuga, o matou tagata faʻatau (ma a matou tagata faʻatau) na iʻu i se itulau sese 502 i Cloudflare domains. 502 mea sese na faia e Cloudflare pito i luma o upega tafaʻilagi o loʻo i ai pea ni mea e leai se totogi ae na le mafai ona fesoʻotaʻi ma faiga e faʻatautaia ai fefaʻatauaiga HTTP / HTTPS.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Matou te iloa le tele o faʻalavelave ua mafua ai a matou tagata faʻatau. Ua tatou matua maasiasi lava. Ma o lenei toilalo na taofia ai i matou mai le taulimaina lelei o le mea na tupu.

Afai o oe o se tasi o nei tagata faatau, masalo sa e fefe, ita ma le fiafia. E le gata i lea, matou te le'i maua se fa'alavelave fa'alelalolagi. O le maualuga o le fa'aaogaina o le PPU na mafua ona o le tasi WAF tulafono fa'atasi ai ma le le lelei o upu masani na mafua ai le tele o le solomuli. O le fa'aaliga ta'usalaina lea: (?:(?:"|'|]|}||d|(?:nan|infinity|true|false|null|undefined|symbol|math)|`|-|+)+[)]*;?((?:s|-|~|!|{}||||+)*.*(?:.*=.*)))

E ui o lenei mea e manaia i lana lava aia tatau (ma o le a ou talanoa atili i ai i lalo), o le Cloudflare auaunaga na i lalo mo 27 minute e le gata ona o se faʻaaliga masani masani. Na umi se taimi matou te faamatalaina ai le faasologa o mea na tutupu na mafua ai le toilalo, o lea na tuai ai ona matou tali atu. I le faaiuga o le pou, o le a ou faamatalaina le backtracking i se faaupuga masani ma taʻu atu ia te oe le mea e fai i ai.

O le a le mea ua tupu

Tatou amata i le faasologa. O taimi uma iinei i le UTC.

I le 13:42 p.m., na faia ai e se inisinia i luga o le 'au o le firewall se suiga laʻititi i tulafono e iloa ai XSS fa'aogaina ose faiga fa'atotonu. O lea la, na faia ai se pepa talosaga mo suiga. Matou te pulea ia tiketi e ala i Jira (ata i lalo).

Ina ua uma le 3 minute, na aliali mai le itulau muamua o PagerDuty, lipotia se faʻafitauli i le WAF. Ole su'ega fa'akomepiuta lea e su'e ai galuega a WAFs (e i ai le faitau selau o latou) i fafo atu o Cloudflare e mata'ituina ai galuega masani. Na sosoo ai ma itulau o mataala e uiga i isi Cloudflare end-to-end auʻaunaga suʻega ua le manuia, faʻafitauli o fefaʻatauaiga i le lalolagi atoa, faʻasalalau 502 mea sese, ma le tele o lipoti mai a tatou Points of Presence (PoP) i taulaga i le salafa o le lalolagi na faʻaalia ai le le lava. o punaoa CPU.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Na ou mauaina le tele o nei faʻaaliga, oso ese mai se fonotaga, ma o loʻo ou agai atu i le laulau ae fai mai le ulu o le matou matagaluega o fofo o fofo ua leiloa le 80% o matou feoaiga. Na ou tamoe atu i a matou inisinia SRE, oe ua uma ona galulue i le faafitauli. I le taimi muamua na matou manatu o se ituaiga o osofaʻiga le iloa.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

O enisinia Cloudflare SRE ua salalau solo i le lalolagi ma mataʻituina le tulaga i le uati. E masani lava, o nei fa'aaliga e logoina oe i mataupu fa'apitonu'u e fa'atapula'aina le lautele, o lo'o siaki i luga o laupapa fa'alotoifale, ma e fo'ia fa'afia taimi i le aso. Ae o nei itulau ma faʻamatalaga na faʻaalia ai se mea e sili ona ogaoga, ma na faʻaalia vave e le au inisinia SRE le maualuga o le P0 ma faʻafesoʻotaʻi le pulega ma le inisinia masini.

Sa faalogologo a matou inisinia i Lonetona i se lauga i le fale tele i lena taimi. Sa tatau ona motusia le lauga, sa faapotopoto tagata uma i se potu fono tele, ma sa valaauina nisi tagata tomai faapitoa. E le'o se fa'afitauli masani lea e mafai e SRE ona fa'afetaui i latou lava. Sa fa'anatinati le fa'aaofia ai o tagata fa'apitoa sa'o.

I le 14:00 na matou iloa ai o le faafitauli o le WAF ma e leai se osofaʻiga. Na tosoina e le 'au fa'atinoga le fa'amaumauga a le PPU ma na manino mai ai o le WAF e tu'ua'ia. Na faʻamaonia e le isi tagata faigaluega lenei aʻoaʻoga e faʻaaoga ai le strace. Na iloa e se isi i totonu o ogalaau o loʻo i ai se faʻafitauli i le WAF. I le 14:02 i le afiafi, na o mai ai le 'au atoa ia te aʻu ina ua fuafua e faʻaaoga le fasioti tagata i le lalolagi, o se masini na fausia i Cloudflare e tapunia ai se tasi vaega i le lalolagi atoa.

O le auala na matou faia ai le fasioti tagata mo le WAF o se tala ese. E le faigofie tele. Matou te faʻaaogaina a matou lava oloa, ma talu mai la matou tautua sao e leʻi galue, e le mafai ona matou faʻamaonia ma saini i totonu o le vaega e pulea ai totonu (ina ua uma ona faʻaleleia mea uma, na matou iloa ai o nisi o tagata o le 'au na leiloa le avanoa ona o se mea saogalemu e faʻagata ai faʻamaoniga pe a le faʻaogaina le faʻaogaina o le vaega mo se taimi umi).

Ma e le mafai ona matou oʻo atu i a matou auaunaga i totonu, pei o Jira poʻo le faiga faufale. Matou te manaʻomia se masini faʻaogaina, lea matou te faʻaaogaina soo (e manaʻomia foʻi ona faʻaleleia). Mulimuli ane, na mafai e se tasi enisinia ona faʻamalo le WAF i le 14:07, ma i le 14:09, o feoaiga ma le CPU ua toe foʻi i le masani i soʻo se mea. O isi vaega o le puipuiga a Cloudflare sa galue e pei ona masani ai.

Ona matou sauni lea e toe faʻaleleia le WAF. O le tulaga na le masani ai, o lea na matou faia ai ni suʻega le lelei (fesili ia i matou lava pe o le suiga moni o le faʻafitauli) ma faʻataʻitaʻiga lelei (faʻamautinoa o loʻo galue le toe foʻi) i le tasi taulaga e faʻaaoga ai auala eseese, faʻafeiloaʻi tagata faʻatau mai iina.

I le 14:52 sa matou talitonu na matou malamalama i le mafuaaga ma faia se faasaʻoga, ma toe mafai ai le WAF.

Auala e galue ai Cloudflare

Cloudflare o loʻo i ai se vaega o inisinia faʻapitoa i le puleaina o tulafono mo WAFs. Latou te taumafai e faʻaleleia fua faʻatatau, faʻaitiitia mea sese, ma vave tali atu i faʻamataʻu fou pe a aliaʻe mai. I le 60 aso ua tuana'i, e 476 su'iga talosaga na fa'agasolo mo tulafono fa'afoe mo WAF (e tusa ma le tasi i le 3 itula).

O lenei suiga faʻapitoa e manaʻomia le faʻapipiʻiina i le faʻataʻitaʻiga faʻataʻitaʻiga, lea e pasia ai e tagata faʻatau moni le tulafono, ae leai se mea e poloka. Matou te faʻaogaina lenei faiga e faʻataʻitaʻi ai le aoga o tulafono ma fuaina le saʻo lelei ma le leaga o fua faatatau. Ae e oʻo lava ile faʻataʻitaʻiga, e tatau lava ona faʻatinoina tulafono, ma i lenei tulaga o le tulafono o loʻo i ai se faʻamatalaga masani e faʻaaogaina ai le tele o punaoa processor.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

E pei ona mafai ona e vaʻai mai i le suiga o loʻo i luga, o loʻo i ai le matou fuafuaga faʻapipiʻi, o le rollback plan, ma se fesoʻotaʻiga i se faʻataʻitaʻiga faʻapitoa i totonu (SOP) mo lenei ituaiga faʻapipiʻi. O le SOP mo le suia o se tulafono e mafai ai ona faʻasalalau i le lalolagi atoa. O le mea moni, i Cloudflare, o mea e faia e matua ese lava, ma o le SOP o loʻo faʻatonuina e ave muamua le polokalama mo le suʻega ma le faʻaogaina i totonu i se pito i totonu (PoP) (lea e faʻaaogaina e a tatou tagata faigaluega), ona faʻasolo atu lea i se vaega toʻaitiiti o tagata faʻatau i totonu. o se nofoaga tuufua, sosoo ai ma se numera tele o tagata faatau, ma na o le lalolagi atoa.

O le foliga lea. Matou te faʻaogaina le git i totonu e ala ile BitBucket. Inisinia o loʻo galulue i suiga e tuʻuina atu le code, lea e fausia i TeamCity, ma a pasia le fausiaina, e tofia tagata suʻesuʻe. O le taimi lava e talia ai se talosaga toso, e faʻapipiʻi le code ma faʻataʻitaʻiina se faasologa o suʻega (toe).

Afai e mae'a lelei le fausiaina ma le su'ega, e faia se talosaga mo suiga i Jira ma e tatau i le pule po'o le ta'ita'i talafeagai ona fa'amaonia le suiga. A maeʻa le faʻatagaina, faʻapipiʻiina e tupu i totonu o le mea e taʻua o le "PoP menagerie": DOG, PIG ma Canary (maile, puaa ma canary).

DOG PoP o le Cloudflare PoP (pei o isi uma o tatou taulaga) e faʻaaogaina e tagata faigaluega Cloudflare. PoP mo le faʻaoga i totonu e mafai ai ona e puʻeina faʻafitauli aʻo leʻi amata ona tafe atu tagata faʻatau i le fofo. Mea aoga.

Afai e manuia le su'ega a le DOG, e alu le code ile tulaga PIG (guinea pig). O le Cloudflare PoP lea, o loʻo tafe mai ai se vaega itiiti o fefaʻatauaʻiga faʻatau saoloto e ala i tulafono fou.
Afai e lelei mea uma, e alu le code i Canary. E tolu a matou Canary PoPs i vaega eseese o le lalolagi. I totonu ia i latou, o le fefaʻatauaʻiga o tagata totogi ma leai se totogi e pasia le tulafono fou, ma o le siaki mulimuli lea mo mea sese.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019
Polokalama Fa'asa'olotoga Fa'agasolo ile Cloudflare

Afai e lelei le code i Canary, matou te tatalaina. O le alu i laʻasaga uma - DOG, PIG, Canary, le lalolagi atoa - e tele itula poʻo aso e faʻatatau i le suiga o tulafono. Ona o le eseese o feso'otaiga a Cloudflare ma tagata fa'atau, matou te su'esu'e mae'ae'a le tulafono a'o le'i tu'uina atu i le lalolagi atoa i tagata uma. Ae e le o mulimulitaia e WAF lenei faiga ona e manaʻomia ona vave tali atu i faʻamataʻu.

WAF taufaamatau
I nai tausaga ua tuanaʻi, ua i ai se faʻaopoopoga tele o faʻamataʻu i faʻaoga masani. E mafua lenei mea ona o le tele o avanoa o meafaigaluega e suʻe ai polokalama. Mo se faʻataʻitaʻiga, na matou tusia talu ai nei e uiga i fusu).

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019
puna: https://cvedetails.com/

E masani lava, o se faʻamaoniga o manatu e faia ma faʻasalalau vave ile Github ina ia mafai e 'au o loʻo tausia le talosaga ona vave faʻataʻitaʻiina ma faʻamautinoa o loʻo malupuipuia lelei. O le mea lea, e manaʻomia e Cloudflare le gafatia e tali atu ai i osofaʻiga fou i le vave e mafai ai ina ia maua e tagata faʻatau le avanoa e faʻaleleia ai a latou polokalama.

O se faʻataʻitaʻiga sili o le tali vave a Cloudflare o le faʻapipiʻiina lea o puipuiga faʻaletonu SharePoint ia Me (faitau iinei). Toeitiiti lava ina mae'a ona fai fa'asalalauga, na matou matauina le tele o taumafaiga e fa'aogaina le fa'aletonu i mea fa'apipi'i SharePoint a matou tagata fa'atau. O matou tama o loʻo mataʻituina pea faʻamataʻu fou ma tusia tulafono e puipuia ai a matou tagata faʻatau.

O le tulafono na mafua ai le faʻafitauli i le Aso Tofi sa tatau ona puipuia mai tusitusiga faʻasalalau (XSS). O ia osofaʻiga ua faʻateleina foʻi i tausaga talu ai nei.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019
puna: https://cvedetails.com/

O le faiga masani mo le suia o se tulafono pulea mo se WAF o le faia lea o suʻega faʻaauau (CI) aʻo leʻi faʻapipiʻiina le lalolagi. O le Aso Tofi na tea nei na matou faia ai lenei mea ma faʻasalalau tulafono. I le 13:31 i le aoauli, na tuʻuina atu ai e se inisinia se talosaga toso faʻamaonia ma se suiga.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

I le 13:37 TeamCity na aoina tulafono, faʻatautaia suʻega ma tuʻuina atu le avanoa. O le su'ega su'ega WAF e su'e ai galuega autu a le WAF ma e aofia ai le tele o su'ega iunite mo galuega ta'itasi. Ina ua maeʻa suʻega iunite, matou faʻataʻitaʻiina tulafono mo le WAF e faʻaaoga ai le tele o talosaga HTTP. O talosaga HTTP siaki po o fea talosaga e tatau ona poloka e le WAF (e faʻalavelave ai le osofaʻiga) ma e mafai ona faʻatagaina (ina ia aua nei poloka mea uma ma aloese mai mea sese). Ae matou te leʻi faʻataʻitaʻiina mo le faʻaaogaina tele o le PPU, ma o le suʻesuʻeina o ogalaau o le WAF muamua na faʻaalia ai e leʻi faʻateleina le taimi o le suʻega tulafono, ma e faigata ona masalomia o le a le lava punaoa.

Na pasia su'ega ma amata otometi ona fa'atino e TeamCity le suiga ile 13:42 i le aoauli.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Quicksilver

O tulafono a le WAF e taulaʻi i le vave faʻafefe faʻafefe, o lea matou te faʻapipiʻiina i latou e faʻaaoga ai le faleoloa faʻatau-taua tufatufaina a Quicksilver, lea e faʻasalalau suiga i le lalolagi atoa i sekone. O a matou tagata faʻatau uma e faʻaogaina lenei tekinolosi pe a latou suia le faʻatulagaga i le dashboard poʻo le API, ma e faʻafetai i ai matou te tali atu i suiga i le saoasaoa o le uila.

Matou te leʻi talanoa tele e uiga i Quicksilver. I le taimi muamua na matou faʻaaogaina Kyoto Tycoon e avea o se faleoloa autu-taua tufatufaina atu i le lalolagi atoa, ae sa i ai faafitauli faagaioiina, ma sa matou tusia la matou lava faleoloa, toe faia i le silia ma le 180 aai. Matou te faʻaaogaina nei le Quicksilver e tuleia ai suiga faʻatulagaina i tagata faʻatau, faʻafouina tulafono WAF, ma tufatufa atu le code JavaScript na tusia e tagata faʻatau i Cloudflare Workers.

E na'o ni nai sekone e alu ai mai le kilikiina o le ki i luga o le dashboard po'o le vala'au o se API e fai ai se suiga i le lalolagi atoa. Sa fiafia tagata fa'atau i lenei saoasaoa o le seti. Ma e tu'uina atu e le Aufaigaluega ia i latou toetoe lava fa'avavevave le fa'aogaina o polokalama faakomepiuta i le lalolagi. I le averesi, Quicksilver faʻasalalau e tusa ma le 350 suiga ile sekone.

Ma o Quicksilver e vave tele. I le averesi, na matou ausia le 99th percentile o le 2,29 sekone e faʻasalalau suiga i komepiuta uma i le lalolagi atoa. O le saoasaoa e masani lava o se mea lelei. A uma mea uma, pe a e faʻatagaina se galuega pe faʻamama le cache, e tupu toetoe lava a vave ma soo se mea. O le auina atu o le code e ala i Cloudflare Workers e tupu i le saoasaoa tutusa. Cloudflare folafola atu i ana tagata faʻatau faʻamatalaga vave i le taimi saʻo.

Ae i lenei tulaga, o le saoasaoa na faia ai se ula leaga ia i matou, ma o tulafono na suia i soo se mea i se mataupu o sekone. Atonu na e maitauina o le WAF code e faʻaaogaina Lua. E fa'aoga tele e Cloudflare Lua i le gaosiga ma fa'amatalaga Lua i WAF tatou ua uma ona talanoaina. Lua WAF fa'aoga ERCP i totonu ma faʻaaoga le backtracking mo le faʻafetaui. E leai ni auala e puipuia ai mai fa'aaliga e le mafai ona pulea. Lalo o le a ou talanoa atili e uiga i lenei mea ma mea o loʻo matou faia e uiga i ai.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Aʻo leʻi tuʻuina atu tulafono, na sologa lelei mea uma: na faia le talosaga toso ma faʻamaonia, o le CI / CD pipeline na aoina ma faʻataʻitaʻi le code, na tuʻuina atu le talosaga suiga e tusa ai ma le SOP e faʻatonutonu ai le faʻapipiʻiina ma le rollback, ma faʻamaeʻa le faʻapipiʻiina.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019
Cloudflare WAF Deployment Process

Sa i ai se mea na faaletonu
E pei ona ou fai atu, matou te faʻapipiʻiina le tele o tulafono fou a le WAF i vaiaso uma, ma e tele a matou faiga e puipuia ai mai aʻafiaga leaga o ia faʻapipiʻiina. Ma pe a tupu se mea e sese, e masani lava o se tuufaatasiga o nisi tulaga i le taimi e tasi. Afai e te mauaina na o le tasi le mafuaaga, o lenei, ioe, e faʻamafanafanaina, ae e le o taimi uma e moni. O mafuaʻaga ia na mafua ai ona le manuia le matou HTTP / HTTPS auaunaga.

  1. Na tusia e se inisinia se faaupuga masani e mafai ona iu ai i le soona fai solomuli.
  2. O se vaega e mafai ona taofia ai le faʻaalia masani mai le faʻaumatia tele o le PPU na aveesea sese i le toe faʻaleleia o le WAF i nai vaiaso na muamua atu-na manaʻomia le toe faʻaleleia ina ia faʻaitiitia ai punaoa a le WAF.
  3. Ole masini fa'aaliga masani e leai ni fa'amaoniga lavelave.
  4. E le mafai e le su'ega su'ega ona iloa le tele o le fa'aaogaina o le CPU.
  5. O le SOP e fa'atagaina ai suiga o tulafono e le fa'anatinati e fa'asalalau i le lalolagi atoa e aunoa ma se fa'agasolo fa'asologa e tele.
  6. O le fuafuaga o le toe fa'afo'i na mana'omia le fa'atinoina o le fa'afale atoa o le WAF fa'alua, lea na umi se taimi.
  7. O le mataala muamua e uiga i faʻafitauli tau feoaiga i le lalolagi ua tuai tele.
  8. Sa umi se taimi e fa'afou ai le itulau o le tulaga.
  9. Sa i ai ni a matou fa'afitauli i le fa'aogaina o faiga ona o se fa'aletonu, ma e le'i fa'amautu lelei le fa'agasologa o le pasi.
  10. Ua leiloa e le au inisinia SRE le avanoa i nisi faiga ona ua muta a latou tusi faamaonia ona o mafuaaga saogalemu.
  11. O matou tagata faʻatau e leʻi maua le avanoa i le Cloudflare dashboard poʻo le API aua latou te ui atu i le Cloudflare region.

O le a le mea ua suia talu mai le Aso Tofi talu ai

Muamua, na matou taofia uma galuega i faʻasalalauga mo WAF ma o loʻo faia mea nei:

  1. O loʻo matou toe faʻafoʻisia le puipuiga o le faʻaogaina o le CPU lea na matou aveesea. (Sauni)
  2. Siaki ma le lima tulafono uma e 3868 i tulafono fa'afoe mo le WAF e su'e ma fa'asa'o isi tulaga e ono tula'i mai i tua. (Ma'ea le fa'amaoniga)
  3. Matou te aofia ai faʻamatalaga faʻatinoga mo tulafono uma i le seti suʻega. (Fa'amoemoeina: Iulai 19)
  4. Suiga i se masini fa'aaliga masani re2 poʻo ele - o lo'o tu'uina atu uma fa'amaoniga taimi fa'atino. (Faamoemoeina: Iulai 31)
  5. O loʻo matou toe tusia le SOP e faʻapipiʻi tulafono i laʻasaga, pei o isi polokalama i Cloudflare, ae i le taimi lava e tasi e iai le malosi i faʻalavelave faʻafuaseʻi i le lalolagi pe a fai ua amata osofaʻiga.
  6. O loʻo matou atinaʻeina le tomai e aveese faʻafuaseʻi le Cloudflare dashboard ma API mai le Cloudflare region.
  7. Otometi fa'afouga itulau Tulaga Cloudflare.

O se taimi umi ua tatou o ese mai le Lua WAF na ou tusia i nai tausaga ua mavae. Si'i WAF i faiga fou puipui. O le auala lea o le a vave ai le WAF ma maua ai se tulaga faaopoopo o puipuiga.

iʻuga

O lenei toilalo na mafua ai le faʻalavelave mo i matou ma a matou tagata faʻatau. Na matou gaoioi vave e faʻasaʻo le tulaga ma o loʻo galulue nei i faʻaletonu i faiga na mafua ai le faʻalavelave, faʻapea foʻi ma le eli loloto atili e puipui ai faʻafitauli faʻafitauli ma faʻamatalaga masani i le lumanaʻi pe a faimalaga i tekinolosi fou.

Matou te matua maasiasi lava i lenei motusia ma faatoese atu i a matou tagata faʻatau. Matou te fa'amoemoe o nei suiga e mautinoa e le toe tupu se mea fa'apenei.

Fa'atatauga. Fa'asolo i tua fa'amatalaga masani

Ina ia malamalama pe faʻapefea le faʻamatalaga:

(?:(?:"|'|]|}||d
(?:nan|infinity|true|false|null|undefined|symbol|math)|`|-
|+)+[)]*;?((?:s|-|~|!|{}||||+)*.*(?:.*=.*)))

'ai uma punaoa CPU, e tatau ona e iloa sina mea itiiti pe faʻafefea ona galue le masini masani masani. O le faafitauli iinei o le mamanu .*(?:.*=.*). (?: ma fetaui ) o se vaega e le pu'eina (o lona uiga, o le fa'aaliga i puipui ua fa'avasegaina o se fa'aaliga tasi).

I le tulaga o le faʻaaogaina tele o le CPU, e mafai ona faʻamatalaina lenei mamanu .*.*=.*. I lenei fomu, o le mamanu e foliga mai e le talafeagai. Ae o le mea e sili atu ona taua, i le lalolagi moni, o faʻamatalaga (pei o faʻamatalaga lavelave i tulafono WAF) e fai atu i le afi e faʻafetaui se fasi vaega sosoo ai ma se isi vaega e mafai ona oʻo atu ai i le faʻalavelave faʻafuaseʻi. Ma o le mafuaaga lena.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

I faaupuga masani . o lona uiga e tatau ona e fa'atusaina le tagata e tasi, .* - fa'afetaui le zero pe sili atu mataitusi "matape'ape'a", o lona uiga, pu'eina le maualuga o mataitusi, ina ia .*.*=.* o lona uiga fa'afetaui mataitusi e leai pe sili atu, ona fa'afetaui lea i le zero pe sili atu mataitusi, su'e le mataitusi moni =, fa'afetaui le zero pe sili atu mataitusi.

Se'i o tatou su'e laina x=x. E fetaui ma le faaupuga .*.*=.*. .*.* a'o le'i fetaui le fa'ailoga tutusa ma le fa'ailoga muamua x (se tasi o vaega .* соответствует x, ma le lona lua - zero mataitusi). .* ina ua uma = matches mulimuli x.

O lenei faʻatusatusaga e manaʻomia 23 laasaga. Vaega muamua .* в .*.*=.* galue matape'ape'a ma fetaui ma le manoa atoa x=x. E alu le afi i le isi vaega .*. E le toe iai ni a matou mataitusi e fa'atusa, o lea la o le vaega lona lua .* e fetaui ma mataitusi e leai (e fa'atagaina lea). Ona alu lea o le afi i le faailo =. Ua le toe i ai ni faailoga (vaega muamua .* faaaogaina le faaupuga atoa x=x), e leai se faatusatusaga e tupu.

Ona toe fo'i lea o le masini fa'amatalaga masani i le amataga. Na ia agai atu i le vaega muamua .* ma faatusatusa ai с x= (nai lo x=x), ona ave lea o le vaega lona lua .*. Vaega lona lua .* ua faatusaina i le lona lua x, ma ua le toe i ai ni a tatou tagata o totoe. Ma ina ua toe oo atu le afi = в .*.*=.*, e leai se mea e aoga. Ma sa ia toe foi i tua.

Ole taimi lea ole vaega .* tutusa lava x=, ae o le vaega lona lua .* leai lava x, ma le leai o ni mataitusi. O lo'o taumafai le afi e su'e se uiga moni = i le mamanu .*.*=.*, ae le sau i fafo (pe a uma, o le vaega muamua ua uma ona nofoia .*). Ma sa ia toe foi i tua.

O le taimi lea o le vaega muamua .* ave na'o le x muamua. Ae o le vaega lona lua .* "matape'ape'a" pu'eina =x. Ua uma ona e mateina le mea o le a tupu? E taumafai le afi e fa'afetaui le mea moni =, ua le manuia ma toe foi i tua.

Muamua vaega .* e fetaui lava ma le muamua x... O le lona lua .* na o le ave =. Ioe, e le mafai e le afi ona fetaui ma le mea moni =, ona o le vaega lona lua ua uma ona faia lenei mea .*. Ma toe foi i tua. Ma o loʻo matou taumafai e faʻafetaui se manoa e tolu mataitusi!

O se taunuuga, o le vaega muamua .* e fetaui ma le mea muamua x, tulaga lua .* - e leai ni mataitusi, ma o le afi e iu lava ina fetaui ma le mea moni = i le faʻaaliga с = i le laina. Sosoo ai ma le vaega mulimuli .* ua faatusaina i le mea mulimuli x.

23 laasaga naʻo mo x=x. Matamata i se vitio puupuu e uiga i le faaaogaina o Perl Regexp:: Debugger, o loʻo faʻaalia ai le auala e tupu ai laasaga ma le solomuli.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

O lea ua tele galuega, ae a pe a fai x=x o le a tatou maua x=xx? E 33 laasaga lena. Ma afai x=xxx? 45. O le mafutaga e le laina. O le kalafi o loʻo faʻaalia ai se faʻatusatusaga mai x=x i x=xxxxxxxxxxxxxxxxxxxx (20 x после =). Afai tatou te maua 20x mulimuli ane =, e fa'auma e le afi le fa'atusa i la'asaga e 555! (E le gata i lea, afai ua tatou faiaina x= ma o le manoa e na'o le 20 x, o le a faia e le afi 4067 laasaga e malamalama ai e leai ni fetaui).

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

O lenei vitio o loʻo faʻaalia uma i tua mo faʻatusatusaga x=xxxxxxxxxxxxxxxxxxxx:

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

O le fa'alavelave o le fa'atuputeleina o le manoa, o le taimi fa'atusa e fa'atupu fa'asolo. Ae o mea e mafai ona sili atu ona leaga pe a fai o le faʻaaliga masani e fai sina suiga. Seʻi tatou fai atu na tatou maua .*.*=.*; (o lona uiga, sa i ai se semicolon moni i le pito o le mamanu). Mo se faʻataʻitaʻiga, ia faʻafetaui se faʻaaliga pei foo=bar;.

Ma o le toe fo'i i tua o se fa'alavelave moni lava. Mo le faatusatusaga x=x e 90 laasaga, ae le o le 23. Ma o lena fuainumera ua vave ona tupu. E faatusatusa x= ma 20 x, 5353 laasaga e manaʻomia. O le siata lenei. Va'ai i le axis values Y faatusatusa i le siata muamua.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Afai e te mana'o, siaki uma 5353 la'asaga fa'afetaui x=xxxxxxxxxxxxxxxxxxxx и .*.*=.*;

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

I le faʻaogaina o le paie nai lo le matapeʻapeʻa, e mafai ona pulea le tele o le solomuli. Afai tatou te suia le uluai faaupuga i .*?.*?=.*?, mo se faatusatusaga x=x e 11 laasaga (e le 23). Ae mo x=xxxxxxxxxxxxxxxxxxxx... O mea uma ona ? после .* ta'u atu i le afi e fa'afetaui se numera la'ititi o mataitusi a'o le'i alu i luma.

Ae o faafanua paie e le mafai ona foia atoatoa le faafitauli i tua. Afai tatou te suia le faataitaiga mala .*.*=.*; i .*?.*?=.*?;, o le a tumau pea le taimi o le faʻatinoga. x=x e manaʻomia pea 555 laasaga, ma x= ma 20 x - 5353.

Pau lava le mea e mafai ona fai (e ese mai le toe tusia atoa o le mamanu mo le faʻamaonia sili atu) o le tuʻuina lea o le faʻaaliga masani afi ma lona backtracking mechanism. O le mea lea o le a tatou faia i nai vaiaso o lumanaʻi.

O le fofo i lenei faafitauli ua iloa talu mai le 1968, ina ua tusia e Kent Thompson se tusiga Polokalame Fa'apolokalame: Fa'amatalaga masani su'esu'ega algorithm (“Metotia Fa'apolokalame: Fa'asologa o Fa'amatalaga Fa'amatalaga masani”). O loʻo faʻamatalaina e le tusiga se masini e mafai ai e oe ona faʻaliliuina se faʻamatalaga masani i masini faʻagata e le faʻamaonia, ma pe a maeʻa suiga o le setete i masini faʻagata faʻauʻu, faʻaaoga se algorithm o lona taimi faʻatinoina e faʻalagolago i luga ole manoa fetaui.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Metotia Polokalama
Algorithm Su'esu'e Fa'amatalaga masani
Ken Thompson

Bell Telephone Laboratories, Inc., Murray Hill, New Jersey

O loʻo faʻamatalaina se metotia mo le suʻeina o se manoa faʻapitoa o mataitusi i tusitusiga ma faʻatalanoaina le faʻatinoga o lenei metotia i le compiler form. E ave e le tagata tu'ufa'atasia le fa'amatalaga masani e fai ma fa'ailoga puna ma maua ai le polokalame IBM 7094 e fai ma fa'ailoga mea. O le polokalame mea faitino e ave faʻaoga i foliga o suʻesuʻega tusitusiga ma faʻaalia se faailo i taimi uma e fetaui ai se manoa o tusitusiga ma se faʻamatalaga masani. O loʻo tuʻuina mai e le tusiga faʻataʻitaʻiga, faʻafitauli ma fofo.

O le algorithm
Algoritimi su'esu'e muamua na i'u i tua pe a le maua se fa'ai'uga o se su'esu'ega fa'amanuiaina.

I le faiga faʻapipiʻi, e le galue le algorithm i faʻailoga. E pasi fa'atonuga ile fa'amaopoopo code. O le faʻatinoga e vave tele - a maeʻa ona pasi faʻamatalaga i le pito i luga o le lisi o loʻo i ai nei, e otometi lava ona suʻeina faʻasologa o mataitusi uma i le faʻaaliga masani.
O le tuufaatasiga ma le suʻesuʻega algorithm o loʻo aofia ai i le taimi faʻasoa faʻasologa o tusitusiga e avea ma suʻesuʻega faʻasalalauga. Ioe, e mamao lenei mea mai le na'o le fa'aogaina o sea faiga su'esu'e. Mo se faʻataʻitaʻiga, o se fesuiaiga o lenei algorithm e faʻaaogaina e avea o se suʻega faʻailoga i totonu o se laulau i le assembler.
E manatu o le tagata faitau e masani i faʻamatalaga masani ma le IBM 7094 gagana polokalame komepiuta.

Tagata tu'ufa'atasi
O le tu'ufa'atasi e aofia ai vaega e tolu o lo'o fa'asolosolo tutusa. O le la'asaga muamua o le syntax filtering, lea e fa'ataga ai na'o fa'aupuga fa'asa'o masani e pasia. O le la'asaga lea e fa'aofi ai fo'i le "·" fa'aoga e fa'afetaui ai fa'amatalaga masani. I le laasaga lona lua, o le faʻaaliga masani e liua i le postfix form. I le laasaga lona tolu, ua faia ai le mea faitino. O laʻasaga muamua e 2 e manino, ma o le a tatou le mafaufau i ai.

O le tusiga a Thompson e le o talanoa e uiga i masini a le setete e le faʻamaonia, ae o loʻo faʻamatalaina lelei le laina laina algorithm ma tuʻuina atu se polokalame ALGOL-60 e faʻatupuina ai le code gagana faʻapotopotoga mo le IBM 7094. O le faʻatinoga e taufaasese, ae o le manatu e matua faigofie lava.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

ala su'esu'e nei. O lo'o fa'atusalia e se fa'ailoga ⊕ e tasi le fa'aoga ma lua galuega.
Ata 1 o lo'o fa'aalia ai galuega a le laasaga lona tolu o le tu'ufa'atasiga pe a suia se fa'ata'ita'iga masani. O mataitusi muamua e tolu i le faʻataʻitaʻiga o le a, b, c, ma o loʻo fatuina e taʻitasi se faʻapipiʻi S[i] ma se fanua NNODE.

NNODE i le code o loʻo i ai nei e faʻatupuina ai le faʻaaliga masani i se faʻapipiʻi faʻapipiʻi tasi (silasila i le Ata 5)

O le uiga lea o le fa'aaliga masani .*.*=.*, pe a e mafaufauina e pei o ata mai le tusiga a Thompson.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

I le Ata. 0 e lima setete e amata mai i le 0, ma le 3 taamilosaga e amata mai le setete 1, 2 ma le 3. O nei taamilosaga e tolu e fetaui ma le tolu. .* i se faaupuga masani. 3 ovals ma togitogi e fetaui ma le tasi faailoga. Oval ma se faʻailoga = e fetaui ma se uiga moni =. Setete 4 e fa'ai'u. Afai tatou te ausia, ona fetaui lea o le faaupuga masani.

E va'ai pe fa'afefea ona fa'aogaina se fa'atusa fa'apea mo le fa'afetauiga masani .*.*=.*, o le a tatou vaʻavaʻai i manoa faʻafetaui x=x. O le polokalame e amata mai le setete 0, e pei ona faʻaalia i le Ata. 1.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Mo lenei algorithm e galue, o le masini setete e tatau ona i ai i le tele o setete i le taimi e tasi. O se masini fa'ai'uga e le fa'atonuina o le a faia uma suiga i le taimi e tasi.

Aʻo leʻi oʻo i le taimi e faitau ai faʻamatalaga faʻapipiʻi, e alu i setete muamua e lua (1 ma le 2), e pei ona faʻaalia i le Ata. 2.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

I le Ata. 2 o loʻo faʻaalia ai le mea e tupu pe a ia tilotilo i le mea muamua x в x=x. x e mafai ona faafanua i le pito i luga, alu mai le setete 1 ma toe foi i le setete 1. Po o x e mafai ona fa'afanua i le pito i lalo, alu mai le setete 2 ma toe fo'i i le setete 2.

Ina ua uma ona fetaui ma le muamua x в x=x o lo'o matou i ai pea i setete 1 ma 2. E le mafai ona matou o'o atu i le setete 3 po'o le 4 ona matou te mana'omia se uiga moni. =.

Ona mafaufau lea o le algorithm = в x=x. E pei o le x i luma atu, e mafai ona faʻafetaui i soʻo se tasi o pito pito i luga lua matasele mai le setete 1 i le setete 1 pe mai le setete 2 i le setete 2, ae o le algorithm e mafai ona fetaui ma le moni. = ma siitia mai le setete 2 i le setete 3 (ma vave 4). O loʻo faʻaalia lea i le Fig. 3.

Fa'amatalaga o le fa'aletonu o le Cloudflare ia Iulai 2, 2019

Ona alu ai lea o le algorithm i le mea mulimuli x в x=x. Mai setete 1 ma 2 o suiga tutusa e mafai ona toe foʻi i setete 1 ma 2. Mai le setete 3 x e mafai ona fetaui ma le mata i le itu taumatau ma toe foi i le tulaga 3.

I lenei laasaga, o tagata taʻitasi x=x mafaufau, ma talu ai ua tatou oʻo i le setete 4, o le faʻamatalaga masani e fetaui ma lena manoa. O uiga ta'itasi e fa'agasolo tasi, o lea la o lenei algorithm e laina i le umi o le manoa ulufale. Ma leai se solomuli.

E manino lava, pe a uma ona oʻo i le setete 4 (pe a fetaui le algorithm x=) o le faʻamatalaga masani uma e fetaui, ma e mafai ona faʻamutaina le algorithm e aunoa ma le mafaufau i ai x.

O lenei algorithm e faʻalagolago i luga ole lapoʻa ole manoa faʻaoga.

puna: www.habr.com

Faaopoopo i ai se faamatalaga