Sunkiausia programa

Iš vertėjo: „Quora“ radau klausimą: kokia programa ar kodas gali būti vadinamas sudėtingiausiu kada nors parašytu? Vieno iš dalyvių atsakymas buvo toks geras, kad visai vertas straipsnio.

Pritvirtinkite savo saugos diržus.

Sudėtingiausią programą istorijoje parašė komanda žmonių, kurių vardų mes nežinome.

Ši programa yra kompiuterio kirminas. Kirminas, matyt, buvo parašytas 2005–2010 m. Kadangi šis kirminas yra toks sudėtingas, galiu pateikti tik bendrą jo veikimo aprašymą.

Kirminas pirmiausia pasirodo USB atmintinėje. Kas nors gali rasti ant žemės gulintį diską, gauti jį paštu ir susidomėti jo turiniu. Kai tik diskas buvo įdėtas į „Windows“ kompiuterį, be vartotojo žinios, kirminas automatiškai įsijungdavo ir nusikopijuodavo į tą kompiuterį. Buvo bent trys būdai, kaip jis galėjo pradėti save. Jei vienas nepadėjo, jis bandė kitą. Bent du iš šių paleidimo būdų buvo visiškai nauji ir abu išnaudojo dvi nepriklausomas slaptas Windows klaidas, apie kurias niekas nežinojo, kol nepasirodė šis kirminas.

Kai tik kirminas paleidžiamas kompiuteryje, jis bando įgyti administratoriaus teises. Jam ne itin trukdo įdiegta antivirusinė programa – daugumą tokių programų jis gali ignoruoti. Tada, priklausomai nuo to, kurioje „Windows“ versijoje jis veikia, kirminas išbandys vieną iš dviejų anksčiau nežinomų būdų, kaip gauti administratoriaus teises kompiuteryje. Kaip ir anksčiau, niekas nežinojo apie šiuos paslėptus pažeidžiamumus prieš pasirodant šiam kirminui.

Po to kirminas gali paslėpti savo buvimo pėdsakus OS gilumoje, kad jokia antivirusinė programa negalėtų jo aptikti. Jis taip gerai pasislepia, kad net pažiūrėjus į diską toje vietoje, kur turėtų būti šis kirminas, nieko nepamatysi. Šis kirminas taip gerai pasislėpė, kad sugebėjo metus laiko klajoti internete be jokios apsaugos įmonės net nepripažino jos egzistavimo fakto.

Tada kirminas patikrina, ar gali prisijungti prie interneto. Jei gali, jis bando apsilankyti svetainėse www.mypremierfutbol.com arba www.todaysfutbol.com. Tuo metu šie serveriai buvo Malaizija ir Danija. Jis atidaro užšifruotą ryšio kanalą ir praneša šiems serveriams, kad naujasis kompiuteris sėkmingai perimtas. Kodėl kirminas automatiškai atnaujina save į naujausią versiją?

Tada kirminas nukopijuoja save į bet kurį kitą USB įrenginį, kurį atsitiktinai įdedate. Tai daroma įdiegiant tvarkingai sukurtą nesąžiningą disko tvarkyklę. Šioje tvarkyklėje buvo „Realtek“ skaitmeninis parašas. Tai reiškia, kad kirmino autoriai kažkokiu būdu sugebėjo įsilaužti į saugiausią didelės Taivano įmonės vietą ir pavogti slapčiausią įmonės raktą, įmonei apie tai nežinant.

Vėliau šios tvarkyklės autoriai pradėjo ją pasirašyti privačiu raktu iš JMicron, kitos didelės Taivano įmonės. Ir vėl autoriams pavyko įsilaužti į labiausiai saugomą vietą tai įmonę ir pavogti slapčiausią jam priklausantį raktą tai įmonė jiems nieko apie tai nežinojo.

Kirminas, apie kurį mes kalbame labai sudėtinga. Ir mes net vis dar esame neprasidėjo.

Po to kirminas pradeda išnaudoti dvi neseniai aptiktas Windows klaidas. Viena klaida yra susijusi su tinklo spausdintuvais, o kita - su tinklo failais. Kirminas naudoja šias klaidas, kad įsidiegtų per vietinį tinklą visuose kituose biuro kompiuteriuose.

Tada kirminas pradeda ieškoti konkrečios Siemens sukurtos programinės įrangos, skirtos automatizuoti dideles pramonines mašinas. Jį radęs, jis (jūs atspėjote) naudoja kitą anksčiau nežinomą klaidą, kad pats nukopijuotų programuojamą pramoninio valdiklio logiką. Kai tame kompiuteryje apsigyvena kirminas, jis ten lieka visam laikui. Nepakeitus ar „dezinfekavus“ jūsų kompiuteris jo neatsikratys.

Kirminas ieško prijungtų pramoninių elektros variklių iš dviejų konkrečių įmonių. Viena iš šių įmonių yra Irane, kita – Suomijoje. Varikliai, kurių jis ieško, vadinami „kintamo dažnio pavaromis“. Jie naudojami pramoninėms centrifugoms valdyti. Centrifugos gali būti naudojamos daugeliui cheminių elementų išvalyti.

Pavyzdžiui, uranas.

Dabar, kai sliekas visiškai kontroliuoja centrifugas, gali su jomis daryti ką nori. Jis gali juos visus išjungti. Jis gali iš karto jas visas sunaikinti – tiesiog sukite jas maksimaliu greičiu, kol jos kaip bombos išsiskirs, žudydami visus, kas atsitiks šalia.

Bet ne. Tai sudėtingas kirminas. Ir kirminas turi kiti planai.

Užfiksavęs visas jūsų gamykloje esančias centrifugas, kirminas tiesiog užmiega.

Dienos praeina. Arba savaites. Arba sekundėmis.

Kai kirminas nusprendžia, kad atėjo laikas, jis greitai atsibunda. Jis atsitiktinai parenka kelias centrifugas, kurios valo uraną. Kirminas jas blokuoja, kad kas nors pastebėjęs, kad kažkas keista, negalės šių centrifugų išjungti.

Ir tada po truputį sliekas pradeda sukti šias centrifugas... po truputį neteisingas. Visai nedaug. Tiesiog, žinai, truputį per greitai. Arba truputį per lėtas. Tik немного išoriniai saugūs parametrai.

Kartu tai padidina dujų slėgį šiose centrifugose. Šios dujos vadinamos UF6. Labai žalingas dalykas. Sliekas keičia šių dujų slėgį truputį už saugių ribų. Būtent taip, kad jei eksploatacijos metu į centrifugas pateks dujų, maža tikimybė jis pavirs akmenimis.

Centrifugos nemėgsta veikti per greitai ar per lėtai. O akmenų jie taip pat nemėgsta.

Tačiau kirminui liko paskutinis triukas. Ir jis yra puikus.

Be visų savo veiksmų, kirminas pradėjo leisti paskutinės 21 sekundės veikimo duomenų įrašą, kurį užfiksavo centrifugoms veikiant normaliai.
Kirminas vėl ir vėl paleido įrašą.

Dėl to visų žmonėms skirtų centrifugų duomenys atrodė gana normalūs. Bet tai buvo tik klaidingi kirmino sukurti įrašai.

Dabar įsivaizduokite, kad esate atsakingas už urano rafinavimą naudojant šią didelę pramoninę gamyklą. Ir atrodo, kad viskas veikia gerai. Varikliai gal ir skamba kiek keistai, bet skaičiai kompiuteryje rodo, kad centrifuginiai varikliai veikia taip, kaip turi.

Tada centrifugos pradeda gesti. Atsitiktina tvarka vienas po kito. Paprastai jie miršta tyliai. Tačiau kai kuriais atvejais jie sutvarko dabartį spektaklis. Ir urano gamyba pradeda smarkiai kristi. Uranas turi būti švarus. Jūsų uranas nėra pakankamai grynas, kad galėtumėte ką nors naudingo padaryti.

Ką darytumėte, jei vadovautumėte šiai urano sodrinimo gamyklai? Viską tikrintum vėl ir vėl ir vėl, nesuprasdamas, kas per problema. Jei norite, galite pakeisti visus gamyklos kompiuterius.

Bet centrifugos vis tiek sugestų. Ir tu net nebuvo galimybės sužinoti kodėl.

Laikui bėgant, jums prižiūrint, sugenda arba išsijungia apie 1000 centrifugų. Išprotėjai, bandydamas išsiaiškinti, kodėl viskas neveikia taip, kaip planuota.

Būtent taip iš tikrųjų atsitiko

Niekada nesitikėtum, kad visas šias problemas sukūrė kompiuterių kirminas, gudriausias ir protingiausias kompiuterių kirminas istorijoje, kurį parašė kažkokia neįtikėtinai slapta komanda, turinti neribotus pinigus ir laiką. Kirminas buvo sukurtas tik vienam tikslui: pereikite prie visų žinomų skaitmeninio saugumo metodų ir sunaikinkite savo šalies branduolinę programą, nepagaudami.
Sukurti programą, kuri galėtų atlikti VIENĄ iš šių dalykų, savaime yra mažas stebuklas. Sukurkite programą, kuri gali padaryti VISĄ tai ir dar daugiau...

…už tai Stuxnet kirminas turėjo tapti sudėtingiausia kada nors parašyta programa.

Šaltinis: www.habr.com

Добавить комментарий