Фильтрация IP трафика

advertisement
Фильтрация IP трафика
Использование технологии WFP
Студент группы 4085/4: Копнин А. Л.
Руководитель: Сальников В.Ю.
2
Причины возникновения:
Сложность поимки
преступников
«Инструкции» по
взлому
3
Zero-day – уязвимость используемая в
сетевых атаках
Пример приложений с актуальной
проблемой безопасности:
•FoxitReader
•AdobeReader / Acrobat
•Microsoft Office
и многие другие программные продукты
Переполнение стека, выполнение произвольного кода
Использование
Zero day
Специальный
код
WEB
ресурс
Обращение к
ресурсу
4
В «Лаборатории Касперского» проводятся исследования, по определению
в какой момент Web-сайты становится точками распространения
вредоносных программ.
2006 – Каждый сайт из 20 000 сайтов
2009 – Каждый сайт из 150 сайтов
Рейтинг «Стран – вредителей»
5
Использование
проверенных Internet
ресурсов
Бдительность при
использование сети
Internet
Психологическая составляющая
Программная составляющая
Антивирусная защита
Межсетевые экраны
6
Критерии отбора:
Программный персональный межсетевой экран
Бесплатно распространяемый межсетевой экран
• Outpost Firewall Free
• Online Armor Free
Проактивная защита
 Обезвреживание на основе анализа
действий
 Контроль памяти программ
 Критические значения реестра
Самозащита
 Предотвращение выгрузки Firewall
 Контроль запущенных служб
 Контроль собственных файлов
«Блокировка шпионских
сайтов»
Блокировка соединения
Анализ заголовков сайтов
Фильтр URL
Мониторинг
процессов
Log
протоколирование
соединений
• Private Firewall
Комплексная
безопасность
 Защита от вредоносных
скриптов
 Определение перехватчиков
пользовательского уровня
Самозащита
 Защита от модификации
собственного кода
7
• Возможность блокировки URL запросов есть не у всех программных
продуктов
• Сложность настройки межсетевых экранов для большинства
пользователей сети Internet
• Отсутствие разграничения списков Web ресурсов для определенного
круга пользователей
В требованиях к межсетевому экрану присутствует задача блокировки
Web ресурсов, рассмотренные разработки не в полной мере
предоставляют такую возможность, а значит не могут быть рассмотрены
как готовые решения.
8
• Приложение с прозрачной, интуитивно
понятной настройкой
• Блокировка URL запросов
• Разделение списка вредоносных Web
ресурсов для разных пользователей
• Создание основного приложения в
виде системной службы
• Использование платформы фильтрации
WFP
9
• Фильтрация пакетов
Проверка пакетов с
правилами
• Адрес от кого пакет
• Адрес куда пакет
• Тип пакета (TCP, UDP, ICMP)
• Порт источника / получателя
• Фильтрация сеансового
уровня
Последовательность
пакетов
• Разбиение длинных пакетов,
проверка целостности:
 Контроль процесса передачи

Защита программного
уровня
Проверка содержимого
пакетов
• Проверка содержимого пакета
• Фильтрация URL
• Использование Proxy
 Создание таблицы контроля
Слабые стороны:
•
Нет проверки содержимого
•
Много правил – снижение
производительности
Слабые стороны:
•Сложность реализации
Сильные стороны:
• Обработка протоколов верхних
Сильные стороны:
Сильные стороны:
•
Быстрая фильтрация пакетов
•Сокрытие топологии сети
•
Не требуются специальные
•Простая реализация запрета соединения
конфигурации ПК
между пользователями
уровней (HTTP, FTP...)
• Запрет к сетевым ресурсам
• Сокрытие внутренних адресов
10
Написание компонентов на уровне драйверов
Использование NDIS и TDI
или
Новая платформа для реализации систем
безопасности –
Windows Filtering Platform (WFP)
11
Firewall Application
AV Application
WFP Management APIs
Base Filtering Engine
(BFE)
User
Kernel
Application layer
enforcement (ALE)
TDI/WSK
3rd party anti-virus
3rd party parental
control
Transport Layer
IPsec
Network Layer
Forward Layer
NDIS Layer
IP Proxy Layer
Filtering Engine
3rd party IDS
3rd party network
address translation
(NAT)
Callout modules
Stream Layer
12
Main ()
SERVICE_TABLE_ENTRY
SCM
SERVICE_START
До входа пользователя
ServiceMain()
HandlerEx()
После входа пользователя
Пользователь
системы (Login)
WTS_SESSION_LOGON
Stop_service()
Заблокирована
учетная запись
Пользователь
системы (Logoff)
Выключение
(Остановка службы)
WTS_SESSION_LOGOFF
…
Stop_service(1)
РЕЕСТР
WFP
EngineOpen0()
SubLayerAdd()
Add_Filter()
Delete:
Filters
Delete:
SubLayer
Close:
Session
13
class filter {
public:
FWPM_SUBLAYER0 sub_layer;
FWPM_FILTER0 filters[256];
HANDLE handle_session;
DWORD ret_value;
filter() {
ZeroMemory(this, sizeof(filter));
ZeroMemory(&sub_layer, sizeof(sub_layer));
if (!FwpmEngineOpen0(NULL, RPC_C_AUTHN_WINNT, NULL, NULL, &handle_session))
SvcReportEvent(TEXT("Session Create"));
add_sublayer();
}
~filter() {
delete_filters();
if (!FwpmSubLayerDeleteByKey0(handle_session, &sub_layer.subLayerKey))
SvcReportEvent(TEXT("Sub-layer delete"));
if (!FwpmEngineClose0(handle_session))
SvcReportEvent(TEXT("Session Close"));
}
void add_filter(int type, const char *url);
void delete_filters();
private:
void add_sublayer();
};
14
Add_secur()
РЕЕСТР
InitInstance()
Tab_control_create()
WndProc()
Tab_text_area()
TCN_SELCHANGE
Пользователь
AddIP button message
AddIP
Configur
ation
Conf button message
Informat
ion
LVN_GETDISPINFO
Action(int)
Action(HWND)
15
void action(int number) {
SC_HANDLE handle_Service;
SC_HANDLE handle_open_manager;
SERVICE_STATUS service_status;
switch(number) {
case IDB_START:
handle_open_manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
handle_Service = OpenService(handle_open_manager, "Block", SERVICE_STOP | SERVICE_START
if (!StartService(handle_Service, 0, 0)) {
if(ControlService( handle_Service, SERVICE_CONTROL_STOP, &service_status)) {
MessageBoxA(0, "Services is stopped", "Stop!", MB_OK); // служба остановлена
SendMessage(start, BCM_SETNOTE, 0, (LPARAM) L"You can start service");
start_stop = false;
statusbar_status(); // изменить параметр статус бара
}
else MessageBoxA(0, "Error, when start / stop service!", "Stop!", MB_OK); // служба уже установлена
}
else {
MessageBoxA(0, "Services is started", "Start!", MB_OK); // служба запущена
SendMessage(start, BCM_SETNOTE, 0, (LPARAM) L"You can stop service");
start_stop = true;
statusbar_status(); // изменить параметр статус бара
}
CloseServiceHandle(handle_Service);
CloseServiceHandle(handle_open_manager);
break;
case IDB_DELETE:
handle_open_manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if(!flag) { MessageBoxA(0, "Services is not installed", "Error!", MB_OK); // служба не установлена }
17
Управляющее
приложение
Запрос Web ресурса
Системная служба
1
2
Реестр
3
Base Filter
Engine
Список URL
Sub-Layer
(Out/Inbound IP)
Filter Engine
(IP layer)
FIREWALL
Обновление ПО
INTERNET
Пользовательский режим
Режим ядра
18
18
Реализовано:
 Проанализированы существующие межсетевые экраны
 Разработана система защиты, состоящая из управляющего
приложения и службы Windows
 Реализовано разделение списка блокируемых Web ресурсов
 Освоена платформа фильтрации Windows (WFP)
 Организована полная отчетность работоспособности
программы
Дальнейшее развитие:
 Секретность хранения списка фильтрации
 Фильтрация с использованием частоты встречаемости слов
 Контроль не используемых портов
Download