Самая складаная праграма

Ад перакладчыка: я знайшоў на Quora пытанне: Якую праграму ці код можна назваць самымі складанымі з калі-небудзь напісаных? Адказ аднаго з удзельнікаў быў настолькі добры, што цягне на артыкул.

Прышпілі рамяні.

Самая складаная праграма ў гісторыі была напісана камандай людзей, імёны якіх нам невядомы.

Гэта праграма - кампутарны чарвяк. Чарвяк быў напісаны, мяркуючы па ўсім, паміж 2005 і 2010 гадамі. Паколькі гэты чарвяк зяўляецца такім складаным, я магу даць толькі агульнае апісанне таго, што ён робіць.

Спачатку чарвяк з'яўляецца на USB кружэлцы. Хтосьці мог знайсці дыск, які ляжыць на зямлі, атрымаць яго па пошце і зацікавіцца яго зместам. Як толькі дыск устаўляўся ў кампутар з Windows PC, без вядзёнай карыстача, чарвяк аўтаматычна запускаў сябе і капіяваў на гэты кампутар. Існавала як мінімум тры спосабы, з дапамогай якіх ён мог сябе запусціць. Калі не працаваў адзін, ён спрабаваў іншы. Як мінімум два з гэтых метадаў запуску былі абсалютна новымі і абодва выкарыстоўвалі дзве незалежных, сакрэтных памылкі ў Windows аб якіх ніхто не ведаў да таго моманту, як з'явіўся гэты чарвяк.

Як толькі чарвяк запускаецца на кампутары, ён спрабуе атрымаць правы адміністратара. Яго не моцна турбуе ўсталяванае антывіруснае ПА - ён можа ігнараваць большасць такіх праграм. Затым, у залежнасці ад таго, на якой версіі Windows ён працуе, чарвяк паспрабуе адзін з двух раней невядомых метадаў атрымання правоў адміністратара на кампутары. Як і раней, да з'яўлення гэтага чарвяка ніхто не ведаў аб гэтых утоеных уразлівасцях.

Пасля гэтага чарвяк здольны схаваць сляды сваёй прысутнасці ў глыбінях АС, так што ні адна антывірусная праграма не зможа яго выявіць. Ён хаваецца так добра, што нават калі будзеце шукаць на дыску ў тое месца, дзе гэты чарвяк павінен быць, вы нічога не ўбачыце. Гэты чарвяк хаваўся так добра, што яму ўдалося перамяшчацца па Інтэрнеце на працягу года і ні адна кампанія, звязаная з бяспекай не прызнала нават факта яго існавання.

Затым чарвяк правярае, ці можа ён выйсці ў Інтэрнет. Калі можа, ён спрабуе наведаць сайты. www.mypremierfutbol.com або www.todaysfutbol.com. У той час гэтыя серверы былі Малайзіі і Даніі. Ён адчыняе зашыфраваны канал сувязі і паведамляе гэтым серверам, што новы кампутар паспяхова захоплены. Навошта чарвяк аўтаматычна абнаўляе сябе да самай новай версіі.

Пасля гэтага чарвяк капіюе сябе на любую іншую USB прыладу, якое вам прыйшлося ўставіць. Ён робіць гэта з дапамогай усталёўкі акуратна распрацаванага ілжывага драйвера дыска. Гэты драйвер утрымоўваў лічбавы подпіс Realtek. Гэта азначае, што аўтары чарвяка нейкім чынам змаглі прабіцца ў найбольш абароненае месца буйной тайваньскай кампаніі і скрасці самы сакрэтны ключ кампаніі так, што сама кампанія пра гэта не даведалася.

Пазней, аўтары гэтага драйвера пачалі падпісваць яго сакрэтным ключом ад JMicron, іншай буйной тайваньскай кампаніі. І зноў, аўтары змаглі прарвацца ў самае абароненае месца ў гэтай кампаніі і выкрасці самы сакрэтны ключ, якім валодае гэтая кампанія так, што яны нічога пра гэта не даведаліся.

Чарвяк, пра які мы гаворым вельмі складаны. І мы яшчэ нават не пачалі.

Пасля гэтага чарвяк пачынае выкарыстоўваць два нядаўна выяўленых бага ў Windows. Адзін баг звязаны з сеткавымі друкаркамі, а іншы - з сеткавымі файламі. Чарвяк выкарыстоўвае гэтыя багі, каб усталяваць сябе па лакальнай сетцы на ўсе іншыя кампутары ў офісе.

Затым чарвяк пачынае шукаць канкрэтнае ПЗ, распрацаванае Siemens для аўтаматызацыі буйных прамысловых машын. Як толькі ён знаходзіць яго, ён (як вы ўжо здагадаліся) выкарыстоўвае яшчэ адзін раней невядомы баг, каб скапіяваць сябе праграмуемую логіку прамысловага кантролера. Як толькі чарвяк пасяліўся ў гэтым кампутары, ён застаецца там назаўжды. Ніякая колькасць замен ці "дэзінфекцыі" кампутара не дапаможа пазбавіцца ад яго.

Чарвяк шукае прымацаваныя прамысловыя электрычныя маторы ад двух пэўных кампаній. Адна з гэтых кампаній у Іране, а іншая ў Фінляндыі. Маторы, якія ён шукае, завуцца частатна-рэгулюемыя прывады . Яны выкарыстоўваюцца для кіравання прамысловымі цэнтрыфугамі. З дапамогай цэнтрыфуг можна ачысціць мноства хімічных элементаў.

Напрыклад, уран.

Цяпер, паколькі чарвяк атрымаў поўны кантроль над цэнтрыфугамі, ён можа зрабіць з імі ўсё, што захоча. Ён можа іх усіх адключыць. Ён можа неадкладна ўсе іх знішчыць - дастаткова круціць іх на максімальнай хуткасці да таго часу, пакуль яны не разляцяцца як бомбы, забіўшы ўсіх, хто па выпадковасці апынуўся побач.

Але не. Гэта складаны чарвяк. І ў чарвяка ёсць іншыя планы.

Як толькі ён захапіў усе цэнтрыфугі ў тваім заводзе… чарвяк проста засынае.

Праходзяць дні. Ці тыдня. Або секунды.

Калі чарвяк вырашае, што час нетутэйша, то хутка прачынаецца. Ён выпадкова выбірае некалькі цэнтрыфуг, калі яны чысцяць уран. Чарвяк блакуе іх так, што калі нехта заўважыць, што нешта дзіўнае, ён не зможа адключыць гэтыя цэнтрыфугі.

І затым, паціху, чарвяк пачынае круціць гэтыя цэнтрыфугі… трошкі няправільна. Зусім не нашмат. Проста, ведаеце, ледзь ледзь занадта хутка. Або самую драбніцу занадта павольна. Толькі трохі за межамі бяспечных параметраў.

У той жа час, ён павялічвае ціск газу ў гэтых цэнтрыфугах. Гэты газ называецца UF6. Вельмі шкодная рэч. Чарвяк змяняе ціск гэтага газу ледзь ледзь за межамі бяспечных значэнняў. Роўна для таго, каб пры трапленні газу ў цэнтрыфугі падчас працы з'яўляўся невялікі шанец таго, што ён ператворыцца ў камяні.

Цэнтрыфугі не любяць працаваць занадта хутка ці занадта павольна. І камяні ім таксама не падабаюцца.

Але ў чарвяка застаўся апошні трук. І ён геніяльны.

У дадатак да ўсіх сваіх дзеянняў, чарвяк пачынаў прайграваць запіс дадзеных за апошнія 21 секунду працы, якія ён запісаў, калі цэнтрыфугі працавалі нармальна.
Чарвяк прайграваў запіс зноў і зноў, у цыкле.

У выніку, дадзеныя аб усіх цэнтрыфугах для людзей выглядалі цалкам нармальнымі. Але гэта былі толькі ілжывыя запісы, створаныя чарвяком.

А зараз уявіце, што вы адказныя за ачыстку ўрана з дапамогай гэтага буйнога прамысловага завода. І быццам бы ўсё працуе добра. Можа рухавікі гучаць крыху дзіўна, але лічбы на кампутары паказваюць, што маторы цэнтрыфуг працуюць так, як і належыць.

Затым цэнтрыфугі пачынаюць ламацца. У выпадковым парадку, адна за іншы. Звычайна яны паміраюць ціха. Зрэшты, у некаторых выпадках, яны ўладкоўваюць сучаснасць прадстаўленне. А вытворчасць урана пачынае рэзка падаць. Уран павінен быць чыстым. Ваш уран не дастаткова чысты, каб з ім можна было зрабіць нешта карыснае.

Што б вы рабілі, калі б кіравалі гэтым заводам па ўзбагачэнні ўрана? Вы б правяралі ўсё зноў і зноў і зноў, не разумеючы ў чым праблема. Вы маглі б пры жаданні памяняць усе кампутары ў заводзе.

Але цэнтрыфугі б усё роўна ламаліся. І ў вас нават не было магчымасці даведацца чаму.

З часам, пад вашым наглядам, каля 1000 цэнтрыфуг ламаюцца ці адключаюцца. Вы схадзіце з розуму ў спробах высветліць, чаму ўсё працуе не так, як планавалася.

Менавіта гэта і адбылося насамрэч

Вы ніколі не будзе чакаць, што ўсе гэтыя праблемы былі створаны кампутарным чарвяком, самым хітрым і разумным кампутарным чарвяком у гісторыі, напісаным нейкай неверагодна сакрэтнай камандай з неабмежаванай колькасцю грошай і чакай. Чарвяк быў распрацаваны толькі з адной мэтай: прайсці праз усе вядомыя спосабы лічбавай абароны і знішчыць ядзерную праграму вашай краіны так, каб яе не злавілі.
Стварыць праграму, якая магла б зрабіць АДНУ з гэтых рэчаў сам па сабе маленькі цуд. Стварыць праграму, якая можа рабіць УСЕ гэта і шмат іншага…

… для гэтага чарвяку Stuxnet прыйшлося стаць самай складанай праграмай з калі-небудзь напісаных.

Крыніца: habr.com

Дадаць каментар