Síť to ustála: tři dny spamu v korutanské síti MeshCore

Tato stránka byla přeložena automaticky. Mohou se vyskytnout chyby.

Nejdůležitější hned na začátek: síť vydržela. Tři dny byla korutanská síť MeshCore zaplavována spamem a falešnými uzly a fungovala dál. Beru to jako test, který bych si takhle nikdy neobjednal a který síť přesto zvládla. Tady vyprávím, co se stalo, z pohledu jednoho z provozovatelů.

Krátce před osmou v úterý večer

10. listopadu v 19:37 to začalo. V korutanské síti MeshCore se objevily zprávy, které žádný člověk nedokáže tak rychle napsat: na veřejném kanálu a na čtyřech hashtag-kanálech, ve špičce 19 za minutu, tedy jedna každé tři sekundy. Do 00:35 jich bylo 471 od devíti pevných názvů zařízení.

Pak byl klid. Přes noc i dopoledne síť běžela, jako by se nic nestalo.

Ve středu v 17:12 to začalo znovu, tentokrát s trikem. Název zařízení se měnil po každé jednotlivé zprávě. Za dobré dvě hodiny, do 19:16, přišlo 377 zpráv pod 261 různými názvy, z pouhých sedmi základních jmen, se 116 až 163 novými názvy za hodinu. Kdo chce něco takového skrýt, s blokovacím seznamem moc nepořídí.

Nezaznamenal to jen jeden z nás. Zaznamenala to celá síť. Kdo měl otevřený veřejný kanál, viděl, jak zprávy protékají.

Všechny časy v textu jsou v SEČ, graf níže je v UTC. Čísla pocházejí z paketů veřejné mapy a jsou vypočtená, nikoli změřená v éteru.

Co Repeater vidí a co ne

Proč je tak těžké se proti tomu bránit? Protože Repeater MeshCore neví téměř nic.

Zpráva na kanálu je šifrovaná. Repeater vidí hlavičku paketu, dosavadní cestu a hash kanálu. Obsah, jméno ani odesílatele nevidí. Paket přeposílá jako každý jiný.

Přeposílání se jmenuje Flood: každý Repeater v dosahu paket zopakuje, jeho sousedé ho zopakují znovu, až dorazí všude. Díky tomu je síť bez pevných tras odolná. Zároveň ji to činí zranitelnou. S rádiovými parametry CarinthiaMesh (SF8, 62,5 kHz, CR8) zabere paket o velikosti zhruba 109 bajtů při každém přeposlání asi jednu sekundu vysílacího času a každé z nich stojí éter všechny v dosahu.

Kolik toho doopravdy bylo?

Sloupcový graf Flood paketů za hodinu v korutanské síti MeshCore 10. a 11. listopadu 2026, s podílem odesílatele oranžově a dvěma označenými vlnami
Flood pakety za hodinu, od 10. listopadu 16 hodin do 11. listopadu 19 hodin UTC. Podíl odesílatele je oranžový, obě vlny jsou označeny. Graf: oeradio.at, zdroj: data paketů z veřejné mapy, CarinthiaMesh.

Běžný den v síti vypadá takto: v průměru zhruba 180 Flood paketů za hodinu. Ve špičce první vlny (noc na 11. 11., od 00 do 01 hodin) to bylo 390, z toho 243 od odesílatele, tedy 62 procent. Ve špičce druhé vlny (11. 11., od 18 do 19 hodin) to bylo 348, z toho 200 neboli 57 procent.

Zátěž Repeaterů se tak zhruba zdvojnásobila a síť to s přehledem zvládla: běžný provoz na kanálech běžel dál, všech šest Observerů zůstalo aktivních a síť zůstala použitelná. Jako zátěžový test to bylo dobré znamení.

Něco dalšího bylo nápadné v cestách druhé vlny. Žádný Observer neslyšel paket s méně než dvěma Hopy. Ve 40 procentech cest stál tentýž Repeater dvakrát, u ostatního provozu je to 13 procent. A první Hopy se rovnoměrně rozdělovaly mezi mnoho Repeaterů po celých Korutanech. Vypadá to na předvyplněné, falešné cesty. Jeden provozovatel ve skupině to viděl stejně: odesílatel zapisuje do hlavičky pár pseudo-Hopů, aby zmátl. Pro zaměřování jsou tyto cesty tedy bezcenné.

Večer ve skupině

Zatímco běžela druhá vlna, odehrálo se ve skupině Kärnten Funkt MeshCore to, co se v takových chvílích děje vždycky: nejdřív vztek, pak nápady, pak práce.

Vztek byl skutečný. Jeden řekl, že dokud to takhle půjde dál, o cvičeních nemusíme ani uvažovat. Jiný navrhl vypnout rovnou po celé zemi Repeatery, aby odesílatele přešla chuť.

Pak se to zkonkrétnilo a skupina vyjasnila pár věcí, které by měl znát každý začátečník:

  • Blokování ve vlastním klientu uklidí jen vlastní zobrazení. Pakety dál putují sítí a žerou vysílací čas. A protože se název neustále mění, není podle čeho filtrovat.
  • Odesílatele zablokovat nelze. Lze jen odpojit místa, přes která se do sítě dostává. Pak ale zůstanou venku i všichni ostatní.
  • Vypnout neznamená odpojit. Myslí se tím vypnutí přeposílání (set repeat off). Repeater zůstane dosažitelný, jen už nic nenese dál sítí. I to bylo krátce vyjasněno, aby všichni dělali totéž.

Potom se jednalo. Nejdřív přestalo přeposílat jedno vstupní místo v okolí Spittalu. Pak jsem ho vypnul já na Dobratschi, uzlu mezi jižními a západními Korutany a zbytkem, a nakonec přestalo na Koralpe na východě, aby záplava nevytekla údolím Lavanttal dál do Rakouska. Jeden provozovatel odpojil svůj Repeater od sítě na celou noc. Krátce po vypnutí bylo ticho, jestli to byla náhoda, nebo účinek, nevíme. A ticho nevydrželo: později večer provozovatelé hlásili, že to zase začalo. Tato fáze není v číslech tohoto článku zahrnuta.

Všechny Repeatery pak šly zase do provozu. Kdo vypne na vstupním místě, vezme všem ostatním cestu do sítě, to je ta cena. Plán, který z tohoto zvažování vznikl, je ve wiki: wiki.carinthiamesh.com/flood-abwehr (rozpoznání smyček, limit Hopů, duty cycle, nouzový vypínač, hledání odesílatele).

Detektivové s mezemi

Souběžně začali provozovatelé odesílatele zaměřovat. Dva se spojili. Jeden od večera zaznamenával každý paket se všemi metadaty a nabídl data všem, kdo s nimi chtěli dělat vlastní vyhodnocení. Jiní uvažovali o zaměřování pomocí SDR a směrové antény pro 869 MHz.

Pak přišla otázka, jestli se z intenzity příjmu dá odečíst vzdálenost. Odpověď skupiny: spolehlivě ne. Odstup signálu od šumu závisí i na místním šumu, lepší hodnotou by byl výkon příjmu (RSSI). Jeden provozovatel naměřil v jednom dni Repeater ve vzdálenosti 18 kilometrů silněji než ten v 8 kilometrech, oba s přímou viditelností. Jiní popisovali Repeatery, které přes malou vzdálenost neslyší, protože v cestě stojí kopec, a cesty, ve kterých se objevily Repeatery, které by se ve skutečnosti vůbec neměly slyšet. To odpovídá tomu, co už tušíme: cesta byla pravděpodobně zfalšovaná. Triangulace je, jak zněl závěr, těžší, než se čekalo.

Kdo to je, proto nevíme.

Třetí noc: nápis na mapě

Pak přišel čtvrtek a s ním překvapení, které nemělo se zprávami nic společného. V noci na 12. listopadu bylo na mapě najednou vidět 190 nových uzlů, jejichž polohy dohromady daly nápis severně od Korutan.

Fakta k tomu: od 01:39 do 02:06, zhruba 27 minut, přišlo 356 Advert paketů, až 24 za minutu, pod 190 různými názvy. 90 názvů se objevilo s jediným Advertem, ostatní se dvěma až pěti. Pakety se šířily jako běžné Floody přes všechny Repeatery, v průměru byly dlouhé 124 bajtů a pět Observerů je slyšelo. Potom už nepřišlo nic.

Škoda: mapa je zkreslená, dokud uzly po sedmi dnech nevypadnou. Rádiovému provozu to sotva uškodilo, 356 paketů za půl hodiny je pro síť únosných. Zda za tím stojí týž odesílatel jako u záplav zpráv, je otevřené.

Porušil odesílatel pravidla?

Ve skupině se někdo zeptal, jestli odesílatel tím porušil pravidla. K tomu je třeba vědět, co v našem pásmu vůbec platí.

MeshCore v Evropě běží v pásmu 869 MHz, pásmu pro zařízení s krátkým dosahem (Short Range Devices). Smí se používat bez licence, ale ne bez podmínek. Rakousko na to ve vyhlášce o využívání kmitočtů 2013 (FNV 2013) odkazuje na rozhodnutí EU 2006/771/ES o zařízeních s krátkým dosahem. Pro rozsah 869,4 až 869,65 MHz tam platí: nejvýše 500 mW vysílacího výkonu (ERP, efektivní vyzářený výkon) a buď techniky přístupu ke kmitočtu a zmírňování rušení, nebo pracovní cyklus nejvýše 10 procent. Vyhláška takové požadavky uvádí ve sloupci "podmínky užívání".

Pracovní cyklus, anglicky duty cycle, je podíl času, po který jednotlivé zařízení skutečně vysílá, měřený během průběžné hodiny. 10 procent hodiny je 360 sekund vysílacího času. S našimi rádiovými parametry a zhruba jednou sekundou na paket to dělá asi 360 paketů za hodinu na zařízení.

Co to znamená v praxi:

  • Počítá se součet za hodinu, ne rychlost. Kdo krátce vysílá velmi rychle a pak dlouho mlčí, může v limitu zůstat.
  • Limit platí pro každé vysílající zařízení zvlášť, i pro Repeatery. Také přeposlané pakety se počítají jako vysílací čas.
  • Limit upravuje vysílací čas, ne obsah. Spam může být v rámci limitu a přesto otravný.
  • Teprve kdo překročí 10 procent, porušuje podmínky užívání pásma. Pod tím je to nežádoucí, ale není to porušení pravidel.

Teď k výpočtu. Počítáme s pakety, které naši Observeři slyšeli, a s 1,0 až 1,17 sekundy vysílacího času na paket. Limit je 10 procent za hodinu, tedy 360 sekund. Jako odesílatele předpokládáme jediné zařízení. Domníváme se, že za tím skutečně stálo jen jedno, dokázat to ale nemůžeme.

  • Vlna 1: ve špičkové hodině 243 paketů, zhruba 243 sekund vysílacího času, tedy asi 6,8 procenta.
  • Vlna 2: ve špičkové hodině 200 paketů, zhruba 200 sekund, tedy asi 5,6 procenta.
  • Adverty třetí noci: 356 paketů za 27 minut, zhruba 404 až 416 sekund, tedy asi 11 procent hodiny, v nejhorších deseti minutách dokonce zhruba 37 procent vysílacího času.

Je to odhad, ne měření: chybí pakety, které žádný Observer neslyšel, skutečný vysílací čas tedy může být vyšší. Pokud vysílalo více zařízení, každé z nich bylo pod limitem. Obě záplavy zpráv tak zůstaly pod 10 procenty. Adverty byly nad limitem, pokud je vysílalo jediné zařízení.

Můj závěr: síť Repeaterů si svou odolnost musí vytvořit sama. Úřad v tom sotva pomůže, leda by se to stalo otázkou využívání kmitočtů.

Kdo čte s námi a kdo obviňuje

Několik provozovatelů mělo pocit, že odesílatel čte v telegramové skupině s námi. Nikdo to nedokáže prokázat a v otevřené skupině stejně nelze nikoho vyloučit.

Záleží mi tu na jedné věci: obviňování, přímé či nepřímé, nepatří ani do meshe, ani do skupiny. Každý si může dát jakýkoli název zařízení. Název nic neříká o tom, kdo za ním stojí.

Ve veřejném kanálu se to během druhé vlny přesto stalo. Spekulovalo se tam o tom, kdo za zprávami stojí, a paušálně byla obviněna skupina radioamatérů z Korutan, a to kvůli zařízení, za nímž by podle názvu mohl stát radioamatér. Kdo za tím doopravdy stojí a zda má něco společného se záplavou, nikdo říct nedokáže.

Později se ve skupině znovu objevily narážky, opět bez důkazu. Mám dojem, že pocházejí od téhož hlasu.

Považuji za možné, že přesně tohle je cíl. Záplava, která poštve provozovatele proti sobě, škodí víc než ta, která stojí jen vysílací čas.

A co v případě krize?

Otázka, která ve skupině po záplavě zněla nejhlasitěji, je ta nejnepříjemnější. Jeden provozovatel upozornil, že MeshCore je spíš síť pro obyvatelstvo než pro záchranné složky. Když vypadne mobilní síť, jak zní obava, počet zpráv prudce vzroste a síť je zatížena, a to zcela bez zlého úmyslu.

Od 13. do 15. listopadu probíhá v Korutanech cvičení civilní ochrany Combined Success, které spolkový stát Korutany a rakouská armáda pořádají od roku 2009. Pokud vím, hraje se tentokrát zemětřesení a radioamatéři předávají hlášení na 2 m a 70 cm. MeshCore s tím zatím nepočítá. Zeptal jsem se zúčastněných a navrhl jsem, aby s ním do budoucna počítali.

Z toho pro mě plyne: měli bychom si v síti nacvičit, jak vysílat v případě krize, s definovanými kanály a jasnými dohodami. Jeden návrh ze skupiny: odebrat Repeaterům široké Scopy (*, Evropa, Rakousko) a pracovat jen lokálně. Nasadil bych to, jakmile by se zase něco rozkmitalo. Zavést to koordinovaně na všech Repeaterech je ta skutečná práce a právě tu bychom měli trénovat, místo abychom se ji učili v krizi.

Test a co ukázal

Komiksový koláž: provozovatelé pracují na Repeaterech, solární panel a notebooky s grafem sítě, uprostřed přátelský robot s papírovými vlaštovkami, večerní nálada v horách
Záplava a lidé za ní, kteří drží síť v chodu. Vygenerováno AI, jen pro ilustraci.

Vidím ty tři dny jako test a dopadl dobře. Záplavu, falešné uzly i zfalšované cesty síť s přehledem vydržela, ostatní provoz běžel dál. Minimálně stejně důležité jako technika bylo to, co se stalo mezi námi, kdo MeshCore provozujeme: rychle jsme se domluvili, aniž by to někdo musel nařizovat. Na konci těch dní jeden z nás konstatoval, že držíme při sobě a spolupracujeme. K tomu se dá dodat jen málo. U nás se zapojí každý, kdo má zařízení, ať v klubu, nebo soukromě, a to je ta skutečná obrana. Sama technika by tu pomohla jen málo.

Test také ukázal, na čem bychom měli pracovat: jednotná minimální obrana na všech Repeaterech, nacvičený postup pro případ krize a více Observerů, kteří sdílejí data.

A uprostřed vzrušení přišla ve čtvrtek v poledne ze skupiny otázka, která zněla úplně jinak: Co si myslíte o Repeateru u Feldkirchenu, s přímou viditelností na Magdalensberg a nahoru k Ossiachu? Odpověděl jsem: dobrý nápad, a zeptal jsem se, jestli už pro to existuje stanoviště, nebo zatím jen nápad, a jaký hardware by bylo potřeba.

Síť roste dál.

Co si z toho odnést

Postup při útoku v šesti krocích

  1. Situaci doložit počty, bez obsahu zpráv.
  2. Informovat provozovatele a prozatím nic nepřenastavovat.
  3. Minimální obrana jednotně na všech Repeaterech.
  4. Vstupní místo na omezenou dobu vypnout (set repeat off), pokud je to nutné.
  5. Zdroj zúžit, oslovit ho místo pranýřování.
  6. Potom vše zdokumentovat.

Co funguje a co ne

  • Soukromý kanál chrání obsah, ale ne před záplavou.
  • Scope třídí, ale nechrání, protože se kód dá vypočítat z názvu regionu.
  • Cesty a intenzity příjmu jsou pro zaměřování jen nápověda, ne stopa, zvlášť ne u zfalšovaných hlaviček.
  • Účinná jsou jen opatření, která omezují množství a dosah Floodů. V případě krize je to dočasné vypnutí přeposílání na vstupním místě, za cenu, že tam zůstanou venku všichni ostatní.

Apel

  • Cizí názvy nečíst jako důvod k podezření a nikde neobviňovat bez důkazu.
  • Síť nepatří nikomu samotnému. Žije z dohod komunity, například při pojmenovávání zařízení. Kdo se zapojí, dodržuje je a nepředstavuje síť jako svou vlastní.
  • Repeatery konfigurovat jednotně a udržovat viditelný stav firmwaru.
  • Provozovat vlastní Observery a sdílet data: kdo pakety zaznamenává, může později doložit, co se stalo.
  • Kdo dodržuje vysílací výkon a duty cycle, jedná v rámci pravidel, a přesto může síť trpět. Proto jsou potřeba dohody.

73, Michi OE8YML


Poznámka o transparentnosti

Tento článek jsem napsal a zkontroloval s podporou AI (Claude, Anthropic) na základě svých vyhodnocení a pozorování ze skupiny provozovatelů. Všechna čísla jsou vypočtena z paketů veřejné mapy (map.carinthiamesh.com), nikoli změřena v éteru, vysílací časy jsou odhady za uvedených předpokladů. Příspěvek neobsahuje žádné obsahy zpráv, žádné klíče ani polohy soukromých osob. Kdo stojí za zprávami a falešnými uzly, není známo. Oba úvodní motivy jsou vygenerovány AI a slouží jen k ilustraci. Opravy a doplnění rád uvítám na [email protected].

Jak hodnotíte tento článek?
Nejsou nastavovány žádné cookies. Ukládá se pouze vaše hodnocení, volitelná zpětná vazba a anonymizovaný IP hash (ochrana před vícenásobným hlasováním). Ochrana osobních údajů

RSS kanál

Zůstaňte v obraze!

Nezmeškejte žádné novinky – přihlaste se k odběru našeho RSS kanálu

„Wire and will, we’re breaking through –Share · Connect · Create!“

Stavíš antény, aktivuješ vrcholy, experimentuješ s SDR nebo hackuješ Meshtastic uzly? OERadio.at je tvoje platforma. Sdílej své znalosti – jako článek, návod ke stavbě, report z terénu nebo technický tip. Ať už jsi zkušená YL nebo zkušený OM, čerstvě licencovaný nebo starý mazák: Tvé zkušenosti se počítají.