Способ многопоточной защиты сетевого трафика и система для его осуществления
METHOD OF MULTI-THREADED NETWORK TRAFFIC PROTECTION AND SYSTEM FOR ITS IMPLEMENTATION

Изобретение относится к области вычислительной техники, а именно к области защиты от несанкционированного доступа к информации при ее передаче по каналам связи и средствам коммутации в компьютерной сети общего пользования.
Современные распределенные компьютерные системы представляют собой сложные программно-аппаратные комплексы, которые построены на базе компьютерных сетей с высокой пропускной способностью. Поскольку информация в компьютерных сетях общего пользования передается по открытым каналам связи и средствам коммутации, то для ее защиты на уровне сетевого трафика используются сетевые средства защиты информации. Кодирование данных представляет собой разновидность сетевой защиты информации и имеет особое значение на практике как единственная надежная защита информации, передаваемой по открытым каналам связи, от несанкционированного доступа. Кодирование данных включает способы и средства обеспечения конфиденциальности информации. Конфиденциальность - защищенность данных от чтения программами, не имеющими прав доступа к передаваемому содержимому, но способными несанкционированно или случайно их получить.
В компьютерной сети сетевые средства защиты осуществляют кодирование данных в потоковом режиме, то есть путем обработки сетевого трафика, образованного потоками пересылаемых по сети сетевых пакетов. Сетевой пакет представляет собой структурированный блок данных, передаваемый по сети и включающий служебный заголовок, содержащий информацию об адресации, и информационную часть, содержащую собственно пересылаемые данные. В потоковом режиме защиты содержимое каждого сетевого пакета, образующего сетевой трафик, преобразуется в новый, закодированный, пакет, в котором информация об адресации сохранена, а информационная часть преобразована в новую, кодированную, форму. После прохождения средства защиты сетевые пакеты передаются далее в сеть уже в закодированном виде, и вследствие этого любая программа-нарушитель, получив несанкционированный доступ к содержимому кодированного пакета, не сможет нарушить его конфиденциальность. Включение сетевых средств защиты информации в состав распределенной компьютерной системы приводит к повышению загрузки вычислительных ресурсов аппаратной платформы, на которой функционирует средство защиты, и, соответственно, к временным задержкам, вызванным дополнительным этапом кодирования сетевых пактов. Таким образом, при использовании сетевых средств защиты снижается пропускная способность компьютерной сети как соотношение проходящих через сеть единиц информации в единицу времени.
Известны два способа по устранению проблемы снижения пропускной способности компьютерной сети, вызванной внедрением в нее сетевых средств защиты информации.
Первый способ - аппаратная реализация алгоритмов кодирования в сетевых средствах защиты. Однако максимальная пропускная способность аппаратных кодировщиков на сегодняшний день составляет 7 Гбит/с (аппаратные шифраторы "Застава" компании "Элвис-Плюс" [http://elvis.ru/products/products_of_its_own_design/], МСМ-950 копании "С-Терра СиЭсПи" [http://www.s-terra.com/products/productline/mcm-950/]). Большинство современных аппаратных и аппаратно-программных комплексов кодирования и обработки сетевого трафика поддерживает скорости передачи данных 1 Гбит/с. При сохранении тенденций роста скоростей передачи данных в каналах связи до 10 Гбит/с и далее до 100 Гбит/с пропускной способности известных аппаратных решений недостаточно.
Второй подход - наращивание пропускной способности сетевой системы защиты путем физического увеличения вычислительной мощности способом кластерного подключения нескольких аппаратных кодировщиков, реализующих кодирование сетевых пакетов на аппаратном уровне, или физических серверов, программно реализующих кодирование сетевых пакетов. Однако кластерное соединение большинством из известных аппаратных кодировщиков не поддерживается, а в тех, что поддерживают кластерное соединение (шифратор "ФПСУ-TLS" компании "Амикон" [http://amicon.ru/page.php?link=fpsu-tls], аппаратные шифраторы "Застава" компании "Элвис-Плюс", криптошлюз "Континент IPC-3000F" компании "Код безопасности" [http://www.securitycode.ru/products/apksh_kontinent/models/#k3000]), количество соединений друг с другом при построении единой системы защиты технически ограничено характеристиками физических сетевых интерфейсов на устройствах - максимально до 4 аппаратных кодировщиков в связке (криптошлюз "Континент IPC-3000F" компании "Код безопасности"). Построение кластера путем объединения множества физических компьютерных серверных систем является более гибким решением по сравнению с кластеризацией аппаратных кодировщиков, но любое аппаратное расширение вычислительных мощностей за счет объединения физических систем требует дополнительного блока управления (например, в комплексе "Континент" компании "Код безопасности"), который функционирует на отдельном компьютерном сервере и распределяет поступающий сетевой трафик между серверами, выполняющими кодирование, что повышает нагрузку на внутреннюю сеть, связывающую сервера кластерной системы, и тем самым не позволяет увеличить пропускную способность компьютерной сети. Кроме этого при кластерном подключении увеличивается энергопотребление всей системы и стоимость эксплуатации компьютерной системы.
Известны система и способ обработки сетевого трафика данных, разработанные компанией Crossbeam, в которых для обеспечения безопасности сетей выполняется обработка передаваемых по сети данных на уровне потоков путем обработки и агрегации сетевых пакетов, а также балансировки трафика путем назначения виртуальных машин сетевым пакетам. Обработка потоков данных путем проверки пакетов сетевого трафика позволяет определять угрозы безопасности и возможность вторжения по уровням стека протокола TCP/IP. Обработка сетевых потоков и выявление в них аномалий выполняется с помощью регулярных выражений путем сопоставления характеристик нормального и аномального трафика и выявления аномалий в трафике на основе обработки в виртуальных машинах сетевых потоков, характерных для различных типов сетей и различных типов угроз (EP 2432188, G06N 3/04; H04L 29/06). Недостатком данного решения является то, что решение поставленных задач обеспечивается на уровне аппаратного сетевого устройства класса middleware, что ограничивает масштабирование и пропускную способность данной системы. Устройство поддерживает виртуализацию аппаратных ресурсов и распределение между виртуальными машинами сетевых пакетов для их обработки, однако количество активных виртуальных машин, одновременно работающих на устройстве, фиксировано и ограничено числом процессорных ядер (максимально 12 штук).
В основу изобретения положена задача создания способа многопоточной защиты сетевого трафика и системы его реализации, которые обеспечивают повышение пропускной способности сетевой системы защиты информации за счет того, что в способе многопоточной защиты сетевого трафика дополнительно выполняется в зависимости от параметров, указанных в заголовках сетевых пакетов, распределение поступающих сетевых пакетов между блоками-вычислителями, выполняющими кодирование информационной части в сетевых пакетах, и адаптивное управление множеством блоков-вычислителей, количество которых динамически изменяется в зависимости от текущей загрузки вычислительных ресурсов (процессора и памяти) компьютерной системы; а в систему защиты информации распределенной компьютерной системы, построенной на каналах и средствах коммутации компьютерной сети общего пользования, дополнительно включена система кодирования сетевого трафика, которая разделяет входящий сетевой трафик на множество сетевых потоков, каждый из которых включает сетевые пакеты одного типа в зависимости от параметров заголовка сетевого пакета, кодирует информационную часть каждого сетевого пакета из состава сетевого потока с помощью блока-вычислителя, работающего на независимой виртуальной машине и кодирующего информационное содержимое каждого сетевого пакета поступающего сетевого потока, при этом несколько одновременно работающих виртуальных машин обеспечивают одновременное кодирование множества сетевых потоков в блоках-вычислителях, и формирует выходящий сетевой трафик из закодированных сетевых потоков, агрегируя закодированные сетевые пакеты, поступающие от блоков-вычислителей.
Технический результат - расширение функциональных возможностей системы защиты информации, передаваемой по компьютерной сети, заключающийся в повышении пропускной способности системы защиты информации за счет добавления системы кодирования сетевого трафика, реализующей способ многопоточного кодирования сетевого трафика. При этом система кодирования сетевого трафика функционирует на базе виртуализированной вычислительной системы, в которой блоки-вычислители представлены идентичными виртуальными машинами, работающими в одной компьютерной системе.
Виртуализация вычислительных систем позволяет предоставлять в одной компьютерной системе набор вычислительных ресурсов, абстрагированный от аппаратной реализации, что обеспечивает логическую изоляцию вычислительных процессов, выполняемых на одном физическом ресурсе. Виртуализация позволяет запускать одновременно несколько виртуальных машин - вычислительных систем, работающих на одном компьютере и использующих свой набор логических ресурсов (процессора, оперативной памяти), предоставлением которых из общего пула, доступного на уровне аппаратного обеспечения, управляет специальная хостовая система (гипервизор виртуальных машин).
Предельное количество блоков-вычислителей, выполняющих кодирование сетевых пакетов, соответствует числу виртуальных машин, что в свою очередь определяется предельным объемом вычислительных ресурсов компьютерной системы, разделенным на число минимально необходимых ресурсов для работы одной виртуальной машины. Актуальное число виртуальных машин, одновременно работающих на компьютерной системе и выполняющих кодирование сетевых пакетов, определяется количеством обрабатываемых сетевых потоков. Кодируемые сетевые потоки распределяются равноправно между виртуальными машинами, чтобы обеспечить их равномерную загрузку. При достижении полной загрузки ресурсов всех запущенных виртуальных машин из сетевых пакетов каждого сетевого потока формируются очереди ожидания к соответствующим виртуальным машинам. При этом достигается повышение пропускной способности сетевой системы защиты информации за счет того, что в системе кодирования сетевого трафика кодируют сетевые пакеты, составляющие сетевые потоки, одновременно на множестве блоков-вычислителей, распределяя по ним сетевые потоки и управляя актуальным количеством блоков-вычислителей. При кодировании вместо кластера компьютерных систем используется одна аппаратная платформа, но вычислительные ресурсы которой виртуализированы и разделяются между виртуальными машинами. Каждая виртуальная машина представляет собой блок-вычислитель, выполняющий кодирование сетевых пакетов одного назначенного данной машине сетевого потока. Одновременное многопоточное кодирование сетевых потоков обеспечивается множеством блоков-вычислителей.
В основу изобретения положена задача создания способа многопоточной защиты сетевого трафика, в результате решения которой получают многопоточную систему кодирования сетевого трафика, что позволяет за счет применения блоков-вычислителей, функционирующих на виртуальных машинах и кодирующих сетевые пакеты в несколько потоков одновременно, повысить пропускную способность защищенного канала передачи информации в компьютерной сети при использовании той же аппаратной базы.
Решение данной технической задачи обеспечивается тем, что в способе многопоточной защиты сетевого трафика, включающем кодирование и агрегацию сетевых потоков, а также балансировку трафика путем назначения виртуальной машины сетевому потоку, при балансировке трафика дополнительно проводят анализ состояния загрузки вычислительных ресурсов виртуальных машин, в которых выполняются блоки-вычислители, для чего создают таблицу сетевых потоков, в которой для каждой четверки параметров поступившего сетевого пакета: IP-адрес источника, IP-адрес назначения, порт источника, порт назначения - сопоставляют соответствующий блок-вычислитель, выполняющий кодирование сетевого потока, определяемого совокупностью всех сетевых пакетов, для которых в заголовке установлены данные параметры;
для каждого поступающего сетевого пакета выделяют заголовок сетевого пакета, в заголовке сетевого пакета выделяют IP-адрес источника, IP-адрес назначения, порт источника, порт назначения;
для каждой полученной четверки параметров выполняют поиск по поддерживаемой таблице сетевых потоков соответствующего блока-вычислителя для кодирования сетевого потока;
если в таблице сетевых потоков соответствующая параметрам сетевого пакета запись найдена, то данный сетевой пакет передают для кодирования в соответствующий блок-вычислитель;
если соответствующий блок-вычислитель занят кодированием пакета, то формируют очередь пакетов для данного блока-вычислителя;
если блок-вычислитель ранее не назначался сетевому потоку, то определяют свободный блок-вычислитель для кодирования данного сетевого пакета в зависимости от текущей загруженности вычислительных ресурсов (уровень загрузки процессора и объем занятой оперативной памяти) компьютерной системы; при этом если в компьютерной системе достаточно свободных вычислительных ресурсов для запуска новой виртуальной машины, в которой выполняется блок-вычислитель, то такую виртуальную машину запускают, формируют и записывают новую запись в таблице сетевых потоков, которая ставит в соответствие новому сетевому потоку новый запущенный блок-вычислитель; если в компьютерной системе недостаточно свободных вычислительных ресурсов для запуска новой виртуальной машины, в которой выполняется блок-вычислитель, то такую виртуальную машину не запускают, выполняют поиск наименее загруженной виртуальной машины из уже исполняющихся по параметрам наименьшего уровня загрузки процессора и наибольшему объему свободной оперативной памяти, затем формируют и записывают новую запись в таблице сетевых потоков, которая ставит в соответствие новому сетевому потоку данный блок-вычислитель;
если все вычислительные ресурсы всех виртуальных машин, в которых выполняются блоки-вычислители, загружены, то формируют очередь сетевых пакетов, ожидающих кодирования;
в каждом сетевом пакете выделяют информационную часть и кодируют выделенную информационную часть сетевого пакета, затем формируют исходящий сетевой трафик, передавая кодированные сетевые пакеты далее в канал связи компьютерной сети в том же порядке, в котором они поступали на вход системы;
для вновь поступающих сетевых пакетов указанные действия повторяют;
периодически проверяют загруженность блоков-вычислителей, и если блок-вычислитель не используется для кодирования сетевого потока, то его выключают путем выгрузки виртуальной машины, в которой он функционировал, а соответствующую запись в таблице сетевых потоков удаляют.
В системе многопоточной защиты сетевого трафика, включающей блок кодирования сетевого трафика, содержащий блок балансировки сетевого трафика, блок обработки сетевых потоков, блок агрегации сетевых потоков, в блок балансировки дополнительно включены блок анализа состояния загрузки вычислительных ресурсов и блок выделения сетевых потоков, а число блоков обработки сетевых потоков является переменным.
Изобретение поясняется фиг. 1, на которой представлена блок-схема системы многопоточной защиты сетевого трафика. Система многопоточной защиты сетевого трафика содержит блок кодирования сетевого трафика 1, содержащий блок балансировки сетевого трафика 2, блок обработки сетевых потоков 3, блок агрегации сетевых потоков 4. В блок балансировки сетевого трафика 2 дополнительно включены блок анализа состояния загрузки вычислительных ресурсов 5 и блок выделения сетевых потоков 6. Число блоков обработки сетевых потоков 3 является переменным.
Возможность осуществления изобретения поясняется на примере работы системы многопоточной защиты сетевого трафика.
Блок кодирования сетевого трафика 1 включают в разрез компьютерной сети. На вход блока кодирования сетевого трафика 1 поступает сетевой трафик, блок выполняет его кодирование, на выход блока поступает кодированный сетевой трафик. Блок кодирования сетевого трафика 1 включает блок балансировки сетевого трафика 2, переменное число блоков обработки сетевых потоков 3, блок агрегации сетевых потоков 4.
Блок балансировки сетевого трафика 2 поддерживает таблицу сетевых потоков. Таблица сетевых потоков позволяет на основе параметров сетевых пакетов назначать соответствующий блок обработки сетевых пакетов.
В блок балансировки сетевого трафика 2 включены блок анализа состояния загрузки вычислительных ресурсов 5 и блок выделения сетевых потоков 6.
Блок выделения сетевых потоков 6 для каждого сетевого пакета из поступающего сетевого трафика выделяет четверку параметров сетевого пакета, указываемых в заголовке каждого сетевого пакета: IP-адрес источника, IP-адрес назначения, порт источника, порт назначения. Блок выделения сетевых потоков 6 выделяет из сетевого трафика сетевые потоки, каждый из которых образован множеством сетевых пакетов с одним и тем же набором указанных параметров. Затем блок выделения сетевых потоков 6 для каждой полученной четверки параметров выполняет поиск соответствующего блока обработки сетевых потоков 3 по таблице сетевых потоков. Если в таблице сетевых потоков соответствующая параметрам выделенного сетевого потока запись найдена, то данный сетевой пакет блок балансировки сетевого трафика 2 передает для кодирования в соответствующий блок обработки сетевых потоков 3. Если в таблице сетевых потоков соответствующая параметрам сетевого пакета запись не найдена, то блок балансировки сетевого трафика 2 формирует новую запись в таблице сетевых потоков и затем определяет свободный блок обработки сетевых потоков 3.
Распределение по блокам обработки сетевых потоков 3 осуществляется блоком выделения сетевых потоков 6 на основании состояния загрузки вычислительных ресурсов, полученного от блока анализа состояния загрузки вычислительных ресурсов 5. Блок анализа состояния загрузки вычислительных ресурсов 5, связанный с каждым блоком обработки сетевых потоков 3 и с блоком выделения сетевых потоков 6, контролирует уровень загрузки процессора и объем занятой оперативной памяти компьютерной системы, используемые каждым блоком обработки сетевых потоков 3, и формирует распределение сетевых потоков по блокам обработки сетевых потоков 3 для блока выделения сетевых потоков 6. Если в компьютерной системе достаточно свободных вычислительных ресурсов для запуска новой виртуальной машины, в которой выполняется блок обработки сетевых потоков 3, то такая виртуальная машина запускается блоком анализа состояния загрузки вычислительных ресурсов 5, информация о текущем количестве блоков обработки сетевых потоков 3 и о распределении сетевых потоков по блокам обработки сетевых потоков 3 передается в блок выделения сетевых потоков 6, который формирует новую запись в таблице сетевых потоков, которая ставит в соответствие новому сетевому потоку вновь запущенный блок обработки сетевых потоков 3. Если в компьютерной системе недостаточно свободных вычислительных ресурсов для запуска новой виртуальной машины, в которой выполняется блок обработки сетевых потоков 3, то такая виртуальная машина не запускается, а блоком анализа состояния загрузки вычислительных ресурсов 5 выполняется поиск наименее загруженной виртуальной машины из уже исполняющихся по параметрам наименьшего уровня загрузки процессора и наибольшему объему свободной оперативной памяти. Затем информация о текущем количестве блоков обработки сетевых потоков 3 и о распределении сетевых потоков по блокам обработки сетевых потоков 3 передается из блока анализа состояния загрузки вычислительных ресурсов 5 в блок выделения сетевых потоков 6, который формирует новую запись в таблице сетевых потоков, которая ставит в соответствие новому сетевому потоку наименее загруженный блок обработки сетевых потоков 3.
Сетевой трафик кодируется в несколько потоков одновременно на блоках обработки сетевых потоков 3 путем кодирования информационного содержимого каждого сетевого пакета, образующего соответствующий сетевой поток. При этом состояние уровня загрузки процессора и объема занятой оперативной памяти каждым блоком обработки сетевых потоков 3 передается блоку анализа состояния загрузки вычислительных ресурсов 5 для распределения сетевых потоков по блокам обработки сетевых потоков 3 и для загрузки новых блоков обработки сетевых потоков 3 по мере необходимости наращивания числа блоков.
Каждый блок обработки сетевого потока 3 является отдельным блоком-вычислителем и представлен в компьютерной системе виртуальной машиной. Все блоки обработки сетевых потоков 3 идентичны друг другу и функционируют одновременно. Предельное количество блоков обработки сетевых потоков 3 определяется максимальным объемом вычислительных ресурсов компьютерной системы, разделенным на число минимально необходимых ресурсов для работы одной виртуальной машины. Если блок анализа состояния загрузки вычислительных ресурсов 5 устанавливает, что все вычислительные ресурсы всех виртуальных машин, в которых выполняются блоки обработки сетевых потоков 3, загружены, то блоком балансировки сетевого трафика 2 формируется очередь сетевых пакетов, ожидающих кодирования в соответствующих блоках обработки сетевых потоков 3.
Каждый блок обработки сетевых потоков 3 связан с блоком балансировки сетевого трафика 2 и с блоком агрегации сетевых потоков 4. Получив от блока балансировки сетевого трафика 2 сетевой пакет, блок обработки сетевых потоков 3 в поступившем сетевом пакете выделяет информационную часть сетевого пакета и кодирует выделенную информационную часть сетевого пакета, оставляя заголовок сетевого пакета без изменений, затем передает полученный сетевой пакет с закодированной информационной частью далее блоку агрегации сетевых потоков 4.
Блок агрегации сетевых потоков 4, получив пакет от связанного с ним блока обработки сетевых потоков 3, формирует последовательность исходящих сетевых пакетов и передает сетевые пакеты далее по адресам, указанным в заголовках сетевых пакетов, формируя исходящий кодированный сетевой трафик.
Предлагаемые способ и система позволяют выделять сетевые потоки в сетевом трафике, кодировать одновременно множество сетевых потоков и контролировать использование вычислительных ресурсов, необходимых для кодирования сетевых потоков, и тем самым позволяют упростить задачу потоковой защиты сетевого трафика при передаче в широкополосных компьютерных сетях, повысить пропускную способность сетевых средств защиты информации, обеспечить высокую производительность защитных механизмов в широкополосных компьютерных сетях.