LINUXSOFT.cz Přeskoč levou lištu

ARCHIV



   

> Linuxová bezpečnost z pohledu uživatele (2)

V druhé a poslední části se podíváme na možnosti útoku.

30.4.2004 08:00 | Ondřej Čečák | Články autora | přečteno 10238×

IV. Podvedení uživatele

Sociální inženýrství

Obyčejný uživatel Linuxu se od uživatele Windows v podstatě vůbec neliší, protože se moc nezatěžuje čtením chybových hlášení a přemýšlením. Pokud mu přijde email s přílohou "já_nejsem_virus" nerozpakuje se ho spustit.

V sociálním inženýrství jde o to zmást uživatele tak, aby se choval jinak než normálně a ve prospěch útočníka ("nejobávanější hacker" Kevin Mitnick by mohl vyprávět ;-). Ať to je přímo telefonát nebo email s falešným odesílatelem – jediné co by uživatel měl dělat je přemýšlet.

Trojské koně

Trojský kůň je program nebo funkce programu, který se skrývá v legitimním programu a nenápadně pronikne do cílového systému a ve správnou dobu poslouží útočníkovi.

Jak se takový program může do systému dostat? Nejčastěji právě s normálním programem (nebo v něm), buďto v binární podobě a nebo drze ve zdrojácích. Možnost bránit se podobným věcem je poměrně omezená – obvykle stačí mít důvěru v distributora, který vytváří vaší distribuci. Problém nastává právě v případě, kdy do své distribuce potřebujete dostat program, který v ní není nebo jinou verzi, než která je aktuálně v distribuci.

Pak vám nezbývá, než důvěřovat zdroji, ze kterého software stahujete. Vyplatí se přemýšlet, než bezhlavě stahovat a instalovat ze nějakého podezřelého archivu, který našel Google.

Autoři softwaru se obvykle snaží hotový software nějakým způsobem zdůvěryhodnit. A to buďto prostřednictvím kontrolních součtu (md5 sumy), které zajistí, že v daném balíku nebyly provedeny žádné změny (problém je ale v tom, jak zjistit, že vygenerované kontrolní součty jsou ty správné a ne vygenerované útočníkem). Další možností je digitálně podepsat balík (PGP/GPG se budu věnovat později), nicméně problém je stejný – jak zjistit, že daný veřejný klíč opravdu patří autorovi programu. Ale i když to je jeho klíč, v okamžiku kdy instalujete jeho software mu stejně musíte věřit, protože má moc buď rovnou nad celým systémem nebo alespoň nad daty uživatele – jediným řešením je projít si zdrojové kódy, ale to je náročné a pro uživatele skoro nemožné.

Pokud bych to měl shrnout, cokoli co instaluje z nějakého externího zdroje znamená potencionální nebezpečí, pokud si nezanalyzujete zdrojové kódy. Samotné ověřování kontrolních součtů md5 nebo PGP podpisů nestačí, naopak, někdy vytváří iluzi bezpečnosti, která je opravdu velmi nebezpečná.

V. Útok z lokálu

Další způsob napadení je většinou nejméně technicky náročný. Zlý uživatel prostě k vašemu počítači přijde a může si dělat téměř vše, co se mu zlíbí.

Pokud přijde k vašemu PC a překvapí ho zaheslovaný BIOS (a nepůjde mu nabootovat jeho systém), možná se trochu naštve a vyzkouší pár univerzálních hesel a nebo prostě CMOS BIOSu resetuje. Pokud ho překvapí zaheslovaný zavaděč, obejde ho. Pokud ho opravdu naštve, vezme šroubovák a ukradne klidně celý disk ...

Jestli nemůžete zabezpečit, aby k vašemu počítači chodili pouze důvěryhodní lidé, máte problém. Řešením pak je pořídit si nedobytnou a neodnesitelnou case nebo šifrovat data na disku.

Obecně – proti útok z lokálu je velice těžká obrana, obvykle můžete jenom útočníkovi znepříjemnit a zkomplikovat situaci.

BIOS

První věcí, se kterou se zlý uživatel nejdříve setká je BIOS. Základní program, který inicializuje a otestuje hardware a pak předá řízení operačnímu systému. Pro útočníka je důležitý proto, že se v něm dá nastavit, jak se má bootovat (zavádět OS). Pokud si přinese svůj systém (např. live cd), nabootuje a pokud nejsou data šifrována zcela obejde zabezpečení – bude mu stačit připojit si váš disk a dělat, co se mu zlíbí (získání dat, hesel, získání přístupu do systému, ...).

Jedinou cestou, jak postup útočníkovi znepříjemnit je nastavit heslo pro změnu v CMOSu (případně spouštění počítače). Toto zabezpečení se ale dá poměrně snadno obejít – výrobci obvykle implementují do BIOSu několik univerzálních hesel (útočník si prostě stáhne seznam pro různé BIOSy a zkouší) nebo dokonce stačí při startu stisknout určitou kombinaci kláves. Pokud první metoda selže, nezbývá než otevřít case a resetovat CMOS (k tomu tam je obvykle switch nebo jumper, ale protože to je relativně složité je obvyklejší na pár sekund vyjmout baterii, která paměť CMOS udržuje, ale pokud je baterie nepřístupná, zlému uživateli nebude bránit nic v ohnutí běžné kancelářské sponky a zkratování několika nožiček CMOSu). Pozor si dávejte v případě, že máte v počítači nějakou (pseudo)RAIDovou kartu nebo nějakou síťovku s EEPROM. Takové karty totiž mohou BIOS obcházet a bootovat podle vlastního nastavení.

Další nepříjemností, kterou můžete útočníkovi zkomplikovat život, je zaheslovat zavaděč operačního systému (grub, lilo, ...). Útočník mít jinak možnost nabootovat do jednouživatelského režimu (naštěstí už obvykle potřebuje heslo superuživatele) nebo bude moci zadat jádru cestu k programu init tak, aby se místo initu spustil třeba bash (samozřejmě s právy superuživatele). Řešením je nastavit zavaděči heslo (u lila v /etc/lilo.conf díky parametrům password a restricted).

VI. Útok zvenčí – Protokoly a služby

Cílem útočníka může být také lokální účet

Cílem crackera nemusí být pouze získání superuživatelského přístupu (třeba účet root). Zlému uživateli obvykle stačí získat přístup k účtu obyčejného uživatele. Proč? Chyby v softwaru se dají dělit na dva způsoby – vzdálené a lokální. Vzdálené chyby se dají logicky zneužít vzdáleně (po síti), kdežto pro zneužití lokální chyby potřebuje cracker účet uživatele.

Mimo to, už jen prosté získání účtu uživatele dává útočníkovi možnost normální uživatele systému dost potrápit, protože může systém různě zpomalovat, zabírat místo na disku a systémové prostředky a podobně. Obvykle ale získání lokálního účtu vede k získání superuživatelkých práv právě přes nějakou slabinu, která jde využít pouze lokálně.

Proto je důležité, aby na vašem stroji nebyly žádné testovací účty s jednoduchým heslem (jméno test, heslo test apod.), aby žádný z uživatelů neměl nastaveno triviální heslo (např. účet josef a heslo pepa). Čím více uživatelů, tím se toto riziko zvyšuje. Popřemýšlejte, jestli nemáte nějaký podobný účet s jednoduchým heslem ...

Remote shell – telnet (ssh)

Remote shell umožňuje vzdálené přihlášení k počítači. Možných využití je řada, především vzdálené přihlášení :o). To zprostředkovával v minulosti protokol telnet, ten byl ale právě kvůli bezpečnosti (spojení nebylo šifrované) nahrazen protokolem ssh.

Pokud je to možné, doporučuji zakázat na firewallu a (nebo) v tcpwrapperu všechny spojení na ssh krom počítačů, ze kterých se chcete přihlašovat. Problém ale nastává v okamžiku, kdy se potřebujete přihlásit třeba z nějaké internetové kavárny a podobně. Proč je to problém?

  • řekněme, že náhodou zrovna na vašem počítači neběží keylogger (program zaznamenávající stisk všech kláves)
  • ssh port bude muset být otevřen pro všechny (útočník tak může zkoušet hesla a s každým otevřeným portem vzrůstá riziko napadení právě přes otevřenou službu)
  • problémové bude vyřešit situaci s (bezpečným) zadáváním hesla

Navíc, pokaždé, když se přihlašujete k počítači, je nutné ověřit tzv. fingerprint. Tím si totiž ověříte, že ten, s kým budete šifrovaně komunikovat, je skutečně váš počítač. Toto ověřování je důležité proto, že mezi vás a váš počítač se může dostat útočník a použít metody "Man in the Middle" (zkráceně MITM), všechna komunikace půjde přes něj a bude se předávat od vás vašemu počítači a obráceně.

Nicméně, nějak řešit podobný problém se dá; použití jednorázových hesel (viz např. projekt otpw) znemožní útočníkovi použít odchycené heslo. Nebo můžete používat vzdálenou službu tak, že pro svět bude otevřena na požádání nebo po nějaké další speciální autorizaci, která povede k zpřístupnění služby. Na lupě vyšel nedávno článek na toto téma – Port Knocking.

Pošta – pop3, imap, smtp

Nebudu zde rozebírat, jak posílání pošty funguje, jenom že se zde používají protokoly pop3 a imap (stažení pošty) a smtp (odeslání). Problém je, že pop3 ani imap samy šifrování nepodporují, takže opět vaše heslo (a zpráva) letí až na server v nešifrované podobě. Ale i to, že se váš email se dostane bezpečně až na server neznamená, že se bezpečně dostane i k adresátovi, protože mu zbývá ještě projít strastiplnou cestou internetem až na server, kde má adresát emailovou schránku (pokud vás zajímá, které servery nějaký konkrétní email zpracovávaly, podívejte se do hlavičky emailu – zajímají vás konkrétně informace za "Received:").

Protokoly pop3 i imap lze vhodně rozšířit tak, aby bylo možné zašifrovat zprávu a zabezpečit autentizaci, ale jak jsem už naznačil, ani to není vše. Nezapomeňte na ověření certifikátů serveru!

Protože emaily (obvykle) kolují internetem v čitelné podobě, je nutné se k emailu patřičně chovat. Obecně se email přirovnává k pohlednici, protože na rozdíl od dopisu, každý kdo má pohled v ruce si ho může přečíst, pozměnit a nebo stejně jako dopis zahodit do koše. Mimo to také k pohledu nebývá přiložen žádný balík, takže si prosím uvědomte a zapamatujte, že email není vhodný k posílání velkých příloh (navíc některé servery mohou takovou zprávu odmítnout doručit).

Možností, jak zabezpečit emailovou komunikaci je používat elektronický podpis. A tím je velice populární PGP (Pretty Good Privacy), který umožňuje podepisovat emailové zprávy (tím zajistíte dvě věci – jednak podepsaná zpráva naznačuje, že jste skutečným autorem vy a pak také znemožňuje změnu těla zprávy cestou k příjemci) nebo šifrovat (za použití asymetrické kryptografie – pro zašifrování potřebujete veřejný klíč příjemce a výslednou zprávu půjde dešifrovat pouze soukromým klíčem příjemce, který musíte chránit jako oko v hlavě). Trochu problém je získání veřejných klíčů, protože veřejný klíč si na libovolný email může vytvořit kdokoli. Buďto si můžete přes nějaký bezpečný kanál ověřit kontrolní součet veřejného klíče (tzv. fingerprint) přímo s danou osobou nebo ho může podepsat někdo, komu věříte (tzv. Web of Trust; za předpokladu, že on bude mít ověřené, že je takový klíč pravý) a konečně takový klíč může být podepsaný certifikační autoritou (CA), které věříte (a ona např. přímo ověřuje totožnost žadatele).

V Linuxu se obvykle používá ekvivalent PGP – GPG (GNU Privacy Guard) a většina emailových klientů s ním umí komunikovat a velice jednoduše pracovat. GPG lze navíc použít pro symetrické šifrování apod. Také pro něj existují i poměrně zdařilé grafické frontendy.

Přenos souborů – FTP

FTP má opět několik bezpečnostních problémů:

  • komunikace není šifrovaná, dá se odposlouchávat včetně hesla
  • FTP používá oproti jiným protokolům dva komunikační kanály – přes jeden proudí příkazy a druhým vlastní data; tohle přináší řadu bezpečnostních problémů, viz např. tento článek od DJB.

Jediným univerzálně rozumným řešením je používat tzv. pasivní režim FTP (FTP klient požaduje po serveru otevření portu pro přenos dat), protože jinak existuje mnoho bezpečnostních rizik.

Word Wide Web – http

WWW je poměrně hodně používaná služba, která částečně může za rozvoj internetu do podoby, jakou ji známe dnes. To ale nic nemění na tom, že i web je poměrně nebezpečné místo.

Pokud tomu není jinak, všechna komunikace je nešifrovaná (prohlížeč obvykle dává vědět uživateli, že je komunikace bezpečná, krom všemožných upozornění a ikon, URL těchto serverů obvykle začíná https://), takže opět – pokud budete vyplňovat kterékoli formuláře (dotazníky, přihlašování k emailu, ...), pamatujte, že kdokoli mezi vámi a serverem (včetně) může vaše data odchytávat a dělat si s nimi, co se mu zlíbí.

Jak už jsem naznačil výše, webová komunikace se dá zabezpečit, nejčastěji pomocí SSL (Secure Sockets Layer, blíže ve článku na root.cz. Jedná se o technologii (zjednodušeně), která provádí šifrovanou komunikaci mezi serverem a prohlížečem pomocí symetrické šifry. velice důležité je, aby došlo před vlastní komunikací k ověření, s kým to vlastně komunikujeme. K tomu slouží certifikáty, díky nim je možné poznat, jestli je druhá strana opravdu tím, za koho se vydává. Aby byl certifikát důvěryhodný a ověřitelný, je podepsán certifikační autoritou, které uživatel prostě musí věřit.

Mimochodem, když už se bavíme v SSL, toto šifrování se dá použít nejenom pro web, ale používá se například pro stahování emailů, šifrování FTP relace apod. Opět zdůrazňuji, že opravdu důležité vědět, kdo je na druhé straně spojení.

VII. Závěr

Co říct na závěr? Snažte si zapamatovat a používat co nejvíce věcí, na které upozorňuji – věřte – mají svůj smysl. I když většinou stačí používat mozek a číst co se píše na monitoru :o).

Za konzultace bych chtěl poděkovat Honzovi Houšťkovi.

Verze pro tisk

pridej.cz

 

DISKUZE

Nejsou žádné diskuzní příspěvky u dané položky.



Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

28.11.2018 23:56 /František Kučera
Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1

12.11.2018 21:28 /Redakce Linuxsoft.cz
22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář

6.11.2018 2:04 /František Kučera
Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

4.10.2018 21:30 /Ondřej Čečák
LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář

18.9.2018 23:30 /František Kučera
Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář

9.9.2018 14:15 /Redakce Linuxsoft.cz
20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business. Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář

12.8.2018 16:58 /František Kučera
Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář

16.7.2018 1:05 /František Kučera
Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

31.7.2023 14:13 / Linda Graham
iPhone Services

30.11.2022 9:32 / Kyle McDermott
Hosting download unavailable

13.12.2018 10:57 / Jan Mareš
Re: zavináč

2.12.2018 23:56 / František Kučera
Sraz

5.10.2018 17:12 / Jakub Kuljovsky
Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2024) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze