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 10449×
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
|
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 ...
|