Hlavní navigace

Češi uspěli na hackathonu Nvidie. Podívejte se na jejich projekt pro odražení DDoS útoků

15. 6. 2021
Doba čtení: 6 minut

Sdílet

 Autor: Nvidia
Tým z brněnské firmy GreyCortex zabodoval na hackathonu Nvidia. Pracoval s akcelerační DPU kartou. GreyCortex se rozepisuje o technických detailech.

Nvidia nedávno uspořádala hackathon zaměřený na akcelerační síťovou kartu BlueField DPU, což je oblast, která se do firmy dostala díky odkupu společnosti Mellanox. Na hackathonu se podařilo uspět českému týmu z brněnského kyberbezpečnostního podniku GreyCortex. Družstvo ve složení Petr Chmelař, Marek Brychta, Ondřej Kvasnica, Marina Volková a Jozef Mlích obsadilo třetí místo a dostalo se do společnosti Rusů, Němců a Nizozemců.

GreyCortex na hackathonu využíval BlueField DPU k detekci a zmírnění DDoS útoků. Tým brněnské společnosti pro Lupu sepsal, jak technicky projekt fungoval.

„Mimo vývoje produktu Mendel se zabýváme řadou výzkumných projektů a snažíme se předpovídat, kam se bude trh a požadavky zákazníků vyvíjet. Hledáme způsoby, jak nastolené problémy a výzvy řešit. Jedním z témat, kterým se v posledním roce zabýváme, je zpracování velkých datových toků a jejich analýza pomocí pokročilých metod využívajících machine learning a umělou inteligenci. A dále hledáme možnosti, jak se proti těmto útokům aktivně bránit,“ vysvětluje motivace účastnit se hackathonu Pavel Jurka, technologický ředitel GreyCortexu.

„Jednou z možností, jak těchto cílů dosáhnout, je využití akcelerace na úrovni hardwaru. Nvidia v současné době poskytuje řadu síťových karet umožňujících dosáhnout požadovaných rychlostí. V rámci našich diskusí nám byla nabídnuta možnost si vyzkoušet nejnovější generaci DPU karet BlueField, které posouvají hranice využití metod strojového učení na síťovém provozu na další level. Využili jsme tedy i možnosti zúčastnit se hackatonu. Ten nám poskytl možnost demonstrovat naše záměry využití dané karty v praxi.“

GreyCortex technicky popisuje celý projekt

Co je GPU a k čemu se používá, asi většina čtenářů Lupy ví. Nvidia ale pracuje i na akceleraci výpočtů pro síťové karty BlueField DPU – zkratka znamená Data Processing Unit.

Co takové zařízení umí a k čemu je určené? Jak už bylo naznačeno, jedná se o akceleraci různých operací. Bavíme se o datových tocích až 400 Gb/s. Ale v případě BlueField II je to „pouhých“ 100 Gb/s. Síťovka má 8–16 linek připojených přes PCI Express, je na ní 64bitový armový procesor až s osmi jádry s 1MB L2 cache a 6MB L3 cache a 16 GB paměti. Kromě toho jsou na kartě další IP Core, které umožňují akceleraci dalších věcí. BlueField X má na sobě TensorFlow jádra pro akceleraci neuronových sítí.

Nvidia FlueField DPU
Autor: Nvidia

Nvidia FlueField DPU

To celé se dá použít na zabezpečení perimetru, kde se o bezpečnost stará přímo samotná karta. Může třeba generovat netflow nebo dělat analýzu samotných dat (deep packet inspection) a samozřejmě řídit samotný provoz. K síťové kartě je dodávaný SDK (Software Development Kit) DOCA. Jeho součástí jsou nástroje potřebné pro vývoj aplikací (viz schéma).

DOCA SDK
Autor: Nvidia

DOCA SDK

Hackathon – Jak vypadá hardware ve skutečnosti

24. až 25. května proběhl hackathon, který měl za cíl podpořit vývojáře, jež si chtějí tuto technologii osahat. Týden před tím proběhl virtuální boot camp, kde vývojáři z Nvidie ukázali a vysvětlili jednotlivé příklady z DOCA SDK. Na samotném hackathonu bylo 14 týmů, kde každý tým dostal dva servery, které byly spojené kartami BlueField II.

Samotná síťová karta z pohledu hostitelského systému vypadá relativně obyčejně. Ethtool ukazuje driver mlx5_core. Síťové karty byly „dual head“. Každá tedy obsahovala dva SFP moduly. V systému se hlásí jako enp1s0f0 a enp1s0f1 a jsou na nich přednastavené IP adresy, tak aby bylo jasné, jak jsou propojeny.

Serverové a síťové schéma
Autor: Nvidia, GreyCortex

Serverové a síťové schéma

Na serveru i kartě samotné běželo Ubuntu. Ze serveru se dá na kartu připojit pomocí sériové linky minicom -D /dev/rshim0/console, ovšem pouze v případě, že je sériová konzole připojena do USB portu přes mini USB kabel. RShim ovladač též vytváří lokální síťové rozhraní tmfifo_net0 přímo přes PCI Express sběrnici. Toto rozhraní interně využívá ovladač virtio_net a umožňuje napojení se z lokálního hostitelského stroje přímo do karty za použití interní IP adresy karty BlueField.

Dále tento ovladač umožňuje kartu programovat nebo na ní přehrát firmware. Firmware je dodáván autorem, tedy společností Nvidia, v souboru s příponou BFB, což je zkratka pro BlueField Bootstream. Formát dat samotného bootstreamu však není systémem Linux rozpoznán, jelikož společnost používá vlastní formát. Více informací nejen ohledně BlueField Bootloaderu lze najít zde. Pro možnost vzdáleného přístupu přímo do karty (DPU) je možné použít jedno gigabitové rozhraní, kterému je možné přiřadit vlastní IP adresu.

Když se připojíme přes protokol SSH do procesoru ARM na kartě samotné, vidíme celou řadu síťových rozhraní, která jsou propojena pomocí Open vSwitch, tak aby data mohla proudit do hostitele. Open vSwitch umožňuje tzv. software defined networking a karta samotná potom hardware offloading jednotlivých operací, tj. armové jádro může softwarově dělat s daty na vstupu i na výstupu v podstatě cokoliv, v praxi ale obvykle chceme toto akcelerovat. Procesor použitý v DPU je ARM Cortex-A72.

Nastavení testovacího prostředí

Problém, který jsme se snažili řešit, je obrana proti DDoS útokům. Samozřejmě platí základní poučka, že DoS útok se snaží s minimem prostředků vygenerovat maximum zatížení na serveru. Efektivní obrana by měla stát míň prostředků, než to stojí útočníka.

V prvním kroku bylo potřeba nasimulovat reálný provoz. K tomuto účelu lze použít tcpreplay, který umožňuje přehrávat provoz zaznamenaný do PCapu. Protože BlueField DPU umožňuje akceleraci pomocí DPDK, je možné použít generátor provozu, jako je TRex, nebo přehrávat PCap pomocí DPDK replay. K takovému provozu jsme přimíchali provoz připomínající DDoS útok. Naše prostředí bylo simulované v síťové laboratoři pouze pro testování schopností karet.

Několik instancí tcpreplay v kombinaci s generátorem provozu TRex
Autor: GreyCortex

Několik instancí tcpreplay v kombinaci s generátorem provozu TRex

Nejdřív se všechna data musejí dostat do „serveru pod útokem“. Při simulaci provozu jsou v testovacích datech navíc IP adresy, které nepatří danému serveru. Síťovou kartu je tedy nutné přepnout do tzv. promiskuitního režimu. V případě BlueField je nutné nastavit Open vSwitch, aby data rovnou nezahazoval, ale předal je dál. To vše s využitím hardware offloadingu, tj. aby CPU hostitele i karty mohly být využity k dalším výpočtům.

Měření přenesených dat v jednotlivých bodech sítě a právě testované nastavení Open vSwitch
Autor: GreyCortex

Měření přenesených dat v jednotlivých bodech sítě a právě testované nastavení Open vSwitch

Potlačení DDoS útoku

Testovací provoz chceme nějak analyzovat. K tomuto účelu jsme si vybrali Suricata Intrusion Detection System. Tento software čte příchozí data a analyzuje je (deep packet inspection) a pomocí správně definovaných pravidel nám umožní detekovat možné DoS útoky na server samotný nebo na celou síť. Jak to správně nastavit, by vydalo na celý samostatný článek.

Testovací provoz
Autor: GreyCortex

Testovací provoz

V případě, že probíhá DDoS útok, množství zpracovávaných dat Suricatu zahltí a znemožní analýzu dalšího síťového provozu.

V případě, že dokážeme identifikovat zdroj útoku, můžeme kartě říct, aby data rovnou zahodila. Ideálně s hardwarovou akcelerací. Samozřejmě to záleží na konkrétním typu útoku, ale může to vypadat například takhle:

# ovs-vsctl set Open_vSwitch .

other_config:hw-offload=true

...

# ethtool -K enp27s0f1 hw-tc-offload on

# tc qdisc add dev enp27s0f1 ingress

...

# tc filter add dev enp27s0f1 parent ffff:prio 30 protocol ip

flower src_ip 16.0.0.0/24 action drop

Testovací provoz
Autor: GreyCortex

Testovací provoz

Bez škodlivého provozu je Suricata zachráněna a může dál sledovat důležitý zbytek síťového provozu.

Mezi ukázkovými příklady DOCA SDK, které jsme za tým GreyCortex zkoušeli, je deep packet inspection akcelerovaný přímo v kartě. Dalším příkladem je generátor NetFlow, který poskytne další významnou informaci o síťovém provozu. Svatým grálem je samozřejmě využití umělé inteligence k vyhledávání nových a neznámých bezpečnostních hrozeb, ale to až v některé z novějších verzí.

V tomto se jedná o opravdový „game changer“ a my se u toho snažíme být. S využitím DPU bude náš nástroj GreyCortex Mendel schopný zpracovávat provozy rychleji, chytřeji a za nižší cenu než dosud.

Autor článku

Reportér serveru Lupa.cz, dříve redaktor deníku E15, týdeníku Euro a webu Connect.cz. O technologiích píše také do zahraničních médií.