AndreyNek
Moderator
Din: Undeva pe Terra
Inregistrat: acum 15 ani
Postari: 17443
|
|
[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 principal 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 simplu 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 format 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 ambele 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, folosit 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 diferite 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, 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 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 transmite 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 asemenea 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 singur 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 moment 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" posibilitatea 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 calitate 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.
_______________________________________
|
|