Цифрова безпека →  Бойовий хробак Stuxnet

Цілком рядова, на перший погляд, комп'ютерна інфекція, виявлена минулого літа, виявилася найнебезпечнішою кіберзброєю, здатною на реальне знищення цілей у фізичному світі.

В останніх числах вересня канадський Ванкувер приймає у себе конференцію з комп'ютерної безпеки Virus Bulletin, щорічно мігруючою по різних містах Північної Америки та Західної Європи. Серед доповідей цьогорічної конференції, поза всяких сумнівів, найбільший інтерес привертають два незалежних виступи від Kaspersky Lab і Symantec, присвячені одній і тій же темі: безпрецедентно витонченому комп'ютерному "гіпер-хробакові" Stuxnet.

Якщо змалювати предмет у кількох словах, то Stuxnet являє собою ще невідомий публіці клас програмного забезпечення, вже розробленого на державному рівні для військових наступальних кібератак. Ця програма використовувала для невидимого впровадження одночасно чотири різних і ще непропатченних діри в захисті систем (zero-day exploits), два викрадені у відомих виробників справжніх сертифікати для легального вбудовування своїх кодів в операційну систему і дійсно дуже розумний механізм самостійного багатоетапного розповсюдження. Механізм, який починається із зараження звичайних Windows-ПК інфікованою USB-флешкою, а закінчується вбудовуванням власного смертоносного коду в ПЗ Siemens S7 SPS для промислових систем управління підприємствами. Програма Stuxnet проникла в десятки тисяч промислових комп'ютерних систем по всьому світу, але, на велике щастя, практично жодної з них це нічим не загрожує. Експерти з кібербезпеки переконані, що Stuxnet - це високоточна, суто вибіркова зброя, гостро заточена під пошук і знищення однієї-єдиної конкретної мети.

В принципі, у фахівців до цього часу навіть є спільне розуміння, що саме це була за мета. Але оскільки ніяких офіційних заяв на цей рахунок жодною державою не зроблено (та й навряд чи вони взагалі з'являться), має сенс детальніше розібратися з деталями і логікою всієї цієї захоплюючої історії.

Вперше Stuxnet потрапив у поле зору антивірусних фірм в середині червня 2010, коли не найвідоміша фірма комп'ютерної безпеки VirusBlokAda з Білорусі виявила цього хробака в комп'ютерах, що належать одному їх іранському клієнтові. Назвою для шкідливої програми послужило ім'я одного з файлів, виявлених в тілі хробака, а всесвітню популярність Stuxnet знайшов приблизно через місяць. Тому що в липні корпорація Microsoft підтвердила, що цей хробак активно заражає комп'ютери під ОС Windows, що працюють у складі великомасштабних систем управління промисловими підприємствами.

Такого роду системи керування часто позначають акронімом SCADA - англомовним скороченням від словосполучення "supervisory control and data acquisition", тобто "Диспетчерське управління і збір даних". SCADA-системи нині керують в індустрії роботою чого завгодно - від електростанцій і заводського виробництва до нафтопроводів і військових об'єктів.

З цього моменту хробак Stuxnet став об'єктом широких і уважних досліджень фахівців з комп'ютерної безпеки. Які досить скоро і цілком одностайно були змушені визнати, що нічого подібного їм у своїй практиці бачити раніше не доводилося. Тоді ж у липні Stuxnet був класифікований як гіперускладнена шкідлива програма, створена, найімовірніше, цілою командою досвідчених розробників на замовлення якоїсь держави.

Оцінка одного з вражених інженерів, що займався "препарування" хробака, звучала приблизно так: "Після десяти років щоденних занять зворотнім інжинірингом кодів, я ще ніколи не зустрічався ні з чим, що хоча б близько було схоже на це". Небувало величезний для подібного типу програм (розмір виконуваного коду складає близько півмегабайта), рясно зашифрований і занадто складний для швидкого розуміння його призначення, цей хробак надзвичайно здивував фахівців. За словами іншого антивірусного експерта, у порівнянні з хробаком Stuxnet всі інші примітні атаки останнього часу, на зразок пріснопам'ятної Aurora, в ході якої були хакнути мережі Google і десятків інших провідних компаній, виглядають просто дитячими іграшками.

При всій своїй перевантаженості програма Stuxnet написана надзвичайно добре і грамотно. Вона дуже, дуже ретельно заточена під те, щоб нічого не поламати і не порушити в заражаємо нею системах, щоб не було видно абсолютно ніяких зовнішніх ознак інфікування, а найголовніше, вона робить все для гарантування того, щоб її остаточна місія, яка маніпулює параметрами і кодами в керуючому комп'ютері SPS, була запущена і виконана лише в тому випадку, коли є повна впевненість, що це саме та сама система, на яку програма спочатку була націлена.

Проте розуміння всіх цих нюансів прийшло, звичайно ж, далеко не відразу. Спочатку фахівці фірм Symantec і Kaspersky Lab, приблизно одночасно і всерйоз взялися за боротьбу з хробаком, виявили лише один небезпечний zero-day-баг. Це була діра в захисті від приєднуються до ПК USB-пристроїв, що одержала назву LNK, і спрацьовувала вона для інфікування майже будь-яких комп'ютерів - в незалежності від версії операційної системи Windows, починаючи з викопної Win 2000 і до найсучаснішої, ймовірно вельми безпечної Windows 7.

Ще через кілька тижнів досліджень фахівці обох антивірусних фірм незалежно один від одного виявили, що Stuxnet насправді використовує для впровадження зовсім не одну, а чотири раніше невідомих zero-day-вразливостей (баг спулера друку і два EoP-бага, що підвищують привілеї в системі). Одночасне використання відразу чотирьох zero-day-багів - це дуже і дуже незвичайна властивість шкідливої програми, що ніколи раніше не спостерігалося фахівцями ні в Symantec, ні в Касперського.

Відповідно, не доводилося їм бачити і поведінки настільки просунутого хробака в роботі. Потрапляючи в корпоративну мережу - на першому етапі через заражений USB-пристрій - Stuxnet використовував баги, що підвищують його привілеї (EoP), щоб отримати доступ адміністратора до інших ПК, розшукував системи, в яких працюють програми управління WinCC і PCS 7 SCADA, захоплював ці системи, використовуючи баг спулера друку, а потім намагався застосовувати прийнятий за замовчуванням фабричний пароль Siemens для захоплення управління програмним забезпеченням SCADA.

Після чого хробак отримував можливість перепрограмувати так звану програму PLC (programmable logic control - програмований логічний контролер), щоб диктувати всім керованим системою механізмам нові команди та інструкції. Попутно слід підкреслити, що найнебезпечніші коди атакуючого хробака для всякої зараженої системи виглядали абсолютно легітимними, оскільки люди, які стояли за створенням Stuxnet, попередньо викрали принаймні два цифрових сертифіката, що належать компаніям Realtek Semiconductor і JMicron Technology. Драйвери та програми цих фірм давно і міцно прописані в операційних системах комп'ютерів, тому дії правильно підписаних кодів Stuxnet не викликали абсолютно ніяких сигналів тривоги.

Ще один цікавий нюанс - це один із способів, яким атакуюча сторона мінімізувала ризики виявлення своєї програми. У кожному пристрої USB, куди підсідав Stuxnet, працював лічильник, який контролював число заражаємо пристроєм машин і не дозволяв інфікувати більше трьох комп'ютерів. Іншими словами, атакуючі, судячи з усього, таким чином намагалися обмежити масштаби поширення хробака, щоб він залишався якомога ближче до об'єкта, проти якого був спрямований.

Функціонування хробака Stuxnet розраховане на повністю автономну роботу програми і не вимагає ні підключень до інтернету для отримання додаткових інструкцій, ні управління з боку людини взагалі. У програмі виявлено настільки багато різних типів виконуваних функцій, що для експертів очевидно - створенням цього продукту займалася команда людей з багатим досвідом у різних галузях: від конструювання невидимих руткітів та експлуатації багів проникнення до роботи з базами даних.

Шкідливе ПЗ написано на безлічі різних мов. З одного боку, це C, C++ і інші об'єктно-орієнтовані мови високого рівня. А з іншого - коди STL (Statement List), низькорівнева мова типу асемблера, що використовується в системах управління промисловими процесами. Плюс взагалі вперше спостерігається фахівцями руткіт PLC, що приховує шкідливий STL-код. Якщо ж говорити про роботу хробака з SCADA-системами взагалі, то в першу чергу слід підкреслити, що ця область додатку комп'ютерів вирізняється дуже високим рівнем спеціалізації. Інакше кажучи, за свідченням фахівців, розробники Stuxnet у своєму розпорядженні неодмінно повинні були мати для тестування саме те реально застосовується апаратне забезпечення, під яке заточувати їхня кіберзброя. Бо всі ознаки свідчать, що вони досконало і в деталях знали нюанси роботи техніки на тому конкретному об'єкті, який був обраний метою атаки.

Починаючи з цього моменту розбору представляється найбільш логічним від спостережень та свідчень антивірусних експертів з Symantec і Kaspersky Lab перейти до результатів аналізу, виконаного фахівцем з безпеки комп'ютерних промислових систем з фірми Siemens. Бо Stuxnet був, поза сумнівом заточений проти ПЗ саме цієї компанії, котра впевнено домінує на ринку SCADA-систем, а вельми шановний німецький фахівець з безпеки промислових систем Ральф Лангнер (Ralph Langner), що працює в Siemens, нещодавно опублікував у мережі результати своїх досліджень, присвячених цікавим властивостям небаченого до сьогодні гіпер-хробака з кіберпростору.

Спочатку, як і у експертів з антивірусних фірм, першої ідеєю Лангнер було те, що Stuxnet написали для викрадення промислових секретів - якихось фірмових формул, рецептів або схем, які можуть бути використані конкурентами для виробництва контрафактної продукції. Однак, заглибившись у аналіз властивостей хробака, виявив Лангнер щось суттєво інше.

Хробак Stuxnet дійсно зайнятий безперервними пошуками, проте розшукує він дуже специфічні налаштувальні параметри системи, щось на кшталт її "відбитків пальців", які говорять, що саме працює під управлінням PLC або програмованого логічного контролера. Як вже говорилося, промислові SCADA-системи вельми специфічні для кожної конкретної фабрики. Вони складаються з безлічі невеликих вузлів, які вимірюють температуру, тиск, потоки рідин і газів, вони управляють вентилями, моторами, і всім іншим господарством, необхідним для підтримання нерідко небезпечних промислових процесів у рамках їх норм безпеки і в межах ефективності. Таким чином, обидва компоненти систем - апаратні модулі конфігурації та програмне забезпечення - є специфічним набором, виготовляється для кожної конкретної фабрики. Ну а з точки зору хробака Stuxnet всі ці речі виглядають як "відбиток пальців". І лише тільки в тому випадку, якщо ідентифікована належна конфігурація, він починає робити більше, багато більше, ніж просто тихо поширювати себе в пошуках мети.

(Саме ця особливість програми свідчить про одну принципово важливою речі: атакуюча сторона дуже точно знала конфігурацію обраної мети. Вона напевно повинна була мати підтримку інсайдера або групи інсайдерів всередині фабрики, або ще якийсь спосіб доступу до програмної частини та апаратної конфігурації обраного для атаки об'єкта.)

Серед кроків, які, як виявив Лангнер, робить Stuxnet при виявленні шуканої мети, виявилися зміни у фрагментах програмного коду Siemens, відомого як "оперативний Блок 35". Цей важливий компонент програми Siemens займається моніторингом критичних виробничих операцій - речей, які вимагають термінової реакції в межах 100 мілісекунд. Втручаючись у роботу Блоку 35, Stuxnet може, приміром, легко викликати аварійний збій у роботі, що призведе до саморуйнування промислового процесу. Так, в усякому разі, це бачить Лангнер.

Зокрема, в його аналітичній роботі покроково демонструється, що саме відбувається з системою, коли Stuxnet знаходить свою мету по її "відбиткам". Як тільки Stuxnet виявляє критично істотну функцію, котра спрацьовує в модулі PLC, шкідлива програма бере керування системою на себе. Один із самих останніх кодів, який Stuxnet відправляє в приречену систему, носить виразну назву "DEADF007". Ну а потім очевидно починається феєрверк, хоча точне призначення захоплених програмою функцій залишається невідомим, говорить Лангнер. Це може бути і переклад швидкості обертання турбіни на максимально можливі оберти, і відключення системи змащення, або ще якісь життєво важливі для нормальної роботи функції системи (конкретна природа ушкоджень, що спричиняються хробаком, просто невідома, тому що з боку за кодом SPS не можна побачити , що саме роблять задані параметри, не бачучи схему тієї конкретної фабрики, якою управляє система). Що б це не було, говорить Лангнер, аналіз показує, що Stuxnet скасовує захисні функції і подає в систему свої, фатальні команди: "Як тільки вихідний код PLC перестає виконуватися, можна очікувати, що незабаром якась річ вибухне. І швидше за все, це виявиться щось велике".

За свідченням Лангнера, "Stuxnet - це стовідсотково цілеспрямована кібератака, націлена на знищення якогось промислового процесу у фізичному світі. Це явно не має відношення до шпигунства і викрадення інформації, як вважали деякі. Це абсолютно диверсійна атака".

Оскільки нині практично всі дослідники, які вивчають цього хробака, цілком одностайні у висновках про те, що Stuxnet був сконструйований надзвичайно витонченим і вмілим майстром - швидше за все, фахівцями державної спецслужби - і був створений для руйнування чогось великого і важливого, то тепер залишається з'ясувати лише два "простих" питання: (а) що за держава стоїть за Stuxnet і (б) проти якого об'єкта була спрямована диверсія?

На сьогоднішній день є достатня кількість фактів і доводів для того, щоб (не напевно, звичайно, але) з високим ступенем достовірності відповісти на обидва цих питання.

Закінчення буде

Переклад з computerra.ru

коментарі:

Мирослав 28.09.2010 05:17
Скайнет рветься до влади...
tercius 30.09.2010 17:35
це не скайнет, а цілком реальна ізраїльська розвідка
webdevbyjoss 15.11.2010 14:13
ZOG вислав по вас чорний гелікоптер
MFX 09.11.2010 15:37
кгб кдб

додати коментар: