Найскладніша програма

Від перекладача: я знайшов на 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

Додати коментар або відгук