Hlavní navigace

NLNOG Day: konfigurace směrovačů, síťování tábora i hackování aut

Ondřej Caletka

Sdružení provozovatelů internetových sítí v Nizozemsku pořádá pravidelné technologické konference. V loňském roce se probíraly mimo jiné nové vlastnosti BGP, síťování letního tábora, správa konfigurace i hackování aut.

Doba čtení: 8 minut

V Nizozemsku sídlí významné množství společností, které mají globální přesah. Jsou jimi například RIPE NCC, regionální internetový registr, NLnet Labs, společnost vyvíjející open source software, nebo třeba jeden z nejstarších peeringových uzlů AMS-IX. Není proto divu, že o technická témata není na konferenci NLNOG Day nouze. Tento článek popisuje loňský ročník konference, který proběhl 8. září 2017.

Graceful BGP session shutdown

Job Snijders představil mechanizmus Graceful BGP session shutdown – jednoduché rozšíření BGP pro zpříjemnění odstávek BGP směrovačů: „Problém dnes je, že při plánované odstávce riskujete, že nějakou chvíli nebude něco fungovat, než se spočítá nová cesta.“ Při běžném vypnutí BGP relace se v síti partnera nejdříve šíří informace o zrušení prefixu a teprve potom jde informace o záložní cestě. Po krátkou dobu tedy daný prefix není dostupný.

Job Snijders

Při použití graceful shutdown směrovač nejprve signalizuje prefixy se speciální komunitou GRACEFUL_SHUTDOWN. Ta způsobí, že si partner u daného prefixu nastaví nejnižší lokální preferenci a začne hledat novou, lepší cestu. Provoz se tedy přesměruje na záložní linku ještě předtím, než vypínaná BGP relace přestane fungovat. K podpoře na straně příjemce stačí, aby v případě, kdy dostane prefix se speciální komunitou 65535:0, snížil lokální preferenci spoje na minimum.

Odesílatel by měl chvíli před vypnutím relace nastavit tuto komunitu na všechny adresy odstavovaného směrovače. Měla by zůstat i během odstávky a až po kontrole, že všechno funguje, je možné ji odstranit. V Cisco IOS XE jsou oba kroky spojené automaticky do příkazu graceful-maintanance activate. V síti operátorů NTT, GTT, GitHub, Nordunet, ColoClue a dalších je přijímací funkce implementována. Vzhledem k tomu, že daná komunita je tranzitivní, netýká se jen přímo připojených partnerů, ale projde i komplexnější strukturou sítí. Problém je, že to trochu nabourává zažitý model, kdy tranzitní operátoři na komunity nehledí. Případné zneužití je ale možné odhalit snadno, stačí monitorovat, že někdo vysílá tuto speciální komunitu déle než několik desítek minut.

Jak zasíťovat letní tábor

SHA2017 je pětidenní letní tábor pro hackery. Jako takový se kromě stanů neobejde ani bez elektřiny a připojení k internetu. O internet do každého stanu, chatky i loďky na ploše jednoho čtverečního kilometru se stará mezinárodní skupina dobrovolníků Team:NOC, která podobným způsobem zajišťuje i obdobné akce německého Chaos Computer Club. „Jedná se vlastně o malého internetového poskytovatele s dočasnými IP adresami a vlastním čísle autonomního systému,“ vysvětluje Arjan Koopen. Provozují infrastrukturu pro drátové a bezdrátové připojení účastníků, video streaming, VoIP, nebo třeba skenování vstupenek. Bylo položeno několik jednovidových vláken, celkem asi 50 kabelů. Jako PoP sítě se používá kadibudka – řešení zvané datenklo. Wi-Fi AP je na dřevěném sloupku v komínku budky. Uvnitř je přepínač Arista.

Datibudka – kromě distribuce internetu slouží i mnohem prozaičtějšímu účelu.

Na místě byla také tři datacentra. Jedno byla už přítomno dříve, bylo však potřeba nainstalovat klimatizaci, dvě vznikla dočasně kvůli táboru. Vlastní připojení k internetu zajišťovalo 50km temné vlákno od nizozemského operátora UNET, osazené 100GbE připojením do datacentra. Vzhledem k tomu, celá trasa měla útlum jen 13.5 dB na 1550 nm, instalovali na stejném vlákně ještě záložní trasu s 10GbE a pasivními DWDM multiplexory. Nakonec se využilo špičkově jen 13 Gbps, což aspoň částečně ospravedlnilo použití 100GbE technologie.

A jak vypadá vaše datacentrum?

K síti bylo připojeno celkem 8300 zařízení, z toho například 2000 zařízení s čipsetem ESP8266, která sloužila jako konferenční visačky. Další zajímavé zařízení byl Pixelflut – velká LED stěna, kterou je možné ovládat přes internet. „Taková věc potřebuje hodně přenosu, teklo do ní asi 4,5 Gbps,“ upřesňuje Arjan Koopen. Vzhledem k tomu, že organizátoři měli k dispozici především datacentrové přepínače, museli přehodnotit předchozí přístup s jedním centrálním směrovačem a velkým množstvím L2 přepínačů. Místo prováděli směrování na více bodech – v každé datibudce. Poprvé také mohli vyzkoušet tzv. white-label směrovače, tedy síťový hardware, ve kterém běží open source software – konkrétně Cumulus Linux. Problémem se třeba ukázala implementace protokolu OSPFv3 v démonu Quagga, která způsobovala pád směrovače. Řešením byla výměna démona Quagga za BIRD. I tak se ale objevovala velká zátěž control plane na směrovači, který měl směrovat 8192 veřejných IPv4 adres pro místní Wi-Fi. Část dokumentace síťové infrastruktury je zveřejněna na GitHubu.

Kolmo: řídit Linux jako síťové zařízení

Psal se rok 2002 a Bert Hubert, dnešní vývojář PowerDNS, byl přizván ke konzultaci do mezinárodní agentury UNHCR. Jejich satelitní spojení, které sloužilo VoIP i data, nefungovalo dobře a dodavatelé velkých značek si s tím nedokázali poradit. Bert tehdy nahradil komerční směrovače linuxovými a nastavil nejrůznější parametry QoS tak, aby nedocházelo k Bufferbloatu a aby VoIP hovory fungovaly i v případě, kdy se stahuje elektronická pošta. V té době také vznikl známý skript Wondershaper.

Bert Hubert

Velkým nedostatkem linuxových síťových zařízení proti zařízením výrobců jako Cisco, Juniper nebo Mikrotik je konfigurační roztříštěnost. „Když do Linuxu tři dny bušíte, abyste nastavili síťový stack do optimálního stavu, nemáte jak z něj tu konfiguraci dostat, aby přežila například restart.“ Jedinou výjimkou je nástroj iptables, který má příkazy iptables-save a iptables-restore. Zbytek nastavení sítě nejde nijak uložit. V historii se objevilo několik způsobů, jak tomuto problému čelit.

Přístup z roku 2000 počítá s tím, že všechno se nakonfiguruje v /etc/network/interfaces  a za běhu už se na to nastavení nijak nesahá. Řešení z roku 2014 používá například Ansible playbook, který nastaví soubor interfaces a případně i další. Jde jen o přidání další vrstvy abstrakce bez jakéhokoli posunu v původním problému. Ideálním stavem by bylo mít možnost server libovolně konfigurovat a následně z něj dostat playbook, který takový stav nastaví. Přitom je ale problém, když playbook pracuje jen s konkrétní verzí operačního systému, protože přímo nahrazuje určité konfigurační soubory.

Kolmo je myšlenka, jak získat programový přístup ke konfiguraci. Název odkazuje na pojem kolmogorovská složitost z teoretické informatiky, který hodnotí složitost souboru dat podle délky programu, který takový soubor vygeneruje.

Kolmo používá Configuration Schema File: soubor popisující formát konfiguračního souboru – jaké jsou volby, jaké hodnoty se čekají, jaké jsou jednotky. Dále Kolmo spravuje Stored Configuration File, kde jsou uchovány pouze změny proti výchozí konfiguraci. Celé to zastřešuje knihovna  libkolmo.

Výhodou je, že taková konfigurace je sebe dokumentující a navíc minimální, takže je velmi dobře přenositelná. Knihovna kolmo také automaticky ukládá historii konfigurací, takže je možné se k nim vrátit. Při upgradu je možné získat plnou konfiguraci, včetně výchozích voleb, takže i v případě, že se mezi verzemi změnila, nová minimální konfigurace bude jiná, ale chování serveru bude stejné.

Jak se hackují auta

Už v roce 2015 bylo 30 procent aut připojeno k internetu. Jejich množství bude nepochybně přibývat. Hackování aut začalo s BMW v roce 1988, což bylo první auto se sběrnicí CAN. Ta se postupně rozšiřuje do stále většího množství komponent. Sběrnice samozřejmě nemá žádné prostředky k autentizaci, každý se na ni může vydávat za kohokoli. Problém je, že obsah zpráv je pro běžného pozorovatele nečitelný a ani není snadné zjistit, které adresy patří kterému zařízení. Také v autě bývá několik oddělených CAN sběrnic, takže ta připojená k motoru není zároveň připojena k zábavnímu systému. Nicméně i tak je potřeba brána, která dodává informace z motoru na palubní desku a případně povoluje přenos určitých zpráv opačným směrem.

Daan Keuper

Sběrnice CAN je zapojena tak, že při vysílání je dominantní nula, která v případě kolize vyhraje. Zařízení s nižší adresou má tedy větší prioritu. Při detekci kolize se zařízení pokouší vysílání opakovat 128krát, pak pokus vzdá.

Existuje také například útok na odemykání auta bez klíče, jednoduše prostřednictvím retranslace rádiového signálu z auta k řidiči a zpět. Dalším útokem je spoofing zpráv TPMS, tedy systému monitoringu tlaku pneumatik. Auto se při ztrátě tlaku zastaví, nebo přejde do „želvího módu“. Tento útok údajně využívají některé policejní složky při stíhání podezřelého auta.

Největší dírou ale nepochybně je IVI – In Vehicle Infotainment. V roce 2012 někdo předvedl přístup ke CAN sběrnici přehráním zlomyslného MP3 souboru. Zcela vzdálený útok byl předveden na autě značky Jeep. Dbus démon v IVI poslouchal na rozhraní vestavěného celulárního modemu. Byla v něm zranitelnost, která umožnila získat shell superuživatele. IVI v tomto autě byl připojen ke všem CAN sběrnicím, takže útoku nic nebránilo.

Také byl předveden útok na auta Tesla. Ten vyžadoval otevření zlomyslné webové stránky. I přesto, že Tesla má bránu mezi CAN sběrnicemi, která přístup k motoru blokuje, IVI může aktualizovat firmware v této bráně, přičemž tyto firmwary nebyly podepsány.

Nejde o ojedinělé případy. Lidé ze společnosti Computest mají k dispozici plně vzdálený útok, který umožňuje u určitého modelu auta získat shell superuživatele v IVI. Záleží samozřejmě na mobilním operátorovi, aby nepoužíval CGN a neblokoval příchozí provoz na mobilní terminál v autě. V autě je mobilní terminál připojený k procesoru A, ten je ethernetem propojen k procesoru B, odtud vede sériová sběrnice k řadiči sběrnice CAN, která je připojena k bráně. Podařilo se jim nahrát z procesoru A nový firmware do procesoru B a dostat se tedy až na první CAN sběrnici. Skutečnému napadení auta brání CAN brána. Je však možné získávat data z mikrofonu, GPS a podobně.

MIF18 tip v článku témata

Zajímavý útočný vektor na auta představuje také USB: „Máme téměř hotový útok, který se do auta nahraje připojením telefonu se zlomyslnou aplikací do USB portu v autě,“ uvádí Daan Keuper.

Problém je také v mobilních aplikacích, které někteří výrobci k autům dodávají. „Viděli jsme Nissan Leaf, který má mobilní aplikaci, která posílá HTTPS API dotazy směrem k Nissanu se zprávou: ,odemkni auto s tímto sériovým číslem'. Bez jakékoli autentizace.“ Největší problém připojených aut je, že všechna kromě Tesly nemají možnost aktualizace firmwaru přes internet, takže chyby v nich objevené tam budou ještě nejméně 15 let.

Našli jste v článku chybu?