Před měsícem jsem měl na konferenci Kam kráčí telekomunikační sítě přednášku na téma virus Motherfucker , který napadal a zneužíval bezdrátové wifi routery a dával jsem pár tipů jak si router, potažmo svoji wifi síť zabezpečit. Dnes Vám přináším přehled možností, jak zvýšíte zabezpečení své sítě, svých wifi routerů a potažmo i dalších zařízeních v síti. Článek je určen jak pro správce sítě, tak i pro koncové uživatele, kteří se občas do svého zařízení „hrabou“. Článek není určen jen pro uživatele zařízení se systémem AirOS (Ubiquity), ale zásady platí obecně na jakékoliv jiné bezdrátové zařízení, jen způsob nastavení bude odlišný.
Co je třeba si uvědomit?
Vir je nástroj útočníka, vir je program. Vir má několik částí.
- Přístup
Vir se musí se umět dostat do vašeho systému, k tomu využívá například známé a neopravené bezpečnostní díry v softwaru vašeho zařízení. Také může jen zkoušet různé kombinace jmen a hesel a tím se pokusí získat přístu do systému. - Nákaza
Aby vir mohl zneužít vaše zařízení a šířit se dál, musí se umět do vašeho zařízení nakopírovat, povětšinou mu k tomu stačí ssh či telnet přístup, někdy stačí i chyba ve web rozhraní. Když už vir získá přístup, počítejte s tím, že tvůrce viru je chytřejší než vy a vymyslí způsob jak dostat vira do zařízení. Pozor někdy si útočník vystačí s tím, že vám jen změní konfiguraci, třeba DNS servery. A pak si vás nasměruje jak se mu hodí. - Šíření
Vir je vašem zařízení, jeho první akce není „destrukce zařízení“, první o co se snaží, je nakazit další zařízení. Je to velmi obdobné inkubační době. Vir začne z vašeho zařízení testovat, kam by se mohl dál nakopírovat. - Další akce
Kromě šíření, má vir většinou v sobě ještě další část kódu která se o něco snaží. Třeba jenom zněnit nastavení, restartovat či vypnout zařízení. To jsou ještě poměrně neškodné záležitosti. Mohl by však skenovat váš internetový provoz a odchytávat nezabezpečená hesla, změnit DNS servery a nabízet vám podvodné stránky apod.
Jak se tedy chránit?
Naivní správce si řekne: Jsem za NATem (nemám veřejnou IP) mě se nemůže nic stát. To je hluboký omyl. Je sice pravda, že přímé nové spojení z internetu k vám pravděpodobně nepřijde (Ale jde to viz: Prostřelení natu)
Stačí však aby jedno jiné zařízení ve vnitřní síti bylo nakaženo, třeba má veřejnou adresu pomocí NAT 1:1 a z něj se začne šířit nákaza po celé vnitřní sití. Z vašeho pohledu tedy útok může přijít z neveřejného rozsahu providera. Prvotní útok může také přijít od zákazníka, například pomocí zavirovaného počítače, nezabezpečení domácí wifi sítě apod. Takto se uměla šířit modifikace motherfuckeru známá pod názvem moth3r.
Ilustrace 1: Špatný a správný přístup k zabezpečení zařízení.
Otázkou není, zda omezit omezit přístup na vaše zařízení, ale jak moc respektive ještě lépe: „Co povolit“. Omezení přístupu docílíte nejlépe pomocí firewallu. Pokud jste „jen správce domácí sítě“ nejjednoduší je zakázat veškerý přístup z WAN (Viz obrázek 2) Většinou každé zařízení má obdobnou volbu.
Obrázek 2: Blokuj veškerý přístup z WAN
Pokud přístup z WAN potřebujete, nebo jste dohodnutí s vaším poskytovatelem na správě zařízení, nastavte přístup tak, že povolíte jen určené adresy, které mohou do zařízení přistoupit. Ostatní zakažte. Pozor, hlavně si nezakažte přístup z vlastní sítě, pak by se mohlo stát, že už se do zařízení nedostanete. Pokud máte veřejnou ip adresu, toto není rozhodně dostatečné zabezpečení.
Pokud jste provider či správce větší sítě, doporučuji si přístup na WAN ponechat z jedné či dvou adres, nebo z jednoho rozsahu, třeba vaší kanceláře či proxy případně VPN rozsahu. Dobrým rozhodnutím je také změnit defaultní čísla portů (80, 443, 22) na jiná. Tím většinou zamezíte šířením „univerzálním virů“. Mějte však na paměti, že změna portu na nestandardní a současné ponechání přístupu z celého internetu, vás zas tolik neochrání. Může se najít útočník, který napíše vir přímo na míru vašemu nastavení.
V případě, že budete nastavovat firewall v UBNT přes webové rozhraní nastavuje se jak přístup „do zařízení tak i pro provoz skrz zařízení současně. (INPUT i FORWARD chain viz níže)
Pro povolení přístupu z domácí sítě, a z vyhrazených rozsahů doporučuji například takovéto nastavení. Při nastaveném firewallu si dovolíme management web port ponechat na 80 a 443 a ssh na portu 22. Můžete si jej však změnit, jen pozor, firewall bude blokovat i „průchozí provoz“ a v případě použít portů větších jak 1023 si můžete nevědomky zablokovat část provozu z vnitřní sítě. To budete pak následně těžko odhalovat, že se vám občas nenačte nějaká stránka. Nebo můžete specifikovat „destination adresu“ Pokud uvedete adresu WAN rozhraní, kterou však budete muset v každém pravidle zadat, rozlišíte si tím provoz (do zařízení a skrz). Ve firewallu vidíte adresy již „po překladu“. Při vyhodnocení pravidla firewall již porovnává adresu „LAN rozhraní, většinou tedy 192.168.x.y“ i když paket přichází z bezdrátu vzhledem k použít NATu s jinou adresou.
A teď již příklad nastavení firewallu. Jelikož web rozhraní neumožňuje využívat příliš možností linuxu, musíte pravidla zadávat poměrně otrocky a ve správném pořadí. Pokud potřebujete větší množstí pravidel, napište si vlastní skript a uložte si jej do zařízení. Je to pohodlnější. Ale o tom si povíme třeba až příště.
Takto nastavený firewall povoluje přístup jen z adresa 10.2.12.0 až 10.2.13.255 (maska /23). Ostatní pakety přicházející z bezdrátového rozhraní (wlan0) které je většínou jako WAN, tedy z internetu jsou zahozeny. Dodržte vždy následující logiku: Něco povolím (ip adresu na port) a následně vše ostatní zakážu. Nevýhody nastavení přes web rozhraní jak jej implementoval výrobce jsou jasně patrné. Vše píšete do jednoho seznamu, nemůžete měnit pořadí. Nemůžete dělat odskoky do dalších tabulek. Prostě nemáte moc věcí pod kontrolou.
Při nastavení firewallu si dávejte pozor ať si nezakážete veškerý provoz či přístup do zařízení, přestal by vám fungovat internet nebo byste se odřízli od nastavení. Vždy po změně dávejte „TEST“ a nikoliv rovnou „APPLY“.
Dalším tipem zvýšení bezpečnosti je zakázání DNS dotazů na firewallu (UDP port 53) na jiné servery než vámi zvolené. Tedy povolíte vaše DNS a ostatní zakážeme.
A poznámka nakonec, provoz který neovlivníte pravidly firewallu, bude povolen.
Nastavení hesel
Rozhodně nenechávejte defaultní, prázdná či jednoduchá hesla. Zvažte také, jestli je nutné používat stejné univerzální heslo pro všechna zařízení. Útočník může napsat vir na míru a s jedním heslem i bez bezpečností díry ve vašem softwaru. I tak vám velmi jednoduše zboří či ovládne síť. Zrovna před čtrnácti dny využil tohoto opomenutí virus a velmi výrazně stížil přístup do internetu polovině Severní Ameriky a části Evropy viz článek z technet.idnes.cz.
Aktualizace firmwaru
Tohle je sporná otázka, do většiny firmwaru nevidíte, je to pro vás kus kódu. Upozornění od výrobců v changelogu jsou někdy mizerná (viz Ubiquity) a nejde poznat, kdy řeší zásadní bezpečností otázku. V případě, že vám zařízení funguje a máte omezen přístup z internetu, firmware spíš neměňte. Držte se zásady co funguje, do toho se nehrab. Nejnovější firmware může přinést nečekané změny chování. Buďte však obezřetní. Je možné, že někteří z vás se mnou nebudou souhlasit a aktualizují po každém vydání nové verze. Nebráním vám v tom.
V případě AirOS a zabezpečení díry kterou využil Motherfucker, se dá ochrana vyřešit i bez aktualizace.
Zvažte také možnost sestavit si vlastní firmware, to se vyplatí zejména správcům větší sítě. Máte tak možnost více ovlivnit co vlastně v zařízení bude za software a můžete si pár věcí nastavit přímo na míru. GPL firmware si můžete sestavit sami, ale je to poměrně zdlouhavý proces. Už jenom nalézt zdrojové kódu u AirOS, ale i jiných výrobců a nalézt postup k sestavení je pomalu sisyfovský úkol. Taktéž můžete využít firmware třetích stran. Mě se osvědčil jiný postup, pomocí FWTOOLS jsem firmware rozbalil, upravil a znovu zabalil bez nutnosti kompilace.
Sledování logů a monitoring zařízení
Nepodceňujte vyhodnocování stavu zařízení. Rozhodně je dobré vědět, jestli se vám někdo přihlásil nebo zkusil přihlásit do zařízení. Pokud jste správce sítě, odesílejte si logy a vyhodnocujte si je. Také monitorujte běh vašich zařízení, jakmile se vám stane 2x něco na různých místech v síti, většinou se nejedná o náhodu. V případě viru Motherfucker, zařízení přestala odpovídat na web/ssh. To mnohé správce upozornilo. V případě skynetu, se zařízení restartovala cca po dni. Sledujte uptime vašich zařízení. Časté restarty na něco upozorňují. Pokud máte možnost, testujte, zda vám funguje i firewall, například z extra serveru mimo vaši síť, či mimo povolené rozsahy. Pomůže vám to ověřit, zda jsou vaše zařízení skutečně nedostupná.
Zálohování
Pravidelně, nejlépe automaticky, zálohujte konfiguraci. V nejhorším případě, máte kam sáhnout a konfiguraci obnovit. Při jednom zařízení, to většinou z hlavy dáte, jakmile jich máte desítky, stává se z obnovy sítě noční můra.
Přístup do internetu
Je třeba aby vaše zařízení mělo přístup do internetu? To je další možnost, jak stížit šíření. Nejen, že zamezíte přístup na zařízení, ale omezíte přístup i ze zařízení ven. Zařízení se systémem AirOS běží na linuxu, a mají možnost zvlášť nastavit omezení přístupu pro „průchozí provoz – Chain FORWARD“ a provoz do a ze zařízení (Chain INPUT a OUTPUT). Bohužel přes web rozhraní tyto vlastnosti nenastavíte, pomocí skriptů však ano. To je však nad rámec tohoto článku. Dočkáte se třeba příště. V případě, že máte puštěnou DNS proxy, povolte jen ji, avšak ohlídejte si, aby vaše DNS bylo pro internet schované. Dobré rozhodnutí je přímo omezit komunikaci DNS jen směrem k nastaveným DNS serverům. Pokud chcete povolte přístup na web výrobce pro ověření zda je nová aktualizace, pokud ji preferujete. Není to však nutné, to si můžete ověřit sami a zařízení to nepotřebuje. Pokud máte zařízení v režimu bridge, je přístup do internetu ze zařízení v 99% instalacích nadbytečný.
Co by mohli udělat výrobci?
Nepoužívat defaultní hesla, defaultní konfigurace by měla zakazovat přístup z WAN a také přístup do internetu pro zařízení, tedy vyjma forwardovaných paketů. Měli by umožnit větší možnosti nastavení firewallu tak, jak je umožňuje linuxová hiearchie (netfilter). Měli by lépe dokumentovat změny a vlastnosti softwaru, aby uživatelé a správci byli lépe informovaní.
A jak si vylepšíte vaše zabezpečení vy?
Další zdroje informací:
Trocha historie co mají viry z „nezabepečených krabiček na svědomí“:
2011 – Airos: Skynet
2016 – Airos: Motherfucker a tady jeho následky
Diskuze k článku