Най-трудната програма

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

Затегнете коланите.

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

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

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

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

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

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

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

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

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

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

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

Червеят търси прикачени индустриални електродвигатели от две конкретни компании. Едната от тези компании е в Иран, а другата във Финландия. Двигателите, които търси, се наричат ​​"задвижвания с променлива честота". Използват се за управление на индустриални центрофуги. Центрофугите могат да се използват за пречистване на много химически елементи.

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

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

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

След като улови всички центрофуги във вашия завод... червеят просто заспива.

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

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

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

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

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

Но на червея му остава още един последен трик. И той е брилянтен.

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

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

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

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

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

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

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

Точно това се случи в действителност

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

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

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

Добавяне на нов коментар