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

От преводача: Намерих на 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

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