Zajíc Březňák a Švec v knize Alenka v říši divů pořádali „bláznivé svačiny“. My jsme si s kolegou řekli, že když oni můžou, tak proč ne taky my, jen jsme z řady důvodů zvolili „bláznivý“ oběd. Nutno říci, že nezasvěcení si možná po přečtení následujících řádků budou také tak trochu připadat jako ta zmiňovaná Alenka. Naše akce byla motivována mým nedávným rozhlasovým rozhovorem s Lucií Výbornou, se kterou jsem mimo jiné hovořil na téma bezpečnosti wi-fi sítí a mobilních telefonů. Po našem rozhovoru mi začalo vrtat hlavou, jak na tom vlastně uživatelé v ČR jsou a zda se opravdu jedná o tak veliké a přitom stále nepříliš známé riziko. Připravil jsem tedy vše potřebné, a abych nebyl tak nápadný, přemluvil jsem kolegu, aby se mnou vyrazil do jednoho svatostánku rychlého občerstvení, o kterém jsem věděl, že je v něm velký provoz.
Co jsme testovali?
Testovali jsme chování přenosných zařízení při připojování k wi-fi síti. Konkrétně nás v první fázi zajímalo, kolik mobilních zařízení bude při připojování prozrazovat jména wi-fi sítí, ke kterým se připojují. Jedná se o jednoduchou úlohu, ke které jsme si vystačili s běžnou linuxovou distribucí, vhodnou wi-fi kartou a programy airmon-ng a airbase-ng. Výsledek pak může vypadat nějak takto:
V rozmazaném sloupečku můžeme vidět jednoznačný identifikátor síťové karty daného mobilního telefonu, tzv. MAC adresu. V dalším je pak v uvozovkách uveden název hledané sítě.
Každý přístupový bod má své SSID, což je vlastně to, čemu obvykle říkáme název sítě. Pokud chce nějaké zařízení nalézt wi-fi sítě ve svém okolí, může buď pasivně naslouchat vysílajícím přístupovým bodům nebo může aktivně posílat do okolí dotazy. Většina zařízení kombinuje oba tyto přístupy. Rozdíl je však v tom, jakým způsobem provádějí aktivní vyhledávání dostupných sítí. Mohou totiž buď použít tzv. broadcast SSID, na které budou všechny přístupové body v okolí odpovídat svým identifikátorem, nebo se rovnou mohou jmenovitě ptát na konkrétní SSID. Druhý přístup má ovšem značnou nevýhodu v tom, že na vás prozradí všechny wi-fi sítě, které jste dosud navštívili. Samozřejmě za předpokladu, že je ze svého zařízení pravidelně neodmazáváte.
Výsledky? Možná vás překvapí!
Tolik tedy teorie a nyní k praxi. Během našeho oběda, na který jsme si vyměřili přesně hodinu času, jsme zachytili vysílání celkem 787 přenosných zařízení. Z nich celkem 38 procent (v absolutních číslech 302) volalo jmenovité sítě. Zbytek, naštěstí pro jejich majitele, posílal dotaz na broadcast SSID. Nicméně uvedených 302 zařízení se během hodiny zvládlo zeptat na 617 wi-fi sítí. Například na síť McDonalds se ptalo 67 zařízení, na KFC 18, na BurgerKing dvě zařízení. Na síť default se pak ptalo 12 zařízení, na síť linksys 3 zařízení a stejný počet hledal sítě, obsahující slovo dlink. Díky provázání MAC adresou lze však úlohu postavit i jinak a odpovědět například na otázku, kolik z lidí, kteří mají rádi McDonalds, navštěvuje také KFC. V našem případě to bylo šest uživatelů, budeme-li předpokládat, že každý z uživatelů měl jedno zařízení. Podle názvů sítí jsme pak zkusili odhadnout, zda se jedná o firemní, soukromou nebo free/veřejnou wi-fi síť a zda byla v ČR nebo v zahraničí. Sítí, které ukazovaly na pobyt držitele daného zařízení v zahraničí jsme našli 34, jednalo se například o wi-fi síť provozovanou dle názvu na palubách ruského Aeroflotu, nebo o sítě zjevně spojené s návštěvou Eiffelovy věže.
Odhad účelu sítí dle jejich názvů
Dále jsme danou síť zkusili vyhledat také na portálu wifileaks.cz, který se pokouší mapovat wi-fi sítě v ČR. Z námi ulovených sítí jich znal 237, tedy přibližně jednu třetinu. Samozřejmě, některé názvy nebyly jednoznačné. Na druhou stranu, některé nalezené wi-fi odpovídaly lokalitě, ve které jsme měření prováděli a lze tedy říci, že spojovaly konkrétní MAC adresu zařízení s wi-fi sítí konkrétní společnosti.
Koho se problém týká?
Protože první polovina adresy MAC, tzv. prefix, je přidělována jednotlivým výrobcům, nebyl problém získat seznam prefixů a výrobců a s pomocí skriptu pak nachytaná data rozdělit dle jejich příslušnosti k jednotlivým výrobcům. Podle těchto dat neexistuje patrně výrobce, jehož zařízení by se problém netýkal. Zajímavé ale je, že například můj mobilní telefon se starším Androidem je na tom lépe, než kolegův mobil s novou verzí Androidu. Proč to tak je, zatím nevíme, ale chceme se pokusit zjistit, zda se podobná věc neobjevila také u ostatních systémů. Následující obrázek ukazuje výše popsanou realitu:
Proč bychom se měli bát?
Některé mobilní telefony byly hodně „upovídané“ a tak umožňovaly zjistit, jaké restaurace a obchody daný uživatel navštívil a kde se pohyboval v zahraničí. To ještě nemusí být tak zlé, pokud se pohybujeme v prostředí, kde není možné jednoduše spárovat MAC adresu našeho mobilního telefonu s naší osobou. Pokud jsme ale například v práci, může být naše MAC adresa lehce odvozena z toho, jak mizí potenciálnímu útočníkovi z monitoringu při každém našem odchodu a příchodu. Pokud si nás tedy dotyčný dokáže spárovat s konkrétní MAC adresou, pak může snadno zjistit, jaká místa jsme s naším mobilem či tabletem navštívili a to už může za určitých okolností představovat problém. Také je potřeba vzít v úvahu, že existují společnosti, které mají poměrně přesné databáze wi-fi přístupových bodů. Útočník, který by měl přístup do takové databáze, si pak může snadno zjistit, kde přibližně bydlíte, pracujete a kam jezdíte na dovolenou či chodíte po práci „na jedno“. Také existuje aplikace nazvaná iSniff GPS, která využívá specifické chyby v zařízeních s OS iOS, které v rámci ARP paketů v některých případech přenášejí MAC adresu (BSSID) posledního přístupového bodu, se kterým komunikovaly. Aplikace iSniff GPS zachytává tyto ARP pakety a získané MAC adresy posílá službě Apple určené pro zjišťování polohy, čímž získá GPS souřadnice pro dané BSSID. Pokud má k dispozici pouze SSID navštívených sítí, posílá dotazy službě wigle.net a zobrazuje možné lokace, kde se zařízení mohlo vyskytovat. Kombinace obou těchto přístupů, tedy zachycení ARP paketu prozrazujícího BSSID a vyhledání ostatních sítí na wigle.net, pak může poskytnout velmi dobré informace o pohybech zařízení, respektive jeho majitele.
Bohužel ale ani toto není to nejhorší, co nám permanentně zapnuté wi-fi rozhraní může způsobit. Útočník totiž může získané informace o vyhledávaných sítích využít ke krádeži našich citlivých dat. Bohužel velké zastoupení sítí, které dle názvu budou pravděpodobně bez hesla, napovídá, že snadno napadnutelných zařízení bude celá řada. O tom ale až v dalším pokračování.
Jak se chránit
Promazávejte staré a nepoužívané wi-fi sítě ve svém zařízení a pokud už nechcete řešit zapínání/vypínání wi-fi rozhraní při každém opuštění domova či odchodu z práce, pořiďte si některý z programů, které toto dokáží dělat za vás v závislosti na vaší poloze (jako je například Smart WiFi Toggler pro Android). A nejdůležitější rada na závěr: Vzhledem k tomu, co si budeme ukazovat příště, wi-fi sítě umožňující přístup bez hesla odstraňujte ihned po jejich použití.
Pěkný článek. Co se týká toho spárování mac adresy s konkrétní osobou, stačí mít (ne)vhodně nastavený hostname v systému a v síti pak snadno poznáte o koho se jedná například podle přezdívky nebo jména. Viz nedávno proběhlé LinuxDays :). http://www.imagehosting.cz/?v=screenoyo.png
Tak jsem byl zvědavý, kde se skrývá to nebezpečí a nakonec jsem se to nedozvěděl. Jak někdo může informace o vyhledávaných sítích použít ke krádeži citlivých dat?
Zároveň je vtipné, jak píšete o tom, že si někdo může zjistit, kde bydlíte. No tak to jde snad i mnohem snazšími a spolehlivějšími metodami. Pokud chcete být paranoidní, tak se nezapomeňte neustále ohlížet, jestli někdo třeba nezkouší starou dobrou sledovačku ;-)
p. Křížek:
Na MITM je to značka ideál.
Oběť: „Je tady síť X?“
Padouch: odposlechl dotaz
Oběť: „Je tady sítť X?“
Padouch: „Jj, jsem k dispozici.“
Oběť: „Tak se hlásím, tady zařízení Y, heslo Z“
Padouch: „Ok, tady máš IP….“
Oběť: „http://….“
padouch: „Tady to máš…“ a podstrkuje vlastní verzi…
Tohle by nefungovalo. Heslo se nikdy nepřenáší, ale počíté přímo v zařízení.
Petre M, nestras.
To by musel MITM znat wifi key, pripadne umet obejit SSL… V takovem pripade snad browser zacne rvat, co aplikace, to nevim…
Pripadne obejit IPSEC v mobilnim zarizeni, na verejnem hotspotu vzdy zapinam IPSEC, resp. Vsechny dulezite weby jedou pres SSL
padouch zjistí:
megabanka + herna + škola + školka + dobročinná vyvařovna = zaměstnanec banky, dvě a víc dětí, potíže s hraním = oběť
nebo
Škola + domeček Karkulky + chaloupka babičky v hlubokém lese = přepadení na lesní pěšině
Náklady a čas na zjištění zanedbatelné.
Petr M:
Ideál je akorát tak váš příspěvek. Mimo jiné proto, že předpokládáte, že oběť půjde zrovna na podvrženou stránku, kterou máte připravenou atd…
NA:
Můžete mi říct, kolik škol, školek a dobročinných vývařoven má veřejně dostupnou wifi?
Samozřejmě beru váš příspěvek jenom jako vtip – už jen kvůli druhému příkladu ;-)
MK: Nepotřebuje jít na podvrženou stránku. Stačí, když chce být online a vy mu podstrčíte APčko se SSID zaměstnavatele a odchytnete si přihlášení. On si aktualizuje xichtknížku, vy si zapíšete něco, co pak použijete na parkovišti před firmou, kde pracuje… Pokud je tam jenom heslo a nemění se v čase, máte vyhráno.
Druhá nožmost, vydávat se mimo McDonalda za McDonalda. A skenovat, kdo kam leze. Je to jenom otázka času, kdy se někdo pokusí dostat na něco zajímavýho, třeba do mailu… Pak napodobit jeho přihlašovací údaje a MAC adresu… Stačí trocha fantazie.
Děkuji všem za příspěvky. S dovolením bych to uvedl na pravou míru. V
dalším pokračování se chci věnovat právě dalším možnostem, jak toto
chování zneužít. Ono je opravdu zneužíváno, především na veřejných
místech, kde se lidé zdržují delší dobu. Osobně jsem se s tím nesetkal,
ale slyšel jsem vyprávění věrohodného člověka, který takový „hotspot“
zaznamenal na letišti. Právě, že pokud se naše zařízení ptá na wi-fi,
která nepoužívá žádný klíč (a toto lze často snadno poznat právě z
názvů sítí, jak jsem rozebíral výše), pak stačí pokud útočník spustí
hotspot se stejným jménem a všechna data pak půjdou přes něj. Jinak
mobilní aplikace jsou často děravé, mají špatně implementováno SSL,
výchozí prohlížeč v Androidu až do verze 4.4. umožňuje obejít Same
Origin Policy a pak tu máme také StripSSL. No a teď na Black Hatu jeden
přednášející vysvětloval, jak když pustí falešný hotspot v kavárně a podstrčí uživatelům certifikát(který patří jeho certifikační autoritě), tak cca 80 procent z těch, co se na jeho hotspot připojí, si jej nainstalují(tvrdí
jim, že bez certifikátu jim wi-fi nepojede). I tak si ale myslím, že i
informace o navštívených sítích mohou být rizikem pro naše soukromí.
Zdravím,
fake hotspoty nejsou nic nového. Pokud budete mít síť s ESSID default, tak se vám chytí spousta lidí, naštěstí je spousta trafficu už https, ale to lze řešit podvržením certifikátu.
Asi nejdokonalejší varianta, kterou jsem viděl, byl fake hotspot s platbou kartou. Cena byla samozřejmě za hubičku a na letišti, kde se pohybují mraky lidí, je jen otázka času, než nachytáte čísla karet…
Vlastně je prvním rizikem už návštěva kavárny, protože vidí Váš obličej a to je mnohem lepší pro krádež, než nějaký SSID. Stačí vás za rohem bacit tyčí a nemusí se obtěžovat s podvržením čehokoliv :-) Ale je fakt, že by se mobil minimálně neměl sápat po sítích, které neslyší.
V souvislosti s WiFi sítěmi a GPS moduly v mobilech jsem už před delší dobou četl článek o nových praktikách velkých obchodních řetězců. Pomocí vašeho zapnutého smartphonu dokáží monitorovat váš průchod obchodem – tzn. kde jste si bral nebo minimálně prohlížel zboži, a na základě zjištěných informací pak mohou měnít sortiment zboží a případně na frekventovaná místa umísťovat to zboží, které chtějí prodat. :-)
A proto neberte telefon do hospody, stejně ho ztratíte; nebo nemějte telefon vůbec a je vystaráno :-)
Dobrý článek, o tomhle jsem vůbec neslyšel.
Přijde mi, že hodně lidí strašně podceňuje bezpečnost. Kamarádi říkají, že je zbytečný dávat „lepší heslo“ než „jmeno1“, protože proč by útočník zrovna útočil na ně? Vždyť na počítači nemají nic zajímavého, že?
Stejně tak mi přijde toto chování wifi sítí, proč wifiny prozrazují věci, které vůbec nemusejí hlásit? Všechno se dá zneužít a jakákoli informace o uživateli se dá použít do skládačky pro nějaký útok.
Je to něco podobného jako když bychom nechávali otevřené dveře od bytu/domu, kde každý kdo jde okolo vidí co je uvnitř. Tím říkáme zloději pojď k nám máme otevřeno můžeš jen tak zaskočit a nic dělat, máš to bez námahy. Když budou dveře minimálně zavřené, odradí to určité procento náhodně kolemjdoucích zlodějů. Samozřejmě, nic neochrání proti všem, protože když bude chtít tak se zloděj dostane i do banky. Ale už to nepůjde tak snadno a mnoho zlodějů se na to vykašle a půjdou vedle na snazší cíl.
Hezký příspěvek; proč o sobě dávat vědět víc než je nezbytně nutné? Smart WiFi Toggler je také dobrý, až na to, že v OP zabere 41 MB. Když některá zařízení mohou posílat dotaz na broadcast SSID, předpokládám že by tato možnost šla nastavit i u ostatních. Není někdo, kdo by Android natolik ovládal, že by mohl poradit kde ??? Věděl by ev. někdo alespoň to, jak si své zařízení zkontrolovat zda není moc „ukecané“ ?
Ikdyž většinou používám wifi jen doma, tak tu a tam se někde připojim. Mám mít strach o nabourání do internetového bankovnictví, sociálních sítí atd.?
Hobit: Možná by pro začátek stačilo takovým lidem ukázat, jak může jejich špatné heslo ohrozit ostatní http://blog.nic.cz/2014/04/10/nasledky-kradeze-hesla-pripadova-studie/ V tomto případě sice bylo heslo získáno nejspíše odposlechnutím na síti, ale v jiných případech bývá jednoduše uhodnuto. Možné následky jsou pak jako v odkazovaném článku.
Ruda: Pokud máte linux a kartu, která jde přepnout do monitor módu, můžete použít program airbase-ng, který je součástí balíku aircrack-ng.
Pak stačí zapnout wi-fi na mobilu sledovat, co se bude dít. Nebo přijďte do akademie CZ.NIC na náš kurz počítačové bezpečnosti, toto tam také děláme. Nicméně dnes skončil poslední letošní kurz a další budou vypsané už na příští rok.
Lukáš: S používáním veřejných wifi bych byl opatrný především u mobilních zařízení. Hodně aplikací pro tyto zařízení má potíže s bezpečnostní, nepoužívají SSL/TLS, případně akceptují jakýkoliv certifikát apod.
Já to pořád nechápu, to skutečně zařízení posílají „direct probe request“ jenom proto, že je uživatel předtím navštívil (a nikoliv kvůli tomu, že by se jednalo o skryté SSID)?
Pak je to bezpečnostní díra jak prase a měla by být zalepena!