ProHoster > Blog > Rianachd > Mar a chaidh cùl-taic geama hacker mu bhith a’ sgrios frithealaiche a chruthachadh
Mar a chaidh cùl-taic geama hacker mu bhith a’ sgrios frithealaiche a chruthachadh
Tha sinn fhathast ag innse dhut mar a chaidh ar ceist laser le sgrios an fhrithealaiche a chuir air dòigh. Tòisich san àm a dh'fhalbh artaigil mu bhith a 'fuasgladh na ceiste.
Gu h-iomlan, bha 6 aonadan ailtireachd aig deireadh a’ gheama, a nì sinn sgrùdadh san artaigil seo:
Cùl-fhiosrachadh de bhuidhnean geama a bha an urra ri uidheamachdan geama
Bus iomlaid dàta cùl-fhiosrachaidh agus làraich air VPS
Eadar-theangaiche bho iarrtasan backend (eileamaidean geama) gu Arduino agus bathar-cruaidh air an làrach
Fhuair Arduino, a bha an urra ri smachd a chumail air na h-ath-chraolaidhean, òrdughan bhon eadar-theangair agus rinn e an obair fhèin
Frontend - làrach-lìn Falcon fhèin, às an robh cluicheadairean a’ cumail smachd air innealan
Rachamaid tro gach aon dhiubh.
Cùl-fhiosrachadh air buidhnean geama
Chaidh an backend a chuir an gnìomh mar thagradh bròg earraich: bha grunn riaghladairean fois aige, puing crìochnachaidh websocket agus seirbheisean le loidsig geama.
Cha robh ann ach trì riaghladairean:
Megatron. Chaidh an duilleag gnàthach Megatron a chuir tro iarrtasan GET: ro agus às deidh tionndadh air a’ chumhachd. Loisg an leusair tron iarrtas POST.
A’ mapadh dhuilleagan tilde gus am bi iad air am frithealadh le ainm na duilleige. Bidh Tilde a’ dèanamh dhuilleagan airson às-mhalairt chan ann le ainmean tùsail, ach le ID a-staigh agus fiosrachadh gèillidh.
Rianadair captcha gus captcha frithealaiche pseudo-high-load a fhrithealadh.
Bhathas a’ cleachdadh puing-crìochnachaidh Websocket airson smachd a chumail air innealan: lampaichean, garland agus litrichean. Chaidh a thaghadh gus inbhe làithreach an inneil a thaisbeanadh don h-uile cluicheadair: ge bith a bheil e air no dheth, gnìomhach no nach eil, dè an dath den litir a tha air a lasadh air a’ bhalla an-dràsta. Gus an obair a dhèanamh gus an leusair a thionndadh beagan nas duilghe, chuir sinn cead ris an garland agus an leusair leis an aon logadh a-steach agus facal-faire admin / admin.
Dh’ fhaodadh cluicheadairean deuchainn a dhèanamh air le bhith a’ tionndadh air an garland agus ag ath-aithris an aon rud leis an leusair.
Thagh sinn paidhir facal-faire logadh a-steach cho beag gus nach cuir sinn dragh air cluicheadairean le taghadh neo-riatanach.
Gus an obair a dhèanamh beagan nas inntinniche, chaidh IDan nì bho mongodb a chleachdadh mar aithnichearan inneal san t-seòmar.
Tha clàr-ama ann an ObjectId: dà luach air thuaiream, aon dhiubh air a thogail stèidhichte air aithnichear an uidheim, agus an dàrna fear stèidhichte air pid a’ phròiseis a tha ga ghineadh agus a’ chunntair luach. Bha mi airson na aithnichearan a ghineadh aig amannan cunbhalach agus le diofar phròiseasan pid, ach le cuntair cumanta, gus am biodh taghadh aithnichear inneal laser nas inntinniche. Ach, aig a 'cheann thall, thòisich a h-uile duine le aithnichearan a bha eadar-dhealaichte a-mhàin anns a' chunntair luach. Is dòcha gu bheil seo air a’ cheum a dhèanamh ro shìmplidh agus gun a bhith feumach air mion-sgrùdadh air structar objectId.
Eadar-theangair bho backend iarrtasan
Sgriobt python, a bha ag obair air timers agus air an eadar-theangachadh bho gheàrr-chunntasan gèam gu modail fiosaigeach. Mar eisimpleir, “cuir air lampa an ùrlair” → “Cuir air sealaidheachd N2.”
Cheangail an sgriobt ri ciudha RabbitMQ agus ghluais e iarrtasan bhon ciudha gu Arduino. Chuir e an gnìomh cuideachd loidsig atharrachadh solais co-shìnte: còmhla ri cuid de dh’ innealan, chaidh an solas orra a thionndadh air, mar eisimpleir, nuair a chaidh cumhachd a thoirt do Megatron an toiseach, chaidh a shoilleireachadh le solas àrd-ùrlar. Tha dealbhadh solais airson cinematography an t-seallaidh gu lèir na sgeulachd air leth mu obair mhòr ar co-riochdaire pròiseict agus dealbhaiche riochdachaidh Ilya Serov, agus innsidh sinn mu dheidhinn ann am post air leth.
Bha an t-eadar-theangair cuideachd an urra ri loidsig an inneal-brisidh a chuir air bhog a ’cleachdadh timer agus an ìomhaigh a chuir chun Tbh: an timer airson an inneal-brisidh a chuir air bhog, capybara sgreuchail, sanas aig deireadh a’ gheama.
Mar a chaidh an loidsig airson an tòcan Megatron a chruthachadh
Sealladh deuchainn
A h-uile 25 diog chaidh comharra ùr a chruthachadh agus ghabhadh a chleachdadh gus an leusair a thionndadh air airson 10 diogan aig cumhachd 10/255. Ceangal gu github le còd Megatron.
An uairsin dh’ fhuaraich an leusair sìos airson 1 mhionaid - rè na h-ùine seo cha robh e ri fhaighinn agus cha do ghabh e ri iarrtasan peilearan ùra.
Cha robh an cumhachd seo gu leòr airson losgadh tron ròp, ach dh'fhaodadh cluicheadair sam bith Megatron a losgadh agus an giùlan laser fhaicinn ag obair.
Chaidh an algairim hashing MD5 a chleachdadh gus an comharra a ghineadh. Agus dh’obraich an sgeama a-mach MD5 bho MD5 + counter + dìomhair airson tòcan sabaid agus às aonais dìomhaireachd airson comharra deuchainn.
Tha MD5 a’ toirt iomradh air pròiseact malairteach a rinn Pavel, an cùl-taic againn. Dìreach dà bhliadhna air ais chleachd am pròiseact seo MD5, agus nuair a dh'innis e do ailtire a 'phròiseict gur e seann algairim crioptachaidh a bh' ann, thòisich iad a 'cleachdadh MD5 bho MD5. Leis gun do chuir sinn romhainn am pròiseact as fheàrr a dhèanamh comasach, chuimhnich e air a h-uile càil agus chuir e roimhe iomradh beag a dhèanamh.
Losgadh sabaid
Is e modh sabaid Megatron cumhachd laser 100% aig 3 watt. Tha seo gu leòr airson 2 mhionaid airson losgadh tron ròp a bha a ’cumail cuideam, gus an aquarium a bhriseadh agus an frithealaiche a thuiltean le uisge.
Dh’ fhàg sinn beagan sanasan air Github a’ phròiseict: is e sin, an còd gineadh tòcan, às an tuig duine gu bheil na comharran deuchainn agus sabaid air an gineadh stèidhichte air an aon chunntair. A thaobh tòcan sabaid, a bharrachd air a’ chunntair, thathas cuideachd a’ cleachdadh salann, a tha cha mhòr gu tur air fhàgail ann an eachdraidh a bhith ag atharrachadh an gist seo, ach a-mhàin an dà charactar mu dheireadh.
Le eòlas air an dàta seo, bha e comasach na 2 shamhla mu dheireadh den t-salann a sheòrsachadh agus faighinn a-mach gun deach na h-àireamhan bho Lost, a chaidh atharrachadh gu siostam hexadecimal, a chleachdadh air a shon.
An uairsin bha aig na cluicheadairean ris a’ chunntair a ghlacadh (le bhith a’ dèanamh anailis air an tòcan deuchainn) agus comharra sabaid a ghineadh a’ cleachdadh an ath chunntair agus an salann a chaidh a thaghadh aig a’ cheum roimhe.
Bha an cuntair dìreach ag àrdachadh le gach peilear deuchainn agus a h-uile 25 diog. Cha do sgrìobh sinn mu dheidhinn seo an àite sam bith, bha còir aige a bhith na iongnadh geam beag.
Seirbheis eadar-obrachaidh Captcha
Anns an t-saoghal cluichidh, b 'e seo an aon captcha a dh'fheumadh a bhith air a luchdachadh gus an neach-leantainn a thionndadh agus a' chairt-flip fhosgladh le sanas. Ri taobh a’ chamara bha laptop le sgrùdadh luchdan.
seirbheis Dh'obraich mi a-mach dè a bu chòir a thaisbeanadh ann an sgrùdadh mar an luchd làithreach: teòthachd agus CPU Fan. Chaidh metrics a ghluasad chun stòr-dàta clàr-ama agus a tharraing le grafana.
Nam biodh anns na 5 diogan mu dheireadh barrachd air 50 iarrtas airson an captcha a thaisbeanadh, chaidh an luchd àrdachadh le àireamh stèidhichte + air thuaiream de cheumannan. B 'e an àireamhachadh gun gabhadh 100% luchd a choileanadh ann an dà mhionaid.
Gu dearbh, bha barrachd loidsig anns an t-seirbheis na bha air a thaisbeanadh sa gheama mu dheireadh: chuir sinn an monitor ann an dòigh nach robh ach cuairteachadh an CPU Fan ri fhaicinn.
Aig toiseach na ceiste bha iad airson Grafan fhàgail ruigsinneach bho làrach-lìn Falcon. Ach bha metrics springboot ann cuideachd bhon aithisg tagraidh backend, nach robh ùine againn a ghlanadh, agus mar sin chuir sinn romhainn casg a chuir air ruigsinneachd air. Agus gu ceart mar sin - eadhon aig toiseach a ’cheist, bha cuid de chluicheadairean a’ tomhas gun deach an tagradh a sgrìobhadh ann am frèam springboot agus eadhon air ainmean cuid de sheirbheisean a chladhach.
Aoigheachd agus bus dàta
Inneal airson fiosrachadh a ghluasad bhon deireadh-sheachdain chun na làraich, am frithealaiche VPS air an robh RabbitMQ a’ ruith.
Chaidh an backend agus am bus dàta a chumail air ar VPS. Bha a chumhachd an coimeas ris a 'choimpiutair a chunnaic thu air an sgrion: VPS 2-core le dà gigabytes de RAM. Chaidh cosgais a chuir air a’ phrìs airson goireasan, leis gun deach an luchd as àirde a dhealbhadh airson dìreach beagan làithean - is e seo a bhios ar luchd-dèiligidh a’ dèanamh a tha an dùil VPS a luchdachadh airson ùine ghoirid. An uairsin thionndaidh e a-mach gu robh an luchd nas àirde na bha sinn an dùil, agus bhiodh cosgais stèidhichte nas prothaidiche. Ma nì thu ceist, tagh na targaidean loidhne turbo.
Gus am frithealaiche a dhìon bho DDoSa, chleachd sinn Cloudflare.
Is fhiach a ràdh gun do sheas an VPS an-aghaidh a h-uile càil le urram.
Fhuair Arduino, a bha an urra ri smachd a chumail air na h-ath-chraolaidhean, òrdughan bhon eadar-theangair agus rinn e an obair fhèin
Is e seo barrachd cuspair an ath artaigil mun phàirt bathar-cruaidh den phròiseact: chuir an deireadh-sheachdain dìreach iarrtasan airson sealaidheachd sònraichte a chuir air. Tha e mar sin a thachair gu robh an deireadh-sheachdain eòlach air cha mhòr a h-uile buidheann agus bha coltas ann gun robh na h-iarrtasan aige mar “tionndadh air an eintiteas seo." Rinn sinn seo airson deuchainn tràth air an làrach (cha robh sinn fhathast air na Arduino agus na h-ath-chraolaidhean gu lèir a chruinneachadh), aig a’ cheann thall dh’ fhàg sinn a h-uile càil mar sin.
Ceann aghaidh
Chruthaich sinn an làrach gu sgiobalta air tilde, thug e aon latha obrach agus shàbhail sinn 30 mìle air a’ bhuidseit againn.
An toiseach, smaoinich sinn air dìreach às-mhalairt a dhèanamh air an làrach agus cuir ris an loidsig a bha sinn a dhìth, ach ruith sinn a-steach a thaobh cleachdadh a chuir casg oirnn seo a dhèanamh.
Cha robh sinn deiseil airson an cead a bhriseadh, agus mar sin bha dà roghainn ann: a h-uile càil a chuir an gnìomh sinn fhìn no fios a chuir gu Tilda gu dìreach, bruidhinn mun phròiseact agus cead iarraidh an còd atharrachadh.
Thagh sinn an dàrna roghainn agus chan e a-mhàin gun do choinnich iad rinn letheach slighe, ach thug iad eadhon bliadhna de chunntas gnìomhachais an-asgaidh dhuinn, agus tha sinn air leth taingeil dhaibh. Bha e gu math neònach dealbhadh làrach-lìn Sokol a shealltainn dhaibh.
Mar thoradh air an sin, cheangail sinn loidsig js ris an aghaidh airson iarrtasan a chuir gu innealan bunaiteach, agus dh’ atharraich sinn beagan stoidhlichean nam putanan airson eileamaidean geama a thionndadh air agus dheth.
Dealbhadh làraich
Eachdraidh nan rannsachaidhean, is fhiach caibideil air leth.
Bha sinn airson chan e a-mhàin làrach seann-fhasanta a chruthachadh, ach làrach gu tur tàmailteach a bhriseas a h-uile riaghailt dealbhaidh bunaiteach. Aig an aon àm, bha e cudromach creideas a chumail suas: dh'fheumadh e gun a bhith a 'briseadh sgeulachd ENT, a' sealltainn cho cugallach 'sa bha an t-ùghdar, agus dh'fheumadh cluicheadairean a bhith a' creidsinn gum faodadh làrach mar sin a bhith ann agus eadhon luchd-dèiligidh a thoirt a-steach. Agus thug e leis! Fhad ‘s a bha an geama a’ dol air adhart, chaidh fios a chuir thugainn dà uair gus làraich-lìn a chruthachadh.
An toiseach rinn mi an dealbhadh mi-fhìn, a’ feuchainn ri barrachd gifs agus eileamaidean gleansach a thoirt a-steach. Ach bha an duine dealbhaidh agam airson 10 bliadhna a’ coimhead thairis air a ghualainn agus chuir e às dha mar “ro mhath”. Gus riaghailtean dealbhaidh a bhriseadh, feumaidh fios a bhith agad orra.
Tha grunn choimeasgaidhean dath ann a tha ag adhbhrachadh faireachdainn maireannach de mhì-mhisneachd: uaine is dearg den aon bheairteas, liath is pinc, gorm agus donn. Aig a 'cheann thall, shocraich sinn air measgachadh de dhearg is uaine mar na dathan bunaiteach, chuir sinn gifs le cat agus thagh sinn dealbhan 3-4 de Sokolov fhèin bho dhealbh stoc. Cha robh agam ach beagan riatanasan: fear meadhan-aois, le deise neo-fhreagarrach air meud càraid ro mhòr agus ann an suidheachadh “togail dhealbhan stiùidio proifeasanta”. Airson an deuchainn, sheall iad dha caraidean e agus dh’fhaighnich iad “ciamar as toil leat e?”
Rè a 'phròiseas leasachaidh dealbhaidh, bha aig an duine agam ri dhol a laighe gach leth uair a thìde; thòisich an heileacoptair air itealaich. Dh’ fheuch Pasha ri consol an leasaiche fhosgladh don mhòr-chuid den sgrion fhad ‘s a chuir e crìoch air crìoch a chuir air an aghaidh - gus a shùilean a dhìon.
Innealan fìor
Chaidh an luchd-leantainn agus na solais a chuir suas tro shealaidhean stàite cruaidh gus nach tionndaidh iad air adhart aig làn chumhachd sa bhad - gus am biodh an cumhachd ag àrdachadh aig an aon àm ri sgrùdadh.
Ach bruidhnidh sinn mu dheidhinn seo san ath phost, mu phàirt bathar-cruaidh a’ gheama agus fìor thogail na làraich.
Cum sùil air!
Artaigilean eile mun cheist gus am frithealaiche a sgrios