Защити свой компьютер на 100% от вирусов и хакеров
Шрифт:
Вдаваясь в технические подробности работы PatchGuard, следует сказать, что благодаря данной технологии в системе запрещена модификация таких компонентов ядра, как:
таблицы системных вызовов (system service tables, SST);
таблицы глобальных дескрипторов (global descriptor table (GDT));
таблицы прерываний (interrupt descriptor table (IDT)).
В случае если какой-либо код попытается модифицировать вышеописанные компоненты ядра, операционная система сгенерирует отчет об обнаруженной уязвимости и экстренно завершит свою работу. По официальным заявлениям Microsoft, данный компонент системы защиты ядра отключить невозможно. Однако,
NX (No Execute) DEP!
Под загадочной аббревиатурой NX стоит вполне прозрачная технология DEP – DATA EXECUTION PREVENTION. Реализованный программно в 32-битной версии Windows Vista, в 64-разрядной версии операционной системы NX реализован аппаратно. Понятное дело, что аппаратно реализованная функция DEP более надежна, поскольку здесь на страже нашей безопасности стоит само «железо».
Чтобы лучше понять, что же такое NX, необходимо разобраться в DEP.
DEP, или предотвращение выполнения данных, – используется для предотвращения проникновения на компьютер вирусов и других угроз безопасности, выполняющих вредоносный код из областей памяти, которые должны использоваться только операционной системой Windows и другими программами. В ходе своей работы DEP следит, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как «невыполняемые». Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление (подобный метод инфекции, описанный выше, при котором вредоносный код выполняется из запрещенных областей памяти, реализуется посредством переполнения буфера).
Механизм переполнения буфера, в свою очередь, заключается в следующем. Предположим, что некая процедура для хранения данных использует буфер. Буфер находится в стеке (в определенной области памяти, которая используется во время выполнения программы). Представим в стеке несколько переменных и адрес возврата функции – число, показывающее, куда передать управление после выполнения текущей процедуры. Каким образом программа записывает данные в N-й байт буфера? К адресу начала буфера прибавляется число N. Полученный результат и есть адрес, по которому будут записаны данные. Если размер буфера равен 1024 байт, а мы попытаемся «втиснуть» в него больше, то некоторая часть данных попадет в другую область памяти. Может произойти так, что адрес возврата функции затеряется, и, как следствие, программа выполнит не тот код, на который указывал предыдущий адрес возврата.
Возвращаясь к NX и резюмируя вышесказанное, следует отметить: NX позволяет программному обеспечению помечать сегменты памяти, в которых будут храниться только данные, и процессор не позволит приложениям и службам исполнять произвольный код в этих сегментах.
"Капитально… " – скажет кто-нибудь из читателей. Действительно, капитально, если бы не одно но.
Методология обхода аппаратной реализации DEP давно уже отработана и поставлена, если так можно выразиться, на поток (подробную информацию об обходе аппаратной реализации DEP можно найти по адресу www.securityLab.ru).
ASLR
Ну что ж, продолжим наш экскурс в технологии защиты новой линейки 6.0.
Фанфары
Говоря о технологии ASLR, следует все же отдать должное Microsoft в обеспечении безопасности Windows Vista. Введя ASLR, спецы из корпорации, ни много ни мало, позаботились о том, чтобы усложнить жизнь писателям вирусов. По мнению разработчиков, ASLR практически полностью исключает угрозу удаленных атак для Windows-платформ.
Все дело в том, что в настоящее время Windows предусматривает загрузку системных файлов с использованием одинакового смещения в памяти при загрузке системы, что позволяет посредством вирусного ПО внедрять код "по месту назначения". Суть новой технологии заключается в том, что в x64-версиях Vista системные файлы загружаются в случайные адреса памяти, что существенно осложняет написание работающего вируса. По заверениям Microsoft, свыше 99 % всех удаленных атак на x64-версии Vista закончатся крахом.
Смысл ASLR прост и заключается в следующем: каждый раз, когда компьютер перезагружается, ASLR в случайном порядке назначает один из 256 возможных вариантов адреса для расположения ключевых системных DLL-и EXE-файлов. Это осложняет поиск вирусом нужных файлов и, как следствие, препятствует его выполнению. Нетрудно догадаться, что теперь существует всего лишь один шанс из 256, что текущая загрузка файлов произойдет с адреса с тем же смещением, что и при предыдущей загрузке.
Потрясает? Действительно. Введение данной технологии выведет защиту операционных систем на принципиально новый уровень. А вот на какой уровень данное нововведение выведет написание вирусного ПО?
Как прокомментировал в списке почтовой рассылки BugTraq исследователь из Next Generation Security Software Дэвид Личфилд (David Litchfield), "дистанционное использование переполнений значительно усложнилось", на что некто под псевдонимом cntex в ответе Личфилду заверил, что ASLR "уже много лет элементарно обходится в Linux".
Ну что ж, рассмотрение "самых страшных и могущественных" технологий защиты NT 6.0 (большинство из которых реализовано аппаратно) закончено, и, как видите, не так все и безоблачно.
Приступим к рассмотрению технологий защиты прикладного уровня, реализованных в большей части программно.
Защитник Windows
Нововведением Windows новой линейки стал Защитник Windows – как оно следует из названия, компонент, призванный активно защищать нашу операционную систему.
Как отмечено в официальном описании Microsoft, данный компонент защищает компьютер от руткитов, шпионов, adware, bots и другого вредоносного ПО. Хотя от червей и вирусов не защищает! Ну да ладно, антивирус то все равно придется ставить свой.
Итак, кто же такой этот Защитник Windows?
Защитник Windows содержит девять агентов безопасности, которые постоянно наблюдают за теми критическими областями операционной системы, которые наиболее часто пытается изменить вредоносное ПО. К таким областям относятся следующие.
Автозагрузка. Агент безопасности постоянно наблюдает за списком программ, которым позволено загружаться при старте системы. Таким образом реализуется защита от вредоносного ПО, которое пытается загрузиться вместе с системой.