Най-сложната програма

От преводача: намерих върху Quora въпрос: Коя програма или код може да се нарече най-сложната от всички написани досега? Отговорът на един от участниците беше толкова добър, че спокойно може да се счита за статия.

Завържете коланите.

Най-сложната програма в историята е написана от екип хора, чиито имена не са известни.

Тази програма е компютърен червей. Червеят вероятно е написан между 2005 и 2010 година. Тъй като този червей е толкова сложен, мога да дам само общо описание на това, което прави.

В началото червейят се появява на USB диск. Някой може да е намерил диска, лежащ на земята, да го е получил по пощата и да е проявил интерес към съдържанието му. Когато дискът бъде поставен в компютър с Windows, без знанието на потребителя, червейят автоматично се стартира и копира на този компютър. Имаше поне три начина, по които можеше да се стартира. Ако един не проработи, той пробваше друг. Най-малко два от тези метода на стартиране бяха абсолютно нови и и двата използваха две независими, тайни уязвимости в Windows, за които никой не знаеше до момента, в който този червей се появи.

Когато червейят стартира на компютъра, той се опитва да получи права на администратор. Не го беспокои особено наличието на антивирусен софтуер - той може да игнорира повечето от тези програми. След това, в зависимост от версията на Windows, на която работи, червейят ще опита един от двата преди това неизвестни метода за получаване на права на администратор на компютъра. Както и преди, никой не знаеше за тези скрити уязвимости преди появата на този червей.

След това червейят е в състояние да скрие следите от своето присъствие в дълбините на ОС, така че нито една антивирусна програма да не може да го открие. Той се крие толкова добре, че дори когато търсите на диска в мястото, където този червей трябва да бъде, няма да видите нищо. Този червей се е крил толкова добре, че успя да се движи в интернет в продължение на година и нито една компания, свързана с безопасността, не призна дори фактът на неговото съществуване..

След това червейят проверява дали може да се свърже с интернет. Ако може, той опитва да посети сайтове www.mypremierfutbol.com или www.todaysfutbol.com. Тогава тези сървъри бяха в Малайзия и Дания. Той отваря криптикан канал за връзка и уведомява тези сървъри, че новият компютър е успешно завладян. Защо червейът автоматично се обновява до последната версия?

След това червейът копира себе си на всяко друго USB устройство, което случайно сте свързали. Той прави това с помощта на инсталирането на внимателно проектиран фалшив драйвер за диск. Този драйвер съдържаше цифров подпис на Realtek. Това означава, че авторите на червея по някакъв начин успели да проникнат в най-защитеното място на една голяма тайванска компания и да откраднат най-секретния ключ на компанията, така че самата компания да не узнава.

По-късно авторите на този драйвер започнаха да подпечатват него с тайния ключ на JMicron, друга голяма тайванска компания. И отново авторите успяха да се промъкнат в най-защитеното място в тази компанията и да откраднат най-секретния ключ, който притежава това компанията, така че те изобщо да не узнаят.

Червейът, за който говорим е много сложен. И ние дори още не сме започнали.

След това червейът започва да използва два наскоро открити бъга в Windows. Един бъг е свързан с мрежови принтери, а другият – с мрежови файлове. Червейът използва тези бъгове, за да се инсталира по локалната мрежа на всички други компютри в офиса.

След това червейът започва да търси специфичен софтуер, разработен от Siemens за автоматизация на големи индустриални машини. Веднага щом го намери, той (както вече се досетихте) използва още един непознат бъг, за да копира себе си в програмируемата логика на индустриалния контролер. Веднъж щом червейът се настани в този компютър, той остава там завинаги. Никакво количество замени или „дезинфекция“ на компютъра не може да го отстрани.

Червейът търси прикрепени индустриални електрически мотори от две конкретни компании. Едната от тези компании е в Иран, а другата във Финландия. Моторите, които търси, се наричат "частотно-регулируеми приводи". Те се използват за управление на индустриални центрофуги. С помощта на центрофугите могат да се пречистват множество химически елементи.

Например, уран.

Сега, след като червеят е получил пълен контрол над центрофугите, той може да направи с тях всичко, което поиска. Може да ги изключи всичките. Може незабавно да ги унищожи – достатъчно е да ги завърти на максимална скорост, докато не се блъснат като бомби, убивайки всички, които случайно се окажат наблизо.

Но не. Това е сложен червей. И червейът има други планове..

Веднъж щом е завладял всички центрофуги в твоя завод… червейят просто заспива.

Минават дни. Или седмици. Или секунди.

Когато червейът реши, че времето е дошло, той бързо се събужда. Той случайно избира няколко центрофуги, когато те пречистват уран. Червейът ги блокира така, че ако някой забележи нещо странно, няма да може да изключи тези центрофуги.

И след това, тихо, червейът започва да завърта тези центрофуги… малко неправилно.Съвсем малко. Просто, знаете, леко проходимо бързо. Или в самото малко малко бавно. Само малко извън безопасните параметри.

В същото време, той увеличава налягането на газа в тези центрофуги. Този газ се нарича UF6. Много вредна субстанция. Червейът променя налягането на този газ леко извън безопасните стойности. Точно така, че когато газът попадне в центрофугите по време на работа, да има малък шанс да се превърне в камъни..

Центрофугите не обичат да работят твърде бързо или твърде бавно. И камъните също не им харесват.

Но червейът има още един трик. И той е гениален.

В допълнение към всички свои действия, червейят започва да възпроизвежда запис на данни от последните 21 секунди работа, които е записал, когато центрофугите работят нормално.
Червейът възпроизвежда записа отново и отново, в цикъл.

В резултат на това данните за всички центрофуги за хората изглеждат напълно нормални. Но това са само фалшиви записи, създадени от червея.

А сега си представете, че сте отговорни за пречистването на уран с помощта на този голям индустриален завод. И изглежда, че всичко работи добре. Може двигателите да звучат малко странно, но цифрите на компютъра показват, че моторите на центрофугите работят както трябва.

След това центрофугите започват да се счупват. В произволен ред, една след друга. Обикновено те умират тихо. Въпреки това, в някои случаи, те организират истинско представление.. Произведството на уран рязко намалява. Уран трябва да бъде чист. Вашият уран не е достатъчно чист, за да се направи нещо полезно с него.

Какво бихте направили, ако управлявахте този завод за обогатяване на уран? Бихте проверявали всичко отново и отново, без да разбирате каква е проблемът. Можете да смените всички компютри в завода, ако желаете.

Но центрофугите все пак ще се счупят. И нямате възможност да разберете защо.

С времето, под вашия надзор, около 1000 центрофуги се счупват или изключват. Вие лудо опитвате да разберете защо всичко не работи както е планирано.

Това всъщност се е случило.

Никога не бихте очаквали, че всички тези проблеми са създадени от компютърния червей, най-хитрия и умен компютърен червей в историята, написан от невероятно секретен екип с неограничени средства и време. Червейът е проектиран с една единствена цел: да премине през всички известни методи за цифрова защита и да унищожи ядрената програма на вашата страна, така че да не бъде уловен.
Създаването на програма, която да може да направи ЕДНА от тези неща само по себе си е малко чудо. Създаването на програма, която може да прави ВСИЧКО това и много повече…

… за това червеят Stuxnet трябваше да стане най-сложната програма, написвана някога.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster