articole
06.01.04 19:10Unele metode de atac asupra unui sistem UNIX.
Ultima modificare: 15.11.07 17:32
1. Local DOS attack.

D.o.S. - denial of service.

Se poate realiza prin:

- epuizarea memoriei, a resurselor procesorului sau a spatiului pe HDD.

In cazul epuizarii resurselor ( o bomba fork()) - sistemul devine
inutilizabil pana la resetare.

- epuizarea spatiului pe HDD: ca rezultat sistemul nu va putea
functiona normal, toate incercarile de a scrie ceva in loguri vor esua.

Acest sistem nici nu va putea boota dupa un reset, pana nu va avea
ceva spatiu liber pe hard disk.

Aceste probleme pot fi preintimpinate usor - prin setarea unor limite
asupra reusrselor procesorului, resurselor memoriei, numarului maxim de
procese, numarului maxim de fisiere deschis la un moment dat.

Epuizarea spatiului pe HDD poate fi preintimpinata inca de la
instalarea sistemului de operare, prin alocarea unor directoare
"critice"

(/var/log, /tmp, /var, /home ) partitii separate.

In asa fel daca spatiul liber de pe o partitie este epuizat, sistemul
va continua sa functioneze (pana la un moment dat desigur).

La fel, aceasta are si avantajul ca putem mounta diferite partitii cu
diferite optiuni (/home nu are de ce sa contina fisiere cu bitul suid
setat, precum si /tmp nu are de ce sa contina executabile).

2. Remote D.o.S. attack:

Scopul - de a scoate sistemul din functiune pe o perioada de timp.

Acest tip de atac poate fi clasificat in 2 categorii:

a)Atacul prin executarea unui numar mare de cereri catre serviciul
oferit de un daemon al sistemului.

b)Atacul asupra unor servicii vulnerabile.

Pentru realizarea primului tip de atac nu este nevoie de multe
cunostinte in domeniu, ci de o legatura buna la reteaua la care este
conectata si victima atacului (cum ar fi internetul).

Principiul de baza al acestui tip de atac consta in proiectarea proasta
(din punct de vedere a securitatii) a protocolului TCP/IP.

Dupa cum se stie, atunci cand se produce o legatura tip client-server,
serverul asculta pe un anumit port, la care clientul trimite o cerere de
legatura - un pachet ce contine in header bitul SYN setat (bitul ACK
lipseste), iar in pachetele urmatoare - este setat bitul ACK ( SYN
lipsind).
In continuare, in mod normal, serverul va raspunde la primul pachet al
clientului cu cu un pachet cu bitul ACK setat (semn ca a primit primul
pachet al clientului) , si un SYN request de sincronizare.

Atunci cand clientul primeste acest raspuns de la server, legatura se
considera stabilita.
Pana la acel moment , conexiunea se considera a fi pe jumatate deschisa.

In tipul de atac pe care incerc sa-l descriu acum, se foloseste anume
acest stadiu de initiere al unei conexiuni.
Pe masina atacatorului se creeaza o multime de pachete cu bitul SYN
setat, care se trimtit serverului.
Ca rezultat, serverul atacat (presupunem ca e un server web) va fi
ocupat o perioada numai de prelucrarea acestor conexiuni .
In continuare, totul depinde de setarile masinii victime, precum si
alte conditii. In cazul in care pachetele trimise au avut ca adresa
sursa adresa unei masini existente in retea, victima nu va avea
de suferit mult, deoarece inca la a 3 etapa va inchide conexiunea, din
cauza ca masina din numele careia au fost trimise pachetele nu stie
nimic despre ele.

O alta problema apare daca pachetele au fost trimise din numele altei
masini, inexistente in retea.
Serverul va avea de asteptat ceva timp pana va inchide conexiunea, el
asteptand raspuns de la o masina inexistenta, astfel resursele sale vor
fi ocupate mai mult timp.

In acest caz - avem 2 posibilitati de evolutie -

1.In caz ca administratorul masinii victime a setat restrictii asupra
numarului de conexiuni "in asteptare" , nu se va intimpla nimic grav,
doar masina victima nu va putea prelucra cererile unor utilizatori care
vor sa acceseze legal resursele sale (si aceasta poate fi pana la urma
scopul atacatorului ! ).

2.Resursele vor fi consumate, pana la epuizare, urmatoarele cereri vor
fi prelucrate tot mai lent, pana la urma se poate ajunge ca toate
resursele sistemului sa fie aruncate in prelucrarea cererilor
atacatorului.

In final masina atacata va suferi un crash, sau va fi mult timp
indisponibila in retea, pana nu va prelucra toate cerereile trimise.

Al doilea tip al atacurilor D.o.S. remote - au loc datorita erorilor de
programare, altfel spus a bugurilor existente in software-le ce ruleaza
pe
masina atacata.

Aici avem :

- buguri la nivel de OS

- buguri la nivel de program/serviciu

In cazul bugurilor din programe - cel mai des sunt exploatate erorile
ce duc la "buffer overflow" - supraincarcarea bufferului acordat unui
program.

De exemplu, exista un oarecare program - care asteapta input-ul
utilizatorului, si il trimite intr-un fisier.
Programatorul care a creat-o , a alocat pentru buferul input-ului doar
65536 biti.
In continuare - e de ajuns ca atacatorul sa trimita programului un
input mai mare de 65536 biti, ca rezultat se produce un "buffer
overflow".
Cel mai ades atacatorul foloseste aceasta pentru a porni un shell -
interpretor de comenzi pe masina atacata.
Privilegiile cu care va rula interpretorul de comenzi dat, sunt acelea
ale programului vulnerabil la respectivul "buffer overflow".

Bugurile la nivel de OS sunt mai complicate:
Scopul atacatorului este ca kernelul, sau un modul al kernelului
sa nu poata prelucra o situatie critica aparuta, ca rezultat - apare un
fenomen numit "kernel panic" (panica a kernelului sistemului de operare
*nix) .
Consecinte - reboot imediat, indisponibilitatea sistemului in retea,
etc.

Cum vom lupta cu aceasta - in cazul primului tip de atac - SYN flood
putem folosi mecanismele implementate in sistemul de operare
(mecanismul tcp-syncookies implementat in Linux - compilarea kernelului
cu suport de tcp_syncookies si
echo "1" > /proc/sys/net/ipv4/tcp_syncookies la initierea
sistemului) , cresterea cozii de conexiuni aflate pe jumatete deschise
(aflate in starea SYN RECEIVED), precum si scaderea perioadei de
pastrare a conexiunilor in aceasta stare.

Altceva - limitarea resurselor alocat unui program server. Chiar si
limitarea cu o cifra mare, dar oricum limitarea.

Aflarea coordonatelor atacatorului in majoritatea cazurilor va fi
imposibila (sigur ca va folosi adrese ip false) .

Numarului celui de-al doilea tip de atac s poate reduce prin
updatarea regulata a soft-ului folosit, precum si
citirea/urmarirea regulata a
listelor de discutii, forumurilor avand ca tematica securitatea, pentru
a fi la curent cu toate vulenrabilitatile descoperite , si a fi cu un
pas
inaintea atacatorilor potentiali.

3. Local root attack.

Aceste atacuri sunt mult mai periculoase, deoarce rezultatul final este
obtinerea drepturilor super-utilizatorului , care poate face orice pe un
sistem Unix (in mod standard, nu luam in consideratie folosirea unor
patchuri gen grsecurity, rsbac, openwall), inclusiv stergerea unor
fisiere importante, compromiterea unei informatii confidentiale,
efectuarea altor atacuri de pe aceasta masina.

Acest tip de atac este cel mai des utilizat (si cea mai simpla metoda
de a obtine drepturi de supr-user pe un sistem Linux). De obicei
atacatorul capata drepturi locale pe sistem exploatand buguri in
daemonii de sistem, si apoi isi ridica privilegiile).

Avand acess local, o persoana poate gasi mult mai usor un program
vulnerabil.
In continuare - schema veche - "buffer overflow", daca programul are
bitul suid setat (aruncati o privire in /usr/bin, /bin, veti gasi o
multime acolo).
Unele programe ruleaza sub utilizatorul root, ele dupa specificul lor
au nevoie de access in diferite locuri ale sistemului.
Un astfel de program e un "cadou" unui cracker.

4. Remote root attack.

Algoritmul este asemanator cu cel al atacurilor D.o.S. directionate
catre un program vulnerabil, insa acum atacatorul trebuie sa actioneze
asupra unui program care ruleaza cu uid 0, sau are bitul sticky
setat.
Astfel atacatorul obtine un root shell de la distanta, ceea ce e foarte
periculos.


Si nu uitati, ca sistemul tinde sa devina mai vulnerabil cu timpul,
odata cu descoperirea unor vulnerabilitati noi, sau odata cu crearea
unor deficiente in securitate de catre admini sau useri incompetenti.
Autor: GRisha
Comentarii: 11

07.01.04 09:47LeeRoy
Felicitari pentru articol. Poate niste exemple clare la fiecare tip de atac nu ar strica.

07.01.04 15:38GRisha
Mersi.
Ma voi stradui sa-l completez pe parcurs.

08.01.06 10:21gr
TODO:
1. race condition attacks
2. syn flood, TCP RST, bogus ICMP
3. TCP desincronization and hijacking
4. Eavesdropping
5. man-in-the-middle attack
6. dns attacks (cache poisoning, etc)

02.04.06 13:55the warrior
chiar daca ataci cu succes, ramai deskperit pe toata durata atacului. orice calculator emite semnal si esti localizat rapid. Cum? Simplu! Se va folosi de propiul tau semnal. Daca aceste comenzi sunt ideeale de ce nu se folosesc pentru a intra in sun.com sau microsoft.com sau nasa.com?
doar daca utilizator ( victiva ) sa fie mult prea cretin sa se lasa haituit.
am luat legatura cu cei de la sun.com , au spus ca nu au nici o seansa si plus ca poate fi depistat cu multa usuritna si plus ca e o rutina...
am inercat pe un pc in retea si ghici? in timp de incercam sa iau comenziu pc -ului victima, pe lcd se vedea clar identitatea pc ului atacator.
Idiferent prin ce mod se ataca un pc, nu poti fi invizibil.

02.04.06 14:08the warrior
apropo! daca se foloseste pc fnatoma sau ataci alt pc printr-un pc deja "stricat", tot esti localizat.
deja se lucreaza la trecere la un nivel net superior de securizare.

02.04.06 14:11the warrior
scuze de scris. dar orice hacker poate sa incerce orice atac, chiar daca trimite pachete de date de scuritate false - tot nu merge.
:)

17.05.06 00:21gr
un articol despre prevenirea DDoS

http://linuxgazette.net/126/cherian.html

15.01.07 02:01Vayu
Nimeni nu e nebun sa cracuiasa de acasa direct, gaditi va ca exista ssh/proxy/socks totodata si cu banalul radmin/vnc se pot face multe.
Totidata nu uitati de diferenta dintra hacker/cracker.

13.07.07 05:46aangel69cj
Pls, am adresa ID calculatorului, cum as putea afla adresa la care ajunge factura de la calculatorul respectiv, sau un program care m-ar putea ajuta. raspund si la bip 0747615528

13.07.07 05:49aangel69
PLS, astept raspunsuri pe aangel69cj@yahoo.com MS

09.05.12 01:12eu
www.seenewmovies.com

Adauga Comentariu:
Nume:
E-mail:
Cometariu: