Stateful inspection применяется в системах обнаружения вторжений в сеть (NIDS) и является более совершенным инструментом сетевой безопасности, чем перезагрузка.
Используется для проверки рукопожатий во время сеанса связи с использованием детального знания правил протокола связи. Это делается для того, чтобы обеспечить его завершение ожидаемым и своевременным образом. Проверяя соединение, пакет за пакетом, а не только один пакет, и зная, что только что произошло и что должно произойти дальше, проверка состояния обнаруживает некорректную или подозрительную активность и предупреждает системного администратора об ошибках.
Проверка соединения TCP с контролем состояния
TCP - является важным интернет-протоколом. Обеспечивает полное дуплексное надежное потоковое соединение между двумя конечными точками в сети TCP/IP. Подход с использованием проверки состояния будет одним из лучших способов мониторинга TCP соединения.
- В NIDS Snort программный препроцессор STREAM4 с программным кодом на 3000 строк предназначен для проведения TCP контроля состояния, выполняющего две функции: Сеансы проверки состояния и сборка потоков TCP. Тестирование Snort в различных сетях показало, что препроцессор STREAM4 приводит к возникновению узких мест в Snort для некоторых сред сетевого трафика.
Таким образом, для повышения эффективности Snort мы хотели бы в прошлом рассмотреть вопрос о том, как можно было бы использовать оборудование, подлежащее разведке, для замены инспекции в рамках ПТС STREAM4, основанной на статистике состояния дел.
Использование новых методов осуществления инспекций TCP с учетом состояния государства.
- Новый подход состоял бы в том, чтобы обрабатывать государственную инспекцию в аппаратном, а не программном обеспечении, как обычно. Для проведения таких исследований целесообразно использовать полевые программируемые матрицы ворот.
Такие новые устройства будут дополнительным устройством для компьютера, на котором запущено программное обеспечение Snort. Входящие пакетные данные вводятся в проверяемое аппаратное обеспечение, которое обрабатывает квитирование TCP в трех направлениях и сборку потока TCP сервера и клиента. Информация заголовка пакета будет храниться в некоторых регистрах на основе библиотеки libpcap, которая используется в Snort для получения пакета o из проводов. Наиболее часто упоминаемыми основными сведениями заголовка пакета являются порядковый номер, номер подтверждения, размер окна и TCP сообщения, такие как SYN и ACK бит.
- Блок состояния TCP-соединения реализован как машина состояния для проверки трёхстороннего квитирования TCP-соединения. После установления правильного соединения между Клиентом и Сервером может осуществляться обмен данными по TCP-соединению. Обработка данных со стороны сервера и клиента может выполняться раздельно и параллельно, даже если узлы сборки потока TCP сервера и клиента выполняют одну и ту же функцию. Это означает, что пакеты, отправляемые на сервер и сторону клиента, восстанавливаются по отдельности в отдельных аппаратных единицах. Таким образом, обработка потоковых данных TCP в NIDS ускоряется, разумеется, за счет дополнительных ресурсов FPGA.
Два 32-битных компаратора и один 32-битный сумматор необходимы для реализации одного узла сборки потока TCP. Если порядковый номер входящего пакета выходит за пределы диапазона, то пакет будет удален. Полезная нагрузка пакета в противном случае сохраняется в памяти пакета Server или пакета Client, соответственно, чтобы восстановить данные для последующего механизма обнаружения. Трубопроводная сборка потока TCP, памяти Server packet и блока памяти Client packet позволяет повысить общую производительность.
Размер пакетной памяти составляет 5x32 бита. Требуется 5x32 бита, так как шаблон сигнатуры может быть выровнен максимум с 5x32 битами в следующем механизме обнаружения. Однако для устройств Server Client Packet требуется память с двумя портами с минимальным размером 5x32 бита. Использование двухпортовой оперативной памяти для пакетной памяти важно для получения новых данных при одновременном выполнении сопоставления.
Все отдельные модули, такие как состояние соединения TCP, устройство для обратной сборки TCP потока и DMUX, реализованы в VHDL. Моделирование этих функций проводилось с помощью симулятора Modelsim XE II v6.5a.
За исключением анализа пакетов, вся система была размещена и маршрутизирована в XCV1000-6 FPGA. Минимальный период синхронизации для данных от входа до выхода составляет 10,467 нс, что соответствует пропускной способности 3,06 Гбит/с.
- Однако в IP/TCP-сетях сервер часто должен быть способен обрабатывать несколько соединений одновременно. Следовательно, в таком исследовании необходимо учитывать наличие множественных связей в рамках TCP. Процесс, который потребляет большинство SLICE в FPGA является модулем, который выполняет тройное рукопожатие TCP.
Хотя в одном FPGA XCV1000-6 имеется 12288 SLICE, возможность использования нескольких TCP соединений ограничена возможностями реализации модулей памяти Server packet и памяти Client packet в одном таком FPGA. Причина этого заключается в том, что высота CLB-массива в одной FPGA определяет количество блоков SelectRAM, определяя, следовательно, размер пакетных модулей.
- Таким образом, одна XCV1000-6 FPGA с 32 блоками SelectRAM позволяет реализовать только 8 TCP-соединений. Хотя размер SLICES такого FPGA должен быть проверен, чтобы убедиться, что этого достаточно для реализации оставшихся модулей из 8 TCP соединений одновременно.
Проверка состояния TCP-соединения изучается и реализуется в аппаратном обеспечении на базе FPGA для устранения узких мест TCP-соединения в среде сетевого трафика. Введен новый подход с использованием аппаратных средств, поддающихся разведке. Опыт показывает, что производительность может быть улучшена с помощью этой реализации до пропускной способности 3,0 Гбит/сек.