Безопасность Windows. Технология SEHOP | Windows для системных администраторов

Безопасность 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 атакующий может передать  управление на вредоносный код, который внедрен через любую доступную уязвимость (обычно через переполнение буфера).Взлом через SEH

В 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). Включить SEHOP в Windows
  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).

Отключить sehop для конкретного процесса

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

Еще записи по теме: Windows 7
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)