aladin
Administrator


Data inscrierii: 24/Oct/2010 Mesaje: 51 Localitate: ARAD |
|
o mica prezentare despre hacking |
|
O chestie pe care am scris-o mai demult si am gasit-o intamplator prin calculator; o pun aici in ideea ca poate o sa ii foloseasca vreodata cuiva la ceva ]
Este vorba in de seamă de suspendarea protectiei programelor pt calculator (cracking) si de castigarea accesului pe calculatoarele aflate intr-o retea de calculatoare (hacking).
1. Dezactivarea protectiei software
Companiile care vand softuri pt. calculator obisnuiesc sa distribuie
versiuni demonstrative ale programelor create de ei. Acestea sunt
protejate in diferite modalitati:
a. programul ruleaza de un numar de ori, dupa care nu mai
functioneaza
b. programul ruleaza pentru o perioada limitata de timp,
dupa care nu mai functioneaza
c. unele functii ale programului sunt dezactivate
d. programul functioneaza, doar ca din cand in cand utilizatorul
este intrerupt de un mesaj prin care i se cere sa inregistreze
programul
Exista, desigur, si alte metode de protejare a programelor. Au fost
enumerate aici doar cele mai importante. De asemenea, trebuie precizat
ca unele programe folosesc in mod combinat aceste metode de protectie
(ex.: pentru o perioada de timp programul ruleaza, utilizatorul fiind
bombardat cu mesaje prin care i se cere sa inregistreze programul (d);
dupa ce perioada a expirat (b), unele functii ale programului sunt
dezactivate (c);)
Atunci cand protectia programelor pt. calculator este realizata prin
instructiuni incorporate in program, protectia poate fi "sparta".
Pentru aceasta se urmeaza de obicei urmatorii pasi:
1. Programul este de obicei tradus din cod masina in limbajul
de programare cel mai primitiv (Assembler - limbajul in care au
fost construite celelalte limbaje de programare) - acest
procedeu se cheama dezasamblare sau decompilare
2. Sunt identificate instructiunile caracteristice protectiei
3. Se rescriu instructiunile respective, fiind inlocuite cu
instructiuni "inofensive", fara ca prin aceasta functionarea
restului programul respectiv sa fie perturbata
4. Programul este recompilat intr-o varianta care va functiona
fara protectie.
Exemplificare pe cazuri:
a. Un program care cuprinde tipul (a) de protectie include
de obicei un contor care inregistreaza fiecare rulare a programului;
este vorba de un sir de instructiuni care se executa la
pornirea programului, dupa modelul:
1. Afla de cate ori a fost rulat programul pana acum
2. Daca valoarea respectiva este mai mare de N (numarul
maxim de rulari permise) intrerupe executarea programului,
daca nu, continua executia
3. Mareste valoarea respectiva cu o unitate
4. Salveaza noua valoare intr-un fisier din calculator
observatie: instructiunea 4 este necesara pentru a memora valoarea
din contor; altfel, atunci cand programul ar fi oprit, valoarea
ar disparea din memoria calculatorului
"Spargerea" protectiei se poate face fie identificand fisierul in
care se memoreaza valoarea din contor, editandu-l din cand in cand
si schimband valoarea de acolo (fara a modifica, deci, propriu-zis
programul), fie dezactivand instructiunea 3, fie dezactivand
instructiunea 2, fie dezactivand instructiunea 4.
b. Programele de tip (b) cuprind instructiuni de protectie prin
care se acceseaza ceasul calculatorului, dupa modelul:
1. Citeste data curenta
2. Daca data curenta > data limita de functionare a
versiunii demonstrative a programului, intrerupe functionarea
programului, altfel continua executia
Schimbarea datei din calculator la o data anterioara sau dezactivarea
instructiunii 2 reprezinta o strategie de a continua utilizarea
programului.
c. In cazul in care partea de program prin care se executa
functiile dezactivate pur si necomplicat nu a fost inclusa in
varianta demonstrativa, nu se poate face nimic. Daca partea
respectiva a fost inclusa in program, acesta e posibil sa
cuprinda un set de instructiuni de forma:
1. Verifica daca programul a fost inregistrat
2. Daca da, activeaza functiile X,Y,Z, in caz contrar
nu le activa
Modificarea instructiunii 1 poate duce la activarea functiilor
dezactivate.
d. Programele de tip (d) cuprind, de obicei, instructiuni
de forma:
1. Creeaza o valoare aleatoare cuprinsa intre
min (valoarea minima) si max (valoarea maxima)
2. Verifica daca a trecut un interval de timp egal
cu valoarea aleatoare creata
3. In caz ca da, creeaza un mesaj prin care ii ceri
utilizatorului sa se inregistreze, iar daca nu reia
instructiunea 2
O modalitate de a "sparge" partial protectia ar fi aceea de
a modifica valorile pentru min si max, facandu-le foarte
mari, astfel incat mesajul suparator prin care se cere
inregistrarea sa apara mult mai rar. O alta procedura posibila
ar putea consta in dezactivarea instructiunii 3 sau a instructiunilor
2 si 3.
Dezactivarea unor instructiuni se realizeaza fie prin stergerea lor, fie prin
inlocuirea lor cu instructiuni inofensive. Uneori, intr-o alta parte a
programului exista secvente de verificare. Aceasta sunt de forma:
1. Verifica lungimea programului
2. Daca aceasta este mai mica de N (lungimea initiala a
programului) - de unde reiese ca unele instructiuni au
fost sterse, opreste executia programului, iar daca nu,
continua executia
Bineinteles ca si aceste secvente de verificare pot fi dezactivate.
Multe programe care sunt distribuite in versiuni demonstrative pot
fi inregistrare prin completarea unui cod de inregistrare. In acest
caz ele vor functiona la intreaga capacitate. "Spargerea" programului
poate consta, in cazul acestor programe in descoperirea codului de
inregistrare. Putem intalni doua situatii:
a. fie codurile prin care poate fi inregistrat programul
sunt pastrate undeva in interiorul programului
b. fie codurile sunt generate prin executarea unor
functii matematice (de pilda, codul de inregistrare ar
putea fi un numar compus din primele patru cifre ale
puterilor succesive ale numarului 1234: 1234, 1522, 1879 etc.)
observatie: uneori, atunci cand pentru inregistrare este nevoie
si de completarea unui nume de utilizator, este vorba de procedee
criptografice intermediul carora numarul de inregistrare este
de fapt numele utilizatorului codificat numeric potrivit unei
anumite chei de criptare
In cele două cazuri cel care "sparge" programul va identifica portiunea
de program care are legatura cu stocarea sau generarea codurilor de
inregistrare si va descoperi care sunt acestea, dupa care va rula programul
si il va inregistra ca si cand ar fi primit cheia de inregistrare de la
producator.
2. Castigarea accesului pe calculatoarele aflate in retea
Calculatoarele aflate in retea comunica intre ele pachete de informatii
ce sunt transmise intr-un anumit format, potrivit unor protocoale de
comunicatie. Protocolul cel mai utilizat, întrebuințat pentru comunicarea de
informatii prin intermediul retelei Internet, este TCP/IP (Transfer
Control Protocol / Internet Protocol). Modul de procedare este urmatorul:
- fiecare calculator este identificat in retea prin intermediul
unei adrese numerice unice care ii este alocata (o adresa
de forma: 192.12.168.77);
- pentru ca informatiile de pe calculatorul respectiv sa fie
disponibile in retea trebuie ca pe el sa ruleze programe care
preiau informatii de pe harddisk-ul calculatorului si le trimit,
eventual la cerere, catre interfata de retea;
- in functie de programele care ruleaza pe calculator, se considera
ca acesta ofera diverse servicii; acestor servicii li se aloca
porturi de comunicatie diferite, ca si cand, in mod virtual, fiecarui
tip de serviciu i s-ar aloca un cablu diferit pentru transmiterea
informatiilor;
- porturilor de comunicatie li se asociaza un cod numeric care se
ataseaza la adresa calculatorului; de pilda, atunci cand vedem
paginile de web aflate pe un calculator, putem face aceasta pentru ca
pe calculatorul respectiv exista un program, numit server de web
care deschide portul de comunicatie 80 si raspunde la cererile
pe care i le adreseaza browserul de web (Internet Explorer, de pilda)
care ruleaza pe calculatorul nostru;
- in spatele vizionarii unei pagini de pe site-ul www.microsoft.com,
sa spunem, se intampla urmatorul lucru: browserul de pe calculatorul
nostru se conecteaza la un calculator pe care sunt inregistrate
tabele de corespondenta intre adresa in litere (www.microsoft etc...)
a calculatorului din retea cu care dorim sa comunicam si adresa
numerica a acestuia (sa presupunem ca aceasta este 192.12.1.1.);
apoi browserul se conecteaza la calculatorul 192.12.1.1 pe portul
80 (adica se duce la adresa 192.12.1.1:80) si oferă mesajul prin
care cere ca un anumit fisier (care contine pagina pe care dorim
sa o vedem) sa fie trimis la adresa numerica alocata calculatorului
nostru; programul care ruleaza pe server preia cererea si o executa,
trimitand fisierul prin retea pe adresa calculatorului nostru; browserul
primeste informatia si o afiseaza pe ecran;
- exista servicii, diferite de cel prin care sunt vizionate paginile
de internet, care ne permit nu doar sa tranferam fisiere de pe un
calculator pe altul, ci chiar sa utilizam un alt calculator, prin
retea, ca si cand am fi in fata lui, sa rulam programe pe calculatorul
respectiv, sa vedem rezultatele pe calculatorul nostru s.a.m.d.;
un astfel de serviciu este telnet, conectarea facandu-se in acest caz
pe portul 23; ceea ce se intampla este ca, in loc sa trimita efectul
rularii programelor de pe calculatorul gazda catre monitor, serverul
de telnet care ruleaza pe acesta trimite rezultatul prin retea catre
calculatorul nostru, unde acesta este afisat pe monitorul nostru, iar
comenzile pe care le dam noi sunt preluate ca mesaje, transmise prin
retea, interpretate drept comenzi pe calculatorul gazda si executate
pe acesta;
- accesarea unor întocmai servicii se realizeaza dupa o verificare;
aceasta consta de obicei in completarea unui nume de utilizator si
a unei parole;
In mod uzual, informatiile aflate pe calculatoarele aflate in retea, se impart
in informatii publice (la care pot avea acces toti utilizatorii sistemului
respectiv) si informatii private (fiecare utilizator are acces doar la
informatiile private proprii, nu si la cele apartinand celorlalti utilizatori).
Conectarea la un serviciu de retea sub numele unui anumit utilizator nu permite
decat accesarea informatiilor private ale utilizatorului respectiv.
Un solitar utilizator, si anume administratorul sistemului, are in principiu
acces la toate informatiile aflate pe calculatorul respectiv.
Pentru a castiga accesul la informatiile de pe un calculator trebuie sa fie
depasite procedurile de verificare specifice fiecarui serviciu de comunicare
a informatiilor. Pasii urmati de catre un hacker sunt de regula urmatorii:
1. scanarea unui numar de calculatoare din retea (de exemplu,
de la 198.12.12.1 si pana la 198.12.12.225) - pentru aceasta
se folosesc programe specializate care apeleaza pe rand fiecare
adresa, incercand sa initieze diferite servicii de retea (verificand
daca o adresa este alocata si ce porturi sunt deschise pe calculatorul
de la adresa respectiva)
2. dupa gasirea unui calculator, sa presupunem ca este un calculator
care ofera serviciu de telnet, se initiaza procedura de verificare
in urma careia poate fi capatat accesul la serviciul respectiv; pentru
aceasta hackerul ruleaza un program care genereaza si trimite cu
viteza mare un numar urias de combinatii de nume de utilizator si
parole catre calculatorul respectiv, pana cand se gaseste o
combinatie valida - in acest clipă hacker-ul a castigat acces
in contul unui anumit utilizator;
3. dupa conectarea la calculatorul respectiv se pot urma mai multe
proceduri prin care sa fie castigat accesul de la nivel de administrator
de sistem; de pilda:
- hackerul transfera pe propriul calculator fisierele in care
se afla parolele utilizatorilor, inclusiv cea a administratorului
si incearca sa le decripteze
- hackerul copiaza pe calculatorul gazda un program care, odata
rulat, initiaza un serviciu pirat, astfel incat toate informatiile
vechiculate printr-un port de comunicatie ii sunt transmise si
lui, dupa care asteapta ca administratorul sa se conecteze la
serviciul respectiv pentru a-i citi parola
- hackerul ruleaza pe calculatorul gazda programe care, datorita
unor erori de programare ale sistemului de operare, ii ofera
"din greseala" probabilitatea de a-si schimba identitatea cu cea
a administratorului de sistem
etc.
4. odata castigat accesul la nivel de administrator de sistem, sunt
transferate prin retea informatiile dorite
5. la sfarsit sunt indepartate toate informatiile care ar putea trada
accesul unui intrus la calculator (de pilda: calculatorul inregistreaza
intr-un fisier toate accesele utilizatorilor la sistem, cu data si
ora accesului; daca hackerul a intrat pe calculator in excelență de
administrator, in acest fisier a fost creata o inregistrare care spune
ca administratorul a accesat calculatorul la ora respectiva;
administratorul real poate avea, bineinteles, acces la aceasta inregistrare,
asa ca hackerul sterge linia respectiva din fisier etc.)
Bineinteles, procedurile de operare sunt mai complicate, nefiind schitate
aici decat in linii generale.
|
|