Každý, kto používa počítač pripojený k sieti, sa neustále hlási k rôznym sieťovým službám a využíva cudzie zdroje. Ináč by asi počítačové siete ani nemaly zmysel. Väčšina služieb v dnešnej dobe využíva istú formu autentizácie užívateľa a to rôznymi metódami. Málokto sa však zamýšľa nad tým, ako taká autentizácia vlastne funguje a do akej miery je bezpečná. Toto malé zamyslenie bude predmetom dnešnej, pre mňa do istej miery netradičnej, témy, o ktorej by som vám chcel niečo napísať.
..Šifrované verzus nešifrované prenosy
Veľa sieťových autentizačných metód využíva rôzne kryptografické algoritmy k šifrovaniu vzájomnej komunikácie. Bohužiaľ, sú i také, ktoré to však nerobia. Pozrieme sa na tie protokoly, ktoré k autentizácii šifrovanie epoužívajú.
Každý z vás už určite počul o protokoloch ako FTP, POP, Telnet alebo HTTP, tieto šifrovanie takmer nevyužívajú. Väčšina užívateľov nad týmto faktom mávne rukou a povie si, že s tým osobne nič nemôže robiť a ďalej sa s problémom netrápi. Situácia však nie je až tak ružová a jednoduchá, ako by sa na prvý pohľad mohlo zdať. Hlavne v komerčnej sfére môže mať ignorovanie týchto faktov za následok narušenie súkromia, čo určite nikomu z vás nie je príjemné. Na niekoľkých nasledujúcich riadkoch si ukážeme, aké môže mať používanie nešifrovaných protokolov dôsledky a čo všetko je pri troche šikovnosti možné zistiť. Nakoniec sa pozrime na niektoré bezpečnostné alternatívy nešifrovaných služieb a povieme si, ako s ich pomocou riešiť terajšiu situáciu.
IDENTIFIKÁCIA SERVERA A SLUŽIEB
Prvú vec, ktorú je potrebné si zistiť je, akú vlastne verziu a typ služby využívate. Pokúsime sa identifikovať rôzne služby a ako sami uvidíte, ak nie sú správne nastavené, prezradia tieto služby o seba dosť veľa. Prvým krokom by mala byť identifikácia cieľového systému, ktorý službu ponúka. Môže ísť o poštový server, FTP server, alebo webový server. Ako príklad som vybral systémy, ktoré ponúkajú mnoho služieb (mimochodom nie je to príliš šťastné a bezpečné riešenie). V praxi sa môžete stretnúť (je to veľmi pravdepodobné) s tým, že služby budú nainštalované na rôznych systémoch. Uvedené služby bežali pod týmito operačnými systémami: Linux RedHat 7.3 a Windows 2000 Profesional. Na systémoch boli spustené tieto služby: SMTP server, FTP server a HTTP server. Na systéme Linux ešte SSH server a na systéme Windows telnet server. Teraz sa pozrieme, ako vyzeral portscan každého systému a ako služby identifikoval. K skenovaniu portov bol použitý nmap (www.insecure.org/nmap), ktorý patrí k najlepším produktom vo svojej triede. Nmap identifikoval takmer identické služby. Teraz sa pozrieme pomocou nástroja telnet na to, ako sa jednotlivé služby identifikujú. Alternatívne je možné použiť nástroj netcat, ktorý je súčasťou väčšiny linuxových distribúcií a je k dispozícii i pre operačný systém Windows.
Z pohľadu správcu
Teraz si urobíme menšiu odbočku a pozrieme sa na problém zo strany správcu systému. Z výpisu, ktorý vám ponúkne nmap, sa dozviete dosť podrobné informácie o jednotlivých identifikovaných službách, čo ale samozrejme nemusí byť v každom prípade ideálne. Ak útočník pozná druh a verziu danej služby môže zistiť, či bola v danej verzii zistená nejaká chyba a prípadne túto chybu zneužiť. S tým súvisí sledovanie zmien a pravidelná aktualizácia softvéru.
Teraz si povieme, ako to útočníkovi sťažíme pri identifikácii bežných služieb.
Prvá a základná vec je, vôbec služby nespúšťať, teda tie ktoré nepotrebujeme. Prečo by ste mali mať spustenú službu telnet ak nechcete, aby váš počítač využíval i niekto iný? Ďalšia vec je oddelenie služieb, ktoré slúžia užívateľom vnútornej siete a služieb, ktoré chceme ponúknuť verejnosti. Tu prichádzajú k slovu firewally a smerovače. Taktiež nie je od veci uvažovať o implementácii takzvanej DMZ, alebo ak chcete - demilitarizovanej zóny, do ktorej sú umiestnené služby ponúkané verejnosti, ktoré chceme oddeliť od našej vnútornej siete. Do DMZ môžeme umiestniť poštové servery, FTP server, alebo webové servery. Konfigurácia a stratégia firewallu však nie je témou tohoto článku, a tak sa radšej vrátime spať a povieme si, ako sťažiť identifikáciu bežných služieb.
Ako prvé si ukážeme, ako odstrániť hlavičku poštového serveru Sendmail. Túto zmenu môžeme vykonať pomocou konfiguračných makier m4, alebo priamou editáciou súboru sendmail.cf, čo je jednoduchšie, pretože ide o zmenu jedného riadku obsahujúceho SMTPGreetingMessage=j Sengmail $v/$Z; $b. Túto direktívu môžete ľubovoľne meniť, môžete sa dokonca vydávať i za iný poštový server. Možností je skutočne veľa a je to iba na vás. Pozor ale na situáciu, keď sa o poštový server stará viacej správcov a nastavenie sa vykonáva pomocou makier m4. Potom je dôležité, aby zmena bola vykonaná i v makre, aby nedošlo k situácii, kedy druhý správca zmení nejaké konfiguračné direktívy, znovu vygeneruje a zavedie konfiguračný súbor a všetky vaše zmeny potom vyjdú nazmar. Ďalším veľmi často používaným poštovým serverom je Postfix. I u neho si ukážeme, ako zmeniť jeho hlavičku. Zmenu urobíme v konfiguračnom súbore Postfixu main.cf, kde je potrebné upraviť smtpd_banner. Ďalšou službou, kde je žiadúce zmeniť hlavičku, je FTP. Povieme si, ako to urobíte u najrozšírenejšieho serveru FTP, serveru wu-ftpd. V konfiguračnom súbore ftpaccess editujete direktívy greeting full, greeting brief, greeting terse, greeting test, banner a hostname. Pokúste sa s nimi experimentovať a zvoľte tú, ktorá vám bude najviac vyhovovať.
U HTTP servera, čo je v unixovom svete najčastejšie Apache a vo svete Microsoftu najčastejšie IIS, je situácia obtiažnejšia. Napríklad u servera Apache sa pri zmene hlavičky nevyhnete editácii zdrojového kódu a následnej kompilácii. Zmenu hlavičky zariadite v hlavičkovom súbore httpd.h, ktorý je uložený v adresári apachesource/include, kde apachesource je adresár, v ktorom máte uložený zdrojový kód servera. V tomto súbore zmeníte hodnotu makra SERVER_BASEPRODUCT a SERVER_BASEVERSION. Verziu HTTP servera zistíte veľmi jednoducho zaslaním nasledujúcej požiadavky portu, na ktorom HTTP server beží: HEAD /HTTP/ 1.0.
V druhej časti budem pokračovať z pohľadu užívateľa