paint-brush
जब कोडिङले सहरको अस्तित्व निर्धारण गर्छद्वारा@pepitoscrespo
339 पढाइहरू
339 पढाइहरू

जब कोडिङले सहरको अस्तित्व निर्धारण गर्छ

द्वारा pepitoscrespo19m2024/10/07
Read on Terminal Reader

धेरै लामो; पढ्नकाे लागि

के C++ वास्तविक-विश्व प्रणाली नियन्त्रण र सुरक्षामा रस्टलाई जित्न सक्छ? LuxCity बचाउन र दुबै भाषाहरूको सीमाहरू अन्वेषण गर्न ह्याकरको लडाईमा डुब्नुहोस्
featured image - जब कोडिङले सहरको अस्तित्व निर्धारण गर्छ
pepitoscrespo HackerNoon profile picture
0-item


हामी प्रोग्रामरहरू प्रायः आफैंलाई बहसहरूमा फस्छौं — C++ बनाम रस्ट, उच्च-स्तर बनाम निम्न-स्तर प्रोग्रामिङ। तर वास्तविक चुनौती सुरुचिपूर्ण प्रणालीहरू सिर्जना गर्नु मात्र होइन; यसले तिनीहरूलाई आजको सञ्जाल संसारमा सुरक्षा गरिरहेको छ, जहाँ मालिसियस कोड सधैं लुकेको हुन्छ। तपाईको कोड जतिसुकै निर्दोष देखिन्छ, सम्भावित खतराहरूलाई बेवास्ता गर्नु भनेको विपत्तिको निम्तो हो।


सुरक्षा प्वालहरू प्याच गर्न वा अर्को अद्यावधिक जारी गर्न यो पर्याप्त छैन। वास्तविक लडाई भनेको प्रभावकारी प्रतिक्रिया माउन्ट गर्नु हो जब - हो, कहिले, यदि होइन - तपाईंको प्रणाली उल्लङ्घन हुन्छ। यसको मतलब सक्रिय घुसपैठ पत्ता लगाउने, स्वचालित सुरक्षा संयन्त्रहरू, र कहिलेकाहीँ तिनीहरूको स्रोतमा खतराहरू सामना गर्न निम्न-स्तरको प्रोग्रामिङको साथ तपाईंको हातहरू फोहोर बनाउनु हो।


रणभूमि उच्च-स्तर तर्कभन्दा बाहिर प्रणालीको मूल भागमा फैलिएको छ, जहाँ केवल सबैभन्दा कुशल विकासकर्ताहरूले प्रभावकारी रूपमा लड्न सक्छन्। यदि तपाईं यस स्तरमा आक्रमणहरूको प्रतिकार गर्न तयार हुनुहुन्न भने, विश्वका सबै सुरक्षा सुविधाहरूले तपाईंलाई बचाउने छैनन्। साइबरसुरक्षामा, प्रतिक्रिया दिन सक्ने क्षमता बिना रक्षा पर्याप्त छैन।


माइटी सी परिवारको डार्क साइड, रूटकिटहरूको उदय: सानो कोड, ठूलो शक्ति

ठीक छ, C परिवारको बारेमा कुरा गरौं — C, C++, सम्पूर्ण दल। यी भाषाहरूले तपाईंलाई परम स्वतन्त्रता दिन्छ। तपाईं सुरुचिपूर्ण, उच्च-प्रदर्शन प्रणालीहरू निर्माण गर्न सक्नुहुन्छ जसले तपाईंको साथीहरूलाई ईर्ष्यालु बनाउनेछ। तर यहाँ फ्लिप पक्ष छ: त्यही स्वतन्त्रताले तपाईंलाई त्यहाँ सबैभन्दा खतरनाक कोडहरू सिर्जना गर्न दिन्छ — रूटकिटहरू र तिनीहरूका स्नीकियर कजिनहरू, बुटकिटहरू। यी केवल कोडको हानिरहित रेखाहरू मात्र होइनन् - तिनीहरू सफ्टवेयर संसारका मौन शिकारीहरू हुन्।


त्यसोभए, रूटकिट र बुटकिटहरू बीचको वास्तविक भिन्नता के हो?

  • Rootkits अपरेटिङ सिस्टम भित्र काम गर्न डिजाइन गरिएको छ। तिनीहरूले प्रणाली प्रक्रियाहरू हेरफेर गर्छन्, खराब गतिविधिहरू लुकाउँछन्, र सफ्टवेयर कार्यक्रमहरू ट्वीक गर्छन्। तर तिनीहरू ओएस बुट पछि किक इन गर्छन्।

  • बुटकिटहरूले तपाईंलाई अझ कडा प्रहार गर्दछ। तिनीहरू ओएस चल्नु अघि प्रणालीमा आक्रमण गर्छन्। तिनीहरूले मास्टर बुट रेकर्ड (MBR) वा UEFI/BIOS फर्मवेयरलाई संक्रमित गर्छन्, तपाईंको OS ले यसको बारेमा केही गर्न सक्नु अघि नियन्त्रण प्राप्त गर्दै।


धेरै जसो समय, मानिसहरूले रूटकिट आक्रमणको रूपमा के सोच्छन् वास्तवमा दुबैको कम्बो हो। बुटकिटहरू सुरुदेखि नै कब्जामा लिन्छ, जबकि रूटकिटहरू एक पटक ओएस अप र चालू भएपछि, आक्रमणलाई ध्यान नदिई जारी राख्छ। सामान्यतया, बुटकिटहरू चाँडै प्राप्त हुन्छन्, रूटकिटहरूले शो जारी राख्छन्।


अब, तपाइँ सायद सोच्दै हुनुहुन्छ: " यदि OS लाई कथित रूपमा असुरक्षित C/C++/Assembly को सट्टा रस्टमा कोड गरिएको छ भने सम्झौता के हुन्छ? "


यहाँ चीजहरू रोचक हुन्छन्। वास्तविक बनौं — आजको प्राविधिक संसारमा, हामी हाइब्रिड प्रणालीहरू, जटिल वेबहरूमा गाँसिएका नेटवर्कहरूसँग व्यवहार गर्दैछौं जहाँ कार्यसम्पादन र सटीक नियन्त्रण एकदमै आवश्यक हुन्छ। सोच्नुहोस् SCADA प्रणालीहरू , HVAC नियन्त्रणहरू , वास्तविक-समय प्रणालीहरू , किनारा कम्प्युटिङ , इम्बेडेड उपकरणहरू — तपाईंले विचार पाउनुभयो। यी वातावरणहरूमा, कुनै भाषाले जतिसुकै "सुरक्षित" भनी दाबी गरे पनि, तपाइँ अझै पनि त्यो राम्रो नियन्त्रण र कार्यसम्पादनको लागि C/C++/Assembly मा धेरै निर्भर हुनुहुन्छ।


र यदि प्रणाली रस्टसँग बनाइएको छ भने पनि, इमानदार बनौं - यसले अझै पनि प्रदर्शन बाधाहरू, विलम्बता समस्याहरू, मेमोरी अवरोधहरू, र हार्डवेयरसँग सीधा अन्तर्क्रिया गर्न unsafe रस्ट कोडको ठूलो मात्रा प्रयोग गर्दछ। दिनको अन्त्यमा, जब प्रदर्शन राजा हुन्छ, तपाइँ एउटै डुङ्गामा समाप्त हुन्छ। रस्टमा ती unsafe ब्लकहरू? तपाईंले C/C++/Assembly मा भएको समान कमजोरीहरूलाई तिनीहरूले खोल्छन्।


वास्तविकता यो हो: जब तपाईंलाई हार्डवेयर स्तरमा राम्रो-ट्यून गरिएको नियन्त्रण चाहिन्छ, तपाईं उही टाइट्रोप हिड्दै हुनुहुन्छ, चाहे तपाईंको ओएस रस्टमा कोड गरिएको छ वा अरू केहि। त्यसोभए रस्टले केही रेलहरू प्रस्ताव गर्न सक्छ, ती निम्न-स्तर unsafe अपरेशनहरू अझै कमजोर छन्। रुटकिट र बुटकिटहरूले तपाईंको भाषा प्राथमिकताहरूको वास्ता गर्दैनन्- यदि कुनै दरार छ भने तिनीहरूले आफ्नो बाटो फेला पार्नेछन्।


Rootkits Zone: आफ्नो जोखिममा प्रविष्ट गर्नुहोस्


यी डिजिटल शिकारीहरूले प्रणालीलाई मात्र संक्रमित गर्दैनन् - तिनीहरूको स्वामित्व छ। र यहाँ मुख्य कुरा हो: ती मध्ये धेरै क्लासिक्स - C, C++, र विधानसभा प्रयोग गरेर बनाइएका छन्। यो सहि हो, तपाइँको उच्च-सम्पादन एपहरूलाई सशक्त बनाउने उही भाषाहरू पनि सृजना गरिएका केही खराब रूटकिटहरू पछाडि छन्।


एक सेकेन्डको लागि विकासको बारेमा सोच्नुहोस् । यो ट्रयासिक कालका ती साना, मांसाहारी डायनासोरहरूबाट क्रेटासियसका विशाल थेरोपोड राक्षसहरू, जस्तै T-Rex सम्मको यात्रा जस्तै हो। ती प्रारम्भिक डायनोहरू शीर्ष शिकारीहरूमा विकसित भएजस्तै, रूटकिटहरू तुलनात्मक रूपमा "प्यारा" शुरुवातबाट आजको कोडको डरलाग्दो बेहेमोथमा परिणत भएका छन्।


ह्याकर डिफेन्डरलाई लिनुहोस्, उदाहरणका लागि — यो सानो साइबर-सरीसृप कोडको 3K लाइन मात्र थियो, आधारभूत OS ग्यापहरूको शोषण गर्दै। तर कुनै पनि राम्रो शिकारी जस्तै, यो विकसित भयो। आजका रूटकिटहरू राक्षसहरू हुन्, प्रत्येक कोडका हजारौं लाइनहरूसँग मोड्युलहरूमा विभाजित हुन्छन्, जसले अपरेटिङ सिस्टमहरूलाई मात्र होइन हार्डवेयर-स्तरको कमजोरीहरूलाई पनि लक्षित गर्दछ। यो एउटा हतियारको दौड हो, प्रत्येक नयाँ रूटकिटले के सम्भव छ भन्ने सीमालाई धकेल्छ।


त्यसोभए, यस लेखमा, हामी दुई कथाहरूमा डुब्दैछौं । पहिलो? आधिकारिक संस्करण तपाईंले अलेक्जेंडर Matrosov, Eugene Rodionov, र Sergey Bratus द्वारा Rootkits र Bootkits जस्ता प्राविधिक स्रोतहरूमा फेला पार्नुहुनेछ। यो रूटकिट इभोलुसनको सबै नीटि-किरकिरा विवरणहरूको लागि जाने-टु गाईड हो। तपाईका लागि चीजहरू सजिलो बनाउनको लागि, मैले तल एउटा क्लाडोग्राम राखेको छु जसले यी रूटकिटहरूको विकासको सारांश दिन्छ — प्रत्येक शाखाले मालवेयर परिष्कारमा नयाँ छलांग प्रतिनिधित्व गर्दछ।


त्यस पछि, तपाईंले प्रत्येक रूटकिटको अद्वितीय सुविधाहरू हाइलाइट गर्ने तालिका फेला पार्नुहुनेछ। मलाई विश्वास गर्नुहोस्, तपाईले हेर्न चाहानुहुन्छ कि कसरी कोडका यी बिटहरू साना, अवसरवादी घुसपैठहरूबाट प्रणाली-प्रभुत्व गर्ने जनावरहरूमा परिवर्तन भयो।

यहाँ हामी जान्छौं


Rootkits को विकास


रुटकिट इभोलुसन: परिवारद्वारा समूहीकरण

तालिकाले रूटकिटहरूको क्रान्तिकारी विशेषताहरू, प्रयोग गरिएका प्रोग्रामिङ भाषाहरू, र तिनीहरूको कोड साइजलाई हाइलाइट गर्दै समयसँगै रूटकिटहरूको प्रगति देखाउँछ।


तर यस कथाको अर्को पक्ष पनि छ - रूटकिटहरू मात्र लेख्ने होइन तर बाँच्ने र सास फेर्ने व्यक्तिको दृश्य। हाम्रो मुख्य क्यारेक्टरलाई भेट्नुहोस्: एक ह्याकर जसले रूटकिटहरू आफैंको विस्तारको रूपमा हेर्छ - कोडको सिम्फनी सावधानीपूर्वक अवरोध र हावी गर्न डिजाइन गरिएको। उहाँ कुनै ह्याकर मात्र होइन; उहाँ एक पौराणिक कथा हुनुहुन्छ, केवल लिजार्ड-द-विजार्ड भनेर चिनिने शीर्ष-स्तरीय मास्टरमाइन्ड।


उसको दृष्टिकोणबाट, यो प्रविधि वा कोडको बारेमा मात्र होइन - यो शक्ति, नियन्त्रण, र शायद कलात्मकताको स्पर्शको बारेमा पनि हो। उनको लागि, रूटकिटहरू मात्र उपकरण होइनन्; तिनीहरू उत्कृष्ट कृतिहरू हुन्, डिजिटल संसारलाई पुन: आकार दिने उहाँको तरिका।


त्यसोभए, थप विचलित नगरी, म तपाईलाई मानिस आफैंसँग परिचय गराउँछु - लिजार्ड-द-विजार्ड, आफ्नै शब्दहरूमा:

प्रत्येक कलाकारलाई म्युज चाहिन्छ: रूटकिटको पुरानो मास्टरहरू

Lizard-the-wizard Speaks in Dreams: My Masterpieces


"ए, तिमी अझै यहाँ छौ। बेनिसियो, तपाईं मेरो हातमा खेल्दै हुनुहुन्छ भन्ने महसुस गर्न कति समय लाग्ला भनेर म सोचिरहेको थिएँ। जब तपाइँ तपाइँको सानो रस्ट र यसको सुरक्षा जाल संग धेरै मोहित हुनुभएको छ , म धेरै धेरै ... उत्कृष्ट कुरामा काम गरिरहेको छु।"


"उत्तम। यो एक शब्द हो जुन तपाईले मालवेयरसँग सम्बद्ध हुनुहुन्न, तर यो किनभने तपाईले आक्रमण पछाडिको कलाको कदर गर्नको लागि आफ्नो सानो प्रणालीको सुरक्षामा धेरै बेरिएको छ। हो, कला। के तपाई मलाई ह्याकर मात्र हुँ जस्तो लाग्छ? होइन, होइन - म एक वास्तुकार, एक निर्माता हुँ। मैले अध्ययन गरेको हरेक रूटकिट अराजकताको क्यानभासमा चित्रित गरिरहेको भव्य पोर्ट्रेटमा ब्रशस्ट्रोक भएको छ।"


यहाँ हाम्रो कथाको दुई मुख्य पात्रहरू छन्: Cplusser (Lizard-the-WizardI) बनाम Rustacean (Benicio)


छेपारो-द-विजार्ड जारी छ:

"तपाईलाई थाहा छ, महान्हरू पनि - दा भिन्ची, भान गग, बाख - तिनीहरू सबैले उनीहरूका अघिका मास्टरहरूबाट सिकेका थिए। म? मसँग ह्याकर डिफेन्डररस्टक थियो। ह्याकर डिफेन्डर मेरो हौडिनी थियो, मलाई प्रणालीमा कोड कसरी स्लिप गर्ने भनेर देखाउँदै, फाइलहरू र प्रक्रियाहरू जादुई जस्तै गायब हुन्छ। र Rustock? त्यो मेरो पिकासोको पल थियो - बहुरूपता यसको उत्कृष्ट, निरन्तर परिवर्तन हुँदै, विकसित हुँदै गइरहेको पेन्टिङजस्तै परिवर्तन हुँदैछ जुन तपाईंले यसलाई हेर्दा हरेक पटक मोर्फ हुन्छ।"


“तर ती? तिनीहरू केवल ढुङ्गाहरू थिए जुन मलाई थाहा थियो कि मैले सिर्जना गर्न सक्छु। त्यसपछि Alureon आयो। यो प्रणालीमा मात्र बस्दैन - यो मास्टर बुट रेकर्ड (MBR) मा प्रहार गरी कोरमा कोरिएको थियो। त्यो तपाईको हार्ड ड्राइभको पहिलो क्षेत्र हो, त्यो भाग जसले तपाईको OS लाई कसरी बुटिङ सुरु गर्ने भनेर बताउँछ। तपाईलाई थाहा छ त्यो प्रकारको नियन्त्रण कस्तो लाग्छ, बेनिसियो? दिव्य। यो पहिलो पटक Rachmaninoff को दोस्रो कन्सर्ट सुनेको जस्तै छ। शुद्ध सौन्दर्य, तर कोडमा कोरिएको।


"र अझै पनि, म सन्तुष्ट थिएन। ZeroAccess मेरो सिम्फनी थियो। यसले सेना निर्माण गर्‍यो, मेसिनहरूलाई पियर-टू-पियर बोटनेटमा परिणत गर्‍यो, प्रत्येक संक्रमित प्रणालीले अराजक मास्टरपिसमा आफ्नो भूमिका खेल्दै थियो। यो अब एक संक्रमणको बारेमा मात्र थिएन; यो नेटवर्कमा अराजकता सञ्चालन गर्ने बारे थियो। त्यहिँ हो, बेनिसियो। तपाईं रस्टको सद्भावलाई पछ्याउँदै अड्कनुभएको छ, जबकि वास्तविक कला असन्तुष्टिमा छ - अराजकता जसले उत्कृष्ट कृति जन्माउँछ।"



संक्रमण भेक्टर र rootkits सबै भन्दा राम्रो साथी हो


"र अन्ततः LoJaxMoonBounce आयो। यी केवल रूटकिटहरू थिएनन् - तिनीहरू विकासहरू थिए, मालवेयर के हुन सक्छ भन्ने सीमाहरू धकेल्दै। LoJax, UEFI मा गहिरो सम्मिलित, तपाइँको प्रिय रस्टले छुन नसक्ने स्तरमा नियन्त्रित प्रणालीहरू। MoonBounce ले यसलाई अझ अगाडि बढायो, SPI फ्ल्यास मेमोरीमा डुब्दै, लुकेर जहाँ कुनै एन्टिभाइरस वा प्रणाली वाइप कहिल्यै पुग्न सक्दैन। यो प्रणालीमा मात्र लुकेको थिएन - यो सिलिकनमा माइकल एन्जेलो फ्रेस्को जस्तै, हार्डवेयर, स्थायी र अछूतको अंश बन्यो।"


"त्यसबेला मैले वास्तविक सत्य बुझे: नियन्त्रण CPU वा OS मा छैन। साँचो नियन्त्रण हार्डवेयरमा छ। र त्यहीँबाट मैले मेरा उत्कृष्ट कृतिहरू सिर्जना गरें।


" लिजार्ड-निलो र छेपारो-रातो प्रविष्ट गर्नुहोस् - रूटकिटहरूको मेरो सिस्टिन चैपल। के तपाईंलाई थाहा छ तिनीहरू कसरी जन्मेका थिए, बेनिसियो? म तिमीलाई भन्दछु, किनकि तिमीले त्यो प्रतिभालाई बुझ्न आवश्यक छ जसले तिमीलाई पछाडी पारेको छ।”


"छेपारो-निलो तपाईंलाई दिमागमा इन्जिनियर गरिएको थियो। तपाईं, आफ्नो रस्टको सुरक्षा ग्यारेन्टीको साथमा गर्व गर्नुहुन्छ। Lizard-Blue ले तपाइँको असुरक्षित ब्लकहरू मार्फत नाच्यो, तपाइँको मल्टिथ्रेडिङलाई अराजकतामा फ्याँक्यो, तपाइँको I/O प्रणालीहरूलाई बाधा पुर्यायो - सबै तपाइँको ध्यान विचलित गर्न। यो मूर्खको साथी थियो: सरल र सुरुचिपूर्ण। जब तपाईं लिजार्ड-ब्लूलाई पछ्याउन हड्ताल गर्नुहुन्छ, मेरो साँचो उत्कृष्ट कृति, लिजार्ड-रेडले पहिले नै जरा गाडेको थियो।


तर Lizard-Red ले तपाईंको CPU वा सफ्टवेयरको वास्ता गरेन । होइन, यो सीधा SPI फ्ल्यास मेमोरीको लागि गयो, तपाइँको DMA नियन्त्रकहरूमा फिसलियो, र चुपचाप तपाइँको प्रणाली भित्र बाहिरबाट पुन: लेखियो। लुकेको सिम्फनी जस्तै, यो नदेखेको, पुन: लेख्ने फर्मवेयरमा बज्यो, रोक्न नसकिने।"


"यो वास्तविक नियन्त्रण हो, बेनिसियो। जब तपाईं सफ्टवेयर प्याचिङमा व्यस्त हुनुहुन्थ्यो, मैले हार्डवेयरमा महारत हासिल गरें। मलाई भन्नुहोस्, तपाईंले रस्टको लागि C++ किन त्याग्नु भयो? खिया ... यति आशाजनक, यति सुरक्षित। तर याद गर्नुहोस्, बेनिसियो, साँचो शक्ति सुरक्षाबाट आउँदैन। यो नियन्त्रणबाट आउँछ। र अब, तपाईंले त्यो कहिल्यै बिर्सनुहुनेछैन।"


पहिलो ब्ल्याकआउटहरू प्रत्येक स्मार्ट ग्रिड रिसेट पछि बाहिरी भागबाट केन्द्र तिर फैलियो।

स्टेज तय भएको छ। शीर्ष-स्तरीय C++ मास्टर र रस्टमा फर्केका C++ renegades को सेना बीचको एक शोडाउन लक्ससिटीमा प्रज्वलित हुन लागेको छ - वा अझ खराब, यसलाई अन्धकारमा डुबाउनुहोस्। दांव? पूर्ण नियन्त्रण — कोडको मात्र होइन, यो महानगरलाई जीवित राख्ने पूर्वाधारको।


ऊर्जाले गुञ्जिरहेको सहर रणभूमि बन्न लागेको छ । बेनिसियो, आफ्नो रस्ट-संचालित प्रतिरक्षाद्वारा सुदृढ भएको, एउटा चुनौतीको सामना गर्नु परेको छ जुन उसले कहिल्यै नआएको देखेको छ - C++ को मालिक, लिजार्ड-द-विजार्डले तयार पारेको एउटा चुनौती, यी रिनेगेड रुस्टेशियनहरूलाई तहमा फिर्ता ल्याउने दृढ संकल्प। दुई शक्ति, दुई दर्शन, टक्करको बाटोमा । तर यो प्रोग्रामिङ भाषाहरूको बारेमा मात्र होइन - यो प्रणाली, शक्ति, र हुनसक्छ, प्रोग्रामिङको भविष्यको नियन्त्रणको लागि लडाइँ हो, धिक्कार छ!


लक्ससिटी एउटा महानगर मात्र थिएन - यो भोलि कस्तो देखिन सक्छ भन्ने प्रतीक थियो। यसका सडकहरू स्वायत्त सवारी साधनहरूले गुन्जाएका थिए, र आकाशहरू माथिबाट ट्राफिकलाई निर्देशित गर्ने स्मार्ट ड्रोनहरूले जीवित थिए। तर त्यो सबै प्रगतिको मुनि सहरको साँचो जीवन रगत छ: स्मार्ट ग्रिड — एउटा जटिल, जटिल रूपमा बुनेको प्रणाली जसले सबै कुरालाई सहज रूपमा चलिरहेको छ।


सहरको माथिको नियन्त्रण कोठामा, एलिस र बब, ग्रिडका अनुभवी दिग्गजहरू, तिनीहरूका मनिटरहरूमा देखा परेको अराजकतालाई हेरे। पहिलो ब्ल्याकआउट एउटा सानो गल्ती जस्तो देखिन्थ्यो — तिनीहरूले ह्यान्डल गर्न सक्ने कुरा। तर फैलियो, जिल्ला पछि जिल्ला अन्धकारमा डुब्यो । पावर अनियन्त्रित रूपमा झिलिमिली भयो, र प्रत्येक रिबुटको साथ, चीजहरू मात्र खराब भयो। अलार्म बज्यो, र मनिटरहरूले अझ गहिरो, लुकेको संकटको चेतावनी दिए जुन उनीहरूले अझै पत्ता लगाउन सकेनन्।

तिनीहरूलाई मद्दत चाहियो। उनीहरूलाई बेनिसियो चाहिएको थियो।

बेनिसियो: जोखिममा एक रस्ट अधिवक्ता

बेनिसियो: जोखिममा एक रस्ट अधिवक्ता


जब बेनिसियो आइपुगे, उनी आफ्नो ल्यापटपसँग मात्र सशस्त्र थिएनन्; ओह होइन, उसले धेरै मूल्यवान चीज बोकेको छ: रस्टमा उनको अटल विश्वास - जुन भाषा उसले विगत पाँच वर्षदेखि कडा रूपमा च्याम्पियन गरेको थियो। यो Rust को साथ थियो कि उनी र उनको Rustacean ईन्जिनियरहरूको टोलीले LuxCity SmartGrid को कोर विकास गरेका थिए। रस्ट उसको तरवार थियो, उसको ढाल, चम्किलो नयाँ खेलौना जसले उसलाई C++ - बफर ओभरफ्लो, दौड अवस्था, सधैं डरलाग्दो प्रयोग-पश्चात-मुक्त शोषणहरूबाट बचाउने प्रतिज्ञा गरेको थियो। रस्ट यो सबैको जवाफ थियो, हैन? भविष्य, वा त्यस्तै विश्वास थियो। आखिर, लक्ससिटीको ग्रिड यो कथित अटूट जगमा निर्माण गरिएको थियो।


तर विडम्बना? त्यो अटल आत्मविश्वास परीक्षण हुन लागेको थियो, र हुनसक्छ - हुनसक्छ - C++ बेनिसियोले सोचेको जस्तो पुरानो थिएन।


प्रणालीको कोरमा बेनिसियो ढुकुरको रूपमा, उसलाई तुरुन्तै थाहा थियो कि केहि गलत थियो। SmartGrid को नियन्त्रण प्रणालीको प्रत्येक रिसेट संग, ब्ल्याकआउट थप फैलियो - शहरको बाहिरी भागबाट लक्ससिटीको मुटु तर्फ सर्दै। यो यादृच्छिक थिएन; यो जानाजानी थियो, एक ढाँचा उसको आँखा अगाडि देखा पर्‍यो, राम्रोसँग समन्वय गरिएको र गणना गरिएको आक्रमण। उनको मुटु डुब्यो । यो केवल एक गल्ती थिएन - यो एक रूटकिट थियो, जीवित र विकसित।


हस्ताक्षर अस्पष्ट थियो।


यो जानुस थियो, उर्फ लिजार्ड-द-विजार्ड - बेनिसियोको पुरानो साथी विरोधी भयो। एक पटक, तिनीहरूले सँगै कोड लेखे, C++ को असीम सम्भावनाहरू अन्वेषण गर्दै। तर जानुसले रस्टको कठोर सुरक्षा जाल र अमूर्ततामा खिल्ली उडाएको थियो। अब, जेनुसले C++ को कच्चा, अटम्य शक्ति प्रयोग गर्यो, शहरको पूर्वाधारलाई कठपुतली मास्टरको रूपमा हेरफेर गर्दै, सबैभन्दा ठूलो स्मार्टग्रिडको दिमाग र हिम्मतलाई लक्षित गर्दै — रस्टमा बेनिसियो द्वारा कोड गरिएको।


छेपारो-रातो: फाउन्डेशनहरूमा एक निर्दयी आक्रमण

जानुस उर्फ लिजार्ड-द-विजार्ड द्वारा एक निर्दयी आक्रमण


LuxCity को तल, जीवन संग गुनगुनाइरहेको सर्भर र्याक को मधुरो चमक मा, Janus आफ्नो मास्टर वर्क देखा पर्यो। उसको औँलाहरू किबोर्डमा द्रुत गतिमा सरेका थिए, आँखा तीखो र फोकस भएका थिए जब उसले झिलमिलाहट पर्दाहरूमा अराजकतालाई ट्र्याक गर्यो। उनका दुई उत्कृष्ट रचनाहरू खेलमा थिए: लिजार्ड-रेड र लिजार्ड-ब्लू , प्रत्येकले विभिन्न मोर्चाहरूबाट आक्रमण गर्दै तर पूर्ण सद्भावमा काम गरिरहेको थियो।


Lizard-Red पहिले नै सहरको स्मार्ट ग्रिडको मूल भित्र गहिरो थियो - उत्तम मौन आक्रमणकर्ता। यो सामान्य सफ्टवेयर कमजोर बिन्दुहरू मार्ने केही साधारण मालवेयर थिएन। होइन, Lizard-Red एउटा फर्मवेयर रूटकिट थियो, जसले सबैभन्दा गहिरो आधारहरूलाई लक्षित गर्दै: DMA नियन्त्रकहरू, SPI फ्ल्यास मेमोरी, र interrupt ह्यान्डलरहरू । यो रस्टको सावधानीपूर्वक बनाइएको सुरक्षा संयन्त्रको मुनि चिप्लिदै, ध्यान नदिई प्रणाली मार्फत चिप्लियो। किन CPU वा मेमोरी बफरहरूमा आक्रमण गर्ने चिन्ता? Lizard-Red ले तिनीहरूलाई पूर्ण रूपमा बाइपास गर्‍यो, फर्मवेयरमा इम्बेड गर्दै जहाँ रस्टको ग्यारेन्टीले कुनै प्रभाव पारेन।


जानुसलाई रस्टको कथित सुरक्षाको सीमा उसको हातको पछाडि जस्तै थाहा थियो - उसले यसलाई विच्छेदन गर्न वर्षौं बिताएको थियो। रस्ट, यसको सबै प्रतिभाको लागि, यो हार्डवेयर तहमा आउँदा छोटो रोकियो । त्यहीँ छेपारो-रेड फस्ट्यो। यो कोडमाथिको आक्रमण मात्र थिएन; यो हार्डवेयरको शत्रुतापूर्ण अधिग्रहण थियो।


यसैबीच, Lizard-Blue ले उच्च स्तरको सफ्टवेयर पक्षबाट विनाश गरिरहेको थियो । यसले प्रत्यक्ष रूपमा आक्रमण गरेन तर अराजकताको सिम्फनी सञ्चालन गर्ने उस्तादजस्तै रस्टको असुरक्षित ब्लकहरूको शोषण गर्दै, सही डिकोयको रूपमा काम गर्‍यो। यसले मल्टिथ्रेडिङ सेवाहरूलाई लक्षित गर्‍यो, I/O अपरेसनहरूलाई ट्विस्ट गर्‍यो, र रस्टले प्रदर्शनका कारणहरूले सावधानीपूर्वक ढिला गरेको दौड अवस्थाहरूलाई जबरजस्ती गरेर विनाश ल्यायो। ती असुरक्षित क्षेत्रहरू बेनिसियोको सावधानीपूर्वक निर्मित प्रतिरक्षामा ढोकाहरू छोडिएका ढोकाहरू जस्तै थिए, र जानस - C++ को पूर्व मास्टर भएकोले - तिनीहरूलाई कसरी खोल्ने भनेर ठ्याक्कै थाहा थियो। रस्टको धेरै सुरक्षा मोडेल, बेनिसियोलाई आत्मविश्वास दिने कुरा, उसको पतन भयो किनकि लिजार्ड-ब्लूले ती ग्यारेन्टीहरूलाई कमजोरीहरूमा परिणत गर्‍यो।


जानुस, आफ्नो लुकेको खोहबाट, मुस्कुरायो। रस्टमा बेनिसियोको विश्वास टुट्न लागेको थियो। यो प्राविधिक आक्रमण मात्रै थिएन; यो नियन्त्रण को कला मा एक पाठ थियो।


बेनिसियो स्ट्राइक्स ब्याक: रस्टको दोषहरू उजागर गर्दै

बेनिसियो स्ट्राइक ब्याक


कन्ट्रोल रुममा, बेनिसियो बहादुरीका साथ लडे, उसको औंलाहरू उसको विचार भन्दा छिटो चलिरहेको थियो। प्रत्येक किस्ट्रोकले मुटुको धड्कन जस्तो महसुस गर्यो — स्थिर तर हताश — जब उसले रस्टको कडा सुरक्षा जालसँग लिजार्ड-द-विजार्डको कोडले बुनेको अथक अराजकता विरुद्ध कुस्ती खेल्यो। बेनिसियोले रस्टको सुरक्षा मोडेलमा महारत हासिल गरेका थिए, यसको सुरक्षामा विश्वस्त थिए, तर लिजार्ड-ब्लूले सर्जिकल परिशुद्धताका साथ CPU मार्फत च्यात्यो। दौड अवस्थाहरू र I/O असफलताहरू स्क्रिनहरूमा देखा पर्यो। प्रत्येक चोटि बेनिसियोले सोचेका थिए कि उसको माथिल्लो हात छ, आक्रमण मोर्फ भयो - आकार बदल्दै, ढोका मुनि चिप्लिएको छायाँ जस्तै विगतको प्रतिरक्षाहरू सर्दै।


खियाले टिक्न सकेन । बेनिसियोले एक पटक रस्टको बारेमा मन पराएको कुरा - यसको कठोर सुरक्षा जाल - अब उसको नियन्त्रण पुन: प्राप्त गर्ने क्षमतालाई गलामा पार्दै थियो। हरेक सेफगार्ड पिंजरा बन्यो, उसको चालहरू सीमित गर्दै, उसलाई तरलता, अथक आक्रमणको बिरूद्ध छोटो हुने रक्षात्मक प्याचहरूको अन्तहीन लूपमा फसाउँदै।


तर युद्धको कलामा अनुभवी बेनिसियोलाई थाहा थियो कि यो केवल एक विचलन हो।


वास्तविक खतरा मोनिटरहरूमा लिजार्ड-ब्लू नृत्य थिएन। सतहभन्दा धेरै तल, LuxCity को स्मार्ट ग्रिडको नसामा गहिरो, Lizard-Red ले पहिले नै नियन्त्रण कब्जा गरिसकेको थियो। यो अब रस्टको डिफेन्सको माथिल्लो तहमा खेलिरहेको थिएन। यसले शहरको पूर्वाधारलाई यसको मुख्य भागमा नियन्त्रित गर्ने SCADA र HVAC प्रणालीहरू जस्ता महत्वपूर्ण प्रणालीहरूमा घुसपैठ गर्न फर्मवेयर इम्प्लान्टहरू प्रयोग गरी गहिरो गहिरो झरेको थियो । यी ती प्रणालीहरू थिए जहाँ हार्डवेयरले सफ्टवेयर भेट्यो - जहाँ अधिकांश मर्मत र अन्तिम नियन्त्रण उपकरणहरू अनुकूलन फर्मवेयरमा चलेका थिए, यसको धेरै जसो अझै पनि C र असेम्बलीको विरासतद्वारा संचालित।


DMA नियन्त्रकहरू र SPI फ्ल्यास मेमोरी सम्झौता गरिएको थियो। Lizard-Red ले CPU लाई पूर्ण रूपमा बाइपास गरेको थियो , OS को मुनिको हार्डवेयरमा इम्बेड गर्दै। यसले पूर्वाधारको जीवन्ततालाई लक्षित गरिरहेको थियो — SCADA प्रणालीहरूले महत्वपूर्ण कार्यहरू नियन्त्रण गर्ने र शहरको हार्डवेयरलाई निर्बाध रूपमा सञ्चालन गर्ने सुनिश्चित गर्ने HVAC प्रणालीहरू। यी इम्प्लान्टहरू साधारण कोड मात्र थिएनन् - तिनीहरू स्थायी थिए, शल्यक्रियाद्वारा फर्मवेयरमा रोपिएका थिए, प्रणालीका नियमहरू भित्रबाट पुन: लेखेर।


रस्टको मेमोरी मोडेल - सफ्टवेयरको सुरक्षा गर्न बनाइएको - यहाँ केहि मतलब छैन। यो फर्मवेयर-स्तरको युद्ध थियो, जहाँ रस्टको सुरक्षा राम्रोसँग निर्मित महल पर्खाल जस्तै थियो, तर आक्रमणकारीहरू पहिले नै गेटहरू भित्र थिए, हार्डवेयरलाई सीधा हेरफेर गर्दै।

जेनुसले अरू थोरैले गर्न सक्ने काम गरेका थिए: उसले हार्डवेयरमा कमजोर ठाउँहरूको शोषण गर्‍यो - जुन ठाउँहरू रस्टलाई सुरक्षित गर्नको लागि कहिल्यै डिजाइन गरिएको थिएन। स्थानहरू जहाँ केवल नंगे धातु, C++, र विधानसभा सर्वोच्च शासन गर्दछ। बेनिसियो बेजोड थियो, र गहिरो तल, उसलाई थाहा थियो।


मेलोड्रामेटिक टर्न: बेनिसियोको विश्वासको संकट

WTF?


बेनिसियोले आफ्नो मुट्ठी कन्सोलको विरुद्धमा हान्यो। रस्ट उनको पवित्र ग्रेल भएको थियो, एक भाषा जुन उसले धेरै अराजकताबाट जोगाउन विश्वास गर्यो अब लक्ससिटीलाई निम्त्याउने धम्की दिन्छ। उनले सम्पूर्ण वर्गको कमजोरी मेटाउने प्रतिज्ञामा विश्वास गरेका थिए। तर अब, सहर पतनको किनारमा छेडिरहेको बेला, चिसो अनुभूतिले उसलाई प्रहार गर्‍यो: खिया पर्याप्त थिएन।


उसले चम्किलो स्क्रिनमा हेरिरह्यो, उसको आँखा "पुरानो C++ उपकरणहरू" नामक डेस्कटपमा टाँसिएको पुरानो फोल्डरमा पुग्यो। पाँच वर्ष - उसले अन्तिम पटक त्यो फोल्डरबाट केहि छोएको पाँच वर्ष भयो। उनले आफू फिर्ता नहुने वाचा गरेका थिए । उसलाई आवश्यक पर्दैन। खिया भविष्य भएको थियो, C++ को खतरा र अस्थिरताबाट उसको छुटकारा। तर अब, शहरको बत्तीहरू एक एक गरेर निभ्दै जाँदा, उसलाई थाहा थियो कि रस्टको कठोरता - जुन सुरक्षा कुनै समय उसको ढाल थियो - पिंजरा बन्यो। यस प्रकारको धम्कीको जवाफ दिन यो धेरै लचिलो थियो।


LuxCity मा आक्रमणहरू अथक थिए, र तिनीहरू केवल डिजिटल थिएनन् - तिनीहरूले धेरै हार्डवेयर, फर्मवेयर-स्तरको गहिराइमा प्रहार गरिरहेका थिए जहाँ रस्टले चलाउन सक्दैन। उसलाई अहिले सत्य थाहा थियो: यो लडाई रस्ट बनाम C++ को बारेमा मात्र थिएन। यो शक्तिको बारेमा थियो। र C++? C++ सँग कच्चा, रस्टले नसक्ने ठाउँमा पुग्ने शक्ति थियो, जहाँ Lizard-Red ले आफूलाई इम्बेड गरेको फर्मवेयरमा गहिरो थियो।


उसको हात मुसामाथि घुम्यो, काँप्दै। त्यो फोल्डर खोल्दा एक पुरानो, खतरनाक हतियारको लागि पुग्ने जस्तो महसुस भयो - जुन राम्रो जत्तिकै हानि गर्न सक्षम छ। एउटा गलत चाल, र LuxCity सधैंको लागि जान्छ। तर यो बिना, C++ को अराजकता र क्रूर बल बिना, पछाडि लड्ने कुनै तरिका थिएन।


भारी हृदयले बेनिसियोले फोल्डरमा क्लिक गरे। उसको पुरानो उपकरणको परिचित दृश्यले उसलाई अभिवादन गर्यो, र त्यो क्षणमा, उसलाई थाहा थियो - यो युद्ध सुरक्षा र सावधानीका साथ जित्न सकिँदैन। यसले जोखिम लिनेछ।


जानसको अप्रत्याशित लाइफलाइन: युद्धमा एक मोड

जब शहर अराजकतामा डुब्यो र स्मार्टग्रिड पतनको छेउमा टाँसियो, बेनिसियोको स्क्रिनमा एउटा सूचना झिम्कियो। यो जानस बाट थियो । बेनिसियोको मुटुले धड्कन छोड्यो - अब के हुन्छ? तर थप विनाशको सट्टा, सन्देशले जीवन रेखा राख्यो। लक्ससिटीलाई पूर्ण रूपमा नष्ट गर्न जानस त्यहाँ थिएन - अझै छैन। उसले केहि अप्रत्याशित साथ पुग्यो: एक सूची। प्रत्येक भ्रष्ट सेवाको विस्तृत ब्रेकडाउन, प्रत्येक सम्झौता प्रक्रिया, र - सबैभन्दा महत्त्वपूर्ण - तिनीहरूलाई ट्र्याक गर्न कोडहरू।


बेनिसियो हिचकिचाए, आफ्नो पुरानो साथीलाई विश्वास गर्ने कि नपाउने भनेर अनिश्चित भयो। तर शंका गर्ने समय थिएन। लक्ससिटीको भविष्य सन्तुलनमा टाँसिएको अवस्थामा, उनीसँग मद्दत स्वीकार गर्नुको विकल्प थिएन। उसले आफ्नो पुरानो C++ उपकरणहरू भएको फाइल खोल्न क्लिक गर्नु अघि एक क्षणको लागि उसको हात माउसमा घुम्यो।

बेनिसियोको मुक्ति: C++ को शक्ति

फेरि पुराना चरा ?


काम्ते हातले बेनिसियो टाइप गर्न थाले। C++ को एक पटक परिचित सिन्ट्याक्स उहाँको माध्यमबाट दोस्रो प्रकृति जस्तै बग्यो, मांसपेशी मेमोरीको वर्षौं भित्र लात। उसले काउन्टरमेजरहरू सिर्जना गर्न थाल्यो, तिनीहरूलाई रस्टको पूर्वाधारमा बुन्यो, जानुसले फैलाएको अराजकतालाई प्याच गर्न फर्मवेयर मार्फत थ्रेडिङ गर्न थाल्यो। रस्टको कठोर संरचनाले उसलाई फर्मवेयर-स्तरको आक्रमणको बिरूद्ध शक्तिहीन छोडेको थियो, तर C++ अब उनको तरवार र ढाल थियो। उसले रस्टको सुरक्षा जाललाई बाइपास गर्यो, सीधा कमजोर हार्डवेयरमा डाइभिङ गर्दै, DMA अनुरोधहरू प्याच गर्दै र SPI मेमोरी करप्टहरू एक-एक गरी।


कन्ट्रोल रुमको हावा तनाब थियो । एलिस र बबले हेरे, तिनीहरूका आँखाहरू ग्रिडमा मेटिने बत्तीहरू र बेनिसियोको स्क्रिनमा आएको कोडका रेखाहरू बीच झिलिमिली थिए। समय सकिदै थियो ।


प्रत्येक किस्ट्रोकको साथ, बेनिसियोले आधुनिक C++ को शक्ति प्रयोग गर्यो, दुई छेपारो रङका मालिक जानसले प्रदान गरेका संकेतहरूद्वारा निर्देशित - कोडहरू र सम्झौता गरिएका सेवाहरूको रोडम्याप। यो पुरानोको जोखिमपूर्ण, अराजक C++ थिएन। आधुनिक C++ ले ती धेरै खतराहरूलाई नियन्त्रण गरेको थियो: स्मार्ट पोइन्टर्स, पहिलेभन्दा धेरै स्वादहरू, र स्वामित्व मोडेलहरू जसले रस्टको सुरक्षा सुविधाहरूलाई प्रतिध्वनित गर्दछ तर अधिक लचिलोपन, थप कच्चा शक्ति। यो परिष्कृत भयो, विकसित भयो। तर पनि, प्रत्येक रेखाले वजन बोकेको छ। एउटा गल्तीले अझै पनि विपत्ति निम्त्याउन सक्छ। तैपनि, उसले काम गर्दा, बेनिसियोले ग्रिडको भागहरू पुन: प्राप्ति भएको महसुस गर्न सक्थे, प्रणालीले आधुनिक C++ को परिशुद्धतालाई प्रतिक्रिया दिँदै।


जेनुसले फ्यूज बालेका थिए, तर अब उसले बेनिसियोलाई डिफ्युसल कोडहरू हस्तान्तरण गरेको थियो । यो छुटकाराको कार्य हो वा अन्तिम खेलमा आफ्नो प्रभुत्व प्रमाणित गर्न अहंकार-संचालित चाल हो, यसले फरक पार्दैन, बेनिसियोले सोचे। उहाँ अब सहरको जीवनको लागि कोडिङ गर्दै हुनुहुन्थ्यो, प्रत्येक निर्णयमा C++ को भूतहरू घुमिरहेका थिए।


प्रत्येक समारोह कल, एम्बेडेड सम्मेलनको प्रत्येक ब्लक, प्रकोपको किनारमा एक जटिल नृत्य थियो। तर असुरक्षित कोडलाई आधुनिक C++ मा र्‍याप गरिएको थियो, मोनाडहरूको सम्झना दिलाउने निर्माणहरू प्रयोग गरेर - जेनसले बेनिसियोलाई अपरिचित भएकोले बेनिसियोलाई अपनाउन राजी गरेका थिए। मिनेटहरू टिक्दै जाँदा, मोनिटरहरूमा अराजकता सुस्त हुन थाल्यो।


बेनिसियोको दिमागले जुनूनी मन्त्रलाई हल्लाउन सकेन: रस्ट उनको सुरक्षा जाल थियो। यद्यपि, यस क्षणमा, केवल C++ सँग लक्ससिटीलाई किनारबाट फिर्ता ल्याउन लचिलोपन र कच्चा शक्ति थियो। जैनुसले भ्रष्ट भएको प्रत्येक सेवालाई प्याच गर्दै उग्र रूपमा कोड गरेपछि, एउटा कुरा स्पष्ट भयो - त्यहाँ कुनै सही भाषा थिएन, सही युद्धको लागि सही उपकरण मात्र थियो।


त्यो क्षणमा, बेनिसियोले लक्ससिटीलाई बचाउनको लागि मात्र कोडिङ गरिरहेको थिएन; उहाँले सृष्टि र विनाशको बीचमा राम्रो रेखा हिंड्नुभएको थियो, उहाँले फेरि कहिल्यै नछुने कसम खानुभएको भाषाद्वारा निर्देशित।


अन्तिम पाठ: Rust's Safety vs. C++'s Mastery of Control

बेनिसियोले लक्ससिटीको कमजोर प्रणालीहरूसँग कुश्ती गर्दा, पलको वजनले उनलाई बारम्बार प्रहार गर्‍यो: रस्ट, जुन भाषा उसले च्याम्पियन गरेको थियो, वास्तविक संसारको दबाबमा टुक्रिएको थियो। यसको सुरक्षा ग्यारेन्टीहरू - उसले भर परेका सान्त्वनादायी पर्खालहरू - उनको पिंजरा बन्यो। जानुस, लिजार्ड-द-विजार्ड, रस्टले सेट गरेको प्रत्येक कठोर सीमाको शोषण गरेको थियो - प्रत्येक असुरक्षित ब्लक अराजकताको लागि ढोका बन्यो, प्रत्येक सुरक्षित मेमोरी मोडेल बेनिसियोले समयमै पार गर्न सकेन। रस्टले सबै कुरालाई जोगाउने प्रयासमा, सहरको धेरै पूर्वाधारलाई आक्रमणको सामना गर्न छोडेको थियो जुन सफ्टवेयरभन्दा बाहिर गएको थियो, हार्डवेयरमा नै गहिरो पुग्यो।


र त्यसपछि सत्यले बेनिसियोलाई पेटको मुक्का जस्तै प्रहार गर्यो: रस्ट असफल भएको थिएन किनभने यो कमजोर थियो। यो असफल भएको थियो किनभने यो धेरै बलियो थियो, धेरै कडा थियो, अप्रत्याशित शक्तिहरू जोनसले छोडेको थियो अनुकूलन गर्न असमर्थ थियो। तर C++, उसले छोड्ने कसम खाएको भाषा - यसको सबै खतरनाक शक्ति र अराजक लचिलोपनको साथ - सन्तुलन पुनर्स्थापित गर्न सक्षम एक हतियार थियो। C++ एउटा उपकरण मात्र थिएन; यो स्वतन्त्रता थियो, अज्ञातमा डुब्ने निमन्त्रणा, अनियन्त्रितलाई नियन्त्रण गर्न।


हेडसेट मार्फत, जानसको आवाजले मौनता तोड्यो। तर यस पटक, यो ठट्टा वा शत्रुतापूर्ण थिएन।


"तिमीले अहिले देख्यौ, हैन?" उनले सम्पूर्ण प्रस्तुतिको आयोजना गर्ने उस्तादको शान्त परिशुद्धताका साथ सोधे। " यो भाषाहरूको बारेमा कहिल्यै थिएन, बेनिसियो। यो हाम्रो प्रोग्रामिङ ग्रिडको मुटुमा रहेको सफ्टवेयरदेखि हार्डवेयरसम्म, तर्कदेखि गणितसम्म — प्रत्येक तह, हरेक दरार — प्रणालीमा निपुणता गर्ने बारे हो। "


जेनुसले लक्ससिटीमा मात्र आक्रमण गरेका थिएनन्। उसले बेनिसियोलाई एक मास्टर ह्याकरले मात्र पठाउन सक्ने पाठ सिकाउनको लागि छेउमा धकेल्यो: साँचो शक्ति 'सुरक्षित' भाषा छनोट गर्नमा होइन, तर यसको तलको वास्तुकलामा निपुणतामा, अनुकूलन गर्न आवश्यक हुँदा नियमहरू झुकाउने र बाँच्न।


"म लक्ससिटीलाई कहिल्यै नष्ट गर्न चाहन्नँ," जेनसले जारी राखे, उनको आवाज लगभग उदासीन थियो। " म तपाईंलाई देखाउन चाहान्छु कि रस्ट जस्ता सुरक्षा जालहरूमा भर पर्दा तपाईंलाई भविष्यवाणी गर्न सकिन्छ। तपाईंले यसलाई आफैले देख्नुभएको छ - रस्ट यसको आफ्नै नियमहरूमा बाँधिएको छ। C++… C++ ले तपाईंलाई नियमहरू सिर्जना गर्न दिन्छ। अमूर्त बीजगणित, श्रेणी सिद्धान्त, र प्रभुत्व ग्राफ सिद्धान्तको लेन्सहरू द्वारा अनुग्रह र भव्यताका साथ सेट गरिएका बाधाहरूलाई म सम्मान गर्छु।


सहर ध्वस्त हुने छेउमा छ, बेनिसियोले अब बुझे। जेनुसले आक्रमणलाई द्वेषबाट होइन, तर परीक्षणको रूपमा - नियन्त्रण, निपुणता र अनुकूलनको पाठको रूपमा मञ्चन गरेका थिए। विडम्बना? जेनुसलाई हराउन बेनिसियोले त्यही भाषालाई अँगाल्नुपर्छ जसलाई उसले फिर्ता गरेको थियो।


" यहाँ सम्झौता गरिएका सेवाहरूको अन्तिम सूची छ ," जानुसले बेनिसियोलाई पजलको अन्तिम, निर्णायक टुक्रा दिँदै भने। यो समाप्त गर्ने समय थियो, तर अब तिनीहरू सँगै काम गरिरहेका थिए - मास्टर र विद्यार्थी, पुरानो समय जस्तै।


जब बेनिसियो कोडमा फर्कियो, उसको पुरानो C++ वृत्ति पुन: सक्रिय भयो। जानसको मार्गदर्शनको साथ, उसले अन्तिम निरन्तर मालवेयर कोडहरूलाई एक एक गरेर लक्षित गर्यो, आवश्यक परेको ठाउँमा एम्बेडिङ गर्ने, रस्टको सीमितताहरू बाइपास गर्दै, र फर्मवेयर स्तरमा क्षतिलाई पूर्ववत गर्दै। यो सधैं सुरुचिपूर्ण थिएन, र यो सधैं सुरक्षित थिएन, तर यो काम गरिरहेको थियो।


कन्ट्रोल रुमको हावा सर्यो । एलिस र बब, तनावमा भए पनि, प्रणाली बिस्तारै स्थिर हुन थालेको देखे। बिजुली शहरको बाहिरी भागमा फर्कियो। SmartGrid, LuxCity को धड्कन मुटु, अन्ततः लड्दै थियो।


कुनै पनि भाषा, जतिसुकै 'सुरक्षित' भए पनि, साँचो चुनौतीको सामनामा नियन्त्रणको ग्यारेन्टी गर्न नसक्ने कठिन तरिका बेनिसियोले सिकेका थिए। अन्तमा, यो Rust वा C++ छनौट गर्ने बारे थिएन; यो दुबैमा महारत हासिल गर्ने बारे थियो, वास्तविक लडाई कोडको लाइनमा होइन, तर दिमागमा र तिनीहरूलाई चलाउने प्रोग्रामरको विज्ञानमा हो भन्ने बुझ्दै



यस विषयसँग सम्बन्धित थप लेख र समाचारहरू पहुँच गर्न चाहनुहुन्छ?


तपाईले मेरो कामलाई पछ्याउन सक्नुहुन्छ र अपडेट, अन्तर्दृष्टि, र विशेष सामग्रीको लागि मेरो न्यूजलेटरको सदस्यता लिन सक्नुहुन्छ:


थप प्राविधिक अन्तर्दृष्टि र समाचारहरूको लागि सम्पर्कमा रहनुहोस्!