Nou menm pwogramè yo souvan jwenn tèt nou kenbe nan deba - C++ vs Rust, pwogramasyon wo nivo vs ba nivo. Men, defi reyèl la se pa sèlman élaboration sistèm elegant; li pwoteje yo nan mond rezo jodi a, kote move kòd toujou kache. Kèlkeswa jan kòd ou a san defo, inyore menas potansyèl se yon envitasyon pou yon dezas.
Li pa ase pou patch twou sekirite oswa lage pwochen aktyalizasyon a. Vrè batay la se nan monte yon repons efikas lè - wi, lè, pa si - sistèm ou a vyole. Sa vle di mete ann aplikasyon deteksyon entrizyon aktif, otomatize mekanis defans, epi pafwa fè men ou sal ak pwogram ba nivo pou atake menas yo nan sous yo.
Chan batay la pwolonje pi lwen pase lojik wo nivo nan nwayo a nan sistèm nan, kote sèlman devlopè ki pi kalifye yo ka efektivman goumen tounen. Si ou pa prepare pou kontrekare atak nan nivo sa a, tout karakteristik sekirite yo nan mond lan pa pral sove ou. Nan cybersecurity, defans san abilite pou reponn se pa ase.
Rootkits yo fèt pou opere andedan sistèm operasyon an. Yo manipile pwosesis sistèm, kache aktivite move, ak ajiste pwogram lojisyèl. Men, yo choute nan apre OS yo bòt moute.
Bootkits frape ou menm pi rèd. Yo atake sistèm lan anvan OS la ap menm kouri. Yo enfekte Master Boot Record (MBR) oswa firmwèr UEFI/BIOS, pran kontwòl anvan OS ou ka fè yon bagay sou li.
Koulye a, ou ap pwobableman panse: " Ki sa ki nan kontra a si OS la kode nan Rust olye pou yo swadizan ensekirite C/C++/Asanble a? ”
Isit la se kote bagay yo vin enteresan. Se pou nou reyèl — nan mond teknoloji jodi a, nou ap fè fas ak sistèm ibrid, rezo mare nan rezo konplèks kote pèfòmans ak kontwòl egzak yo absoliman esansyèl. Panse sistèm SCADA , kontwòl HVAC , sistèm an tan reyèl , edge computing , aparèy entegre - ou jwenn lide a. Nan anviwònman sa yo, kèlkeswa jan "san danje" yon lang pretann yo ye, w ap toujou konte anpil sou C/C++/Asanble pou kontwòl ak pèfòmans amann sa a.
E menm si sistèm nan bati ak Rust, se pou nou onèt - anpil nan li toujou sèvi ak gwo moso nan kòd Rust unsafe
pou fè fas ak kou boutèy pèfòmans, pwoblèm latansi, kontrent memwa, ak kominike dirèkteman ak pyès ki nan konpitè. Nan fen jounen an, lè pèfòmans se wa, ou fini nan menm bato a. Blòk unsafe
sa yo nan Rust? Yo louvri menm frajilite ou ta genyen nan C/C++/Assembly.
Reyalite a se sa a: lè ou bezwen kontwòl amann nan nivo pyès ki nan konpitè, w ap mache menm kòd la, si OS ou a kode nan Rust oswa yon lòt bagay. Se konsa, pandan ke Rust ta ka ofri kèk guardrails, operasyon sa yo unsafe
nan nivo ki ba yo toujou vilnerab. Rootkits ak bootkits pa pran swen sou preferans lang ou yo-yo pral jwenn wout yo nan si gen yon krak.
Predatè dijital sa yo pa jis enfekte yon sistèm - yo posede li. Ak isit la nan bagay prensipal la: pi fò nan yo yo bati lè l sèvi avèk klasik yo - C, C++, ak Asanble. Se sa ki dwat, menm lang yo alimante aplikasyon wo-pèfòmans ou yo tou dèyè kèk nan pi move routki yo janm kreye.
Reflechi sou evolisyon pou yon segond . Se tankou vwayaj la soti nan ti dinozò kanivò sa yo nan peryòd Triasik la nan monstr yo tewopòd imans nan Kretase a, tankou T-Rex la. Menm jan dino sa yo byen bonè te evolye nan predatè apex, routki yo te transfòme soti nan kòmansman relativman "bèl" nan kolosal tèt chaje jodi a nan kòd.
Pran Hacker Defender , pou egzanp - ti cyber-reptile sa a te jis liy 3K nan kòd, eksplwate twou vid ki genyen OS debaz yo. Men, tankou nenpòt predatè bon, li evolye. Rotki jodi a se monstr, divize an modil ak dè milye de liy kòd chak, vize non sèlman sistèm opere, men tou frajilite nivo pyès ki nan konpitè. Se yon kous zam, ak chak nouvo routki pouse limit sa ki posib.
Se konsa, nan atik sa a, nou ap plonje nan de istwa . Premye a? Vèsyon ofisyèl la ou pral jwenn nan resous teknoloji tankou Rootkits ak Bootkits pa Alexander Matrosov, Eugene Rodionov, ak Sergey Bratus. Sa a se bèl anpil gid pou tout detay yo nan evolisyon routki. Pou fè bagay sa yo fasil pou ou, mwen te mete ansanm yon kladogram anba a ki rezime devlopman nan routki sa yo - chak branch ki reprezante yon nouvo kwasans nan konplike malveyan.
Men, gen yon lòt bò nan istwa sa a - opinyon an soti nan yon moun ki pa jis ekri routki men viv ak respire yo. Rankontre karaktè prensipal nou an: yon pirate ki wè routki kòm ekstansyon nan tèt li - yon senfoni nan kòd metikuleu ki fèt deranje ak domine. Li pa jis nenpòt pirate; li se yon lejand, tèt-niveau mastermind la ke yo rekonèt sèlman kòm zandolit-la-Sòsye.
Zandolit-Sòsye a pale nan rèv: chèf mwen yo
“Ah, ou la toujou. Mwen te mande konbyen tan sa t ap pran ou, Benicio, reyalize ou t ap jwe dwat nan men mwen. Pandan ke ou te tèlman renmen ti Rust ou a ak filè sekirite li yo , mwen te travay sou yon bagay ki pi plis ... ekskiz."
"Exquisite. Sa a se yon mo ou pwobableman pa asosye ak malveyan, men sa a se paske ou te twò vlope nan pwoteje ti sistèm ou yo apresye atizay la dèyè atak la. Wi, atizay. Ou panse mwen jis yon pirate? Non, non - mwen se yon achitèk, yon kreyatè. Chak routki mwen te janm etidye se te yon bwòs nan gwo pòtrè m ap pentire sou twal dezòd la.”
Lizard-The-Wizard kontinye:
"Ou konnen, menm gwo yo - Da Vinci, Van Gogh, Bach - yo tout te aprann nan men mèt yo anvan yo. Mwen menm? Mwen te gen Hacker Defender ak Rustock . Hacker Defender se te Houdini mwen, ki montre m 'ki jan yo glise kòd nan sistèm, fè dosye ak pwosesis disparèt tankou maji. Ak Rustock? Sa a te moman Picasso mwen an - polimòfis nan pi rafine li yo, toujou ap chanje, evolye, chanje fòm tankou yon penti ki morphing chak fwa ou gade nan li."
"Men sa yo? Yo te jis etap etap nan sa mwen te konnen mwen te kapab kreye. Lè sa a, te vini Alureon . Li pa t 'jis chita nan sistèm nan - li te fè mete pòtre nan nwayo a, frape Master Boot Record (MBR). Sa a se premye sektè nan kondwi difisil ou a, pati ki di OS ou ki jan yo menm kòmanse demaraj. Ou konnen ki jan de kontwòl sa a santi tankou, Benicio? Divin. Se tankou tande dezyèm konsè Rachmaninoff a pou premye fwa. Pi bèlte, men grave nan kòd."
“E toujou, mwen pa t satisfè. ZeroAccess se te senfoni mwen an. Li bati yon lame, vire machin yo nan yon botne kanmarad-a-kanmarad, chak sistèm enfekte jwe wòl li nan yon chèf chaotic. Li pa t jis sou yon sèl enfeksyon ankò; li te sou fè dezòd atravè yon rezo. Se la ou tonbe kout, Benicio. Ou bloke w ap kouri dèyè amoni Rust, alòske vrè atizay la chita nan dissonans la - dezòd ki fè yon chèf.
"Epi finalman te vini LoJax ak MoonBounce . Sa yo pa t 'sèlman routki - yo te evolisyon, pouse limit yo nan sa ki malveyan ta ka. LoJax, entegre byen fon nan UEFI, sistèm kontwole nan yon nivo menm Rust ou renmen anpil pa t 'kapab manyen. MoonBounce te pran li pi lwen, plonje nan memwa flash SPI, kache kote pa gen okenn antivirus oswa sistèm siye pa janm ka rive. Li pa t jis kache nan sistèm nan - li te vin yon pati nan pyès ki nan konpitè, pèmanan ak entouch, tankou yon fresko Michelangelo grave nan Silisyòm.
"Se lè sa a mwen te konprann verite reyèl la: kontwòl pa nan CPU a oswa OS la. Vrè kontwòl manti nan pyès ki nan konpitè. Epi se la mwen te kreye chèf mwen yo.”
" Antre zandolit-ble ak zandolit-wouj - Chapel Sistine mwen nan routki. Èske w konnen ki jan yo te fèt, Benicio? M ap di w, paske ou bezwen konprann jeni ki te depase w la.”
“Lizard-Blue te enjenyè avèk ou nan tèt ou. Ou menm, tèlman fyè de rouye ou a ak garanti sekirite li yo. Lizard-Blue danse nan blòk danjere ou yo, jete multithreading ou nan dezòd, deranje sistèm I/O ou yo - tout bagay sa yo distrè ou. Se te yon konpayon moun fou: senp ak elegant. Pandan w t ap kouri dèyè zandolit-ble, vre chèf mwen an, zandolit-wouj, te deja pran rasin."
“ Men, Lizard-Red pa t pran swen CPU ou oswa lojisyèl ou . Non, li te ale tou dwat pou memwa flash SPI a, glise nan kontwolè DMA ou yo, epi tou dousman reekri sistèm ou a soti nan andedan an deyò. Tankou yon senfoni kache, li te jwe sou firmwèr ki pa ka wè, reekri, irézistibl.
"Sa a se kontwòl reyèl, Benicio. Pandan ke ou te okipe patch lojisyèl, mwen metrize pyès ki nan konpitè. Di m, poukisa ou abandone C++ pou Rust? Rust... tèlman pwomèt, tèlman an sekirite. Men sonje, Benicio, vre pouvwa pa soti nan sekirite. Li soti nan kontwòl. Epi kounyeya, ou pap janm bliye sa."
Etap la mete. Yon konfwontasyon ant yon mèt C++ ki pi wo ak yon lame renegat C++ ki te tounen vin jwenn Rust se sou limen nan LuxCity - oswa pi mal, plonje li nan fènwa. Enjeux yo? Kontwòl konplè - pa sèlman nan kòd, men nan menm enfrastrikti ki kenbe metwopòl sa a vivan.
Vil la, buz ak enèji, se sou yo vin chan batay la. Benicio, fòtifye pa defans Rust li yo, fè fas a yon defi li pa janm wè vini - yon defi fabrike pa mèt nan C++ li menm, Lizard-the-Wizard, detèmine pou pote Rustaceans renegade sa yo tounen nan pliye a. De fòs, de filozofi, sou yon kou kolizyon . Men, sa a se pa sèlman sou langaj pwogramasyon - li se yon batay pou kontwòl nan sistèm, pouvwa, e petèt, jis petèt, avni nan pwogramasyon, modi!
Lè Benicio rive, li pa te sèlman ame ak laptop li; o non, li te pote yon bagay ki pi presye: kwayans inebranlab li nan Rust - lang li te genyen fòseman defann pou senk ane ki sot pase yo. Se ak Rust ke li menm ak ekip li a nan enjenyè Rustacean te devlope nwayo a nan LuxCity SmartGrid la. Rust se te epe li, plak pwotèj li a, nouvo jwèt briyan ki te pwomèt pou l sove l anba laterè C++ — tanpon debòde, kondisyon ras yo, tout tan tout tan redoutée exploiter Use-After-Free. Rust te repons pou tout bagay, pa vre? Tan kap vini an, oswa konsa li te kwè. Apre yo tout, kadriyaj LuxCity a te bati sou fondasyon sa a swadizan kase.
Se te Janus, aka Zandolit-Sòsye a - ansyen zanmi Benicio a tounen advèsè. Yon fwa, yo ta ekri kòd ansanm, eksplore posiblite yo enfini nan C++. Men, Janus te pase nan betiz filè sekirite rijid Rust yo ak abstraksyon. Kounye a, Janus te sèvi ak pouvwa anvan tout koreksyon C++, manipile enfrastrikti vil la tankou yon mèt mannken, vize sèvo yo ak kouraj nan pi gwo SmartGrid la - kode pa Benicio nan Rust.
Byen pi ba pase LuxCity, nan ti limyè etajè sèvè k ap chante ak lavi, Janus te gade travay li dewoulman. Dwèt li te deplase rapidman sou klavye a, je byen file ak konsantre pandan li te swiv dezòd la debouche sou ekran yo k ap flickering. De nan pi rafine kreyasyon l 'yo te nan jwèt: zandolit-wouj ak zandolit-ble , chak atake soti nan diferan fwon ankò k ap travay nan amoni pafè.
Zandolit-Wouj te deja byen fon anndan nwayo a nan kadriyaj entelijan vil la - anvayisè an silans pafè. Sa a pa te kèk malveyan òdinè frape pwen fèb lojisyèl nòmal yo. Non, Lizard-Red se te yon routki firmwèr, ki vize fondasyon ki pi pwofon yo: contrôleur DMA, memwa flash SPI, ak moun kap okipe entèwonp . Li glise nan sistèm nan san li pa remake, li glise anba mekanis sekirite Rust yo metikuleuman fabrike. Poukisa deranje atak CPU oswa tanpon memwa? Zandolit-Wouj kontoune yo tout ansanm, entegre tèt li nan firmwèr la kote garanti Rust yo pa t gen okenn enfliyans.
Janus te konnen limit yo nan sipoze sekirite Rust a tankou do a nan men li - li te pase plizyè ane ap diseke li. Rust, pou tout klere li yo, te sispann kout lè li te rive nan kouch pyès ki nan konpitè . Se la kote zandolit-wouj te pwospere. Sa a pa t jis yon atak sou kòd; li te yon kontwòl ostil nan pyès ki nan konpitè tèt li.
Pandan se tan, Lizard-Blue te fè ravaj nan bò lojisyèl wo nivo . Li pa t 'atake dirèkteman men li te aji kòm dekou pafè a, eksplwate blòk danjere Rust a tankou yon maestro ki mennen yon senfoni nan dezòd. Li te vize sèvis multithreading yo, tòde operasyon I/O yo, ak fè ravaj pa fòse kondisyon ras ke Rust te dekole avèk prekosyon pou rezon pèfòmans. Zòn ensekirite sa yo te tankou pòt ki te rete bouche nan defans Benicio yo byen bati, e Janus - ki te ansyen mèt C++ - te konnen egzakteman ki jan yo louvri yo. Modèl sekirite Rust la, bagay ki te bay Benicio konfyans, te vin tounen yon pèlen lè Lizard-Blue te tounen garanti sa yo nan feblès.
Rust pa t 'kapab kenbe moute. Bagay sa a Benicio te renmen yon fwa sou Rust - rezo sekirite rijid li yo - te kounye a trangle kapasite li pou reprann kontwòl. Chak pwoteksyon te vin tounen yon kaj, limite mouvman l 'yo, pyèj li nan yon bouk kontinuèl nan plak defans ki te tonbe kout kont likid la, atak inplakabl.
Menas reyèl la se pa zandolit-ble t ap danse atravè monitè yo. Byen lwen anba sifas la, byen fon nan venn yo nan kadriyaj entelijan LuxCity a, Lizard-Red te deja sezi kontwòl. Li pa t ap jwe nan kouch siperyè defans Rust ankò. Li te fouye byen fon, lè l sèvi avèk enplantasyon firmwèr pou enfiltre sistèm kritik tankou SCADA ak sistèm HVAC ki te kontwole enfrastrikti vil la jiska nwayo li yo. Sa yo te sistèm yo kote kenkayri te rankontre lojisyèl - kote pi fò nan antretyen yo ak aparèy kontwòl final yo te kouri sou firmwèr koutim, anpil nan li toujou patrone pa eritaj C ak Asanble.
Kontwolè DMA yo ak memwa flash SPI yo te konpwomèt. Zandolit-Wouj te kontourne CPU a antyèman , entegre tèt li nan pyès ki nan konpitè anba OS la. Li te vize san enfrastrikti a — sistèm SCADA ki te kontwole operasyon kritik yo ak sistèm HVAC ki te asire ke pyès ki nan konpitè vil la fonksyone san pwoblèm. Enplantasyon sa yo pa t jis kòd senp - yo te pèmanan, yo te plante operasyon nan firmwèr la, yo te reekri règ yo nan sistèm nan soti anndan an deyò.
Kòm vil la te plonje pi lwen nan dezòd ak SmartGrid la teeter sou bò gwo efondreman, yon notifikasyon te bat je sou ekran Benicio a. Li te soti nan Janus . Kè Benicio sote yon bat - e kounye a? Men, olye pou yo plis fè ravaj, mesaj la te kenbe yon liy sovtaj. Janus pa t la pou detwi LuxCity nèt - poko. Li te rive jwenn yon bagay inatandi: yon lis. Yon dekonpozisyon detaye sou chak sèvis pèvèti, chak pwosesis konpwomèt, ak - sa ki pi enpòtan - kòd yo swiv yo.
Janus te limen fusil la, men kounye a li te remèt Benicio kòd defusal yo . Kit se te yon zak redanmsyon oswa yon mouvman ego-kondwi pou pwouve dominasyon li nan final la, li pa t gen pwoblèm, Benicio te panse. Li te kounye a kode pou lavi a nan vil la, ak fantom yo nan C++ plane sou chak desizyon.
Chak apèl fonksyon, chak blòk nan asanble entegre, se te yon dans konplike sou kwen nan dezas. Men, kòd ensekirite a te vlope nan C++ modèn, lè l sèvi avèk konstwi ki okoumansman de monad - yon bagay Janus te konvenk Benicio pou l adopte, paske Benicio pa abitye ak Haskell . Kòm minit yo te pase, dezòd la sou monitè yo te kòmanse ralanti.
"Ou wè li kounye a, pa vre?" li te mande, ak presizyon kalm nan yon maestro ki te orchestre tout pèfòmans lan. " Sa a pa janm te sou lang yo, Benicio. Li se sou metrize sistèm nan - chak kouch, chak fant - soti nan lojisyèl an nan pyès ki nan konpitè, soti nan lojik la nan matematik nan kè a nan kadriyaj pwogramasyon nou an. ”
"Mwen pa janm te vle detwi LuxCity," Janus kontinye, vwa li prèske nostaljik. " Mwen te vle montre w ke konte sou filè sekirite tankou Rust sèlman fè ou previzib. Ou te wè li tèt ou - Rust se mare pa pwòp règ li yo. C++… C++ pèmèt ou kreye règ yo. Sèl kontrent mwen respekte yo se sa yo mete ak gras ak distenksyon pa aljèb abstrè, teyori kategori, ak lantiy teyori graf dominan yo .
" Men lis final la nan sèvis konpwomèt ," Janus te di, lonje Benicio dènye, moso desizif nan devinèt la. Li te tan yo fini sa a, men kounye a yo te travay ansanm - mèt ak elèv, jis tankou ansyen tan.
Lè a nan chanm kontwòl la deplase. Alice ak Bob, byenke tansyon, te gade sistèm nan tou dousman te kòmanse estabilize. Pouvwa te flickered tounen nan katye yo nan vil la. SmartGrid la, kè a bat LuxCity, te finalman goumen tounen.
Benicio te aprann fason difisil ke okenn lang, kèlkeswa jan 'san danje', pa t 'kapab garanti kontwòl an fas a yon defi vre. Nan fen a, li pa t 'sou chwazi Rust oswa C++; li te sou metrize tou de, konprann ke batay la reyèl se pa nan liy yo nan kòd, men nan lespri a ak syans nan pwogramè a manyen yo .
Ou vle jwenn plis atik ak nouvèl ki gen rapò ak sijè sa a?