`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

CrowdStrike як ахіллесова п'ята Windows

+22
голоса

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

Глобальний збій

Дата 19 липня вже увійшла в історію інформаційних технологій, як одна з найсумніших подій. Цього дня близько 8,5 млн Windows-платформ були заблоковані, продемонструвавши горезвісний Blue Screen Of Death. Це сталося майже одночасно на всіх континентах. При цьому далеко не всі комп'ютери, що постраждали від цього інциденту, вдалося оперативно повернути в працездатний стан, хоча в ОС Windows передбачені для цього відповідні інструменти.

Новинна стрічка рясніла повідомленнями про скасовані рейси найбільших авіакомпаній, причому Delta не змогла повернутися в нормальний режим роботи навіть через кілька днів. Канал Sky News TV раптово припинив своє мовлення, а команду Mercedes відмова комп'ютерів застала під час етапу змагань перегонів Formula 1 в Угорщині. Причиною ж усіх цих відмов стало невдале оновлення програмного забезпечення компанії CrowdStrike.

Примітно, що CrowdStrike, яка заявляє про себе як про лідера на ринку «захисту кінцевих точок», має на це право, оскільки її ринкова частка становить близько 20%. До лінійки її програмного забезпечення під операційні системи Windows, Linux і Mac входять антивіруси, брандмауери, системи виявлення та запобігання вторгненням (IDP) тощо. Головним же винуватцем глобального інциденту стало оновлення, випущене Crowdstrike для свого продукту Falcon.

Хто винен?

Одразу ж після масового виходу з ладу систем компанія Crowdstrike опублікувала заяву з визнанням своєї провини: «CrowdStrike активно допомагає клієнтам, які постраждали від дефекту в недавньому оновленні контенту для хостів Windows. Хости Mac і Linux не були зачеплені. Проблему було виявлено та ізольовано, а її виправлення вже розгорнуто. Це не було кібератакою». Здається, що ключовою є остання фраза цієї заяви, тому що всі ми пам'ятаємо про деструктивні наслідки Petya. Але оскільки в цьому випадку не йдеться про кібератаку, одразу ж виникло питання, як вдалося покласти на лопатки таку велику кількість добре захищених систем.

І вже незабаром з'явилися технічні деталі. Виявляється до краху Windows призвів процес CSAgent.sys. А інструкція, яка призвела до збою, - це «mov r9d, [r8]» з Асемблеру. Вона наказує перемістити байт за адресою r9d на адресу r8. Проблема в тому, що r8 - це недійсна адреса, і тому процес зазнає краху. Таким чином, збій був викликаний тим, що процес CSAgent.sys зчитував новий файл «вмісту», який CrowdStrike розсилала всім клієнтам під назвою «C-00000291-*.sys» (де * може містити додаткові символи). І щось пішло не так із цим файлом і його розбором.

А вже через день сама компанія CrowdStrike поділилася справжніми причинами інциденту.

1. Метою оновлення було виявлення каналів зі шкідливими іменами. Продукт Falcon компанії CrowdStrike спостерігає за тим, як процеси обмінюються даними на машині або в мережі, щоб спробувати виявити шкідливу активність. Оновлення додає новий файл правил для фільтрації підозріло названих каналів. Іменований канал у світі Windows - це «іменований, односторонній або дуплексний канал для зв'язку між сервером каналу та одним або кількома його клієнтами». Ці канали можуть використовуватися для міжпроцесної взаємодії (два процеси розмовляють один з одним) або для зв'язку мережею. Іменовані канали - це загальна концепція операційних систем для міжпроцесної взаємодії: Unix також використовує такий підхід.

2. Випущено новий конфігураційний файл із новими правилами/найменуваннями. CrowdStrike називає файли конфігурації, що визначають правила поведінки, наприклад імена для підозрілих іменованих каналів, «файлами каналів». Вони зберігають усі ці канальні файли в теці C:\Windows\System32\drivers\CrowdStrike\. Це пронумеровані файли, а правила для іменованих каналів знаходяться під номером 291. Таким чином, кожен файл із шаблоном іменування «C-00000291-*.sys» є правилом для цієї категорії.

CrowdStrike випустила новий файл іменування в оновленні.

3. Необроблена помилка призвела до краху процесу та операційної системи. При цьому CrowdStrike поділилася лише дуже коротким резюме:

«Оновлення конфігурації викликало логічну помилку, яка призвела до краху операційної системи. Це не пов'язано з нульовими байтами, що містяться у файлі каналу 291 або будь-якому іншому файлі каналу».

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

Що робити?

Відновлення працездатності систем, які постраждали в цьому інциденті, ускладнюється тим, що вимагає фізичного доступу до них. За кілька годин після інциденту CrowdStrike опублікувала кроки з усунення наслідків для ІТ-адміністраторів і розробників, які бажають розблокувати постраждалі платформи. Пропонувалося виконати такі дії:


- Завантажте Windows у безпечний режим або середовище відновлення Windows.

- Перейдіть у каталог C:\Windows\System32\drivers\CrowdStrike.

- Знайдіть файл з іменем «C-00000291*.sys» і видаліть його.

- Завантажте хост

Для відновлення може знадобитися локальний адміністратор машини з правами на видалення помилкового файлу. Ці кроки досить складні, щоб звичайні користувачі насилу впоралися з відновленням: тому в більшості компаній ІТ-персонал повинен вручну виправляти кожну машину. Крім того, у багатьох компаніях постраждали всі ноутбуки з Windows. Один з ІТ-адміністраторів поділився враженням від цього завдання, опублікувавши зображення 2000 ноутбуків, які потрібно було полагодити за один уїк-енд.

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

Так розробник iOS і фахівець з Windows Адам Демасі (Adam Demasi) створив інструмент Unistrike днем пізніше. За допомогою додаткових налаштувань можна створити USB-накопичувач для підключення до кожної постраждалої машини для прискорення відновлення.

Компанія Microsoft також випустила аналогічний інструмент відновлення наступного дня після збою.

Два дні потому компанія CrowdStrike повідомила, що тестує новий, швидший метод відновлення для клієнтів.

Робота над помилками

Аналізуючи причини події, CrowdStrike визнала, що використовувана компанією система тестування якості коду дала збій. Щоб запобігти подібним інцидентам у майбутньому, CrowdStrike обіцяє ретельніше перевіряти оновлення Rapid Response Content на наявність помилок. Компанія повідомила, що для цього її розробники використовуватимуть понад пів дюжини різних методів тестування програмного забезпечення. Одним із них стане метод ін'єкції помилок, який полягає в навмисному внесенні помилок у програму, щоб перевірити, чи зможе вона надійно відновитися.

Компанія також оновить системи, що використовуються для поширення оновлень. Content Validator, внутрішня платформа, яка використовується для перевірки надійності оновлень Rapid Response Content перед випуском, отримає додаткові «перевіркові» функції для виявлення помилок. Одна з функцій спеціально розроблена для виявлення помилок, які призвели до збоїв у Windows минулого тижня.

CrowdStrike також удосконалить інші частини своєї інфраструктури управління оновленнями. Надалі компанія планує впроваджувати Rapid Response Content поступово, а не відразу на всю встановлену базу. Після розгортання оновлення на початковому «канарковому» наборі пристроїв розробники CrowdStrike перевірятимуть помилки, перш ніж випустити оновлення в ширшому масштабі.

Програму-датчик Falcon, яку платформа встановлює на комп'ютери клієнтів, також буде оновлено в рамках цієї ініціативи. CrowdStrike планує оснастити сенсор новими функціями для відновлення після помилкових оновлень. Крім того, клієнти Falcon отримають можливість налаштовувати, як і коли вони хочуть завантажувати оновлення.

Ще одним фактором, що вплинув на можливість такого збою, стала можливість запуску під Windows стороннього програмного забезпечення з доступом до ядра ОС. Для порівняння, в macOS сторонні програми запускаються тільки на рівні користувача, а не ядра. Причину такої ситуації розкрив представник Microsoft: «Компанія не може юридично відгородити свою операційну систему так само як це робить Apple, через домовленість, досягнуту з Європейською комісією після подання скарги. У 2009 році Microsoft погодилася надати виробникам захисного програмного забезпечення такий самий рівень доступу до Windows, який отримує Microsoft».

У результаті, Microsoft могла б «заборонити» постачальникам засобів безпеки працювати в просторі ядра тільки в тому випадку, якщо вона також не запускала там свої власні програми безпеки. Таким чином, хоча Microsoft можна вважати частково відповідальною за цей збій, у компанії було мало вибору в діях, які створили умови для його виникнення.

Захищені ноутбуки Getac B360 - нове покоління мобільної продуктивності для роботи в екстремальних умовах

+22
голоса

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT