Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

Windows Vista RC2, уязвимость файла подкачки и некоторые соображения по поводу PatchGuard

Напечатать страницу
24.10.2006 15:50 | prymara

Вернувшись домой после своего путешествия, я, наконец-то, смог закачать Vista RC2 x64 и проверить её на уязвимость файла подкачки...

Оказалось, что эксплойт больше не работает! Причина в том, что теперь Vista блокирует доступ к неотформатированным (raw) секторам, даже если приложение запущено с администраторскими правами.

В своей статье «Ниспровержение ядра Vista» я рассказывал про 3 способа предотвращения атаки на файл подкачки, я вам их напомню:

1. Блокировать raw-доступ в пользовательском режиме.

2. Зашифровать файл подкачки (или использовать хэш, для уверенности в нетронутости вызванных страниц, как предложил Элад Ефрат из NetBSD).

3. Запретить загрузку ядра в файл подкачки (жертвуя максимум 80 Мб оперативной памяти).

После небольших размышлений я понял, что первый предложенный вариант – нереален, так как если запретить доступ к raw-секторам в пользовательском режиме, то возникнет несовместимость с кучей программ (редакторы дисков, программы для восстановления файлов), и к тому же это не решило бы проблему полностью.

Представьте себе компанию, которая хочет выпустить программу для управления дисками. Получается, если доступ к raw-секторам в пользовательском режиме заблокирован, то компании придётся разрабатывать свой драйвер для ядра ОС, с помощью которого программа будет иметь доступ к диску, правильно? Ясное дело, этот драйвер должен быть подписан в Microsoft, так как это хороший драйвер, хорошей программы, и к тому же не содержащий каких либо ошибок. С другой стороны, ничто не мешает атакующему взять этот драйвер и использовать его для атаки на файл подкачки. Ведь если это хорошо написанный драйвер, без каких либо ошибок, Microsoft не может отказать в его подписании, даже если мы обнаружим, что данный драйвер используется третьими лицами для атаки на компьютер.

Но, кажется, Рэдмонд решил пойти самым простым путём, не смотря на то, что это не решает проблему…


Защита ядра vs. PatchGuard

Еще одна проблема, в том, что некоторые путают защиту ядра (то есть политику, при которой загружаются только драйвера имеющие цифровую подпись) и технологию защиты ядра от внесения изменений, известную как PatchGuard.

Короче говоря, атака на файл подкачки, которую я представил на SyScan/BackHat, - это обход защиты ядра, а обход PatchGuard, это уже совсем другая история.

Например, Blue Pill, которая тоже была представлена на BlackHat, являющаяся по сути вредоносной программой и пользующаяся технологией аппаратной виртуализации Pacifica от AMD, обходит PatchGuard. Хотя, в данном случае, слово «обходит» немного не правильно, так как Blue Pill не принимает никаких действий по обходу или блокированию PatchGuard, так как находится вне пределов ОС, включая и PatchGuard. Да, всё так просто! :)

Кроме того, любая вредоносная программ типа II (смотри федеральную классификацию типов malware) способна обойти PatchGuard просто потому, что она не спроектирована на обнаружение изменений внесённых данным типом malware. Так, например, бэкдор, который я демонстрировал в январе, не обнаруживаем PatchGuard. Еще раз повторюсь, это нормально, так как PG не был спроектирован для обнаружения malware типа II (не говоря уже о BluePill, являющейся типом III). Меня удивляют люди, говорящие «Как, наверно, тяжело будет обойти PatchGuard!», это уже сделано, и всё что вы должны сделать – это создать вредоносное приложение класса II или III.

Но, не смотря на всё вышесказанное, я считаю PG замечательной технологией! Основная задача PG – изолировать от запуска такие типы вредоносного ПО, как руткиты, а охрана от вредоносного ПО вообще – это задача анти-вирусов и иже с ними. Однако, зная, что PG не позволяет программам выполнять функции, свойственные malware, это позволит создавать в будущем более чётко работающее анти-шпионское ПО.

Я несколько лет изучал программы по обнаружению руткитов и основная проблема, с которой я столкнулся – как отличить подключение к ядру между реальным malware, и антивирусами, брандмауэрами, системами обнаружения атак или обработчиками данных. Многие из известных популярных антивирусов, действительно, используют методы подключения к ядру, свойственные руткитам и другим вредоносным программам! И это не правильно, так как мало того, что это может стать причиной нестабильности системы, так это еще и сбивает с толку антишпионское ПО!

PatchGuard – технология, появившаяся в 64-битных версиях Windows XP и 2003 - радикальный, но, наверное, единственный способ, заставить разработчиков перестать пользоваться недокументированными API для подключения к ядру. Должен отметить, что существуют документированные способы организации антивирусов или брандмауэров, при использовании которых недокументированные не нужны.

Источник: http://theinvisiblethings.blogspot.com
Перевод: prymara

Комментарии

Не в сети

2 prymara:
не "смог/изучал", а "смогла/изучала" :;).

24.10.06 17:18
0
Не в сети

Как скажешь После перевода пресс-релиза мелкомягких (ну и ужас это был!) я даже не смотрел на автора статьи + привык что одни мужики в IT

24.10.06 19:47
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.059 секунд (Общее время SQL: 0.043 секунд - SQL запросов: 57 - Среднее время SQL: 0.00075 секунд))
Top.Mail.Ru