Akcelerace analýzy síťového provozu
Nárůst rychlosti síťových linek přináší zvýšené nároky na výkonnost síťových zařízení. Dnešní linky umožňují přenosy v řádu desítek až stovek milionů paketů za vteřinu, což zkracuje čas na zpracování jednoho paketu na úroveň jednotek nanosekund. Současně systémy zajišťující síťovou bezpečnost musí být přesné a poskytovat detailní analýzu paketů, a to až do úrovně aplikačních protokolů, což je časově velmi náročné. Vzniká tak otázka, jak zajistit u těchto zařízení současně požadované funkce a vysokou propustnost. V článku se proto zaměříme na vhodné techniky hardwarové akcelerace a ukážeme si aplikaci těchto technik v rámci sondy řešící filtraci síťového provozu na úrovni aplikačních protokolů pro oblast zákonných odposlechů.
sonda hardwarová akcelarace IDS zákonné poslechy aplikační protokoly
S nárůstem významu informačních a komunikačních technologií je stále více potřeba předcházet kybernetickým hrozbám a související kriminalitě. Jedním ze základních prvků síťové bezpečnosti jsou IDS systémy (Intrusion Detection Systems), které provádějí hloubkovou analýzu paketů a hledají předem připravenou množinu signatur útoků. Většina signatur je zaměřena na hledání řetězců nebo regulárních výrazů v přenášených datech. Hloubková analýza síťových dat ale není potřeba jenom pro IDS systémy. Používá se také v případě diagnostiky problémů na síti nebo v oblasti zákonných odposlechů, kdy je nutné ze síťové linky přesně vyfiltrovat zájmový síťový provoz pomocí IP adres nebo aplikačních identifikátorů (např. e-mailová adresa).
Analýza aplikačních dat je časově velmi náročná, neboť je nutné procházet nejen hlavičky paketů, ale i přenášená sonda hardwarová akcelerace IDS zákonné odposlechy aplikační protokoly data. V případě filtrace síťových komunikací (toků) podle aplikačních (L7) identifikátorů je navíc nutné ošetřit případy, kdy se identifikátor nachází až po několika úvodních paketech. Abychom byli schopni zachytit a uložit i začátek komunikace, je potřeba na zařízení přechodně uchovávat začátky všech probíhajících síťových toků, což vyžaduje značné nároky na rychlost a kapacitu vyrovnávacích pamětí.
Všechny uvedené operace jsou časově velmi náročné. Vyžadují nemalý výpočetní výkon a někdy i rychlou paměť s velkou kapacitou. Při zpracování síťového provozu tak často dochází ke značnému zatížení procesoru i paměťového subsystému. Navíc se zvyšováním rychlosti síťových linek nároky na výpočetní výkon rostou a čas na zpracování jednoho paketu se výrazně zkracuje. V případě 100 Gb linek je potřeba každý paket zpracovat během pouhých 5 ns. U 400 Gb linek se dostáváme dokonce na čas 1,2 ns, což odpovídá jen několika málo cyklům
procesoru. Zajistit při takto krátkých časech přesné monitorování a detailní analýzu síťového provozu je velmi obtížné. K dosažení plné propustnosti linky pak může pomoct hardwarová akcelerace.
Implementovat zpracování paketů v hardwaru je ale náročné jak z pohledu času vývoje, tak i údržby nebo finančních nákladů. Při návrhu vhodného způsobu hardwarové akcelerace je proto nutné se zaměřit nejen na dosažení vysoké propustnosti, ale také na zajištění dostatečné flexibility. To umožňuje nejen zkrátit délku vývojového cyklu zařízení, ale také rychle reagovat na nové protokoly, služby a požadavky uživatelů.
Jak zajistit vysoký výkon a flexibilitu
hardwarové akcelerace?
Při návrhu flexibilní a současně výkonné hardwarové akcelerace je vhodné vyjít z charakteristiky síťového provozu. Pokud budeme zkoumat síťové toky dle objemu přenášených dat, dojdeme k závěru, že rozdělení jednotlivých toků v celkovém provozu odpovídá matematickému rozdělení s těžkými chvosty (anglicky heavy-tailed distribution). Jedná se o rozdělení pravděpodobnosti, kde jeden konec (chvost) nelze ohraničit žádnou exponenciálně klesající funkcí [5]. Známým a hodně medializovaným příkladem distribuce s těžkými chvosty je rozdělení světového bohatství, kdy 1% nejbohatších lidí kontroluje více peněz než zbylých 99%. U síťového provozu takovéto rozdělení znamená, že malé procento nejvíce intenzivních (nejtěžších) síťových toků je tak velkých, že představuje většinu z celkového objemu přenesených dat na síti. Na druhé straně je velká většina síťových toků lehkých a v sumě přenáší jenom malé množství paketů.
Tento poznatek ilustrujte Obr. 1, kde je možné vidět výsledky analýzy velikostí toků reálného síťového provozu z páteřní sítě sdružení CESNET, tedy české celonárodní akademické sítě pro vědu, výzkum a vzdělávání. Zobrazený graf ukazuje podíl z celkového počtu paketů, které jsou obsaženy ve vybraném zlomku největších toků na síti. Vodorovná osa znázorňuje procento největších toků a je zakreslena v logaritmickém měřítku. Z dat v grafu je možné vidět, že za více než polovinu veškerého provozu je zodpovědné jen jedno promile (10-1) největších toků, jedno procento (100) největších toků pak pokryje už více než 80% všech paketů na síti, a tedy zbylých 99% komunikací tvoří už jenom necelou pětinu z celkového objemu dat.
Právě na myšlence odstínění aplikace od nezajímavých těžkých toků jsme postavili akcelerační koncept softwarově definovaného monitorování (Software Defined Monitoring, zkratka SDM) [1]. Princip fungování konceptu SDM ilustruje Obr. 2. Analýza dat a detekce hrozeb je řešena aplikacemi znázorněnými šedou barvou. Pokud aplikace zjistí, že některý tok není z pohledu analýzy zajímavý, požádá SDM řadič o přesun zpracování do hardwarového akcelerátoru. Akcelerátor zpracovává na svém vstupu veškerá síťová data z monitorované linky. Na základě analýzy hlaviček paketů pak vybere odpovídající filtrační pravidlo, resp. identifikuje tok a vybere k němu nakonfigurovanou akci. Podle zvolené akce akcelerátor rozhodne o způsobu zpracování, případně o zaslání paketu dané aplikaci. Kromě celého paketu v původní podobě může akcelerátor poslat také jenom data z hlaviček nebo agregovanou statistickou informaci o celém toku, kterou spočítal přes více paketů. Využitím akcelerátoru na principu SDM konceptu tak mohou být aplikace odstíněny od těžkých toků, a to řízeným způsobem přímo z aplikace. Protože malé procento těžkých toků reprezentuje velké procento celkového provozu, dojde při hardwarovém zpracování třeba jen malé množiny síťových toků k výraznému snížení zatížení softwarové aplikace.
Přínos pro aplikaci plynoucí z využití konceptu SDM akcelerace může být demonstrován např. na jeho nasazení s IDS Suricata [4]. Dosažené výsledky [2] ilustruje Obr. 3. Na vybraném vzorku dat ze sítě CESNET jsme testovali schopnost IDS Suricata detekovat v datech bezpečnostní incidenty. Vybraný vzorek byl přehrán na různých rychlostech (vodorovná osa). Systém Suricata bez akcelerace (modrá) nebyl schopen data na těchto rychlostech zpracovávat, začal náhodné pakety ztrácet (levý graf), což se projevilo na snižující se míře nalezených incidentů (pravý graf). Zapojení SDM akcelerátoru na vstup IDS (červená) umožnilo snížit náhodnou ztrátu paketů při vyšších vstupních rychlostech, a tím zůstala míra detekce incidentů podstatně vyšší. I když celkově bylo v případě akcelerace zpracováno více paketů (červená plná), samotný systém Suricata na svém vstupu v obou případech zpracuje stejný objem síťové komunikace
(červená čárkovaná). Díky SDM systému ztrácí tedy Suricata méně paketů náhodně, a když přestává stíhat, začne sama vybírat nezajímavé toky na odfiltrování SDM akcelerátorem. To jí ve výsledku umožňuje efektivněji zaměřit svoje
síly na detekce v zajímavém provozu.
Účinná pre-filtrace síťových dat
Při analýze aplikačních protokolů je kromě použití konceptu SDM vhodné akcelerovat také úlohu hledání řetězců. Řetězce se používají jak pro reprezentaci L7 identifikátorů, tak i pro reprezentaci signatur útoků v IDS systémech. Základním problémem akcelerace hledání signatur je velmi rozsáhlá množina pravidel, která obsahuje kromě řetězců i regulární výrazy. Díky velké množině pravidel není možné řetězce reprezentovat v rychlé paměti na čipu, ale je nutné použít externí, výrazně pomalejší paměti. To sekundárně vede k nižší rychlosti zpracování dat.
Abychom efektivně využili hardwarové zdroje, je vhodné zaměřit akceleraci pouze na pre-filtraci síťového provozu. Cílem pre-filtrace je snížit rychlý datový tok na vstupu na úroveň, která již bude zpracovatelná standardními softwarovými nástroji. Důležité je, že při pre-filtraci není nutné hledat celé řetězce nebo ověřovat regulární výrazy. Je možné se omezit jen na krátké podřetězce nebo na vhodnou aproximaci regulárního výrazu. K uchování fragmentů signatur pak potřebujeme výrazně méně paměti, což umožňuje efektivně využít rychlou paměť na čipu.
Princip pre-filtrace je ukázán na Obr. 4. Vstupní tok dat je redukován pre-filtrem, který využívá k redukci dat krátkéřetězce. Ze 100 Gb je tak datový tok redukován na 10 Gba následně předán ke zpracování softwarovému nástroji.
Vzniká samozřejmě otázka, jakým způsobem hledat velké množiny krátkých řetězců na rychlosti 100 Gb/s. Pro tuto náročnou úlohu je možné využít sadu paralelních hash funkcí [3], které hledají řetězce na různých pozicích ve vstupním datovém toku, jak je zachyceno na obr. 5. Jednotlivé hash funkce hledají krátké řetězce s různým posunutím. Tím je v jednom kroku zpracován velký blok dat a je možné dosáhnout požadované propustnosti. Nalezení řetězce je pak ověřeno v tabulce řetězců, která je indexovaná hodnotami hash funkcí. Celý algoritmus je navržen tak, aby byl snadno realizovatelný v technologii FPGA nebo na GPU.
Při hledání řetězců je nutné poskládat správně data jednotlivých toků tak, aby bylo možné najít i signatury rozdělené mezi více paketů. Úplná rekonstrukce síťových toků je vhodná zejména při záchytu a filtraci zájmového provozu pomocí L7 identifikátorů. Pokud pre-filtrace řeší pouze detekci bezpečnostních incidentů, je vhodné pre- -filtr aplikovat přímo na vstupní datový tok a uchovávat si ke každému toku pouze poslední přijatá data odpovídající délce krátkých řetězců.
Vstupní rychlost [Gb/s]
Síťová sonda
Jedním z příkladů vhodné kombinace popsaných technik hardwarové akcelerace je malá síťová sonda, která byla vytvořena v rámci projektu bezpečnostního výzkumu Ministerstva vnitra ČR. Primárním cílem sondy je analýza a filtrace síťového provozu na základě konkrétní IP adresy a/nebo dle vybrané sady aplikačních identifikátorů. Základní funkcí sondy je tedy realizace odposlechů konkrétního telekomunikačního provozu pro účely jeho záznamu. Odposlech a záznam zpráv je v České republice pro právnické a fyzické osoby zajišťující veřejnou komunikační síť nebo poskytující veřejně dostupnou službu elektronických komunikací upraven § 97 zákona č. 127/2005 Sb., o elektronických komunikacích a o změně některých souvisejících zákonů, ve znění pozdějších předpisů. Dle § 88 trestního řádu č. 141/1961 Sb., ve znění pozdějších předpisů, je dále umožněno v jasně definovaných případech provádět odposlech a záznam telekomunikačního provozu osob podezřelých ze závažné kriminální činnosti. Za tímto účelem je ale důležité získat požadovaná síťová data (tzv. telekomunikační
provoz) bez jakýchkoli ztrát nebo v případě řízené ztráty informovat o rozsahu a charakteru ztracených dat.
Vytvořená sonda umožňuje efektivně vyfiltrovat a zachytit na plné rychlosti linky síťovou komunikaci konkrétního uživatele/podezřelého (tzv. zájmový síťový provoz). Je konstruována pro rychlost 1 Gbps, nicméně technologie je navržena tak, aby svou výkonností mohla škálovat až do desítek Gb/s. Nová generace síťové sondy je v současné době stavěna již pro 10 Gb linky. Zájmový síťový provoz je pak možné specifikovat nejen na základě standardních IP adres L3 vrstvy (IPv4, IPv6), ale i pomocí výše zmiňovaných identifikátorů aplikačních protokolů
z L7 vrstvy (např. e-mailová adresa). Pravidla záchytu z jednotlivých vrstev (L3 a L7) lze samozřejmě vhodně kombinovat. Zájmový provoz je po zachycení na sondě exportován na úložiště, tzv. mediační zařízení, které vhodným způsobem ukládá zachycená data. Takto zaznamenaný síťový provoz může v určitých případech sloužit jako důkaz. I proto jsou kladeny na zařízení náročné požadavky, které je potřeba splnit.
Sonda je založena na speciální hardwarové platformě ZE7000 s výkonným čipem Xilinx Zynq, který obsahuje procesor ARM s programovatelným hradlovým polem (tzv. FPGA). S využitím technologie FPGA a speciálně navrženým firmwarem pro zákonné odposlechy je možné zpracovat vstupní síťová data na plné rychlosti linky (tzv. wire-speed) a současně zajistit naprosto tajný odposlech komunikace a zachycení zájmového síťového provozu.
Díky propracovanému systému filtrace síťových dat pomocí krátkých řetězců a konceptu SDM umožňuje prototyp identifikovat konkrétní zájmovou komunikaci, přiřadit každému paketu přesnou časovou značku a poskytnout takto získaná data vyšetřovatelům pro další analýzu.
Pro usnadnění nasazení v neznámých sítích umožňuje sonda aktivovat režim, který zpřístupní statistické informace o síťovém provozu na připojené lince. Tento režim informuje uživatele o variabilitě zapouzdření jednotlivých protokolů a poskytuje informace, zda do sondy přicházejí kompletní síťové toky. Je tak možné ověřit, že sonda je správně připojena do sítě a při aktivaci vybraného záchytu paketů bude úplný i zachycený provoz
Závěr
Cílem článku bylo ukázat, že při konstrukci síťových zařízení zaměřených na síťovou bezpečnost jsme často nuceni
některé časově kritické funkce akcelerovat. V opačném
případě dochází k nekontrolované ztrátě paketů a snížení
přesnosti měření, záchytu paketů nebo detekce incidentů.
Ztráty paketů jsou dány jak složitostí analýzy aplikačních
protokolů, tak i neustále se zkracující dobou na zpracování
jednoho paketu. V případě malých embedded zařízení jsme
navíc limitovaní i nízkou výkonností dostupných procesorů.
V případě nutnosti zrychlit zpracování síťových dat je vhodné použít hardwarovu akceleraci, která musí zajistit nejen vysokou propustnost, ale i dostatečnou flexibilitu. Místo implementace komplexních funkcí v hardwaru je vhodné vyjít z charakteristiky síťového provozu a hardwarově zpracovávat nebo filtrovat pouze těžké toky, které sice zabírají většinu přenosového pásma linky, ale z pohledu bezpečnosti nejsou často zajímavé. Pro hledání signatur útoků nebo analýzu L7 identifikátoru je pak vhodné použít prefiltraci síťového provozu, která snižuje zatížení detailního softwarového zpracování. Všechny tyto efektivní techniky hardwarového zpracování jsme integrovali do malé síťové sondy, která byla vyvinuta v rámci projektu bezpečnostního
výzkumu. Při svých malých rozměrech vykazuje vynikající přesnost monitorování a záchytu dat, a to i při analýze aplikačních protokolů.
Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript.
Použité zdroje:
[ 1 ] Lukáš KEKELY, Jan KUČERA, Viktor PUŠ, Jan KOŘENEK, Athanasios V. VASILAKOS: Software Defined Monitoring of Application Protocols.
In: IEEE Transactions on Computers (Volume: 65, Issue: 2), DOI: 10.1109/TC.2015.2423668, IEEE, 2016.
[ 2 ] Jan KUČERA, Lukáš KEKELY, Adam PIECEK, Jan KOŘENEK: General IDS Acceleration for High-Speed Networks. In: The 36th IEEE International
Conference on Computer Design (ICCD 2018). Orlando, FL, USA, 2018. ISBN 978-1-5386-8477-1.
[ 3 ] Tomáš FUKAČ, Jan KOŘENEK, Vlastimil KOŠAŘ a Jiří MATOUŠEK. Increasing Throughput of Intrusion Detection Systems by Hash-Based Short String
Pre-Filter. In: The 45th IEEE Conference on Local Computer Networks. Sydney (virtual): Institute of Electrical and Electronics Engineers, 2020.
[ 4 ] Open Information Security Foundation: Suricata: Open Source IDS / IPS / NSM engine. Online: https://suricata-ids.org
[ 5 ] Sergey FOSS, Dmitry KORSHUNOV, Stan ZACHARY: An Introduction to Heavy-Tailed and Subexponential Distributions.
In: Springer Series in Operations Research and Financial Engineering. ISBN 978-1-4614-7101-1.