Безпека Windows. технологія SEHOP

У цій статті поговоримо про технології захисту Windows під назвою SEHOP, що дозволяє ускладнити завдання зловмисникові, який вирішив зламати вашу систему. технологія SEHOP -  Structured Exception Handler Overwrite Protection (Захист від перезапису обробника структурних винятків) - це антіексплоітная технологія, призначена для блокування досить часто респонденти користуються послугами методики злому систем Windows- SEH overwrite.

Спробуємо коротко розібратися, що ж таке технологія SEH. SEH - Structured Exception Handling (структурна обробка винятків) - механізм в ОС Microsoft Windows, який дозволяє додаткам отримувати управління при виникненні програмних і апаратних винятків, таких як виконані заборонених інструкцій, розподіл на нуль, порушення доступу до пам'яті і т.д, і обробляти ці помилки самостійно без використання операційної системи. Технологія SEH дозволяє програмістам контролювати обробку винятків, а також є налагоджувальний засобом. У тому випадку, якщо виключення оброблено, додаток аварійно завершується і користувач бачить знайоме вікно з помилкою «Програма виконала неприпустиму операцію і буде закрита».

Покажчики на SEH-обробники в основному знаходяться в стеці в SEH-фреймах, і переповнює буфер може перезатірать ці обробники. Зловмисники можуть вдатися до перезапису SEH-фреймів з метою перехоплення управління шляхом підміни SEH-обробника і / або для придушення аварійного завершення програми при виникненні виключення (тим самим демаскує факт атаки).

Технологія, використовувана хакерами для перезапису оброблювачів SEH називається Structure Exception Handler (SEH) overwrite. За допомогою SEH overwrite атакуючий може передати управління на шкідливий код, який впроваджений через будь-яку доступну вразливість (зазвичай через переповнення буфера).

У Windows Server 2003 існувала спеціальна технологія захисту від переповнення буфера, що функціонує саме на основі SEH (таким чином, реалізуються і багато інших зашиті цього типу). Хакер, перехопивши SEH-обробник і замінивши його своїм, обходить цю технологію захисту, яка просто не спрацьовує.

Для боротьби з SEH overwrite Microsoft в 2009 році працювало спеціальну технологію SEHOP. Дана технологія була впроваджена Windows Vista SP1, Windows Server 2008 і всі наступні версії Windows. Однак по - замовчуванням SEHOP включений тільки на серверних платформах (Windows Server 2008/2008 R2 / 2012).

Механізм захисту від перезапису обробника структурних винятків застосовується під час роботи програми. Це означає, що він дозволяє захистити додатки незалежно від того, чи були вони скомпільовані з використанням сучасних засобів захисту, таких як / SAFESEH, або без них. Крім того, варто відзначити, що 64 бітний код не схильний до даного типу атаки, тобто SEHOP захищає тільки 32-х бітові додатки, включаючи ті, що виконуються під Wow64 на 64-х бітних системах.

На клієнтських платформах SEHOP вимкнений через несумісність з деякими версіями клієнтського ПЗ. Варто відзначити, що все сучасне ПО пишеться з урахуванням особливостей архітектури SEHOP, так що для підвищення безпеки вашої системи Windows SEHOP слід включити. У тому випадку, якщо після активації цього механізму захисту почнуть з'являтися різні помилки в прикладному ПО, на жаль - воно не сумісне з системою захисту від перезапису SEH. В цьому випадку, спробуйте відмовитися від несумісності програмного забезпечення (або оновити його на більш свіжу версію, відключити SEHOP для окремого процесу або для всіх).

Як активувати SEHOP в Windows для всіх додатків

Включити технологію захисту SEHOP можна за допомогою модифікації реєстру (нагадаємо, що в Windows Server 2012/2008 R2 / 2008 ця функція вже активована)

  1. Відкрийте редактор реєстру regedit.exe
  2. Перейдіть в гілку HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ kernel
  3. Знайдіть ключ DisableExceptionChainValidation, якщо він відсутній - створіть його (тип - Dword, ім'я - DisableExceptionChainValidation)
  4. Задайте ключу DisableExceptionChainValidation значення 0 (Включити SEHOP).
  5. Закрийте редактор реєстру та перезавантажте ПК

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

Крім того, майте на увазі, що ряд додатків можуть функціонувати належним чином саме через SEHOP. У тому випадку, якщо потрібно, щоб функція SEHOP, цілком, можна відключити цю функцію для конкретних процесів.

SEHOP для окремого процесу

Щоб відключити SEHOP для окремого процесу, відкрийте редактор реєстру і перейдіть в гілку:

  • Для 32-бітної Windows HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Image File Execution Options
  • Для 64-бітної Windows HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows NT \ CurrentVersion \Image File Execution Options

всередині гілки Image File Execution Options створіть нову гілку з ім'ям процесу, для якого ви хочете створити виняток SEHOP (наприклад, skype.exe). Усередині даного розділу створіть новий ключ DisableExceptionChainValidation і задайте йому значення 1 (Тим самим ви вимкніть SEHOP для процесу skype.exe).

Значення 0 - включити SEHOP для процесу.