Подключение платформы фильтрации много событий. Брандмауэр Windows в режиме повышенной безопасности – диагностика и решение проблем. Код нашей classify-функции

Установленные ранее приложения и программы, которые Вам уже не понадобятся в будущем, лучше удалять из памяти смартфона, чтобы они не занимали лишнее место и не «грузили» оперативную память в фоновом режиме.

Удалять приложения в смартфонах Lenovo можно двумя способами: через меню «Приложения» и прямо с рабочего стола. Оба этих способа приводят к одному и тому же результату – приложение безвозвратно удаляется с телефона.

Удаление приложений через меню

  1. Открываем меню «Настройки» -> «Приложения» .
  2. Переходим на вкладку «Сторонние» и находим нужное приложение.
  3. Нажимаем на графическую иконку удаляемого приложения и в верхнем меню жмем «Удалить». Подтверждаем удаление, нажав «Ок» .
*Удалить можно только сторонние приложения. Удалять системные (предустановленные) приложения и программы нельзя.

Удаление приложений прямо на рабочем столе

  1. Разблокируем экран и переходим на тот рабочий стол, где находится иконка удаляемого приложения.
  2. Нажимаем на нее, удерживаем и перемещаем на значок в виде корзины, пока иконка не станет красной.
  3. Отпускаем и подтверждаем процесс удаления, нажав «Ок» .
*Помните, что из-за особенностей фирменной оболочки в смартфонах Lenovo все удаляемые вышеописанным способом приложения, удаляются из памяти смартфона навсегда. То есть удаляется не только иконка, как в телефонах других фирм, а приложение целиком. Восстановить его можно будет, лишь установив заново.

Компания Lenovo на сегодняшний день занимает четвертое место в пятерке мировых производителей ПК. В арсенале компании существуют настольные ПК, ноутбуки, мобильные телефоны, смартфоны, нетбуки и даже серверы, мониторы, планшеты, видеокарты. И это несмотря на такие дополнения ко всему вышеперечисленному, как мышки, клавиатуры, модули памяти, оптические приводы, блоки питания, ПО и аксессуары, а также чехлы, сумки для ноутбуков. Широта ассортимента компании впечатляет, и наполнение потребительского рынка электроникой Lenovo требует серьезной поддержки. Специализированный сервисный центр Lenovo осуществляет ее во многих городах, особенно в крупных центрах страны.

Сегодня довольно распространена тенденция обращаться не в специализированные сервисные центры, а к малоизвестным «но очень понимающим» ремонтникам техники. Делая такой выбор, стоит понимать, что сервисный центр Леново непосредственно занимается исключительно этим видом техники и электроники и на сто процентов знает тонкости именно этой фирмы. Более того, сервисный центр Lenovo имеет возможность оперативно сотрудничать с другими специализированными компаниями, которые поставляют необходимые оригинальные детали для техники Lenovo.

Стоит заметить, что большинство гаджетов, которые производятся этой компанией, имеют широкий спектр нестандартных и неповторимых деталей, которые мало где можно найти. Это известная проблема девайсов Lenovo, но все решается благодаря специалистам. Только сервисный центр Леново способен достать такие необходимые детали для ноутбука как, например, матрица или оригинальные лампы для подсветки. В любом случае, если возникли любые проблемы с электроникой этой компании, стоит обратиться в сервисный центр Lenovo, и вот почему:

1. Только специалисты могут гарантировать качество выполненной работы, с проведением полной диагностики и с определением точной причины возникновения неполадки.

2. Исключительно в сервисном центре Леново вам при необходимости предложат заменить нерабочую деталь на оригинальную. Получить оригинальную деталь можно, только где-то специально заказав ее заранее, или с другого телефона, а в центре же она приходит напрямую в самые короткие сроки.

3. Сервисные центры Lenovo проводят обслуживание всей техники компании, так как в них подобраны и обучены специалисты непосредственно для обслуживания Леново.

4. После покупки того или иного гаджета Леново покупатель приобретает гарантийный талон или чек, с помощью которого можно получить бесплатное обслуживание. Такая услуга предоставляется исключительно в сервисном центре Леново. Такое право теряется, если до специалиста сервиса девайс уже вскрывали.

5. Обслуживание любых товаров производителя Леново может происходить в любом из сервисов после окончания гарантийного срока.

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

В сервисном центре Леново вам предложат широкий выбор услуг по ремонту и определению причины поломки:

тестирование всей системы на предметы поломок, правильности работы всех функций;
диагностику гаджета, включая работу внутренних систем, нагревание, работу каждой детали, что способствует точному определению причины поломки, а также предупреждает новые поломки устройства;
замену деталей, в том числе и матрицы электронного девайса. Размер его диагонали не важен, так как сервисный центр Леново напрямую работает с поставщиками компании;

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

Ремонт отдельных деталей, не говоря уже про комплексную починку, требует вмешательства настоящего профессионала, а учитывая оригинальность и неповторимость некоторых конструкций электроники компании, качественно выполнить эту работу может только сервисный центр Леново. В своей ежедневной работе мастера регулярно используют ремонтную технику высокого класса, которая позволяет выполнять максимально тонкие задачи. Среди таких рабочих инструментов следует упомянуть о:

специализированных цифровых микроскопах, которые позволяют проводить точную диагностику;
паяльных станциях класса BGA;

необходимом для осуществления полного ремонта и диагностики программно-аппаратном комплексе.
Более того, каждый сервисный центр Леново предлагает еще и более простые услуги, к примеру, квалифицированные консультации клиентам, которые пожелали приобрести электронику и технику этого производителя. Специалисты в центре имеют опыт работы со многими девайсами, а также глубокие познания в каждом из них, поэтому консультации по правильности эксплуатации, использованию отдельных функций девайса и т.п. также предоставляются непосредственно сервисными центрами Леново. Среди других предложений имеется и смена, обновление программного обеспечения для ноутбуков, нетбуков или стационарных ПК.

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

Начиная с Server 2008 и Vista в винду был встроен механизм WFP,
представляющий собой набор API и системных сервисов. С помощью него стало можно
запрещать и разрешать соединения, управлять отдельными пакетами. Эти
нововведения были предназначены для упрощения жизни разработчиков различных
защит. Внесенные в сетевую архитектуру изменения затронули как kernel-mode, так
и user-mode части системы. В первом случае необходимые функции экспортируются
fwpkclnt.sys, во втором - fwpuclnt.dll (буквы "k" и "u" в названиях библиотек
означают kernel и user соответственно). В этой статье мы расскажем о применении
WFP для перехвата и фильтрации трафика, а после ознакомления с основными
определениями и возможностями WFP мы напишем свой простой фильтр.

Основные понятия

Перед началом кодинга нам совершенно необходимо ознакомиться с терминологией
Microsoft - и для понимания статьи будет полезно, и дополнительную литературу
читать будет проще:). Итак, поехали.

Классификация - процесс определения того, что нужно делать с пакетом.
Из возможных действий: разрешить, блокировать или вызвать callout.

Callouts - это набор функций в драйвере, которые проводят инспекцию
пакетов. Они имеют специальную функцию, выполняющую классификацию пакетов. Эта
функция может принять следующее решение:

  • разрешить (FWP_ACTION_PERMIT);
  • блокировать (FWP_ACTION_BLOCK);
  • продолжить обработку;
  • запросить больше данных;
  • прервать соединение.

Фильтры (Filters) - правила, указывающие, в каких случаях вызывается
тот или иной callout. Один драйвер может иметь несколько callout’ов, а
разработкой драйвера с callout’ом мы и займемся в этой статье. Кстати, колауты
есть и встроенные, например, NAT-callout.

Layer - это признак, по которому объединяются различные фильтры (или,
как говорят в MSDN, "контейнер").

По правде говоря, документация от Microsoft, выглядит достаточно мутно, пока
не заглянешь в примеры в WDK. Поэтому, если вдруг надумаешь разрабатывать что-то
серьезное, нужно непременно с ними ознакомиться. Ну что ж, теперь плавно
перейдем к практике. Для успешной компиляции и тестов тебе потребуется WDK (Windows
Driver Kit), VmWare, виртуальная машина с установленной Вистой и отладчик WinDbg.
Что касается WDK, то у меня лично установлена версия 7600.16385.0 - там есть все
необходимые либы (поскольку мы будем разрабатывать драйвер, нам нужны только
fwpkclnt.lib и ntoskrnl.lib) и примеры использования WFP. Ссылки на весь
инструментарий уже неоднократно приводились, поэтому повторяться не будем.

Coding

Для инициализации callout’а я написал функцию BlInitialize. Общий алгоритм
создания callout и добавления фильтра таков:

  1. FWPMENGINEOPEN0 осуществляет открытие сеанса;
  2. FWPMTRANSACTIONBEGIN0 - начало операции с WFP;
  3. FWPSCALLOUTREGISTER0 - создание нового callout;
  4. FWPMCALLOUTADD0 - добавление объекта callout’а в систему;
  5. FWPMFILTERADD0 - добавление нового фильтра(ов);
  6. FWPMTRANSACTIONCOMMIT0 - сохранение изменений (добавленных
    фильтров).

Обрати внимание, что функции оканчиваются на 0. В Windows 7 некоторые из этих
функций были изменены, например, появилась FwpsCalloutRegister1 (при
сохраненной FwpsCalloutRegister0). Отличаются они аргументами и, как следствие,
прототипами классифицирующих функций, но для нас это сейчас неважно - 0-функции
универсальны.

FwpmEngineOpen0 и FwpmTransactionBegin0 не особо нам интересны - это
подготовительный этап. Самое интересное начинается с функции
FwpsCalloutRegister0:

Прототип FwpsCalloutRegister0

NTSTATUS NTAPI FwpsCalloutRegister0
__inout void *deviceObject,
__in const FWPS_CALLOUT0 *callout,
__out_opt UINT32 *calloutId
);

Я уже говорил, что callout - это набор функций, теперь пришло время
рассказать об этом подробнее. Структура FWPS_CALLOUT0 содержит указатели на три
функции - классифицирующую (classifyFn) и две уведомляющие (о
добавлении/удалении фильтра (notifyFn) и закрытии обрабатываемого потока (flowDeleteFn)).
Первые две функции являются обязательными, последняя нужна только в случае, если
ты хочешь мониторить сами пакеты, а не только соединения. Также в структуре
содержится уникальный идентификатор, GUID колаута (calloutKey).

Код регистрации callout

FWPS_CALLOUT sCallout = {0};
sCallout.calloutKey = *calloutKey;
sCallout.classifyFn = BlClassify;
// классифицирующая функция
sCallout.notifyFn = (FWPS_CALLOUT_NOTIFY_FN0)BlNotify;
// функция, уведомляющая о добавлении/удалении фильтра
// создаем новый колаут
status = FwpsCalloutRegister(deviceObject, &sCallout, calloutId);

DWORD WINAPI FwpmCalloutAdd0(
__in HANDLE engineHandle,
__in const FWPM_CALLOUT0 *callout,
__in_opt PSECURITY_DESCRIPTOR sd,
__out_opt UINT32 *id
);
typedef struct FWPM_CALLOUT0_ {
GUID calloutKey;
FWPM_DISPLAY_DATA0 displayData; // описание callout
UINT32 flags;
GUID *providerKey;
FWP_BYTE_BLOB providerData;
GUID applicableLayer;
UINT32 calloutId;
} FWPM_CALLOUT0;

В структуре FWPM_CALLOUT0 нам интересно поле applicableLayer - уникальный
идентификатор уровня, на который добавляется callout. В нашем случае это
FWPM_LAYER_ALE_AUTH_CONNECT_V4. "v4" в названии идентификатора означает версию
протокола Ipv4, есть также FWPM_LAYER_ALE_AUTH_CONNECT_V6 для Ipv6. Учитывая
малую распространенность Ipv6 на настоящий момент, работать мы будем только с
Ipv4. CONNECT в названии означает, что мы контролируем только установку
соединения, о входящих и исходящих на этот адрес пакетах речи не идет! Вообще
уровней, помимо использованного нами, много - они объявлены в заголовочном файле
fwpmk.h из WDK.

Добавление объекта-callout в систему

// название callout
displayData.name = L"Blocker Callout";
displayData.description = L"Blocker Callout";
mCallout.calloutKey = *calloutKey;
mCallout.displayData = displayData;
// описание callout
//FWPM_LAYER_ALE_AUTH_CONNECT_V4
mCallout.applicableLayer = *layerKey;
status = FwpmCalloutAdd(gEngineHandle, &mCallout, NULL, NULL);

Итак, после того, как callout успешно добавлен в систему, нужно создать
фильтр, то есть указать, в каких случаях будет вызываться наш callout, а именно
- его классифицирующая функция. Новый фильтр создается функцией FwpmFilterAdd0,
которой в качестве аргумента передается структура FWPM_FILTER0.

В FWPM_FILTER0 есть одна или несколько структур FWPM_FILTER_CONDITION0 (их
число определяется полем numFilterConditions). Поле layerKey заполняется GUID’ом
уровня (layer), к которому мы хотим присоединиться. В данном случае указываем
FWPM_LAYER_ALE_AUTH_CONNECT_V4.

Теперь подробнее рассмотрим заполнение FWPM_FILTER_CONDITION0. Во-первых, в
поле fieldKey нужно явно указать, что мы хотим контролировать - порт, адрес,
приложение или что-то еще. В данном случае WPM_CONDITION_IP_REMOTE_ADDRESS
указывает системе, что нас интересует IP-адрес. Значение fieldKey определяет,
значения какого типа будут в структуре FWP_CONDITION_VALUE, входящей в
FWPM_FILTER_CONDITION0. В данном случае в ней содержится ipv4-адрес. Идем
дальше. Поле matchType определяет, каким образом будет производиться сравнение
значения в FWP_CONDITION_VALUE с тем, что пришло по сети. Тут вариантов много:
можно указать FWP_MATCH_EQUAL, что будет означать полное соответствие условию, а
можно - FWP_MATCH_NOT_EQUAL, то есть, фактически, мы можем добавить таким
образом исключение фильтрации (адрес, соединение с которым не отслеживается).
Еще есть варианты FWP_MATCH_GREATER, FWP_MATCH_LESS и другие (см. энум
FWP_MATCH_TYPE). В данном случае у нас стоит FWP_MATCH_EQUAL.

Я не стал сильно заморачиваться и просто написал условие на блокирование
одного выбранного IP-адреса. В случае, когда какое-то приложение попытается
установить соединение с выбранным адресом, будет вызвана классифицирующая
функция нашего callout’а. Код, обобщающий сказанное, ты можешь посмотреть на
врезке "Добавление фильтра в систему".

Добавление фильтра в систему

filter.flags = FWPM_FILTER_FLAG_NONE;
filter.layerKey = *layerKey;
filter.displayData.name = L"Blocker Callout";
filter.displayData.description = L"Blocker Callout";
filter.action.type = FWP_ACTION_CALLOUT_UNKNOWN;
filter.action.calloutKey = *calloutKey;
filter.filterCondition = filterConditions;
// одно условие фильтрации
filter.numFilterConditions = 1;
//filter.subLayerKey = FWPM_SUBLAYER_UNIVERSAL;
filter.weight.type = FWP_EMPTY; // auto-weight.
// добавляем фильтр на удаленный адрес
filterConditions.fieldKey = FWPM_CONDITION_IP_REMOTE_ADDRESS;
filterConditions.matchType = FWP_MATCH_EQUAL;
filterConditions.conditionValue.type = FWP_UINT32;
filterConditions.conditionValue.uint32 = ntohl(BLOCKED_IP_ADDRESS);
// добавляем фильтр
status = FwpmFilterAdd(gEngineHandle, &filter, NULL, NULL);

Вообще, конечно, фильтрующих условий может быть много. Например, можно
указать блокирование соединений с определенным удаленным или локальным портом (FWPM_CONDITION_IP_REMOTE_PORT
и FWPM_CONDITION_IP_LOCAL_PORT соответственно). Можно вылавливать все пакеты
определенного протокола или определенного приложения. И это еще не все! Можно,
например, заблокировать трафик определенного пользователя. В общем, есть где
разгуляться.

Впрочем, вернемся к фильтру. Классифицирующая функция в нашем случае просто
блокирует соединение с указанным адресом (BLOCKED_IP_ADDRESS), возвращая
FWP_ACTION_BLOCK:

Код нашей classify-функции

void BlClassify(
const FWPS_INCOMING_VALUES* inFixedValues,
const FWPS_INCOMING_METADATA_VALUES* inMetaValues,
VOID* packet,IN const FWPS_FILTER* filter,
UINT64 flowContext,FWPS_CLASSIFY_OUT* classifyOut)
{
// заполняем структуру FWPS_CLASSIFY_OUT0
if(classifyOut){ // блокируем пакет
classifyOut->actionType =
FWP_ACTION_BLOCK;
// при блокировании пакета нужно
сбрасывать FWPS_RIGHT_ACTION_WRITE
classifyOut->rights&=~FWPS_RIGHT_ACTION_WRITE;
}
}

На практике функция классификации также может установить FWP_ACTION_PERMIT,
FWP_ACTION_CONTINUE и др.

И в заключение при выгрузке драйвера нужно удалить все установленные
callout’ы (угадай, что будет, если система попытается вызвать callout
выгруженного драйвера? Правильно, BSOD). Для этого существует функция
FwpsCalloutUnregisterById. В качестве параметра ей передается 32-битный
идентификатор callout’а, возвращенный функцией FwpsCalloutRegister.

Завершение работы callout’а

NTSTATUS BlUninitialize(){
NTSTATUS ns;
if(gEngineHandle){
FwpmEngineClose(gEngineHandle);

}
if(gBlCalloutIdV4){
ns =FwpsCalloutUnregisterById(gBlCalloutIdV4);
}
return ns;
}

Как видишь, программирование WFP-фильтра - не такая сложная задача, поскольку
MS предоставили нам весьма удобный API. Кстати, в нашем случае мы устанавливали
фильтр в драйвере, но это можно делать и из юзермода! Например, семпл из wdk
msnmntr (монитор трафика MSN Messenger-а) так и поступает - это позволяет не
перегружать kernel-mode часть фильтра.

Свой GUID

Для регистрации callout ему нужен уникальный идентификатор. Для того, чтобы
получить свой GUID (Globally Unique Identifier), используй guidgen.exe, входящий
в Visual Studio. Лежит тулза в (VS_Path)\Common7\Tools. Вероятность коллизии
очень мала, поскольку длина GUID составляет 128 бит, и всего доступно 2^128
идентификаторов.

Отладка фильтра

Для отладки дров удобно использовать связку Windbg+VmWare. Для этого нужно
настроить как гостевую систему (в виде которой выступает Vista), так и отладчик
WinDbg. Если у WinXP для удаленной отладки нужно было редактировать boot.ini, то
для Vista+ есть консольная утилита bcdedit. Как обычно, нужно включить отладку:

BCDedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200 BCDedit /debug
ON (или BCDedit /set debug ON)

Теперь все готово! Запускаем батник с нижеприведенным текстом:

start windbg -b -k com:pipe,port=\\.\pipe\com_1,resets=0

и лицезреем отладочный вывод в окне windbg (см. картинку).

Заключение

Как видишь, область применения WFP довольно широка. Тебе решать, как
применить эти знания - во зло или во благо 🙂

Межсетевой экран (брандмауэр или файрволл) Windows не вызывает уважения. Слегка изменившись при переходе с XP на Vista, он не плохо справляется со своей простой задачей, однако ему не хватает амбиций, чтобы стать лучшим персональным файрволлом. Впрочем, несмотря на то, что файрволл Windows 7 получил несколько новых возможностей, все-таки он не получил того, что я ожидал в нем увидеть.

Зависание с Домашней группой

Во время установки Windows 7 предлагает создать “домашнюю группу”. По мере обнаружения в сети других компьютеров с Windows 7, им также предлагается присоединиться к группе. И все что им для этого надо – это пароль к ней. Однако, имея один компьютер под Windows 7, я не видел процесса входа в группу других компьютеров, хотя уведомление об этом не помешает. Впрочем, если любой компьютер с Windows 7 может присоединиться к домашней группе, то компьютеры под Windows 7 Home Basic и Windows 7 Starter не могут создать ее.

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

В своей домашней сети пользователь может расшаривать свой контент и для других компьютеров и устройств, и даже для компьютеров не под Windows 7 и даже для не компьютеров вовсе. В частности, Microsoft показывала примеры, как можно расшарить контент для Xbox 360. Впрочем, компания не предлагает подключить к сети Wii. Увы, но Wii компания не квалифицировала, как устройство потокового медиа.

Итак, насколько же домашняя сеть в Windows 7 более безопасна? Обычно пользователи, потерпевшие неудачу с расшариванием файлов и папок, начинают отключать все вокруг, включая файлволл, антивирус и т.п., что, по их мнению, может мешать этому процессу. В то же время, если сделать расшаривание простым, то отключения всего вокруг можно и избежать.

Если Vista разделяет сети на публичные (Public) и приватные (Private), то Windows 7 разделяет приватную сеть на домашнюю (Home) и рабочую (Work). Домашняя группа (HomeGroup) доступна только при выборе домашней сети. Однако и в рабочей сети ваш компьютер все-таки может видеть и подключаться к другим устройствам в ней. В свою очередь в публичной сети (вроде беспроводной в интернет-кафе), Windows 7 блокирует доступ к вам и от вас к другим устройствам, для вашей безопасности. Это небольшая, но приятная возможность.

Двухрежимный файрволл

В Vista и XP управление файрволлом сводится к его простому включению и выключению. В то же время Windows 7 предлагает пользователю различные конфигурации настроек для приватных (домашних и рабочих) и публичных сетей. При этом пользователю не надо входить в настройки файрволла, чтобы поработать, скажем, в локальном кафе. Ему достаточно выбрать публичную сеть, и файрволл сам применит весь набор ограничивающих параметров. Вероятнее всего, пользователи настроят публичную сеть на блокировку всех входящих соединений. В Vista этого нельзя было сделать без обрезания также всего входящего трафика в собственной сети пользователя.

Некоторые пользователи не понимают, зачем нужен файрволл. Если работает UAC, не является ли файрволл излишеством? В действительности, эти программы обладают совершенно разными целями. UAC следит за программами и их работой внутри локальной системы. Файрволл же пристально вглядывается во входящие и исходящие данные. Если представить две эти программы, как двух героев, стоящих спина к спине и отражающих атаки зомби, то, можно сказать, почти не ошибешься.

В первый момент меня заинтриговала новая возможность “Уведомляй меня, когда Windows Firewall блокирует новую программу”. Не является ли это признаком того, что Windows Firewall получил управление над программами и стал действительным двухсторонним файрволлом?. Меня съедало желание отключить эту возможность. И в результате Windows Firewall не получил большего уважения, чем имел.

Прошло уже десять лет с тех пор, как компания ZoneLabs популяризировала двухсторонний персональный файрволл. Ее программа ZoneAlarm скрывала все порты компьютера (что умеет и Windows Firewall) и также позволяла управлять доступом программ в Интернет (этого Windows Firewall не умеет до сих пор). Я не требую интеллектуального мониторинга поведения программ, как, например, в Norton Internet Security 2010 и в других пакетах. Но я надеюсь, что к выходу Windows 8 , Microsoft все-таки внедрит в свой файрволл набор возможностей десятилетней ZoneAlarm.

Microsoft прекрасно знает, что многие пользователи устанавливают сторонние файрволлы и пакеты безопасности и просто отключают Windows Firewall. В прошлом многие программы безопасности третьих фирм автоматически отключали Windows Firewall во избежание конфликтов. В Windows 7, Microsoft сделала это сама. При установке известного ей файрволла операционная система отключает свой встроенный файрволл и сообщает, что “настройки файрволла управляются такой-то программой от такого-то производителя”.

Будете ли вы его использовать или нет, Windows Firewall присутствует в каждой Windows 7, обладая при этом основательной интеграцией с операционной системой. Так не будет ли лучше, если приложения безопасности третьих фирм смогут использовать файлволл Windows в своих целях? Эта идея лежит за интерфейсом программирования, названным платформой фильтрации Windows - Windows Filtering Platform. Но будут ли пользоваться ей разработчики? Об этом в следующей части.

Безопасность Windows 7: Платформа фильтрации Windows - Windows Filtering Platform

Файрволлы должны работать с Windows 7 на очень низком уровне, что абсолютно ненавидят программисты Microsoft. Некоторые технологии Microsoft, вроде PatchGuard, присутствующие в 64-х битных изданиях Windows 7 (64-х битные Windows 7 обладают рядом преимуществ в безопасности над 32-х битными Windows 7), блокируют злоумышленников и также защищают ядро от доступа к нему. И все-таки Microsoft не предоставляет такого уровня безопасности, как у программ третьих лиц. Так что же делать?

Решением этой проблемы является платформа фильтрации Windows - Windows Filtering Platform (WFP). Последняя, по словам Microsoft, позволяет основывать файрволлы третьих фирм на ключевых возможностях Windows Firewall - позволяет добавлять в них настраиваемые возможности и выборочно включать и отключать части Windows Firewall. В результате пользователь может выбирать себе файрволл, который будет сосуществовать с Windows Firewall.

Но насколько это действительно полезно для разработчиков программ безопасности? Станут ли они этим пользоваться? Я опросил несколько человек и получил массу ответов.

BitDefender LLC

Менеджер по разработке продуктов Иулиан Костаче (Iulian Costache) заявил, что его компания в настоящее время использует эту платформу в Windows 7. Однако они столкнулись со значительными утечками памяти. Ошибка находится на стороне Microsoft, что крупнейший программный гигант уже подтвердил. Тем не менее, Иулиан не знает, когда она будет решена. Пока же они временно заменили новый драйвер WFP на старый TDI.

Check Point Software Technologies Ltd

Менеджер по связям с общественностью в Check Point Software Technologies Ltd Мирка Янус (Mirka Janus) заявил, что его компания начала использовать WFP еще с Vista. Также они используют платформу и под Windows 7. Это хороший, поддерживаемый интерфейс, но любая вредоносная программа или несовместимый драйвер могут быть опасными для продукта безопасности, опирающегося на него. ZoneAlarm всегда опирался на два слоя – слои сетевых соединений и пакетного уровня. Начиная с Vista, Microsoft предложила WFP как поддерживаемый способ фильтрации сетевых соединений. Начиная с Windows 7 SP1, Microsoft должна научить WFP включеню пакетной фильтрации.

“Использование поддерживаемых API означает улучшенную стабильность и уменьшенное число BSOD. Многие драйверы могут регистрироваться и каждому разработчику драйверов не надо беспокоиться о совместимости с другими. Если какой-либо драйвер, скажем, блокирован, ни один другой зарегистрированный не может обойти эту блокировку. С другой стороны, несовместимый драйвер может стать проблемой, обойдя все другие зарегистрированные. Мы не опираемся на один лишь WFP для сетевой безопасности”.

F-Secure Corporation

Старший исследователь в F-Secure Corporation Микко Хиппонен (Mikko Hypponen) заявил, что по какой-то причине WFP никогда не становился популярным среди разработчиков программ безопасности. В то же время его компания довольно долго использовала WFP, и была от этого счастлива.

McAfee, Inc.

В свою очередь ведущий архитектор McAfee Ахмед Салам (Ahmed Sallam) заявил, что WFP является более мощным и гибким интерфейсом сетевой фильтрации, чем предыдущий интерфейс, основанный на NDIS. McAfee активно использует WFP в своих продуктах безопасности.

В то же время, несмотря на то, что WFP обладает позитивными возможностями, преимуществами платформы могут воспользоваться и киберпреступники. Платформа может позволить вредоносной программе войти в сетевой стек уровня ядра Windows. Поэтому 64-х битные драйвера Windows уровня ядра должны иметь цифровые подписи, чтобы защитить ядро от загрузки в него вредоносных программ. Однако цифровые подписи не обязательны на 32-х битных версиях.

Да, теоретически цифровые подписи являются разумным защитным механизмом, но в реальности авторы вредоносных программ все-таки могут приобрести себе и их.

Panda Security

Представитель Panda Security Педро Бустаманте (Pedro Bustamante) сказал, что его компания следит за платформой WFP, но в настоящее время ее не использует. Основными недостатками WFP компания считает, во-первых, отсутствие возможности создать технологию, которая бы комбинировала различные техники для максимизации защиты. Технология бесполезна, если компания не может взглянуть во входящие и исходящие пакеты в машину. Также она должна выступать датчиком для других технологий защиты. Ни одну из этих возможностей не предоставляет WFP. Во-вторых, WFP поддерживается лишь Vista и более новыми операционными системами. Обратной совместимости у платформы нет. И, в-третьих, WFP является довольно новой платформой, а компания предпочитает опираться на более старые и проверенные технологии.

Symantec Corp.

Директор по менеджменту потребительских продуктов в Symantec Ден Надир (Dan Nadir) заявил, что WFP пока не используется в их продуктах по причине относительной новизны. Тем не менее, со временем компания планирует мигрировать на нее, т.к. старые интерфейсы, на которые они опираются сейчас, не смогут предоставить всю полноту требуемой ими функциональности. WFP они считают хорошей платформой, т.к. она была специально разработана для обеспечения функциональной совместимости между множеством программ третьих фирм. В принципе, в будущем проблем совместимости у платформы должны быть еще меньше. WFP также хороша потому, что интегрирована с Microsoft Network Diagnostic Framework. Это чрезвычайно полезно, т.к. значительно облегчает поиск специфических программ, являющихся препятствием для сетевого трафика. И, наконец, WFP должна привести к улучшению производительности и стабильности операционной системы, т.к. платформа избегает эмуляции и проблем с конфликтами или стабильностью драйверов.

Впрочем, с другой стороны, по мнению Надира, WFP может создавать определенные проблемы, существующие в любой структуре – разработчики, опирающиеся на WFP не могут закрыть уязвимости внутри самой WFP, как не могут и расширить специфические возможности, предлагаемые WFP. Также если многие программы будут опираться на WFP, то создатели вредоносных программ теоретически могут попытаться атаковать саму WFP.

Trend Micro Inc.

Директор по исследованиям в Trend Micro Inc. Дале Льао (Dale Liao) сказал, что огромнейшим преимуществом платформы является совместимость с операционной системой. Также стандартный файрволл сейчас стал полезным. Поэтому теперь они могут сфокусироваться на действительно значимых его возможностях для пользователя. Плохо же в WFP то, что при обнаружении в платформе ошибки, компании приходится ждать ее исправления от Microsoft.

WFP: Вывод

В результате, большая часть опрошенных мною разработчиков программ безопасности уже использует WFP. Правда, некоторые параллельно с другими технологиями. Им нравится функциональная совместимость, нравится документированность и официальность платформы и также предполагаемая стабильность ее работы. С другой, отрицательной стороны, если все разработчики станут опираться на WFP, то платформа потенциально может стать для всех уязвимой точкой. И для ее исправления им придется опираться на Microsoft. Кроме того, платформа пока не предлагает фильтрации уровня пакетов.

Большим недостатком WFP также является то, что ее нет в Windows XP. Поэтому разработчикам, которые хотят поддерживать XP, придется вести два параллельных проекта. Впрочем, по мере того, как XP будет уходить с рынка, я думаю, WFP станет более популярной среди разработчиков.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: