Новости
Прочитали: 3039 Коментарів: 97 Рейтинг: 102
Microsoft критикують багато, і не можна сказати, що компанія не прислухається до цієї критики. Microsoft намагається зробити свої системи більш безпечними - за допомогою технологій, що виключають можливість тих чи інших поширених атак зловмисників. Наприклад, атак на переповнення буфера.
Припустимо, у нас є програма, в яку передаються ті чи інші дані (параметри командного рядка або інформація, що вказується користувачем на сайті). Скажімо, ця програма приймає на вхід ваші ім'я та прізвище. Цілком логічно, що і те і інше має не дуже велику довжину. А раз так, то годі й обчислювати кожен раз, скільки даних було передано, а зарезервувати невелику область і записувати їх туди. Однак зловмисник може передати на вхід дані, обсяг яких перевищує зарезервоване під їх прийом сховище. І якщо програма не перевіряє, скільки даних було передано насправді, то після заповнення відведеної ділянки процедура прийому продовжить запис за його межами - перезаписуючи сусідні дані, а то і код.
Якщо ж хакер сформує передані дані спеціальним чином, то він зможе змінити код програми повністю.
Фахівець компанії One Up Security Джастін Тафт (Justin Taft) виявив вразливість в складі Valve Source SDK . Дослідник пише, що уразливість в движку Source зачіпала такі популярні ігри, як Counter Strike: Global Offensive, Team Fortress 2, Left 4 dead 2, Potral 2.
Справа в тому, що ігри, які працюють на движку Source, використовують Source SDK, щоб сторонні компанії і незалежні розробники могли створювати власні кастомниє моди. До того ж файли карт для движка Source дозволяють розробникам додавати кастомний контент (текстури, скіни, моделі трупів), який завантажується разом з картою.
Корінь проблеми лежав в звичайному переповненні буфера (buffer overflow), через вразливість можна було домогтися і виконання довільного коду на клієнтської або серверної стороні. Як приклад експлуатації бага Тафт подає такий кейс: якщо створити кастомом модель трупа, яка буде завантажуватися після смерті ігрового персонажа, до цієї моделі можна прив'язати завантаження довільного шкідливого коду. Як видно на ДІФКУ нижче, смерть гравця в TF2 тягне за собою виконання шкідливих інструкцій.
Дослідник повідомляє, що розробники Valve усунули проблему ще в червні 2017 року, і розробників модів попросили оновити Steam Source SDK до актуальної версії, встановивши цей патч .
Поки Тафт не оприлюднював proof-of-concept експлоїта, так як він хоче дати розробникам більше часу на установку виправлення. Проте, через декілька тижнів експлоїт буде опублікований тут .
https://xakep.ru/2017/07/21/valve-source-bug
На жаль, незважаючи на широку популярність цього типу атаки, далеко не всі програми захищені від нього.
Ще один варіант атаки за допомогою перезапису даних: прописати в область, відведену під дані, потрібний код і передати на нього управління. У цьому випадку основна частина програми не змінюється.
Для захисту від цієї атаки компанія Microsoft розробила спеціальну технологію - DEP. При її використанні місця, відведені під дані, позначаються як «невиконувані» (NX). Якщо додаток спробує виконати код з сегмента пам'яті з міткою NX, механізм DEP заборонить це дія.
Підтримка DEP додана в Windows починаючи з версій XP SP2, Server 2003 SP1 і 2003 R2. При цьому реалізацій DEP є дві: апаратна на рівні процесорів і програмна.
Щоб дізнатися, чи підтримує ваша система апаратну реалізацію, в Панелі управління відкрийте настройки продуктивності, а потім перейдіть на вкладку Запобігання виконання даних.
У нижній частині вікна налаштувань конфігурації служби DEP зазначений тип реалізації даної служби.
Служба DEP підтримує два рівня захисту:
- Перший рівень захищає тільки системний і виконуваний код ОС Windows.
- Другий рівень захищає весь виконуваний код в системі. Механізми DEP застосовуються і до системного коду Windows, і до додатків компанії або незалежних виробників.
Адміністратори можуть налаштовувати рівні захисту за допомогою конфігураційного екрану служби DEP.
Перевірити, чи захищений ту чи іншу програму, можна, відкривши Диспетчер завдань і налаштувавши відображення стовпця Запобігання виконання даних.
Перемога? Неповна.
DEP не знає, хто спробував виконати код з області даних: зловмисник або сама програма, і автоматично реагує на це завершенням програми. Тому тепер кіберзлочинці отримали можливість реалізації атаки на відмову в обслуговуванні. Імітуючи спробу виконати код з області даних, вони змушують систему цю програму завершити.
Маловідомий факт. Перші антивіруси містили описи вірусів безпосередньо в собі. Але зростання кількості вірусів привів до того, що опису винесли в окрему від програми вірусну базу. А вимоги постійних оновлень привели до того, що ця база повинна оновлюватися з перезаписом застарілих даних. Всі знають, що антивірус зберігає свої вірусні бази в пам'яті. Але як вони там розміщуються? Виділяється область даних, в неї записуються сигнатури і код евристики. І з цієї області виповнюється код баз даних.
Антивірусні програми відносяться до невеликого числа програм, для яких дозволено виконання коду з області даних, так як інакше вони працювати не можуть.
#Windows # антивірус # гри # вразливість # експлойт Перемога?Але як вони там розміщуються?