Krypta.cz - Magazín o informační bezpečnosti
Terminologická poznámka - slovo hacker, v některých významech, nemusí mít vazbu k počítačové bezpečnosti. Lze říci, že je někdo hackerem například v oblasti lineární algebry, i když se v ní takové slovo nepoužíváa říká se o něm například, že je šaman. Takovému hacker/crackeru mysli by se pak například mohlo povést spustit svůj kód v cizí hlavě. Někteří disputující na Namodro dokonce sami přiznali, že psát rozhořčené vysvětlující reakce je hovadina, protože přesně to si JXD přeje, ale nemohli si pomoci.
Zkusil bych se ale raději zamyslet na vlastním experimentem z hlediska počítačové bezpečnosti. Ve stručnosti, rekapitulace faktů - JXD na nový rok zveřejnil výzvu k napadání jeho domácího počítače, připojeného k síti kabelové televize (firma v současnosti jménem UPC, služba Mistral), podle vyjádření JXD v průměru 18 hodin denně. Úspěšný útok byl definován jako přečení obsahu souboru s neznámým jménem, který je přístupný na běžícím (speciálním) webserveru. Webserver se v praxi nekonal, možná běžící jenom přes loopback zařízení. Obsah souboru nikdo něpřečetl a tak 8.1. JXD přidal do hry jako motivaci krabici operačního systému Windows XP s prémií dalších programů. Ani do 14. ledna "úkol" nikdo nesplnil a tak JXD uzavřel, že jeho počítač odolal soustředěnému útoku celkého českého internetu. Následovala řada reakcí a vysvětlení.
Přestože je takovéto měření bezpečnosti čehokoli přinejlepším šarlatánské, komentář zasluhuje. Zvlášt proto, že mnohé následující reakce byly podle mého názoru zavádějící a stejně zcestné, jako pokus sám. Především pak obměny nelze napadnout počítač, na kterém nmap neukazuje otevřené porty, srovnávání s počítačem bez internetu, televizorem, troubou.
Možné útoky na "pasivní" desktop klient
Pasivním počítačem myslím samozřejmě počítač, na kterém neběží žádné služby, poskytované dalším počítačům, ale funguje jako klinet. Trochu specifičtěji by to mohl být počítač, na kterém nejsou žádné poslouchající (otevřené) porty.
Samozřejmě je nesmysl, že takový počítač by byl nenapadnutelný. "Bezpečný" proti útoku po počítačové síti je jen počítač, který po síti vůbec nekomunikuje. Jednosměrnost navazování spojení pouze znamená, že útok musí přijít v rámci nějaké komunikace "dovnitř", typicky mailem, nebo musí útočník nějak přesvědčit uživatele, aby komunikaci navázal.
Je neblahou skutečností, že většina lidí si jako "hack" vybaví pozměněnou webovou stránku. Takříkajíc, pro stromy nevidí les. (např. Miroslav Kučera v diskusi na Lupě - volně citováno "...neslyšel jsem ani o jednom jedniném případu, že by se nějaký hacker dostal na počítač obyčejného uživatele, s neopatchovanými Windows, a získal od něj nějaká data.") Jednoznačně nejčastějšími bezpečnostními incidenty jsou viry a emailové červy. Na desktopech jsou incidenty, vedoucí ke spuštění útočníkova kódu přišlého po síti, v průměru mnohem častější, než na serverech. Desktopů jsou stamiliony a jsou "hackovány" masově, po milionech najednou.
Mezi červem a útočným kódem, zaslaným hackerem, není zvláštní rozdíl.
Dalším aspektem je proměna domácího počítače v server - spuštěním nějaké aplikace na "kecání" nebo sdílení souborů v lepším případě, nezamýšleným sdílením souborů v horším.
Zkusme tedy navrhnout rozumný postup útoku na domácí počítač JXD
  • ošahat si, zda na počítači neběží nějaký server, pokud ano, situace se mění. Dále postupujeme podle příručky na lov jelenů, chci říci serverů.
  • pokud ne, zjistit maximum o používaném programovém vybavení - především verze prohlížeče, jeho nastavení, verze poštovního programu, MediaPlayeru, antiviru, PGP. Mnoho se dá vyčíst z hlaviček mailu a komunikace počítače s webserverem s vhodnými stránkami. Útočník by tedy musel přimět JXD, aby mu odpověděl na mail a podíval se na specifikovanou webovou stránku. (Zde je první kritický bod, vyžadující sociální inženýrství.)
  • najít nějakou použitelnou díru, podle vhodnosti nejlépe a. v mailovém klientu, vedoucí k automatickému spuštění kódu při prohližení b. v prohližeči, umožnující spuštění kódu nebo čtení souborů c. v jiných programech, umožňující spuštění kódu po kliknutí na přílohu nenápadného typu, třeba video file d. "heuristice" antiviru, aby kód označil jako bezpečný
  • zjistit možnosti komunikace "ven" z počítače - omezení osobním firewallem, NAT a podobně
  • zjistit možnosti obousměrné komunikace
  • zkonstruovat kód využívající díru, schopný přečíst soubor a zaslat informace ven. V nejhorším reálném případě pečlivě zabezpečeného počítače skončíme asi s exe souborem, který je podle antiviru čistý, data směrem ven budeme protlačovat uchem jehly DNS a dovnitř v poště. (Skrz DNS je možné tunelovat data z a do vnitřní sítě například i v eBance.)
  • přimět JXD, aby a. přijal e-mail b. podíval se na www stránku c. přijal e-mail prohlédl si "neškodnou" přílohu d. spustil přílohu nebo si program stáhl z www a spustil (Zde je druhý kritický bod, vyžadující souciální inženýrství)
  • sociální inženýrtví bychom si mohli ulehčit např. získáním přístupu k JXD mailové schránce, webu a podobně
  • pokud má JXD zazáplatováno, je potřeba bedlivě sledovat nové díry a spoléhat, že jednou nebude mít záplatovat včas
Zabezpečení desktopu
JXD zřejmě bezpečnosti Microsoft Windows XP věří jen v přiměřen2 malé míře, a dělá dobře. Na počítač nainstaloval osobní firewall ZoneAlarm. Pokud je pravdivý portscan, který někdo poslal do diskusí, na počítači neběžel slíbený webserver. Přístupu k některým systémovým běžícím službám zdatně bránil firewall, jednoduchá pravidla, pravděpodobně zahazující všechno, jsou většinou celkem spolehlivá.
O verzích programů a stavu zazáplatovanosti nevím, pokud někdo skutečně útočil, doufám, že pošle příspěvek do diskusí.
Co se kritických sociálně-inženýrských bodů týče, myslím, že v tomto ohledu se zabezpečení JXD přiblížilo dokonalosti. Myslím, že JXD, díky svým konfliktům např. s neonacisty, k poště přistupuje dosti obezřetně až paranoidně i normálně, a po dobu výzvy ostražitost jistě ještě zvýšil. Je také možné, že v době experimentu na onom počítači vůbec nepracoval - poštu nečetl, stránky neprohlížel, jenom ráno zapnul a v noci vypnul. Ale třeba poštu četl na jiném počítači, propojeném v "domácí síti". To by znamenalo komolikaci, ale ne principální. Výzva by stávala lehce uhozenou teprve v okamžiku, kdy by JXD po dobu výzvy domácí připojení nevyužíval reálně k ničemu a neexistovala tedy ani žádná spojení "ven". Čistě teoretické možnosti zůstávají, ovšem pokud by někdo znal dosud nezveřejněnou díru, umožnující se i tak na počítač dostat, je jisté, ži ji nebude zveřejňovat útočením na domácí počítač JXD za mrzkých 20000Kč.
Takový počítač, na kterém se vůbec nepracuje a který neprovádí žádnou užitečnou činnost, je opět o řád bezpečnější. Dokonale bezpečný počítač je pak stíněný, odpojený od elektrické sítě a zakopaný deset metrů pod zem.
Výsledky a hodnocení experimentu
Někomu se zřejmě dařilo přimět počítač vzdáleně k zatuhnutí, tipoval bych na nějaký problém kombinace ZoneAlarm+Windows. Nedá se tedy řící, že by počítač "odolal". V reálných podmínkách si není možné předem vybrat typ útoků, které prohlásíme za úspěšné.
K útokům na úrovni fyzické ochrany zřejmě nedošlo (na jedné straně třeba monitorování emg emisí, na druhé zničení počítače s pomocí magnetronu, zničení počítače výbojem po kabelu kabelové televize a podobně).
Zda došlo k sofistikovanějším útokům např. podle zde navrženého scénáře nevím, ale ze scénáře je myslím zřejmé, že hrozivější útok by vyžadoval poměrně dost velmi kvalifikované práce a asi více než týden času. Je také otázkou, zda lidi schopné jej podniknout výzva a cena zaujala, případně zda o ní vůbec věděli. Pro případné vážnější zkoumání touto metodou bych doporučovaval neoslovovat plamenné zastánce Linuxu, ale například známého českého tvůrce virových technologií pro Winows Bennyho, nabídnout 100000Kč a měsíc času. Pravděpodobnost úspěchu, pokud by se na daném počítači normálně pracovalo, mailovalo a surfovalo, bych odhadoval větší než poloviční.
Stojí za zdůraznění - zabezpečit dobře "tichý" desktop je mnohem jednodušší, než zabezpečit dobře server. Důvodem je samozřejmě to, že není třeba se starat o bezpečnost poskytovaných služeb. Zabezpečení domácího počítače s Windows XP zvládne i jen trochu zkušenější uživatel, s případnou konzultací odborníka. (Nebo přečtením článku na Kryptě - Zabezpečení domácího počítače II.)
Jiný významnější závěr ohledně bezpečnosti Windows XP se neukazuje - bezpečnost nemá podobu jednorázového kabaretního vystoupení, ale neustálého úprku. Každá chvilka odpočinknu snižuje náskok před útočníky a pokud se běžec někde zastaví natrvalo, útočníci jej v každém případě časem doběhnou.
Update
Získali jsme vyjádření JXD, uvádějící na pravou míru některé nepřesnosti v článku.
  • "Úspěšný útok byl definován jako přečtení obsahu souboru s neznámým jménem, který je přístupný na běžícím (speciálním) webserveru."
JXD: To není presné. V první fázi - bez odmeny - bezel http server psaný mým kamarádem. V druhé fázi - výzva k útoku za odmenu - http server nebezel a bezet nemel, zato bylo zverejneno jméno i umístení souboru (na desktopu, fuckthepenquin.txt).
* Jen ty XP nezrůcaj
JXD: Na počítači běžely W2k, XP byly pouze cenou v soutěži.
Vyjádření autora: Za w2k-XP úlet se omlouvám, pro závěry v článku to není úplně podstatné.
JXD také prozradil, že experiment se bude opakovat i s běžícím webserverem a pokus o "sofistikovanéjší" útok podle zde uvedeného scénáře se konal jenom jeden, teprve po skončení experimentu, a na takové úrovni, že jej AVG zachytilo. Náš "návod pro hacknutí" můžeme doplnit informacemi, že browser JXD se hlásí "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461; Q312461; ATLAS)", mailový klient špatně označuje kódování češtiny a do hlaviček píše "Microsoft Outlook Express 6.00.2600.0000". JXD zřejmě také používá AVG.
  1. Zabezpečení domácího počítače I.
  2. Zabezpečení domácího počítače II. - Windows