Soluții - PC Magazine Romania, Decembrie
2002
Motto: "- Dumnealui este dl. Davis,
de la FBI... dl. Crane, de la CIA... detectivul Morgan, de la N.Y.P.D... Și
mai este acolo, în spate, un domn ...
- Da, eu sunt... de la o Altă Agenție..."
(Dintr-un film polițist)
De Crăciun ne-am luat rația de Libertate
Răzvan Sandu
La ora la care scriu aceste rânduri, situl www.linuxwill.go.ro
, dedicat de mine utilizatorilor de Linux din România, a fost "spart" de către
un cracker. El a adăugat o animație Flash, pe fundal negru, înaintea paginii
principale, lăsând restul neatins. Dincolo de faptul că vreau să îi mulțumesc
- niciodată acest sit nu s-a bucurat de atâția vizitatori ca acum - promit să
nu mai folosesc niciodată parole slabe.
Astăzi vom vorbi, așadar, despre libertate. Și despre ceea ce vrem - sau nu
vrem - să devină internetul.
Cine ești dumneata, domnule root?
Pentru aceia dintre Dvs. care nu știu încă, voi începe prin a spune ce se înțelege
prin securitatea unei mașini sau a unei rețele. Fără a încerca o definiție precisă,
un sistem este numit "sigur" dacă:
- permite utilizatorilor să citească și/sau să modifice numai acele informații
pe care sunt autorizați să o facă (confidențialitate, integritate);
- nu permite nimănui ca, prin vreo acțiune asupra sistemului, să interzică
utilizatorilor legali accesul la datele stocate - denial of service - (disponibilitate)
Desigur, persoana care are - și trebuie să aibă - drepturi "de viață și de
moarte" asupra întregii mașini este administratorul, utilizatorul root. De aceea,
majoritatea atentatelor la securitate sunt încercări de obținere a accesului
cu drepturi de root asupra sistemului în cauză.
Nu uitați, însă, că asigurarea securității unui sistem este o armă cu două tăișuri.
Cu cât un sistem este mai sigur, o parte din funcționalitatea sa se pierde.
În glumă, un calculator perfect sigur este unul oprit, nelegat la nici o rețea
și încuiat în safe-ul unei bănci. La celălalt capăt al scalei se găsește un
sistem conectat în mai multe rețele publice, pe care nu s-au luat nici un fel
de măsuri de limitare a accesului. Acestea sunt cele două extreme între care
trebuie să alegeți "poziția" mașinii Dvs., adică compromisul între siguranță
și funcționalitate.
În stabilirea soluției de asigurare a securității, trebuie să țineți seama de
câteva aspecte importante:
- costul schemei alese trebuie să fie proporțional cu valoarea datelor stocate
- nu cred că doriți să plătiți unui expert câteva mii de dolari doar pentru
a vă proteja e-mail-urile de ochii indiscreți ai colegilor, nu ?
- datele pot fi atacate atât prin intermediul rețelei la care este conectat
computerul, cât și direct, de la consola acestuia (securitate de la distanță,
locală și fizică). La ce vor servi niște programe firewall puternice, dacă
un cracker interesat poate accesa sistemul direct de la tastatura Dvs. sau
îi poate demonta carcasa, furând hard disk-ul? Vă amintiți poate că, pe vremea
MS-DOS, grupuri întregi de programatori se chinuiau să inventeze programe
impenetrabile care cereau o parolă la pornirea calculatorului, când mașina
putea boota de pe o simplă dischetă sistem, oferind acces 100% la toate discurile
fixe ...
- sistemele Windows 95, 98, Millenium, 2000 Professional și XP sunt, prin
definiție, sisteme "client" - adică mașini care "primesc" serviciile oferite
de o rețea. Asta le face mai puțin susceptibile la atacurile venite dinspre
aceasta, fiindcă ele nu rulează deloc procese care ar putea oferi "porți ascunse
de intrare". În schimb, securitatea lor locală este destul de slabă, fiindcă
Windows își are rădăcinile în vechile sisteme de operare Microsoft, proiectate
pentru acces neîngrădit din partea unui singur utilizator. Prin contrast,
sistemele Linux/Unix sunt puncte-cheie în majoritatea siturilor internet sau
rețelelor mari și oferă zeci de servicii tip sever, destinate să fie accesate
de la distanță.
- sursele programelor ce alcătuiesc Linux sunt mereu disponibile. Asta permite
"băieților răi" să le studieze și să exploateze diferitele greșeli de programare,
dar și "băieților buni" să identifice foarte rapid soluția problemelor apărute.
Internetul - teatru de război
Toate cele spuse mai sus vi se par doar o teorie plictisitoare, nu ? Ei bine,
haideți să ne jucăm un pic:
O cutie de carton conținând cereale pentru copii vi se pare o armă mortală ?
Nuuuuuu ... ! Ba da. Un tip numit John T. Draper a deschis o astfel de cutie
și a găsit în ea o jucărie-surpriză destinată celor mici: un fluier din plastic.
El a aflat că fluierul producea un ton cu frecvența de exact 2600 Hz, frecvență
folosită de companiile telefonice pentru comanda trunchiurilor de linii. Ceea
ce a urmat a fost un adevărat război de "păcălire" a sistemelor, de rerutări
de numere de apel, de utilizare gratuită a unor linii scumpe, etc. Piratul telefonic
nu avea corabie, dar și-a luat un nume de luptător: Captain Crunch, după numele
cerealelor de la care pornise întreaga aventură ...
La www.webcrunchers.com
puteți găsi povestea, spusă chiar de Căpitanul Crunch.
Eiiiii, Kevin Poulsen era obosit, așa că s-a gândit că nu ar trebui să mai meargă
pe jos. Norocul i-a surâs în ziua în care a câștigat un superb Porsche 944,
oferit ca premiu la un concurs radiodifuzat. Totul ar fi fost chiar o poveste
frumoasă despre șansă și despre norocul începătorilor, dacă apelul său n-ar
fi ieșit câștigător în urma manipulării liniilor telefonice ale companiei Pacific
Bell ... Despre Poulsen și nevinovata sa pasiune pentru telefonie puteți citi
la www.kevinpoulsen.com.
Tsutomu Shimomura. Numele japonez are o rezonanță războinică, dar cel care îl
poartă nu este un sensei, ci un expert în securitatea rețelelor de la San Diego
Supercomputer Center. Pe 25 decembrie 1994, el cădea victimă unui alt cracker
legendar, Kevin Mitnik. Acesta a folosit o tehnică de imitare a adreselor IP
(IP spoofing) pentru a exploata relația de încredere existentă între două mașini
ale Centrului. În acest fel, Mitnik a reușit să obțină acces privilegiat fără
a avea nevoie de parole și a furat un număr de utilitare de securitate existente
în acel sistem, utilitare proiectate de Shimomura. De altfel, Mitnik este un
vechi pirat al sistemelor de calcul, poate cel mai celebru - câteva dintre pățaniile
sale le puteți afla la www.takedown.com/bio/mitnick1.html
1988. Studentul Robert Morris Jr., fiul unui expert ce lucra pentru NSA (National
Security Agency, poreclită și No Such Agency din cauza nivelului ei secret)
lansează în Internet viermele Christmas Tree ("Pomul de Crăciun"). Încercând
să facă o glumă unui prieten de la Harvard, Morris comite o eroare de programare,
iar desenul Pomului de Crăciun se răspândește rapid până în Europa, infectând
mii de mașini. Tânărul furnizează autorităților metoda de contracarare a viermelui
și este arestat de FBI.
"Cutiile colorate" (red box, blue box, mauve box, aqua box s.a.) sunt circuite
electronice ce au fost folosite mult timp pentru "înșelarea" sistemelor telefonice.
Câteva referințe la ele puteți găsi la www.fc.net/
phrack.html, iar schemele sunt disponibile și azi în internet. Desigur,
multe dintre ele sunt acum depășite datorită utilizării aparaturii telefonice
digitale. Programe specializate, cum ar fi BlueBeep, realizau funcții asemănătoare
de phreaking (piraterie telefonică) prin metode software. Ca exemplu, cutia
roșie reușea să imite zgomotul monedelor introduse într-un telefon public, ceea
ce permitea accesul neautorizat - și gratuit - la linie. Lista exemplelor ar
putea continua - pentru doritori, detaliile vă așteaptă la www.underground.org
sau la Electronic Frontier Foundation www.eff.org
Un vis devenit realitate
OK, veți spune, dar ce legătură directă există între toate astea și Linux ?
"Unealta este jumătate din meșter" spune un proverb din bătrâni. Dintre toate
sistemele de operare disponibile pentru PC-uri, Linux este atât preferatul profesioniștilor
în rețele, cât și al celor care se ocupă de activități ilegale. Aceasta fiindcă
el "coboară" în birourile oricăruia dintre noi puterea sistemelor Unix "adevărate"
și a stațiilor de lucru ce costă zeci de mii de dolari ... O implementare robustă
a setului de protocoale TCP/IP - ca și a altora - și existența unui set de "scule"
de analiză a rețelei, iată ce este definitoriu pentru Linux !
Pentru începători, să pornim prin a ne imagina "un zid" construit la interfața
între computerul nostru și rețeaua din care face parte. Ducând analogia mai
departe, dacă în acest zid există orificii numerotate, acestea ar putea fi porturile
TCP/IP. Programele daemon ce rulează pe sistem "ascultă" cereri de conectare,
fiecare la portul care i-a fost alocat. Porturile servesc, deci, ca "puncte
de întâlnire" predefinite între serverele TCP/IP ale mașinii și clienții de
rețea ce folosesc aceste servicii.
Cea mai mare parte a atacurilor venite din rețea se desfășoară după un scenariu
devenit aproape banal pentru mulți administratori:
- analiza de la distanță a mașinii-victimă, folosind diverse utilitare, în
scopul de a afla cât mai multe informații despre ea (tipul și versiunea sistemului
de operare, detalii despre utilizatori și root, detalii hardware, etc.);
- scanarea porturilor TCP/IP, pentru a stabili care dintre acestea sunt "deschise",
ce servicii rulează pe ele și care sunt eventualele puncte vulnerabile ce
pot fi exploatate (erori de programare existente în software-ul server);
- pătrunderea neautorizată în sistem
- sustragerea fișierului cu parole /etc/passwd (în scopul prelucrării și obținerii
parolelor de root în clar), provocarea altor pagube sau furtul unor informații
esențiale.
Dacă vă mai amintiți discuția noastră din numărul trecut, era vorba acolo despre
criptarea informațiilor folosind algoritmi cu chei asimetrice. Pe un sistem
Linux, fișierul de parole /etc/passwd este protejat folosind același mecanism:
parolele nu sunt stocate în clar, ci în formă criptată. Funcțiile matematice
ce realizează criptarea nu admit funcție inversă, adică este imposibil să se
obțină parola pornindu-se de la textul cifrat. Din nefericire, marea majoritate
a utilizatorilor nu își stabilesc parole puternice (cu lungime suficientă, cu
combinații de cifre și litere mari si mici), ci simple cuvinte din limba română
sau engleză. Dacă o persoană rău intenționată dispune de un dicționar (lista
de cuvinte) și de un program capabil să "încerce" aceste parole cu suficientă
viteză, probabilitatea de a găsi "combinația" care permite accesul este destul
de mare ...
Pentru crackeri, Linux este "un vis devenit realitate", fiindcă aici există
(sau se pot implementa ușor) toate programele necesare: scannere de porturi
TCP/IP, utilitare de "spargere" a parolelor, instrumente sofisticate de analiză
a rețelei... Câteva dintre ele merită o atenție specială.
Armament greu
Iată o prezentare succintă a câtorva utilitare valoroase. Precizez că rareori
autorii acestora sunt crackeri sau persoane rău intenționate - utilitarele în
cauză au fost proiectate ca mijloace de cunoaștere a rețelei, pentru îmbunătățirea
securității ei.
SATAN (System Administrator's Tool for Analyzing Networks) este un scanner
de porturi care caută vulnerabilități cunoscute pe mașinile-țintă, cum ar fi
cele ale severelor FTP, NFS, NIS si rsh. Scris de celebrii hackeri (și experți
mondiali în securitate) Dan Farmer și Vietse Venema, SATAN se distinge prin
interfața sa Web intuitivă și ușor de folosit. Implementarea sa pe un sistem
Linux nu este tocmai facilă, dar poate fi făcută aplicând un patch destinat
acestui sistem de operare și recompilând sursele. Scannerul este disponibil
la www.fish.com, iar fișierul-patch
la www.sunsite.unc.edu.
XSCAN este un scanner de porturi specializat în identificarea punctelor slabe
din serverul grafic X ce rulează pe mașina-țintă. Ceea ce îl face deosebit este
faptul că, în cazul în care identifică o "portiță de intrare" în sistem, înregistrează
tastele apăsate de utilizator.
ethereal este un program de analiză a traficului de rețea, cu o interfață grafică
deosebit de prietenoasă. El vă poate ajuta să identificați rapid mașini, adrese
IP și MAC și alte detalii din rețeaua Dvs. Pentru aceasta, ethereal "ascultă"
rețeaua pentru un timp determinat și apoi vă prezintă, într-o formă intuitivă,
datele descoperite. Programul face parte din distribuția Red Hat Linux, unde
îl găsiți sub formă de pachet .rpm.
Jakal este tot un scanner de porturi, din clasa celor invizibile (stealth).
Se distinge în mod deosebit prin capacitatea sa de a scana domenii aflate în
spatele unor dispozitive firewall, fără a lăsa urme în jurnalele acestora. Îl
puteți obtine de la adresa www.giga.or.at.
Moș Crăciun cu plete dalbe ...
În discuția noastră despre protejarea propriei mașini, să nu pierdem din vedere
și micile "daruri" pe care le puteți primi pe o dischetă sau ca atașament la
un e-mail.
În lumea Linux există două "bariere naturale" puternice împotriva răspândirii
virușilor:
- programele executabile .EXE și .COM din mediile Microsoft nu rulează pe
un sistem Unix/Linux (fie ele programe "normale" sau viruși). Așa cum probabil
ați descoperit deja, pentru a rula un executabil DOS pe Linux este nevoie
de emulatoare ca dosemu, WABI sau wine, care "traduc" apelurile de sistem.
De aceea, este practic imposibil să primiți un virus pe această cale. Excepție
fac virușii scriși în limbaje cu abilități cross-platform, cum ar fi Java
sau Perl.
- Într-un mediu Unix, execuția oricărui program se desfășoară după reguli
stricte, sub controlul absolut al kernel-ului sistemului de operare. În fiecare
moment, este limpede ce drepturi de acces la resurse are un anumit proces,
în funcție și de drepturile asignate utilizatorului care a lansat procesul.
Nici un program nu are acces direct la hardware, ceea ce împiedică majoritatea
acțiunilor neautorizate pe care le execută virușii.
În cazul în care, totuși, un program ilegal exploatează o vulnerabilitate existentă
în sistem (un bug), platforma Linux este celebră prin viteza cu care apar patch-urile
de corecție - timpii sunt de ordinul orelor. Comunitatea utilizatorilor Linux
fiind "coagulată" în internet, soluțiile de corecție oferite de programatori
apar foarte repede pe forumurile de discuții - mult mai repede decât în cazul
oricărui sistem comercial.
Fac ce vreau, dar știu ce fac ...
În presa TI și în afara ei, ca și în audiovizual, la nivelul marelui public,
se menține confuzia între termenii de hacker și cracker. M-am întrebat întotdeauna
dacă de vină este ignoranța unora sau rea-voința lor. Apoi mi-am amintit că
omul se teme întotdeauna de ceea ce nu cunoaște și că există și multe interese
comerciale pentru menținerea acestei "spaime" - ca de exemplu, vânzarea de soluții
și pseudo-soluții de securitate, de antiviruși, etc.
Pe scurt, un hacker este o persoană care posedă cunoștințe avansate în domeniul
TI, al sistemelor de operare, al hardware-ului, etc. - de cele mai multe ori,
un autodidact, unul care "sapă" în fiecare zi printre aceste detalii, din pasiune.
De cele mai multe ori, hackerii sunt și programatori talentați. În ciuda faptului
că acești oameni nu sunt implicați în nici un fel de activitate ilegală, asupra
lor plutește întotdeauna suspiciunea managerilor, a publicului sau a ... părinților
J - în general, a tuturor acelora care nu le împărtășesc pasiunea. Cu toate
acestea, hackerii aduc servicii enorme comunității mondiale TI, inclusiv prin
lupta împotriva ilegalităților: este de ajuns să-i amintesc pe Dennis Ritchie,
Linus Torvalds, Paul Baran, Richard Stallman... Și, de ce nu, pe dl. Bill Gates.
Dimpotrivă, crackerii sunt "îngerii decăzuți" ai TI-ului. La origine, unii au
fost hackeri, alții nu. Caracteristica activității lor este implicarea în operații
ilegale, motivate fie de bani, fie de dorința de a obține celebritate. Plaja
infracțiunilor ce se pot săvârși cu ajutorul computerului este foarte largă,
de la penetrarea sistemului informatic al unei bănci în scop de furt sau folosirea
cărților de credit false la pirateria software sau distrugerea unor situri Internet.
Desigur, cei mai mulți crackeri sunt și programatori foarte buni, atrași de
fața întunecată a scrierii de software. Uneori, însă, de "faima neagră" a crackerilor
se bucură și oameni care o doresc, dar nu o merită - prea des unii sunt tentați
să creadă că orice vânzător de CD-uri pirat este și un programator genial, un
Kevin Mitnick ...
Și totuși, cum ne putem proteja ?
Aceasta este întrebarea pe care mi-o veți pune, mai devreme sau mai târziu,
referitor la sistemul Linux pe care l-ați instalat. Aici merită făcute câteva
observații.
Mai ales printre utilizatorii de Windows, securitatea este un subiect la modă.
Și, ca în orice subiect mult dezbătut, amatorismul își face loc ușor. Zece programe
antivirus și trei variante de firewall, instalate pe un Windows care servește
ca mașină de scris, vor duce la un sistem supraîncărcat, greoi și, de multe
ori, nefuncțional.
Fie-mi îngăduit să spun că organizarea corectă a securității unui sistem pornește
de la "igiena" sa, de la lucruri simple:
- Alegeți o parolă bună. Ca cracker, nu trebuie să fii un geniu în TI ca
să încerci "să potrivești în broască" parole conținând numele utilizatorului,
data nașterii, numele soției, numărul mașinii ... O parolă corect aleasă conține
un număr mai mare de caractere, alternează cifre, litere mari și mici care
nu se repetă și nu folosește cuvinte din dicționare;
- Mențineti la minim numărul serviciilor pornite pe mașina Dvs. Linux, adică
numai acele servicii de care aveți într-adevăr nevoie. "Clienți" potențiali
pentru "găuri" de securitate sunt, în special "comenzile r" (rhosts, rusers,
rsh, rlogin), finger, sendmail, telnet, NIS, FTP ... Fișierul /etc/services
și utilitare cum ar fi ntsysv vă permit să controlați exact daemonii care
sunt lansați în fundal în momentul bootării. Dacă aceste servicii vă sunt
necesare, asigurați-vă că ați citit buletinele de securitate de pe Internet
(situri cum ar fi www. cert.org) și că ați aplicat patch-urile pentru bug-urile
ce au fost descoperite.
- Nu permiteți accesul fizic la consola computerului decât acelor persoane
care au într-adevăr nevoie să o facă. Nu rămâneți logat în calculator atunci
când plecați în pauză de masă J :
- Nu instalați decât programe din surse sigure și a căror comportare o cunoașteți
în detaliu;
- Folosiți utilitare de autentificare, cum ar fi tripwire;
- În fine, cea mai bună metodă de apărare este atacul: rulați periodic scannere
de porturi împotriva propriei mașini, încercând să-i descoperiți punctele
slabe.
La Mulți Ani !
Înainte de a-mi lua "La revedere !" de la Dvs. pentru ultima dată în acest an
și de a vă ura "Sărbători Fericite !", vreau să vă fac un mic cadou: câteva
adrese Internet unde veți găsi materiale interesante legate de Linux, de securitatea
sistemelor și de intimitate pe Internet:
www.lopht.com
www.infonexus.com
www.defcon.org
www.cs.purdue.edu
www.raptor.com
www.epic.org
Vă aștept în 2003 pentru noi incursiuni în lumea Linux !
|