Hlavní navigace

Nedívá se někdo?

Michal Vymazal

Jste si jisti, že si nikdo neprohlíží data na vašem disku, když si spokojeně brouzdáte po Internetu? Ať už odpovíte kladně nebo záporně, přečtěte si raději tento článek.

Se zájmem jsem si přečetl na undergroundu články „Top ten bezpečnostních chyb“, „masshack v cz“ a „You have been hacked“.

Co k tomu dodat? Prostě zvědavost je neodmyslitelná lidská vlastnost, ovšem když se k ní připočte i zlomyslnost, bývá obvykle zle. Jste si opravdu jisti, že se nikdo „neprochází po vašem disku“ během připojení na Internet? Opravdu? Dobrá, tak začneme.

Předem bych ovšem rád podotknul, že smyslem tohoto článku není radit průnikářům (i když to nepochybně zkusí také). Účelem je poradit běžnému uživateli, jak se stát „obráncem“.
Jen na vysvětlenou – zabývám se navrhování informačních systémů jako takových a pojem „obránce“ je běžně používaný výraz. Je to člověk z masa a kostí, který se zabývá skutečnou obranou informačního systému proti vetřelcům. Vetřelci mohou být jak z vnějšího (třeba z Internetu), tak z vnitřního světa (třeba z vaší LAN, proč ne). Vetřelci mohou být jak lidé z masa a kostí, tak automaty (zatím naprogramované automaty – jsem zvědav na umělou inteligenci). Tolik na vysvětlenou. Jen připomínám staré dobré pravidlo, že obránce je vždy ve výhodě, ovšem za těchto předpokladů:

  1. Informační systém skutečně má obránce (třeba správce sítě, ale zabývá se též bezpečností).
  2. Obránce umí svůj „hrad“ „rozebrat a složit“. Jsem si vědom toho, že bod 2 vyvolá řadu polemik, ale musí tu být, věřte mi.
  3. Obránce má nejméně tolik času jako útočník (počítáme i s momentem překvapení ze strany útočníka).
  4. Obránce provádí pravidelné kontroly svého informačního systému.
  5. Obránce je v kontaktu s jinými obránci (se světem) a vyměňují si zkušenosti.
  6. Informační systém má svou logistiku. Mimo jiné sem patří i přímá zodpovědnost lidí vůči lidem a lidí vůči událostem.

Všimněte si, že zatím nebyla vůbec řeč o platformách, aplikacích, HW, národnostech, vyznáních apod. Ano, je to tak. Tato pravidla platí obecně.

A teď konkrétněji
Nu dobrá, nebudu se tu zmiňovat o světě MS – Windows (posledně jste mi za to vynadali – ale pravidla pro obránce musí někdo stanovit a tím „někým“ je přece návrhář systému, ne?)

Tak se pojďme podívat do Linuxu, konkrétně RedHat 6.1 CZ s jádrem 2.2.12

O chybě se setuid (netýká se až jádra 2.2.16) samozřejmě víme, neboť jsme se to dočetli zde.

Ovšem tato „ďoura“ bude fungovat jen za asistence neopatrnosti roota, nebo přímo s rootovým přičiněním. Lze ji odstranit i jinak, ovšem pokud to bude zakázáno přímo v kernelu, bude jen dobře.

Ovšem nejlépe bude, když si „nastavení“ svého Linuxu zkontrolujeme hned (a to během připojení k Internetu) a to zde: www.grc.com

Teď si pěkně klikněte na Shields Up – Test my shields a nestačte se divit.

Pokud jste připojeni skrze firewall, pak by grc neměl najít ani vaši IP adresu (najde IP adresu firewallu), ani váš protokol NetBeui (i když jej budete mít instalován a budete nabízet něco ke sdílení), ani váš port 139 (i když jej „nabízíte“). Prostě firewall je firewall a hned se můžete podívat, zda pracuje, jak má.

Pokud jste připojeni po modemu, asi tak pěkné hodnocení nedostanete:-))

A teď pěkně zkuste volbu Probe my ports!

Že vám něco svítí červeně? Aj jaj. No rozhodně by to neměl být telnet a finger. To si přímo koledujete. Vřele doporučuji si stránečku „Port Probe“ vytisknout, protože jsou zde jak čísla portů, tak názvy jednotlivých služeb, tak popis těchto služeb.

Samozřejmě, že ideální je zelená barva (stealth) u všech služeb.

Výsledek přináším v plném znění, jen jsem „zamázl“ IP adresu. Pro jistotu.


Internet Connection Security for Windows Users
by Steve Gibson, Gibson Research Corporation

Quickly Check for Connectable
Listening Internet Ports

Port Probe attempts to establish standard TCP/IP (Internet) connections on a handful of standard, well-known, and often vulnerable Internet service ports on YOUR computer. Since this is being done from our server, successful connections demonstrate which of your ports are „open“ and actively soliciting connections from passing Internet port scanners.

PLEASE NOTE: An early Monday morning hardware reconfiguration has temporarily confused the Port Probe system. You may receive occasional „Stealth“ results which are actually „Closed.“ We will fix this tongiht when site traffic subsides. Sorry for the inconvenience!

Your computer at IP:

xx.xx.xx.xx

Is now being probed. Please stand by…

Tabulka č. 77
Port Service Status Security
21 FTP Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
23 Telnet Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
25 SMTP Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
79 Finger Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
80 HTTP Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
110 POP3 Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
113 IDENT Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
139 Net BIOS Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
143 IMAP Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!
443 HTTPS Stealth! There is NO EVIDENCE WHATSOEVER that a port (or even any computer) exists at this IP address!

Ptáte se jak jsem to udělal? Inu, připojil jsem se skrze firewall. Linuxový firewall (jistěže ctím své vlastní zásady).

No jo, ale co teď s připojením skrze modem? To si mám doma postavit firewall? Nemusíte. Jednoduše zeditujte soubor /etc/services a zde „zakřížkujte“ (tedy jako první znak na řádku bude #) řádky s porty pro telnet (23) a finger (79). Pak restartujte Linux (třeba init 6 – restart). Démon inetd nyní nemá pro služby telnet a finger žádný port a tak nikdo (ani root) tyto dvě služby nespustí (tedy pustí, ale nenaváže spojení – a to je ten vtip). Pokud nepotřebujete ssh, tak jednoduše zakažte automatické spouštění démona sshd, třeba skrze linuxconf, nebo pomocí příkazu setup. Podíváte-li se do manuálu k příkazu init, dozvíte se, že má celkem 7 úrovní (0–6) a že je tu přímá souvislost s výrazem „runlevel“ (veteráni prominou, ale nechceme vymřít, že. Prostě se to pokouším vysvětlit srozumitelně pro všechny).

Jinak, pokud vás zajímá, zda jsou čísla portů v /etc/services „normována“, pak vězte, že jsou. Podrobný popis naleznete třeba zde.

A na závěr jedna malá rada:
Připojujte se k Internetu jen nástroji, kterým rozumíte. Pokud nevíte co ta která služba dělá, snažte se od ní získat popis. Pokud nevíte, za co všechno ručí váš provider, bombardujte jej otázkami. Pokud popis nezískáte, omezte používání této služby (nebo ji raději přestaňte používat). Pokud vám provider neodpoví, zeptejte se znovu a po dalším odmítnutí jděte jinam. Nestojí to za to, věřte mi.

Našli jste v článku chybu?