Result Details

Knihovna akceleračních modulů pro analýzu aplikačních protokolů v FPGA

Created: 2018
English title
Library of acceleration components for analysis of application-layer protocols on FPGA
Type
software
Language
Czech
Authors
Košař Vlastimil, Ing., Ph.D., DCSY (FIT)
Selecký Roman, Ing., DCSY (FIT)
Kořenek Jan, doc. Ing., Ph.D., DCSY (FIT)
Fukač Tomáš, Ing., Ph.D., DCSY (FIT)
Description

Tento softwarový balíček obsahuje knihovnu akceleračních modulů pro analýzu aplikačních protokolů v FPGA. Součástí knihovny je modul pro extrakci hlaviček protokolů a tři moduly pro vyhledávání řetězců popsaných regulárními výrazy v aplikačních datech. Součástí knihovny je i software pro generování výše uvedených modulů z konfigurace a pro jejich ovládání za běhu. Akcelerační moduly jsou široce konfigurovatelné a podporují široké spektrum požadované propustnosti od 1Gbit/s až po více než 10Gbit/s.

Modul pro extrakci hlaviček protokolů (HFE-R) je generovaný na základě popisu v jazyce P4. V jazyce P4 se popisuje struktura hlaviček jednotlivých protokolů, návaznost protokolů za sebou a specifikuje se, které položky z hlaviček mají být extrahovány. Modul je tudíž díky použití jazyka P4 velmi flexibilní a univerzální.

Moduly pro vyhledávání řetězců popsaných regulárními výrazy v aplikačních datech jsou v knihovně obsaženy tři. Podle jejich charakteru je můžeme rozdělit do dvou skupin. První skupina obsahuje moduly, jejichž zdrojový kód je generovány z množiny regulárních výrazů a tudíž není možné jejich konfiguraci měnit za běhu. Druhou skupinu tvoří moduly, které umožňují změnu množiny regulárních výrazů popisujících vyhledávané řetězce za běhu.

Do první skupiny patří moduly PROTOCOL_IDENTIFIER a CRYPTO_PROTOCOL_IDENTIFIER. Tyto dva moduly se liší účelem pro který byly navrženy, jádro provádějící vyhledávání mají oba společné. PROTOCOL_IDENTIFIER slouží pro identifikaci příslušnosti paketu k aplikačnímu protokolu. CRYPTO_PROTOCOL_IDENTIFIER slouží pro detekci protokolů používajících šifrování. Zdrojový kód těchto modulů je generován z dodané množiny regulárních výrazů ve formátu PCRE. Pro zvýšení flexibility je za běhu možné podporu pro jednotlivé regulární výrazy zapínat nebo vypínat. Výhodu těchto modulů je malá spotřeba zdrojů, nevýhodou je nemožnost měnit množinu regulárních výrazů popisujících vyhledávané řetězce za běhu.

Do druhé skupiny patří modul PATTERN_MATCH. Tento modul umožňuje měnit, množinu regulárních výrazů popisujících vyhledávané řetězce za běhu. Modul je parametrizovatelný, umožňuje měnit maximální počet uložitelných regulárních výrazů a požadovanou propustnost modulu. Z důvodu snížení náročnosti modulu na zdroje FPGA podporuje modul pouze podmnožinu výrazových prostředků regulárních výrazů. Jednotka je konfigurovatelná za běhu konfiguračním souborem, který je vygenerován z množiny regulárních výrazů nástrojem pmgen. Konfigurace jednotky je přepínána atomicky v jednom taktu hodin, tudíž není propustnost jednotky omezena ani změnou konfigurace. Výhodou tohoto modulu je možnost měnit množinu regulárních výrazů popisujících vyhledávané řetězce za běhu, nevýhodou je větší spotřeba zdrojů a podpora části výrazových prostředků regulárních výrazů.



English description

This software package contains a library of acceleration components for analysis of application-layer protocols on FPGA. The library contains a component for header fields extraction and three components for regular expression matching in application layer data. Software for generation of afore mentioned components from configuration and software for configuration of the components during runtime is also incorporated into the library. The acceleration components are fully configurable. The components are able to operate with various data throughput from 1Gbps to more then 10Gbps.

The component for header fields extraction (HFE-R) is generated from description in the P4 language. Structure of protocol headers, sequence of protocols and specification of extracted fields is described in the description. The component is very flexible and universal thanks to the description in the P4 language.

The library contains three components for regular expression matching. The components are divided into two categories. First category incorporates components, whose source code in VHDL is generated from set of regular expressions in PCRE format. Therefore, their set of regular expressions cannot be changed during runtime. Second category includes components which support change of the set of regular expressions during runtime.

Components PROTOCOL_IDENTIFIER and CRYPTO_PROTOCOL_IDENTIFIER belong to the first category. Those two components are designed for different use, but their pattern matching core is same. PROTOCOL_IDENTIFIER is used to determinate application layer protocol from packet L7 data. CRYPTO_PROTOCOL_IDENTIFIER is used to detect encrypted protocols. Source code is generated from set of regular expressions. Individual regular expression detection can be enabled/disabled at runtime to increase flexibility. The advantage of the components is low consumption of FPGA resources. However, the set of matched regular expressions can not be changed at runtime.

Component PATTERN_MATCH belong to the second category. The component supports change of the set of regular expressions during runtime. The component is parameterizable - maximal amount of stored regular expressions as well as required throughput. Only subset of regular expressions is supported by the component to lower consumption of FPGA resources. The component can be configured at runtime by a configuration file. The configuration file is generated by pmgen from set of regular expressions. The configuration of the unit is switched atomically in one clock cycle. Therefore, the throughput of the component is not limited by the reconfiguration. The advantage of the component is the ability to change the set of regular expressions during runtime. However, the consumption of FPGA resources is higher and only
subset of regular expressions is supported by the component.

Keywords

Analýza síťového provozu, analýza aplikačních protokolů, FPGA, PCRE, NKA, Vyhledávání řetězců popsaných regulárními výrazy,

English keywords

Network traffic analysis, Application-layer protocol analysis, FPGA, PCRE, NFA, Regular expressions matching,

URL
License
In order to use the result by another entity, it is always necessary to acquire a license
License Fee
The licensor requires a license fee for the result
Files
Projects
Smart Application Aware Embedded Probes, MV, Bezpečnostní výzkum České republiky 2015-2020, VI20152019001, start: 2015-09-01, end: 2019-05-31, completed
Research groups
Departments
Back to top