VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Aplikovaná informatika Použití BGP FlowSpec v síti CESNET pro ochranu před účinkem DDoS útoků. bakalářská práce Autor: Jiří Všetečka Vedoucí práce: Ing. Josef Verich Jihlava 2017
Abstrakt Předmětem této práce je seznámení s problematikou DDoS útoků, definování pravidel pro snížení dopadu útoků a přesměrování provozu na čističku, kde probíhá omezování nebo zahazování vybraného provozu. Ze začátku se práce zabývá teoretickými informacemi ohledně DoS útoků, jaké typy zranitelností zneužívají a jaké detektory provozu se používají a k čemu slouží. Práce také popisuje, jak probíhá reakce na ohlášené anomálie v síti a jaké jsou akce filtrování provozu. Implementace konfigurace aktivních prvků MPLS páteře v síti CESNET pro použití BGP FlowSpec s využitím kontrolérů s programem ExaBGP. Klíčová slova DDoS, BGP, FlowSpec, sběr informací, CESNET, RFC, čistička Abstract The subject of this thesis is the introduction to DDoS issues, defining the rules for reducing the impact of attacks and redirecting the traffic to DDoS Protector, which restrict or reject current flow. The theoretical information about DoS attacks are in the beggining alongside vulnerabilities and advantages whirch brings traffic detectors. Thesis also describes the way of response to a reported network anomalies and which extended communities can be applied. The configuration of active MPLS backbone elements via BGP flow specification through CESNET network with ExaBGP controller in use. Key words DDoS, BGP, FlowSpec, information gathering, CESNET, RFC, DDoS Protector
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též AZ ). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutí licence. V Jihlavě dne... Podpis
Poděkování Na tomto místě bych velmi rád poděkoval svému vedoucímu práce Ing. Josefovi Verichovi za možnost vytvářet ho pod jeho vedením, za jeho ochotu, cenné rady a čas strávený během konzultací. Také bych rád poděkoval rodině za podporu během tvorby bakalářské práce.
Obsah Úvod... 8 1 DoS útoky... 9 1.1 Faktory, které podporují útok (zranitelnosti)... 9 2 Ochrana před DDoS útoky... 12 2.1 Detektory provozu... 12 2.1.1 FTAS... 12 2.1.2 NEMEA... 14 3 Nástroje používané pro omezení následků DoS útoků... 17 3.1 FlowSpec... 17 3.2 VRF... 18 3.3 RTBH... 18 3.4 BGP... 19 3.4.1 Akce filtrování provozu... 20 3.5 ExaBGP... 21 3.6 MPLS... 21 4 Schéma různých typů provozu v síti... 23 5 Schéma zpracování provozu na vstupu do routeru (Cisco):... 26 5.1 Principy a návaznost systémů... 30 6 Porovnání implementace na zařízeních použitých v síti CESNET... 33 6.1 ExaBGP... 33 6.2 Route reflektor... 34 6.3 MPLS PE směrovač... 34 6.4 Typy MPLS PE směrovačů... 35 6.4.1 Cisco CRS... 35 6.4.2 Cisco ASR9000... 36 6.4.3 Nokia 7750 SR... 36 7 Záznamy v BGP FlowSpec... 39 8 Ukázky záznamů v ExaBGP a jejich zobrazení na směrovačích... 42 ExaBGP... 42 9 Čistička provozu... 50 9.1 Detekce... 50 9.2 Čištění... 51 9.3 Jednoduchý algoritmus... 51 9.4 Hardwarová akcelerace... 52 10 Závěr... 53 Seznam zdrojů... 54
Seznam obrázků... 55 Seznam tabulek... 56 Seznam použitých zkratek... 57 Přílohy... 59 Obsah přiloženého CD... 59
Úvod Stále narůstající využívání internetových služeb je pro uživatele velice příjemné Širokou škálu věcí je možné zařídit z pohodlí kanceláře nebo z domova. Díky tomu mají lidé výrazně vyšší produktivitu. Nemusí ztrácet čas cestováním, čekáním ve frontě a dalšími činnostmi, které stojí čas. Bohužel jsou však lidé na této technologii stále více závislí. Každý výpadek služby ovlivňuje menší či větší skupiny uživatelů a často působí nemalé finanční škody. Internetové služby se stávají velice zajímavým cílem pro jisté skupiny lidí. Někteří si potřebují zvyšovat ego tím, že někomu jinému něco zničí. Jiní se chtějí pomstít za skutečnou nebo domnělou křivdu. Existují skupiny, které si z narušování provozu internetových služeb udělaly velice výnosný byznys. Některé nabízí služby útoků na vybrané cíle, protože se najdou lidé, kteří se v konkurenčním nebo politickém boji nezastaví před ničím. Jiné se snaží o vydírání. Často se také může jednat o elektronickou obdobu teroristických útoků. Za této situace je nutné hledat metody, které sníží dopady nežádoucí činnosti poškozující internetové služby. Jednou z nich je omezení nežádoucího provozu, který je používán k odhalování nezabezpečených služeb, a zamezení přetížení linek k připojeným klientům pomocí BGP FlowSpec, který je v této době nasazován v síti CESNET z.s.p.o. CESNET z.s.p.o. je sdružení, které vzniklo s cílem poskytovat konektivitu a internetové služby vysokým školám a pracovištím Akademie věd. Jeho klienty se pak staly další instituce. Jedná se hlavně o akademické instituce a výzkumná pracoviště. CESNET provozuje MPLS síť, ve které poskytuje nejenom připojení do internetu, ale také privátní L3 a L2 spoje. Vzhledem k vysokým nárokům na propustnost sítě jsou v páteři použita rozhraní s kapacitou 100 Gb/s Tomu odpovídají kapacity linek zajišťující externí konektivitu. Celková kapacita těchto linek je vyšší než 200 Gb/s. To bohužel dává dost prostoru i pro aktivity, které nejsou zrovna žádoucí. Proto jsou v uzlech sbírány informace o provozu. 8
1 DoS útoky DoS je zkratkou Denial of Service je typ útoku na internetové služby nebo síťovou infrastrukturu, jehož cílem je znepřístupnit danou službu ostatním uživatelům. Při tomto útoku se nejčastěji jedná o využití nějaké chyby. Seznam nedostatků, které se při útoku dají zneužít je veliké množství, například dosažení limitu aplikace či síťové karty, přetížení systémových limitů paměti, CPU či místa na disku. Pokud je tedy výsledkem útoku odepření dané služby, tak je jedná o DoS útok. DDoS Distribuovaný DoS útok je prováděn simultánně větším počtem stanic, které ve většině případů nemají ponětí, že jsou zneužívány třetí stranou, která útok řídí. 1.1 Faktory, které podporují útok (zranitelnosti) 1) Zranitelnost systémů Jedná se jak o servery, tak klientské stanice. Útočník využívá zranitelnosti nebo chyb daného systému a využije ho jako klienta v rámci botnetu ovládaného C&C servery. (C&C server je zkratkou pro command-and-control server. Jedná se o jakýsi centrální počítač, který přiřazuje úkoly takzvaným botnetům.to je skupina napadených počítačů (většinou trójským koněm), které přijímají rozkazy od útočníka. Zároveň také posílají informace zpět na C&C server, kde se ve většině případů shromažďují. Útočník díky nim má přehled jednak o tom jak jeho řada botnetů roste a zároveň jak plní jeho příkazy.) 2) Špatně napsaná aplikace Pokud útok vygeneruje větší množství provozu, než kolik stačí pojmout linky oběti, je jasné, že pokud oběť nemá ochranu na úrovní ISP, nemůže útoku odolat. 9
3) Nedostatečný rozsah linky Je jasné, že pokud útok má větší bandwidth než ten, na koho je útok proveden, je jasné, že pokud nemá ochranu na úrovní ISP, nemůže útoku odolat. 4) Problematická identifikace útoku Pokud útočník randomizuje data v plném rozsahu (POST/GET data, včetně User-Agent hlavičky atd.), tak není jednoduché určit specifický vzorec, kterým by se dal útočný provoz odstavit. 5) Spoofing Podvržení IP adresy, ideální pro anonymitu. Avšak i spoofované IP adresy se dají ve většině případů detekovat. 6) Existence reflektorů a amplifikátorů Reflekce se trochu podobá spoofingu IP adres. Avšak v tomto případě na server dorazí SYN/ACK paket s IP reflektora, kterou využil útočník. Ten o tomto spojení neví, tedy paket zahodí, ale po definovaném čase si reflektor uvědomí, že paket ztratil, a tak jej odešle znovu. Tedy jeden spoofovaný dotaz útočníka může vygenerovat několik paketů z reflektora na server. 10
Obr. 1 - Ukázka reflekce/amplifikace útoku Zdroj: google.com/search/fkpikts Apmlifikátor je často špatně nastavené zařízení, které komunikuje přes UDP (například se může jednat o DNS, NTP servery, zařízení používající SNMP či domácí gateway), který dokáže znásobit útok. V tomto případě se jedná o sílu útoku nebo kvantitu. Například DNS útok se provádí tak, že pomocí malého spoofovaného UDP DNS dotazu server vygeneruje několikanásobně větší odpověď, která je odeslána na server. V případě DNSSEC je odpověď ještě větší. 11
2 Ochrana před DDoS útoky Univerzální řešení ochrany před DDoS útoky není. Nasazením in-line řešení jsou podnikové sítě a datová centra schopna řešit útok až do výše propustnosti svých datových linek. Jakmile je dosaženo této hranice, je nezbytné využít ochrany o úroveň výše a zabránit zahlcení linek nasazení out-of-path řešením. (Typ útoků, který je odkloněn pomocí out-of-path metody, je v podstatě odkloněn z původní cesty v síti vedoucí přes kontrolní bod, který o každém paketu rozhodne, zda může pokračovat v původní cestě nebo ho pošle zpět. Jestli paket projde kontrolním bodem, závisí na pravidlech, která se určí pomocí analýzy statistik o provozu datové sítě.) 2.1 Detektory provozu Důležitou roli v detekci DoS útoků hrají statistiky o provozu datové sítě ve formátu protokolu NetFlow, exportované směrovači nebo specializovanými sondami jako je FlowMon. Tyto provozní informace ve spojení s nástrojem pro jejich analýzu a detekci útoků umožnují efektivně nasazovat out-of-path řešení. To nejčastěji využívají poskytovatelé internetu a provozovatelé páteřních sítí. 2.1.1 FTAS FTAS (Flow Based Traffic Analysis Systém) je systém pro analýzu IP provozu, který je vyvíjený pracovníky sdružení CESNET. Tento systém zpracovává statistické informace zasílané ze směrovačů protokolem NetFlow nebo podobným, který vychází ze stejných principů (IPFIX, NSEL, sflow, ). FTAS umožňuje generovat požadované pravidelné statistiky o přeneseném provozu jednotlivých institucí nebo provést okamžitou analýzu informací o přeneseném provozu podle podmínek zadaných přes webové rozhraní. Na následujících obrázcích je ukázán vstupní formulář pro zadání podmínek pro vyhledání informací o přeneseném provozu a jedna z forem jejich možných zobrazení. 12
Obr. 2 - Ukázka uživatelského prostředí FTAS pro vyhledávání provozních informací Zdroj: cesnet.cz/sluzby/ftas/ Obr. 3 - Ukázka HTML výstupu s grafy provozní informace s agregací, setříděné podle objemu. Zdroj: cesnet.cz/sluzby/ftas/ 13
Další funkcí systému FTAS je automatická detekce a oznamování anomálií a podezřelých aktivit v síťovém provozu. Díky tomu je možné rychle reagovat na vzniklý problém a zabránit tak škodám, které by mohly nastat v případě, že by nežádoucí provoz tekl i nadále bez omezení. FTAS posílá upozornění na podezřelý provoz na pracoviště dohledu sítě a správcům, kteří drží pohotovost. Ti pak dále analyzují dostupné informace a rozhodnou, jestli se jedná skutečně o škodlivý provoz nebo jenom o odchylku od běžného stavu, při které stále protéká požadovaný provoz. V případě, že se jedná o škodlivý provoz, provedou správci potřebné kroky k jeho omezení nebo úplného zastavení. 2.1.2 NEMEA NEMEA (Network Measurements Analysis) je modulární detekční systém pro analýzu síťového provozu. Systém se skládá ze samostatných stavebních bloků nazývaných moduly, které jsou propojeny rozhraním. Modul je samostatný systémový proces, který přijímá proud dat na vstupních rozhraních, zpracovává je a odesílá další datové toky prostřednictvím výstupních rozhraní. K dispozici jsou moduly pro sběr dat (např. přijímání záznamů NetFlow/IPFIX), předběžné zpracování, detekce různých typů škodlivého provozu, nebo anomálií (síťové útoky, selhání propojení ), postprocesing výsledků detekce, protokolování a reportování. Mezi hlavní výhody NEMEA Frameworku patří modularita a flexibilita, vysoká propustnost, proudové zpracování v reálném čase, distribuabilita, rychlá a snadná implementace nových modulů. NEMEA Framework implementuje komunikační vrstvu, flexibilní formát UniRec a další běžné úkoly. 14
Obr. 4 - Architektura systému NEMEA se všemi důležitými částmi. Zdroj: github.com/cesnet/nemea 1) Moduly základní bloky, samostatné systémové procesy, datový provoz vstupuje na jejich vstupní interface, pak jej zpracuje a odešle jiný datový provoz na jejich výstup. Všechny moduly jsou jednoduše rozděleny na dva typy. Detektory (červené) zachycují škodlivý provoz, například tunelování DNS, DoS nebo skenování. Moduly (žluté) exportují a ukládají data o provozu sítě, předpřipravují a různě upravují exportovaná data (filtrování, agregace, slučování ) 2) NEMEA Framework soubor knihoven implementujících funkce společné pro všechny moduly. TRAP (modrá) (Traffic analysis platform) implementuje komunikační rozhraní a funkce pro přijímání/odesílání zpráv mezi rozhraními. UniRec (oranžová) (Unifited Record) implementuje efektivní datový formát přijatých/odeslaných zpráv. Obecná knihovna (fialová) implementuje běžné algoritmy a datové struktury používané v modulech. 15
Supervizor (zelená) centrální řídící a monitorovací nástroj systému NEMEA. Správa modulů se provádí podle zadané konfigurace. 16
3 Nástroje používané pro omezení následků DoS útoků Provozovatelé sítí používají řadu nástrojů pro zmírnění dopadu útoků typu DoS. Společným využitím nástrojů, technologiemi a funkcionality směrovačů je možné snížit dopady útoků na únosnou míru. Síť CESNET zajišťuje transparentní přenos dat z a do sítě klientů. Není vhodné, aby se na ní řešilo zabezpečení koncových sítí. Musí však poskytnout ochranu proti zahlcení linek nežádoucím provozem a možnost na požádání omezit nebo zablokovat provoz, který sice nezahlcuje linky, ale způsobuje nedostupnost služby klienta. Pro tento účel se v síti CESNET používají následující nástroje, technologie a funkce směrovačů. 3.1 FlowSpec Moderní směrovače umožňují různé operace se síťovým provozem. Je možné definovat pravidla, kterými je specifikován tok (Flow Specification) síťového provozu. Provoz, který vyhoví nastaveným kritériím, může být zahozen, omezen, označen k pozdějšímu zpracování nebo přesměrován podle potřeby. Tato pravidla mohou být na směrovači nakonfigurována trvale nebo dynamicky pomocí BGP. Trvalá konfigurace pravidel je nezbytná pro zachycení prvního stádia útoku, než zareagují detektory a než jsou provedeny specifické zásahy omezující závadný provoz. Tato pravidla jsou nastavena pro provoz, který je běžně používán k útokům. Hraniční hodnoty, při jejichž překročení se začíná provoz zahazovat, jsou nastaveny až na stonásobek běžné úrovně tohoto typu provozu. Dynamická pravidla jsou na směrovače propagována pomocí dalších nástrojů a jsou specifická podle typu nežádoucího provozu. Omezení je specifikováno tak úzce, jak je to jenom možné. 17
3.2 VRF Virtual routing and forwarding je technologie, která je obsažena v síťových směrovačích a umožnuje, aby v routeru existovalo více instancí směrovacích tabulek a pracovaly současně. Tím se zvyšuje funkčnost, jelikož síťové cesty mohou být rozděleny bez použití více fyzických směrovačů. Jelikož se provoz automaticky odděluje, VRF také zlepšuje zabezpečení sítě a může eliminovat potřebu šifrování a ověřování. Poskytovatelé internetových služeb často využívají VRF k vytvoření oddělených virtuálních privátních sítí (VPN) pro zákazníky. Díky čemuž je tato technologie označována také jako směrování VPN. VRF může být implementováno v síťovém zařízení pomocí odlišných směrovacích tabulek, známých jako základy předávání informací (FIB), pro každou směrovou instanci. Alternativně může mít síťové zařízení možnost konfigurovat různé virtuální směrovače, kde má každý FIB, který není přístupný jiné instanci virtuálního směrovače na stejném zařízení. VRF je v síti CESNET využívaný i pro přesměrování provozu do čističky. Tato vyhrazená VPN je nadefinovaná nejen na směrovačích zajišťujících externí konektivitu (zahraniční i v rámci České republiky), ale i ke všem klientům. K přesměrování se používají dynamicky propagovaná pravidla FlowSpec. 3.3 RTBH Remote Triggered Black Hole je efektivní metoda filtrování provozu z určitých zdrojových nebo na určité cílové rozsahy IP adres. K filtrování se využívá kontrola zpětné cesty ke zdrojové IP adrese. Pokud je zdrojová IP adresa směrována na black hole (rozhraní NULL apod.), tak je tento provoz zahozen. Provoz v opačném směru je od směrován na black hole a je tedy také zahozen, Na CESNETu je tato metoda používána především k zablokování provozu z nežádoucích zdrojů. V několika případech však byla použita i zablokování velkého množství provozu na cíle v sítích klientů. Tento provoz zahlcoval externí linky a bylo nutné jej zastavit ještě u partnera, který zajišťuje externí konektivitu. Nevýhodou metody RTBH je kompletně zablokovaný provoz na postižený IP rozsah. Je tedy nutné tuto metodu používat až v krajním případě. Bohužel však operátoři zajišťující 18
externí konektivitu nic než použití RTBH nenabízejí. V případě útoku na malé množství IP adres pak bývá výhodnější způsobit nedostupnost těchto IP adres a zachovat dobrou konektivitu pro ostatní stroje. 3.4 BGP Border Gateway Protocol (BGP) je univerzální směrovací protokol, který je používán především k propagaci IP prefixů mezi různými autonomními systémy (externí BGP) nebo uvnitř jednoho autonomního systému (interní BGP) třeba k propagaci v MPLS sítích. V moderních směrovačích je však možné pomocí BGP propagovat i FlowSpec pravidla. #sh bgp ipv4 flowspec Dest:147.230.244.2/32,Source:195.113.235.49/32,Proto:=6,DP$ BGP routing table entry for Dest:147.230.244.2/32,Source:195.113.235.49/32,Proto:=6,DPort:=443,TCPFlags:=0x02/176 Versions: Process brib/rib SendTblVer Speaker 803 803 Last Modified: Jan 5 18:56:58.173 for 27w5d Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 0.0.0.0 from 195.113.144.5 (78.128.216.17) Origin IGP, metric 4294967295, localpref 100, valid, internal, best, group-best Received Path ID 0, Local Path ID 0, version 803 Extended community: FLOWSPEC Traffic-rate:0,1310720 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Díky tomu je možné velice úzce omezit nežádoucí nebo přesměrovat podezřelý provoz k dalšímu zpracování. Použití BGP k propagaci FlowSpec pravidel přináší velkou výhodu v tom, že jedním zásahem se stejné pravidlo může rozšířit do všech směrovačů. Navíc je možné tuto činnost navázat na detekční nástroje a v případě, že se jedná zcela jistě o nežádoucí provoz, může dojít k automatickému vygenerování pravidla do programu ExaBGP, který jej okamžitě rozešle. V případě, že je při definici FlowSpec pravidla nutný zásah správce, tak se tento zásah provede pouze na jednom místě a k vygenerování na všechny směrovače pak dojde 19
automaticky. Tím se zvýší efektivita práce a zkrátí se doba, po kterou nežádoucí provoz způsobuje největší škody. 3.4.1 Akce filtrování provozu Činnost BGP FlowSpec je definována v RFC 5575. Podle definovaných parametrů je možné vybrat provoz, se kterým lze provést následující akce: Obr. 5 Ukázka předdefinovaných akcí podle RFC 5575 Zdroj: tools.ietf.org/html/rfc5575 1) Markování provozu (Traffic-marking) nastavením DSCP. Paketům je nastaven příznak, podle kterého se aktivní prvky mohou rozhodovat, jestli provoz přepošlou dále nebo jestli jej zahodí v případě, že kapacita odchozí linky nepostačuje. Pokud by takového provozu bylo příliš, tak by bylo zbytečné jej posílat přes celou páteř až na poslední směrovač, který by jej pak stejně zahodil. V takovém případě by tato akce nebyla optimální. 2) Omezení provozu (Traffic-rate) na vstupu do sítě. Pro provoz se definuje povolená kapacita a veškerý provoz, který překročí nastavenou hranici, je zahozen. Pokud nastane případ, že je tato hranice nulová, tak je veškerý provoz i s definovanými pravidly zahozen. Akce je vhodná pro takový provoz, který je zcela jistě nežádoucí. Používá se však i v případě, kdy je provozu takové množství, že by klientovi stejně nemohl být doručen a zbytečně by se zatěžovaly prvky a linky páteřní sítě. 3) Přesměrování provozu (Redirect) do jiné směrovací tabulky. Provoz je tak možné dopravit k zařízení, které provede jeho analýzu a nepropustí provoz, 20
který vyhodnotí jako závadný. Tato akce je nejšetrnější k uživatelskému provozu. Dochází sice k nárůstu latence, ale provoz se nezahazuje statisticky jako v předchozích případech. Zahazuje se pouze provoz, ve kterém jsou nalezeny další indicie nežádoucího provozu. V mnoha případech je nezbytné zajistit, aby toto zařízení vidělo provoz v obou směrech. Toho je možné dosáhnout dalšího záznamu v BGP FlowSpec tabulce, ve které jsou přehozeny zdrojové a cílové parametry. 3.5 ExaBGP ExaBGP poskytuje pohodlný způsob implementace softwarově definovaných sítí tím, že transformuje zprávy BGP do prostého textu nebo do formátu JSON, který lze pak snadno zpracovat pomocí jednoduchých skriptů. ExaBGP je v současné době jedinou otevřenou implementací injektoru trasy, který je schopen generovat a propagovat toky. ExaBGP je navržen tak, aby mohl být řízen z aplikací třetích stran, navíc generuje záznamy a je napojen na reflektované routery. Rutinně se využívá ke zlepšení odolnosti služeb a ochraně před poruchami sítě a služeb. 3.6 MPLS Multiprotocol Label Switching je technika směrování síťového provozu, která se využívá ve vysokorychlostních sítích. MPLS směruje data z jednoho síťového uzlu na druhý, a to na základě zkrácených označení štítků, nikoliv dlouhých síťových adres. V síti využívající MPLS jsou to právě štítky, které určují, kam se má paket přeposlat, aniž by bylo třeba analyzovat obsah paketu. Díky tomu se vyhne složitým vyhledáváním ve směrovací tabulce. To umožnuje vytvářet koncové okruhy, přes libovolný typ transportního média pomocí jakéhokoli protokolu. MPLS může zapouzdřit pakety různých síťových protokolů, a proto je pojmenován Multiprotokol. MPLS také podporuje řadu přístupových technologií. Hlavní výhodou MPLS je odstranění závislosti na určité technologii linkové vrstvy OSI modelu, aby různé vrstvy sítí vyhovovaly 21
rozdílným druhům provozu. Další výhody MPLS v rámci správy sítě jsou hlavně lepší spolehlivost a vyšší výkonnost. MPLS pracuje na vrstvě, která je obecně považována mezi tradičními definicemi vrstvy OSI. Pracuje na rozhraní mezi druhou a třetí vrstvou linková a síťová vrstva, proto se často označuje jako protokol vrstvy 2,5. Navíc poskytuje jednotnou službu pro přenos dat mezi protokoly, které využívají okruhy tak pro protokoly využívající přepojování paketů, kterým dává k dispozici datagramový model služeb. Dříve byla nasazena řada různých technologií, které předcházely MPLS, například ATM nebo Frame Relay. Tyto dvě technologie na rozdíl od MPLS využívají štítky pro pohyb rámců nebo buněk v celé síti. MPLS nahradila technologii ATM, protože vyžaduje méně režijních nákladů a zároveň poskytuje služby orientované na připojení pro rámce s proměnnou délkou. V síti CESNET jsou využívány možnosti, které MPLS nabízí. Hlavně se jedná o funkci MPLS Layer 3 VPN, která používá model peer-to-peer, který používá protokol BGP k distribuci informací souvisejících s VPN. Tento vysoce škálovatelný model typu peerto-peer umožnuje podnikovým účastníkům poskytovat poskytovatelům služeb outsourcing směrovacích informací, což vede k významným úsporám nákladů a snižování provozní složitosti pro podniky. Poskytovatelé služeb pak mohou nabízet služby s přidanou hodnotou, jako je kvalita služeb (QoS) a dopravní inženýrství, což umožnuje konvergenci sítě, která zahrnuje hlas, video a data. VPN založené na protokolu IP využívá instanci VRF. To zjednodušuje virtualizaci síti na vrstvě 3 a umožnuje zákazníkům jednoduše poskytovat oddělení provozu a izolaci cesty na sdílené sítové infrastruktuře a odstraňuje potřebu zavádění MPLS v podnikové síti. 22
4 Schéma různých typů provozu v síti 1) Detektory provozu v síti. Jsou nezbytnou součástí k předcházení DDoS útoků. To v praxi funguje tím způsobem, že detektory a analyzátory provozu nahromadí velký objem dat, který se pak roztřídí na běžný provoz a škodlivý provoz. Na základě tohoto třídění se vygenerují pravidla, která se poté rozšíří na směrovače. V případě statických pravidel se jedná o ochranu, která je silně předimenzovaná, aby neovlivňovala běžný provoz v síti. Dynamická pravidla jsou mnohem konkrétnější a škodlivý provoz z velké části omezí. Proto je vhodné mít zanalyzovaný velký objem provozu, protože čím více proběhlo analýzy, tím lepší a konkrétnější jsou pravidla, která si následně poradí s nežádoucím provozem na síti. Detektory provozu Nemea FTAS... Informace o provozu Klientský portál Informace o provozu Informace o provozu Informace o provozu API Definice pravidel ExaBGP PE1 PE2 Přesměrovaný provoz Čistička AF FlowSpec AF FlowSpec RR1 MPLS RR2 PE3 PE4 Obr. 6 Detektory provozu Zdroj: Ing. Josef Verich 23
2) Pokud na síti probíhá pouze běžný provoz, který neporuší daná pravidla, pak není důvod provádět omezující akce, avšak daný provoz na síti může být analyzován pro budoucí využití. Běžný provoz Globální tabulka Běžný provoz Globální tabulka Provoz ke klientovi VRF FS-Cisticka-global MPLS VRF FS-Cisticka-global PE router Globální tabulka PE router VRF FS-Cisticka-global Te0/0/0/1.101 Te0/0/0/1.100 Z čističky Do čističky VLAN101 VLAN100 Čistička 192.0.2.101 R199 Obr. 7 Ukázka běžného provozu Zdroj: Ing. Josef Verich 24
3) V případě, že do sítě proudí běžný provoz i útok, záleží na předdefinovaných pravidlech, co přesně propustí dál jako běžný provoz (ten který nepřesahuje dané limity) dále pak vybraný provoz a útok půjde pomocí VRF směrem přes čističku. Po přefiltrování provozu z čističky je vybraný provoz a silně zeslabený útok následně vrácen do původní sítě směrem ke klientovi. Běžný provoz a útok Globální tabulka Globální tabulka Čistý běžný provoz Provoz ke klientovi VRF FS-Cisticka-global Vybraný provoz a útok VRF FS-Cisticka-global PE router MPLS Vybraný provoz a silně zeslabený útok PE router Vybraný provoz a útok Globální tabulka VRF FS-Cisticka-global Te0/0/0/1.101 Te0/0/0/1.100 Z čističky Do čističky VLAN101 VLAN100 Čistička 192.0.2.101 R199 Obr. 8 Přesměrování provozu pomocí VRF Zdroj: Ing. Josef Verich 25
5 Schéma zpracování provozu na vstupu do routeru (Cisco): 1) Když probíhá DNS útok, který teče v síti společně s požadovaným DNS provozem, avšak definovaná pravidla nezachytí žádný záznam, je až na RPF ověřování, aby celkový provoz omezil na danou kapacitu sítě. Schéma zpracování provozu na vstupu do routeru (Cisco) Omezení celkového provozu určitého typu (policing UDP, port 0 a 53) DNS útok + požadovaný DNS provoz Omezený DNS provoz Běžný provoz NetFlow (ingress) ACL BGP FlowSpec No Action RPF check... QoS Źádný BGP FS záznam Rate-limit (Rate-limit+Redirect) Rate-limit Drop No Action Redirect Redirect Redirect to VRF Obr. 9 Schéma provozu routeru Cisco (1) Zdroj: Ing. Josef Verich DDoS Protector 26
2) Případ, kdy nastane DNS útok v souladu s DNS provozem, ale BGP FlowSpec zachytí porušení pravidla, tak omezí provoz pomocí Rate-limitu kapacitu provozu na jednu IP. Tedy běžný provoz pokračuje beze změny, avšak útok je odkloněn a omezen. Schéma zpracování provozu na vstupu do routeru (Cisco) Omezení provozu určitého typu(udp, port 0 a 53) pouze na jednu IP adresu pomocí FlowSpec akce rate-limit DNS útok + požadovaný DNS provoz Požadovaný DNS provoz Běžný provoz Požadovaný DNS provoz NetFlow (ingress) ACL BGP FlowSpec No Action RPF check... QoS BGP FS záznam Dest IPv4/32(IPv6/128), UDP, Source port 0,53 Rate-limit 1Mb/s + 1Mb/s DNS útok + DNS provoz na jednu IP adresu Rate-limit (Rate-limit+Redirect) Rate-limit Drop No Action Omezený DNS provoz Redirect Redirect Redirect to VRF Obr. 10 Schéma provozu routeru Cisco (2) Zdroj: Ing. Josef Verich DDoS Protector flow { route { match { destination 195.113.220.206/32; destination-port =4444; source-port =53; protocol udp; then { rate-limit 128000; flow { route { match { destination 195.113.220.206/32; destination-port =0; source-port =0; fragment is-fragment; protocol udp; then { rate-limit 128000; 27
3) Běžný DNS provoz doprovázený DNS útokem může být pomocí BGP FlowSpecu rovnou přesměrován pomocí VRF do čističky provozu. Během této akce se pomocí pravidel rozdělí běžný provoz a útok, který bude díky čističce následně silně zeslabený. Schéma zpracování provozu na vstupu do routeru (Cisco) Přesměrování provozu určitého typu(udp, port 0 a 53) pouze na jednu IP adresu pomocí FlowSpec akce redirect DNS útok + požadovaný DNS provoz Požadovaný DNS provoz Běžný provoz Požadovaný DNS provoz NetFlow (ingress) ACL BGP FlowSpec No Action RPF check... QoS BGP FS záznam Dest IPv4/32(IPv6/128), UDP, Source port 0,53 Přesměrování do VRF DDoS_Protector Rate-limit (Rate-limit+Redirect) Rate-limit Drop No Action Redirect Redirect Redirect to VRF DDoS Protector DNS útok + DNS provoz na jednu IP adresu Vyčištěný DNS provoz Obr. 11 Schéma provozu routeru Cisco (3) Zdroj: Ing. Josef Verich flow { route { match { destination 195.113.220.206/32; destination-port =4444; source-port =53; protocol udp; then { redirect 65535:1001; flow { route { match { destination 195.113.220.206/32; destination-port =0; source-port =0; fragment is-fragment; protocol udp; then { redirect 65535:1001; 28
4) Také je možnost, že se pomocí BGP FlowSpec pravidel daný provoz nejdříve omezí rate-limit a následně se ještě pošle do čističky provozu k analýze. Schéma zpracování provozu na vstupu do routeru (Cisco) Omezení provozu určitého typu pouze na jednu IP adresu a přesměrování k analýze pomocí FlowSpec akcí rate-limit + redirect Útok + požadovaný provoz Požadovaný provoz Běžný provoz Požadovaný provoz NetFlow (ingress) ACL BGP FlowSpec No Action RPF check... QoS BGP FS záznam Dest IPv4/32(IPv6/128), protokol, port Rate-limit+Redirect Útok na jednu IP adresu Rate-limit (Rate-limit+Redirect) Rate-limit Drop No Action Redirect Redirect Redirect to VRF Analyzovaný provoz Analyzátor Obr. 12 Schéma provozu routeru Cisco (4) Zdroj: Ing. Josef Verich Analyzovaný provoz 29
5.1 Principy a návaznost systémů Pokud má být ochrana před DDoS útoky kvalitní, musí se nejdříve provést analýza provozu sítě. Tuto práci mají na starosti detektory provozu např. FTAS, NEMEA, aj. Právě díky detektorům provozu se dají rozpoznat různé anomálie či jiné typy škodlivého provozu. Právě analýza je nezbytná pro dobré definování pravidel, která specifikují horní hranici toku (FlowSpec) síťového provozu. Pravidla se na směrovače v síti MPLS konfigurují buď staticky, nebo dynamicky. Jedna z hlavních funkcí, které MPLS nabízí, je MPLS Layer 3 VPN využívající BGP k dynamickému nakonfigurování pravidel na směrovače. Další výhoda BGP je, že svoji činnost je možné navázat na detekční nástroje. V případě, že je na síti detekován škodlivý provoz, jsou vygenerována nová pravidla, která jsou pomocí ExaBGP ihned rozeslána na všechny směrovače. Moderní směrovače podporují technologii VRF, která dovoluje, aby v jednom routeru existovalo více instancí směrovacích tabulek a mohly pracovat současně. Zároveň se technologie VRF v síti CESNET využívá pro přesměrovaný provoz do čističky. Provoz jde do čističky v případě, že se poruší nějaká pravidla, která byla nadefinována a BGP FlowSpec v případě útoku provede nezbytné akce. Tyto akce se dělí na různé typy a jsou rozděleny dle Address Family. Address Family obsahuje v paketu určitý identifikátor, který se skládá ze dvou čísel, každé z čísel má svoji předdefinovanou tabulku (Aktuální hodnoty pro tento identifikátor jsou uvedeny v dokumentu RFC 1700). ). Obr. 13 Ukázka AFI - Address Family Identifier Zdroj:https://supportcenter.checkpoint.com/supportcenter/portal?eventSubmit_doGoviewsoluti ondetails=&solutionid=sk39698 30
Zde na obrázku je ukázka několika prvních identifikačních čísel, která patří do AFI. Podobná tabulka je i pro SAFI (Subsequent Address Family Identifier) V našem případě nás budou zajímat IP verze 4 a IP verze 6, tedy AFI 1 a AFI 2. V případě AFI, jsou pro nás důležité dvě hodnoty: AFI 1 pro IP verze 4 AFI 2 pro IP verze 6 V případě SAFI jsou to také dvě hodnoty: SAFI 133 pro rozšiřování IPv4 pravidel pro specifikaci toku. SAFI 134 pro rozšiřování VPNv4 pravidel pro specifikaci toku. Výsledkem jsou tyto 4. důležité kombinace kombinace. AFI=1/SAFI=133 AFI=1/SAFI=134 AFI=2/SAFI=133 AFI=2/SAFI=134 IPv4 FlowSpec v globální tabulce VPNv4 FlowSpec IPv6 FlowSpec v globální tabulce VPNv6 FlowSpec Požadované akce jsou v BGP záznamech specifikovány pomocí rozšířených BGP komunit (extended community), které jsou specifikovány v RFC 5575. Tabulka 1 Akce specifikované pomocí Extended Community Rozšířená komunita 0x8006 0x8007 0x8008 0x8009 Akce Nastavení šířky pásma pro provoz definovaných parametrů Filtrování a vzorkování provozu Přesměrování vybraného provozu do jiné VRF Označování provozu pomocí DSCP pro další zpracování 31
Některá zařízení umožňují přesměrovat nebo zrcadlit požadovaný provoz podle návrhu draft-simpson-idr-flowspec-redirect-02 Tabulka 2 Akce přesměrování nebo zrcadlení Rozšířená komunita 0x800 Akce Přesměrování nebo zrcadlení provozu na IP adresu Použití této komunity způsobuje omezení globální tabulky. Vzhledem k tomu, že s touto komunitou nedokáží pracovat všechny směrovače v síti CESNET, není možné tuto možnost efektivně využít. Nově se výrobci snaží definovat pro přesměrování nové rozšířené komunity v návrhu draft-ietf-idr-flowspec-redirect-ip-02 Implementace na směrovačích je očekávaná v roce 2018. Další změny v použití komunit pro přesměrování provozu přináší RFC 7674. Směrovače na CESNETu však v tuto chvíli nepoužívají firmware, ve kterém by toto doporučení bylo implementováno. 32
6 Porovnání implementace na zařízeních použitých v síti CESNET V síti CESNET jsou použity 3 druhy zařízení, která podporují BGP FlowSpec: Zdroj pro centrální šíření FlowSpec záznamů - ExaBGP BGP route reflektor MPLS PE směrovače 6.1 ExaBGP Jako zdroj pro šíření FlowSpec záznamů je použit server s operačním systémem Linux a programem ExaBGP. V ExaBGP je možné použít všechny address-family pro BGP FlowSpec. Tabulka 3 Address family v ExaBGP Pojmenování address-family v ExaBGP AFI SAFI ipv4 flow 1 133 ipv6 flow 2 133 ipv4 flow-vpn 1 134 ipv6 flow-vpn 2 134 Je možné bez omezení použít BGP komunity podle RFC 5575 i návrhu draft-simpsonidr-flowspec-redirect-02. Velkou výhodou tohoto programu je, že je schopen zpracovávat záznamy z SQL databáze, do které je možné vkládat nové záznamy přes API (Application Programming Interface) z detektorů anomálního provozu. Je tedy možné provést automatický zásah při zjištění nežádoucího provozu. U provozu, který bude s jistotou označen jako nežádoucí, se záznam do databáze vloží bez zásahu obsluhy. Systém pošle pouze oznámení o vložení nového záznamu. Pokud je provoz označen jako podezřelý, tak systém vytvoří pravidlo a odešle zprávu obsluze 33
s požadavkem na potvrzení. Obsluha provede další analýzu a pravidlo buď potvrdí, nebo zruší. S růstem znalostí při vývoji detekčních mechanismů by se mělo stále častěji uplatňovat automatické vložení záznamu do systému bez zásahu obsluhy. Zkrátí se tím doba, po kterou se bude nežádoucí provoz šířit po síti CESNET. 6.2 Route reflektor V síti CESNET není BGP navazováno mezi směrovači každý s každým, ale jsou použity vyhrazené směrovače, které přijímají informace od všech MPLS PE směrovačů a potom je dále přeposílají na ostatní MPLS PE směrovače. Kromě běžně používaných address-family jsou použity i address-family pro BGP FlowSpec. Tabulka 4 Address family v IOS-XE Pojmenování address-family v IOS-XE AFI SAFI ipv4 flowspec 1 133 ipv6 flowspec 2 133 vpnv4 flowspec 1 134 vpnv6 flowspec 2 134 Pro tento účel jsou použity směrovače Cisco ASR1002 s operačním systémem IOS-XE. Na nich je možné bez omezení použít BGP komunity podle RFC 5575 i návrhu draftsimpson-idr-flowspec-redirect-02. Route reflektory slouží pouze pro distribuci informací z ExaBGP na MPLS PE směrovače. Není přes ně posílán žádný provoz. Proto na nich není použit FlowSpec v módu klient. 6.3 MPLS PE směrovač V roli hraničních MPLS PE směrovačů jsou v některých uzlech použity prvky Cisco CRS a Cisco ASR9000 s operačním systémem IOS-XR. V dalších uzlech jsou použity 34
směrovače Nokia 7750 SR. Na všech těchto prvcích je FlowSpec použit v módu klient. Podle naučených záznamů nastavují pravidla pro úpravu provozu. FlowSpec pravidla už se z těchto směrovačů dál neposílají. Každé z těchto zařízení má své omezení. Rozdíly jsou rovněž v implementaci na směrovačích Cisco a Nokia. 6.4 Typy MPLS PE směrovačů 6.4.1 Cisco CRS Směrovače Cisco CRS používají operační systém IOS-XR. Pro BGP FlowSpec používají uvedené address-family. Tabulka 5 Address family v IOS-XE Pojmenování address-family v IOS-XR AFI SAFI ipv4 flowspec 1 133 ipv6 flowspec 2 133 vpnv4 flowspec 1 134 vpnv6 flowspec 2 134 Podporují použítí BGP komunity podle RFC 5575 i návrhu draft-simpson-idr-flowspecredirect-02. FlowSpec je možné použít pouze s kartami MSC-140G a MSC-X. Na starších kartách MSC-A, MSC-B a FP40 není FlowSpec implementován. FlowSpec nefunguje ani novějších typech karet FP-140G a FP-X. Tyto karty nemají dostatečný počet front pro zpracování QoS. Podporu FlowSpec na určitých typech karet je potřeba brát v úvahu při připojování externích linek i klientů. Zejména linky pro externí konektivitu musí být zapojeny na správných kartách. Konfigurace FlowSpec je velice jednoduchá. FlowSpec se zapíná pro jednotlivé směrovací instance (globální tabulka nebo VRF) a pro address-family. 35
flowspec address-family ipv4 local-install interface-all! address-family ipv6 local-install interface-all! vrf VRF1 address-family ipv4 local-install interface-all! address-family ipv6 local-install interface-all!!! Touto konfigurací se zapne FlowSpec na všech IP rozhraních v dané směrovací instanci. Pokud není vhodné mít zapnutý FlowSpec na některém rozhraní, je možné jej na nich vypnout. interface TenGigE0/0/0/2 ipv4 flowspec disable ipv6 flowspec disable 6.4.2 Cisco ASR9000 Směrovače Cisco ASR9000 používají operační systém IOS-XR. Implementace FlowSpec na těchto směrovačích se neliší od implementace na směrovačích Cisco CRS, které používají stejný operační systém. FlowSpec je možné použít pouze s kartami druhé generace a novějšími. Na kartách první generace není FlowSpec implementován. 6.4.3 Nokia 7750 SR Směrovače Nokia 7750 SR používají operační systém TiMOS. Pro BGP FlowSpec je možné použít pouze následující address-family. Tabulka 6 Address family v TiMOS Pojmenování address-family v TiMOS AFI SAFI flow-ipv4 1 133 flow-ipv6 2 133 36
Address-family se SAFI=134 není implementována. Operátoři, kteří tato zařízení používají, však tuto funkcionalitu požadují. Podle informací od výrobce bude tato funkcionalita implementována v roce 2019. Tato skutečnost momentálně znemožňuje centrální řízení provozu ve VRF přes FlowSpec. Ze stejného důvodu není možné tyto směrovače použít jako route reflektor. Nedokázaly by totiž předat všechny potřebné informace. FlowSpec je sice podporován na všech typech karet, ale není možné jej použít na všech typech L3 rozhraní. Je možné jej použít pouze pro SAP (Service Access Point). Pro VPLS(Virtual Private LAN Service) není možné použití FlowSpec nakonfigurovat. Přes všechna tato omezení je možné na směrovačích Nokia 7750 SR v síti CESNET použít FlowSpec na většině přípojek. Konfigurace FlowSpec je na těchto směrovačích poměrně složitá. Systém ze záznamů, které má naučené přes FlowSpec, vytvoří filtr fspec-0, který je pak nutné importovat do filtrů, které jsou použity na SAP L3 rozhraní, pro které má být FlowSpec aplikován. ip-filter 2002 create filter-name "XXX" description "XXX" embed-filter flowspec router "Base" entry 1010 create description "XXX1" match src-ip ip-prefix-list "XXX1" exit action forward exit exit entry 1020 create description "XXX2" match src-ip ip-prefix-list "XXX2" exit action forward exit exit exit interface "XXX" create sap 1/1/1 create ingress filter ip 2002 exit exit exit 37
FlowSpec pravidla je možné ve filtru provést na libovolném místě nastavením offsetu. embed-filter flowspec router "Base" offset 1000 active V konfiguraci filtru je nutné s tím počítat. Řádky filtru, které se mají provést před použitím pravidel FlowSpec, musí mít nižší číslo než je offset. Řádky, které se mají provést až po pravidlech FlowSpec, musí mít vyšší číslo než je součet offset a maximálního počtu pravidel FlowSpec. Při úpravě stávajícího filtru je nutné přečíslovat řádky ve filtru tak, aby se v něm udělalo místo pro FlowSpec záznamy. Pro rozhraní, na nichž nebyl použit žádný filtr, je nutné nakonfigurovat a aplikovat prázdný filtr. Stejným způsobem je vytvořen filtr pro IPv4 i pro IPv6. ip-filter 11001 create filter-name "FS-global" default-action forward description "FlowSpec - globalni" embed-filter flowspec router "Base" exit ipv6-filter 11001 create filter-name "FS-global" default-action forward description "FlowSpec - globalni" embed-filter flowspec router "Base" exit interface "XXX" create sap 1/1/2 create ingress filter ip 11001 filter ipv6 11001 exit exit exit Aplikace FlowSpec pravidel pomocí filtru není ideální. Bylo by mnohem lepší, pokud by se filtry a pravidla FlowSpec prováděly nezávisle na sobě. 38
7 Záznamy v BGP FlowSpec Použití BGP FlowSpec má před jinými metodami velkou výhodu v tom, že prováděné akce je možné velmi přesně zaměřit na určitý typ provozu. V podmínce je možné definovat tyto hodnoty: Zdrojový prefix/maska Cílový prefix/maska Zdrojový port Cílový port Protokol (pro IPv4) Další hlavička (pro IPv6) TCP flagy Typ a kód ICMP Fragmentace (jestli je paket fragment nebo ne, jestli se jedná o první nebo poslední fragment) DSPC Třída provozu Délka paketu Značka toku (pro IPv6) 39
Prováděné akce jsou ExaBGP tyto: Tabulka 7 Typy akcí ExaBGP Akce v ExaBGP discard Zahození veškerého provozu. Je to to samé jako rate-limit 0 BGP komunita 0x8006 rate-limit <ratelimit> Nastavení šířky pásma 0x8006 redirect <route-target> redirect <ip-address> redirect-to-nexthop copy <ip-address> Route target VRF pro přesměrování provozu Přesměrování provozu na jiný next-hop v rámci globální tabulky Přesměrování provozu na jiný next-hop v rámci globální tabulky Zrcadlení provozu na další next-hop v rámci globální tabulky 0x8008 0x0800 C bit = 0 0x0800 C bit = 0 0x0800 C bit = 1 mark <mark> Nastavení DSCP 0x8009 action ( sample terminal ) Filtrování a vzorkování provozu 0x8007 community Nastavení strandardní komunity --- extended-community Nastavení rozšířené komunity --- Standardní komunity se používají především jako identifikátor, podle kterého se směrovače rozhodují, jestli záznam akceptují nebo ne. Je tak možné na směrovačích nastavit pouze ta FlowSpec pravidla, které se na něm mají opravdu zpracovat. Šetří se tak paměť a další zdroje na směrovačích, protože nemusí dělat zbytečnou činnost. Rozšířené komunity se používají především v souvislosti s VRF(flow-vpn, SAFI=134). V tomto případě jsou v záznamu potřeba následující položky. flow { route { route-distinguisher 2852:998999; match { ; then { extended-community target:2852:998; extended-community redirect:65535:999; 40
Route-distinguisher je unikátní identifikátor směrovače pro danou VRF. Bez tohoto identifikátoru nejsou záznamy označeny SAFI=134. Target je identifikátor záznamů, které se mají importovat do tabulky patřičné VRF. Redirect je identifikátor VRF, do které se má přesměrovat provoz. U přesměrování provozu z VRF není možné použít syntaxi redirect <route-target>. V tomto případě je nezbytné použít rozšířené komunity. Při následující konfiguraci na směrovači tento záznam způsobí přesměrování provozu z VRF test-flowspec-01 do VRF test-flowspec-02. vrf test-flowspec-01 address-family ipv4 unicast import route-target 2852:998 export route-target 2852:998 address-family ipv4 flowspec import route-target 2852:998 address-family ipv6 unicast import route-target 2852:998 export route-target 2852:998 address-family ipv6 flowspec import route-target 2852:998 vrf test-flowspec-02 address-family ipv4 unicast import route-target 65535:999 export route-target 65535:999 address-family ipv6 unicast import route-target 65535:999 export route-target 65535:999 router bgp 2852 vrf test-flowspec-01 rd 2852:998199 address-family ipv4 unicast address-family ipv6 unicast address-family ipv4 flowspec address-family ipv6 flowspec router bgp 2852 vrf test-flowspec-02 rd 65535:999199 address-family ipv4 unicast address-family ipv6 unicast flowspec 41
vrf test-flowspec-01 address-family ipv4 local-install interface-all address-family ipv6 local-install interface-all 8 Ukázky záznamů v ExaBGP a jejich zobrazení na směrovačích Omezení kapacity z IP adresy 195.113.235.49 do sítě 147.230.244.0/24 pro TCP paket s TCP flagem SYN na cílový port 443. Kapacita je omezena na 10Mb/s. ExaBGP flow { route { match { source 195.113.235.49/32; destination 147.230.244.0/24; protocol tcp; tcp-flags syn; destination-port 443; then { rate-limit 1310720; Zobrazení záznamu na směrovači Cisco Záznam v BGP BGP routing table entry for Dest:147.230.244.0/24,Source:195.113.235.49/32,Proto:=6,DPort:=443,TCPFlags:=0x02/168 Versions: Process brib/rib SendTblVer Speaker 374 374 Last Modified: Aug 20 21:11:34.246 for 00:07:21 Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 0.0.0.0 from 195.113.144.5 (78.128.216.17) Origin IGP, metric 4294967295, localpref 100, valid, internal, best, group-best Received Path ID 0, Local Path ID 0, version 374 Extended community: FLOWSPEC Traffic-rate:0,1310720 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Záznam v policy-map policy-map type pbr bgpfs_default_ipv4 42
class handle:0x76000093 sequence 5120 match destination-address ipv4 147.230.244.0 255.255.255.0 match source-address ipv4 195.113.235.49 255.255.255.255 match protocol tcp match destination-port 443 match tcp-flag 2 police rate 10485760 bps conform-action transmit exceed-action drop Zobrazení záznamu na směrovači Nokia Záznam v BGP u*>i -- 0.0.0.0 100 None No As-Path Community Action: rate-limit: 10240 kbps NLRI Subcomponents: Dest Pref : 147.230.244.0/24 Src Pref : 195.113.235.49/32 Ip Proto : [ == 6 ] Dest Port : [ == 443 ] TCP Flags : [ == 2 ] Záznam ve filtru Entry : 256 Origin : Inserted by embedded filter fspec-0 entry 256 Description : (Not Specified) Log Id : n/a Src. IP : 195.113.235.49/32 Src. Port : n/a Dest. IP : 147.230.244.0/24 Dest. Port : eq 443 Protocol : 6 Dscp : Undefined ICMP Type : Undefined ICMP Code : Undefined Fragment : Off Src Route Opt : Off Sampling : Off Int. Sampling : On IP-Option : 0/0 Multiple Option: Off TCP-syn : True TCP-ack : False Option-pres : Off Egress PBR : Disabled Primary Action : Rate-limit 10240 kbps Ing. Matches : 0 pkts Egr. Matches : 0 pkts Ing. Rate-limiter Offered : 0 pkts Forwarded : 0 pkts Dropped : 0 pkts Egr. Rate-limiter Offered : 0 pkts Forwarded : 0 pkts Dropped : 0 pkts 43
Přesměrování provozu z IP adresy 195.113.235.49 do sítě 147.230.244.0/24 pro TCP paket s TCP flagem SYN na cílový port 443 do čističky ExaBGP flow { route { match { source 195.113.235.49/32; destination 147.230.244.0/24; protocol tcp; tcp-flags syn; destination-port 443; then { redirect 65535:1001; Zobrazení záznamu na směrovači Cisco Záznam v BGP BGP routing table entry for Dest:147.230.244.0/24,Source:195.113.235.49/32,Proto:=6,DPort:=443,TCPFlags:=0x02/168 Versions: Process brib/rib SendTblVer Speaker 376 376 Last Modified: Aug 20 22:29:21.337 for 00:01:11 Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 0.0.0.0 from 195.113.144.5 (78.128.216.17) Origin IGP, metric 4294967295, localpref 100, valid, internal, best, group-best Received Path ID 0, Local Path ID 0, version 376 Extended community: FLOWSPEC Redirect-RT:65535:1001 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Záznam v policy-map policy-map type pbr bgpfs_default_ipv4 class handle:0x76000094 sequence 5120 match destination-address ipv4 147.230.244.0 255.255.255.0 match source-address ipv4 195.113.235.49 255.255.255.255 match protocol tcp match destination-port 443 match tcp-flag 2 redirect ipv4 nexthop vrf FS-Cisticka-global 44
Zobrazení záznamu na směrovači Nokia Záznam v BGP u*>i -- 0.0.0.0 100 None No As-Path Community Action: redirect-to-vrf:65535:1001 NLRI Subcomponents: Dest Pref : 147.230.244.0/24 Src Pref : 195.113.235.49/32 Ip Proto : [ == 6 ] Dest Port : [ == 443 ] TCP Flags : [ == 2 ] Záznam ve filtru Entry : 170 Origin : Inserted by embedded filter fspec-0 entry 170 Description : (Not Specified) Log Id : n/a Src. IP : 195.113.235.49/32 Src. Port : n/a Dest. IP : 147.230.244.0/24 Dest. Port : eq 443 Protocol : 6 Dscp : Undefined ICMP Type : Undefined ICMP Code : Undefined Fragment : Off Src Route Opt : Off Sampling : Off Int. Sampling : On IP-Option : 0/0 Multiple Option: Off TCP-syn : True TCP-ack : False Option-pres : Off Egress PBR : Disabled Primary Action : Forward (VRF) Router : 11001 PBR Target Status : Unknown Extended Action : None PBR Down Action : Drop (entry-default) Ing. Matches : 0 pkts Egr. Matches : 0 pkts Omezení kapacity provozu ve VRF ze sítě 192.168.1.0/24 do sítě 10.2.0.0/16 a pakety délky od 1001 do 1200B. Kapacita je omezena na 1Mb/s. ExaBGP flow { route { route-distinguisher 2852:998999; match { source 192.168.1.0/24; destination 10.2.0.0/16; packet-length >1000&<=1200; then { rate-limit 131072; extended-community target:2852:998; 45
Zobrazení záznamu na směrovači Cisco Záznam v BGP Route Distinguisher: 2852:998199 (default for vrf fl1) *>idest:10.2.0.0/16,source:192.168.1.0/24,length:>1000&<=1200/128 0.0.0.0 100 0 i Route Distinguisher: 2852:998999 *>idest:10.2.0.0/16,source:192.168.1.0/24,length:>1000&<=1200/128 0.0.0.0 4294967295 100 0 i BGP routing table entry for Dest:10.2.0.0/16,Source:192.168.1.0/24,Length:>1000&<=1200/128, Route Distinguisher: 2852:998199 Versions: Process brib/rib SendTblVer Speaker 6 6 Last Modified: Aug 20 22:44:31.365 for 00:08:36 Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 0.0.0.0 from 195.113.144.5 (78.128.216.17) Origin IGP, localpref 100, valid, internal, best, group-best, import-candidate, imported Received Path ID 0, Local Path ID 0, version 6 Extended community: FLOWSPEC Traffic-rate:0,131072 RT:2852:998 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Source AFI: VPNv4 Flowspec, Source VRF: default, Source Route Distinguisher: 2852:998999 Záznam v policy-map policy-map type pbr bgpfs_fl1_ipv4 handle:0x36000004 table description: L3 IPv4 and IPv6 class handle:0x76000095 sequence 1024 match destination-address ipv4 10.2.0.0 255.255.0.0 match source-address ipv4 192.168.1.0 255.255.255.0 match packet length 1001-1200 police rate 1048576 bps conform-action transmit exceed-action drop!! class handle:0xf6000004 sequence 4294967295 (class-default)! end-policy-map! 46
Přesměrování provozu ve VRF ze sítě 192.168.1.0/24 do sítě 10.2.0.0/16 a pakety délky od 1001 do 1200B. ExaBGP flow { route { route-distinguisher 2852:998999; match { source 192.168.1.0/24; destination 10.2.0.0/16; packet-length >1000&<=1200; then { extended-community target:2852:998; extended-community redirect:65535:999; Zobrazení záznamu na směrovači Cisco Záznam v BGP Route Distinguisher: 2852:998199 (default for vrf fl1) *>idest:10.2.0.0/16,source:192.168.1.0/24,length:>1000&<=1200/128 0.0.0.0 100 0 i Route Distinguisher: 2852:998999 *>idest:10.2.0.0/16,source:192.168.1.0/24,length:>1000&<=1200/128 0.0.0.0 4294967295 100 0 i BGP routing table entry for Dest:10.2.0.0/16,Source:192.168.1.0/24,Length:>1000&<=1200/128, Route Distinguisher: 2852:998199 Versions: Process brib/rib SendTblVer Speaker 8 8 Last Modified: Aug 20 23:07:13.384 for 00:00:42 Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 0.0.0.0 from 195.113.144.5 (78.128.216.17) Origin IGP, localpref 100, valid, internal, best, group-best, import-candidate, imported Received Path ID 0, Local Path ID 0, version 8 Extended community: FLOWSPEC Redirect-RT:65535:999 RT:2852:998 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Source AFI: VPNv4 Flowspec, Source VRF: default, Source Route Distinguisher: 2852:998999 Záznam v policy-map policy-map type pbr bgpfs_fl1_ipv4 handle:0x36000004 table description: L3 IPv4 and IPv6 class handle:0x76000096 sequence 1024 match destination-address ipv4 10.2.0.0 255.255.0.0 match source-address ipv4 192.168.1.0 255.255.255.0 match packet length 1001-1200 redirect ipv4 nexthop vrf test-flowspec! class handle:0xf6000004 sequence 4294967295 (class-default)! end-policy-map 47
Přesměrování TCP provozu do sítě 147.230.244.0/24 v globální tabulce na next-hop 195.113.222.82 ExaBGP flow { route { match { destination 147.230.244.0/24; protocol tcp; then { redirect 195.113.222.82; Zobrazení záznamu na směrovači Cisco Záznam v BGP BGP routing table entry for Dest:147.230.244.0/24,Proto:=6/64 Versions: Process brib/rib SendTblVer Speaker 377 377 Last Modified: Aug 20 23:23:35.404 for 00:00:23 Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 195.113.222.82 (metric 131) from 195.113.144.5 (78.128.216.17) Origin IGP, metric 4294967295, localpref 100, valid, internal, best, group-best Received Path ID 0, Local Path ID 0, version 377 Extended community: FLOWSPEC Redirect-IP:0 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Záznam v policy-map policy-map type pbr bgpfs_default_ipv4 class handle:0x76000097 sequence 6144 match destination-address ipv4 147.230.244.0 255.255.255.0 match protocol tcp redirect ipv4 nexthop 195.113.222.82 Zrcadlení TCP provozu do sítě 147.230.244.0/24 v globální tabulce na next-hop 195.113.222.82 ExaBGP flow { route { match { destination 147.230.244.0/24; protocol tcp; then { copy 195.113.222.82; 48
Zobrazení záznamu na směrovači Cisco Záznam v BGP BGP routing table entry for Dest:147.230.244.0/24,Proto:=6/64 Versions: Process brib/rib SendTblVer Speaker 378 378 Last Modified: Aug 20 23:34:49.418 for 00:00:45 Paths: (1 available, best #1) Not advertised to any peer Path #1: Received by speaker 0 Not advertised to any peer Local, (received & used) 195.113.222.82 (metric 131) from 195.113.144.5 (78.128.216.17) Origin IGP, metric 4294967295, localpref 100, valid, internal, best, group-best Received Path ID 0, Local Path ID 0, version 378 Extended community: FLOWSPEC Redirect-IP:1 Originator: 78.128.216.17, Cluster list: 0.0.0.11 Záznam v policy-map policy-map type pbr bgpfs_default_ipv4 class handle:0x76000097 sequence 6144 match destination-address ipv4 147.230.244.0 255.255.255.0 match protocol tcp redirect ipv4 nexthop 195.113.222.82 49
9 Čistička provozu Cílem čističky provozu v síti je dostat objem provozu pro cílovou organizaci na zpracovatelnou úroveň. Hlavní výhodou čističek provozu je, že hardware může zkoumat signatury, které se vyskytují v paketech. Tedy i na 100 Gb provozu, je DDoS Protector schopen provoz kompletně prohlédnout a podívat se na každý paket zvlášť, díky dostatečné HW akceleraci. Komplikace při změnách pravidel čističky v momentě kdy se filtry/pravidla mění, se musí znovu projít provoz, během kterého se pravidla měnila. VLAN Mapping díky němu je možné u čističky odesílat i přijímat na jednom konkrétním interfaceu. Čistička provozu se řídí zahazováním paketů podle signatur, ty jsou uložené v databázi. Buď si čistička aktualizace o signaturách v provozu stahuje sama, nebo si je správce vybírá, podle potřeby. Na redirect je omezené množství paketů, které se využívají pro marking, anebo pro policing (rate-limiting). 9.1 Detekce Při detekci je důležité nejen zaměřit se na útoky, ale i na scanování nedostatků sítě. Jakmile analyzátor provozu zachytí ověřování určitého typu informací u tisíců rozdílných uživatelů, je celkem jasné, že se je později pokusí zneužít, či na ně zaútočit. Čistička provozu (DDoS Protector) hlídá překročení prahů pro zadané IP adresy/podsítě. Navíc má volitelné časové rozlišení (s). Jednoduchá pravidla nastavená správcem dle historické zkušenosti. 50
9.2 Čištění Přesměrování útoku na DDoS Protector, následné vrácení čistého provozu do cílové organizace. Zahodí provoz ze zdrojových IP adres, které nejvíce přispěly k překročení limitu pravidla. Ke každému pravidlu sleduje množství provozu pro zdrojové IP adresy. Pokud je překročen limit pravidla, vybere tolik top zdrojových IP adres, aby bylo dosaženo snížení objemu provozu na požadovanou úroveň. Obr. 14 Ukázka provozu, který obsahoval DDoS útok a prošel čističkou provozu. Zdroj: DDoS Protector aneb čistička Martin Žádník 9.3 Jednoduchý algoritmus Příchozí paket: 1) Najdi všechna odpovídající pravidla 2) U každého pravidla aktualizuj zdrojové IP adresy a statistiky 3) Je zdrojová IP adresa již blokována? a. Pokud ano, zahoď pakety, aktualizuj statistiky b. Pokud ne, edituj paket a přepošli 4) Na konci časového intervalu zkontroluj překročení limitů pravidel 5) Vytvoř seznam TOP n-zdrojových IP adres k blokování 51
9.4 Hardwarová akcelerace Z čeho se skládá čistička: 1) Serveru se sítovou akcelerační kartou COMBO-100G 2) Programovatelné FPGA 3) Vlastní firmware Obr. 15 Ukázka HW čističky Zdroj: DDoS Protector aneb čistička Martin Žádník Parametry čističky: 1) Plná propustnost 100Gbps full duplex 2) Extrémně nízká latence (mikrosekund) 3) Podpora IPv6 4) Podpora překladu VLAN 5) Hlídání až 3 tisíců pravidel 6) Blokování až 16 tisíc zdrojových IP adres Obr. 16 Schéma DDoS Protectoru Zdroj: DDoS Protector aneb čistička Martin Žádník 52