Analiza De Volume.docx

  • Uploaded by: Roxana Mihai
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Analiza De Volume.docx as PDF for free.

More details

  • Words: 14,255
  • Pages: 28
Loading documents preview...
1. Analiza de volume (DOS, Apple, BSD, GPT, RAID etc.), analiza sistemelor de fişiere (FAT32, NTFS, EXT2/3, UFS1/2); Analiza volumului presupune analizarea structurilor de date care sunt implicate cu partiționarea și asamblarea octeților în dispozitivele de stocare, astfel încât să obținem volume. Mijloacele de stocare digitale sunt organizate pentru a permite recuperarea eficientă a datelor. Cea mai obișnuită experiență cu un sistem de volum apare atunci când instalați Microsoft Windows și creați partiții de pe hard disk. Procesul de instalare ghidează utilizatorul prin procesul de crearea de partiții primare și logice, iar în final calculatorul are o listă de "unități" sau "volume" în care să stocați date. Un proces similar apare atunci când se instalează un sistem de operare UNIX și devine din ce în ce mai frecventă în medii de stocare mari ca software-ul de gestionare a volumului să aibă mai multe discuri ca și cum ar cuprinde un disc mare. În timpul unei investigații digitale, este comună achiziționarea unei imagini întregi a discului și importarea imaginii în instrumente de analiză. Multe instrumente digitale de investigare rupe automat imaginea discului în partiții, dar uneori au probleme. De exemplu, când partițiile de pe disc au fost șterse sau modificate suspectul sau instrumentul pur și simplu nu poate localiza o partiție. Procedurile din aceste capitole pot fi, de asemenea, utile atunci când se analizează sectoarele care nu sunt alocate unei partiții. Un volum este o colecție de sectoare adresabile pe care le poate utiliza un sistem de operare (OS) sau o aplicație pentru stocarea datelor. Sectoarele dintr-un volum nu trebuie să fie consecutive pe un dispozitiv fizic de stocare; în schimb, ei trebuie doar să dea impresia că sunt. Un hard disk este un exemplu de volum care se află în sectoare consecutive. Un volum poate fi, de asemenea, rezultatul asamblării și fuzionării de volume mai mici. Unul dintre conceptele dintr-un sistem de volum este de a crea partiții. O partiție este o colecție de sectoare consecutive într-un volum. Prin definiție, o partiție este de asemenea un volum, motiv pentru care termenii sunt frecvent confundați. Mă voi referi la volumul în care o partiție este localizată ca volum părinte al partiției. Partițiile sunt utilizate în multe scenarii, inclusiv:  unele sisteme de fișiere au o dimensiune maximă mai mică decât hard discurile.  Multe laptopuri folosesc o partiție specială pentru a stoca conținutul memoriei atunci când sistemul este pus în starea de repaus.  sistemele UNIX utilizează partiții diferite pentru directoare diferite pentru a minimiza impactul corupției sistemului de fișiere.  sisteme bazate pe IA32 care au mai multe sisteme de operare, cum ar fi Microsoft Windows și Linux, pot necesita partiții separate pentru fiecare sistem de operare. Consider a Microsoft Windows system with one hard disk. The hard disk volume is partitioned into three smaller volumes, and each has a file system. Windows assigns the names C, D, and E to each volume. We can see this in Figure 4.1.

Fiecare sistem de operare și platformă hardware utilizează în mod obișnuit o metodă de partiționare diferită.

Sistemele comune de partiții au una sau mai multe tabele, iar fiecare intrare de tabel descrie o partiție. Datele din intrare vor avea sectorul de pornire al partiției, sectorul de sfârșit al partiției (sau lungimea) și tipul de

partiție. Mai sus, figura arată un exemplu de tabel cu trei partiții. Scopul unui sistem de partiție este de a organiza dispunerea unui volum; prin urmare, singurele date esențiale sunt locația de pornire și de sfârșit pentru fiecare partiție. Un sistem de partiționare nu poate servi scopului său dacă aceste valori sunt corupte sau inexistente. Toate celelalte câmpuri, cum ar fi un tip și o descriere, nu sunt esențiale și ar putea fi false. În majoritatea cazurilor, primul și ultimul sector al unei partiții nu conține nimic care să le identifice ca sectoare de frontieră. Acest lucru este similar cu modul în care majoritatea liniilor de proprietate nu sunt marcate. Inspectorii și documentele sunt de obicei necesare pentru a identifica liniile de proprietate exacte, iar structurile de date de partiție sunt echivalente cu documentele de studiu. Când structurile sistemului de partiții lipsesc, limitele partițiilor pot fi uneori ghicite folosind cunoștințele despre ceea ce a fost stocat în interiorul partiției. Acest lucru este analog cu ghicirea limitelor de proprietate bazate pe peisaj. Un sistem de partiții depinde de sistemul de operare și nu de tipul de interfață de pe hard disk. Prin urmare, un sistem Windows utilizează același sistem de partiții, indiferent dacă discul utilizează o interfață atașament AT (ATA / IDE) sau o interfață de sisteme mici de computere (SCSI). DOS- partiția cea mai frecvent întîlnită. Partițiile DOS au fost utilizate cu hardware Intel IA32 (adică, i386 / x86) de mai mulți ani, însă nu există specificații oficiale. Există multe documente Microsoft și non-Microsoft care discută partițiile, dar nu există o referință standard Pe lângă faptul că nu există o referință standard, nu există nici un nume standard. Acum, Microsoft apelează la discuri care utilizează acest tip de discuri Master Boot Record (MBR). Aceasta este, în comparație cu discul GPT (GUID Partition Table) care se utilizează cu interfața firmă extensibilă (EFI) și cu sistemele Intel Itanium pe 64 de biți (IA64). Începând cu Windows 2000, Microsoft diferențiază de asemenea discurile de bază și cele dinamice. Un disc de bază se referă fie la un disc MBR, fie la un disc GPT, iar partițiile din disc sunt independente. Discurile dinamice, pot fi de asemenea discuri MBR sau GPT, iar partițiile pot fi combinate și îmbinate pentru a forma o singură partiție mare. Discurile de bază au fost, în mod tradițional, asociate cu partițiile DOS, probabil deoarece discurile GPT nu sunt încă la fel de comune. Partițiile DOS sunt utilizate cu Microsoft DOS, Microsoft Windows, Linux, IA32-based FreeBSD și sistemul OpenBSD. Partițiile DOS sunt cele mai comune, dar și cele mai complexe. Acestea au fost proiectate inițial în anii 1980 pentru sisteme mici și îmbunătățite pentru a gestiona sistemele moderne. De fapt, există două metode de partiționare diferite care sunt utilizate în acest sistem. Un disc care este organizat folosind partiții DOS are un MBR în primul sector de 512 octeți. MBR conține cod de boot, o tabelă de partiții și o valoare de semnătură. Codul de pornire conține instrucțiunile care îi spun computerului cum să proceseze tabela de partiții și să găsească sistemul de operare. Tabela de partiții are patru intrări, fiecare dintre acestea putând descrie o partiție DOS. Fiecare intrare are următoarele câmpuri: • de pornire a adresei CHS • de terminare a adresei CHS • de pornire a adresei LBA • Numărul de sectoare în partiție • Tipul de partiție •flag Fiecare intrare de tabel descrie aspectul unei partiții în ambele adrese CHS și LBA. CHS se adresează doar pentru discuri cu dimensiuni mai mici de 8 GB, dar adresele LBA permit discurilor să fie terabytes (TB) în mărime. Câmpul de tip din partiție identifică ce tip de date ar trebui să existe în partiție. Printre exemplele frecvente se numără FAT, NTFS și FreeBSD. Următoarea secțiune conține o listă mai cuprinzătoare a tipurilor de partiții. Valoarea tipului este utilizată diferit de diferite sisteme de operare. Linux, de exemplu, nu-i pasă de asta. Puteți pune un sistem de fișiere FAT în interiorul unei partiții care are un tip de NTFS și o va monta ca FAT. Microsoft Windows, pe de altă parte, se bazează pe ea. Windows nu va încerca să monteze un sistem de fișiere într-o partiție dacă nu suportă tipul de partiție. Prin urmare, dacă un disc are un sistem de fișiere FAT în interiorul unei partiții cu un tip de sistem de fișiere Linux, utilizatorul nu va vedea sistemul de fișiere FAT din Windows. Acest comportament poate fi folosit pentru a ascunde partițiile din Windows. De exemplu, unele instrumente vor adăuga un pic la un tip de partiție pe care Windows îl acceptă, astfel încât să nu se afișeze când Windows pornește din nou.

Fiecare intrare conține, de asemenea, un câmp de semnătură care identifică partiția care este "bootabilă". Acest lucru este folosit pentru a identifica locul în care sistemul de operare este localizat atunci când computerul pornește. Folosind cele patru intrări din MBR, putem descrie un aspect simplu al discului cu până la patru partiții. Figura 5.1 prezintă un astfel de disc simplu cu două partiții și MBR în primul sector.

MBR este o metodă simplă ce descrie până la patru partiții. Cu toate acestea, multe sisteme necesită mai multe partiții decât acestea. De exemplu, luați în considerare un disc de 12 GB pe care utilizatorul dorește să îl împartă în șase partiții de 2 GB, deoarece utilizează mai multe sisteme de operare. Nu putem descrie cele șase partiții utilizând cele patru intrări de tabele de partiții. Soluția la această problemă de proiectare este ceea ce face ca partițiile DOS să fie atât de complexe. Teoria de bază a soluției este de a folosi una, două sau trei intrări în MBR pentru partiții normale și apoi a crea o "partiție extinsă" care va umple restul discului. Înainte de a merge mai departe, unele definiții pot fi de ajutor. O partiție de sistem de fișiere primară este o partiție a cărei intrare se află în MBR, iar partiția conține un sistem de fișiere sau alte date structurate. O partiție extensie primară este o partiție a cărei intrare este în MBR, iar partiția conține partiții suplimentare. Putem vedea acest lucru în Figura 5.2, care are trei partiții principale de sistem de fișiere și una primară.

În MBR, există o partiție centrală care a descris mai multe partiții. Aici vedem o listă legată de partiții. Teoria de bază este că vom preceda fiecare partiție de sistem de fișiere cu date care descriu cât de mare este partiția sistemului de fișiere și unde găsim următoarea partiție. Toate aceste partiții ar trebui să fie amplasate în interiorul partiției principale extinse, motiv pentru care trebuie să fie cât mai mare posibil. O partiție secundară a sistemului de fișiere, denumită și o partiție logică în Windows, este localizată în limitele principale ale partițiilor extinse și conține un sistem de fișiere sau alte date structurate. Partițiile secundare ale sistemului de fișiere sunt echivalente cu partițiile care sunt descrise în MBR cu excepția faptului că se află într-o partiție extinsă. O partiție secundară extinsă este o partiție care conține o tabelă de partiții și o partiție secundară a sistemului de fișiere. Partițiile secundare extinse se înfășoară în jurul partițiilor sistemului secundar de fișiere și descriu unde este localizată partiția secundară a sistemului de fișiere și unde se află următoarea secțiune extinsă secundară extinsă. Figura 5.3 prezintă un exemplu de funcționare a partițiilor secundare. Secundar extins # 1 conține o tabelă de partiții care indică sistemul secundar de fișiere # 1 și secundar extins # 2. Secondary Extended # 2 conține o tabelă de partiții care indică sistemul secundar de fișiere # 2. De asemenea, ar putea indica o altă partiție extinsă secundară, iar acest proces se poate repeta până la nu avem spațiu pe disc.

Codul de pornire într-un disc DOS există în primii 446 octeți ai primului sector de 512 octeți, care este MBR. Sfârșitul sectorului conține tabela de partiții. Codul standard de boot Microsoft prelucrează tabela de partiții în MBR și identifică ce partiție are setul de pavilion bootabil. Atunci când găsește o astfel de partiție, aceasta arată în primul sector al partiției și execută codul găsit acolo. Codul de la începutul partiției va fi specific sistemului de operare. Se introduc virușii din sectorul boot în primii 446 octeți ai MBR, astfel încât aceștia să fie executați de fiecare dată când computerul este pornit. Este din ce în ce mai des întâlnită existența mai multor sisteme de operare pe un computer. Există două moduri de a trata acest lucru. Windows gestionează acest lucru prin faptul că are un cod în partiția bootabilă, care permite unui utilizator să selecteze ce sistem de operare să încarce. Cu alte cuvinte, codul de boot din MBR se execută mai întâi și încarcă codul de boot Windows. Codul de boot Windows permite unui utilizator să aleagă o altă partiție din care să pornească. Cealaltă metodă este de a schimba codul în MBR. Noul cod MBR prezintă utilizatorului o listă de opțiuni, iar utilizatorul alege ce partiție să booteze. Acest lucru necesită de obicei mai mult cod și utilizează unele dintre sectoarele neutilizate care există înainte de începerea primei partiții. Sistemul de partiții DOS este complex deoarece fiecare tabelă de partiții are doar patru intrări în acesta. Alte sisteme de partiții discutate mai târziu în acest capitol și în celelalte au tabele de partiții mai mari și, prin urmare, sunt mai puțin complexe. Următorii pași de nivel înalt sunt necesari pentru a lista informațiile despre aspectul unui disc cu partiții DOS: 1. Înregistrarea Master Boot este citită din primul sector al discului, iar cele patru intrări de tabele de partiții sunt identificate și procesate. 2. Când se procesează o intrare pentru o partiție extinsă, se citește primul sector al partiției extinse, iar intrările din tabelele de partiție sunt prelucrate în același mod ca MBR. 3. Când este procesată o intrare pentru o partiție non-extinsă, se afișează sectorul de pornire și mărimea acesteia. Adresa sectorului final poate fi determinată prin adăugarea adresei sectorului de pornire și a dimensiunii împreună și scăderea acesteia. Tabelele de partiții DOS există în MBR și în primul sector al fiecărei partiții extinse. În mod convenabil, toate utilizează aceeași structură de 512 octeți. Primii 446 octeți sunt rezervați pentru codul de boot de asamblare. Codul trebuie să existe în MBR deoarece este utilizat când computerul este pornit, dar partițiile extinse nu au nevoie de el și ar putea conține date ascunse. Formatul MBR în formă tabelară poate fi găsit în Tabelul 5.1.

Tabelul de partiții are patru intrări de 16 octeți. Structurile intrărilor sunt date în Tabelul 5.2. Rețineți că adresele CHS sunt esențiale pentru sistemele mai vechi care se bazează pe ele, dar nu sunt esențiale pentru sistemele mai noi.

Partițiile bazate pe DOS sunt cele mai frecvente pentru investigațiile curente ale computerului. Din nefericire, ele sunt, de asemenea, cele mai complexe pentru a înțelege, deoarece acestea nu au fost inițial concepute pentru mărimea sistemelor moderne. Din fericire, există instrumente pentru a lista cu ușurință aspectul discului și a extrage spațiul neutilizat. Multe sisteme UNIX care rulează pe platforme compatibile cu IA32 utilizează partiții DOS în plus față de propriile sisteme de partiții. Prin urmare, fiecare investigator are nevoie de o înțelegere solidă a partițiilor DOS. Partiții APPLE

Sistemele care rulează sistemul de operare Apple Macintosh nu sunt la fel de comune ca cele care rulează Microsoft Windows, dar au crescut în popularitate odată cu introducerea sistemului de operare Mac OS X, un sistem de operare bazat pe UNIX. Partițiile pe care le vom descrie aici pot fi găsite în cele mai recente laptopuri și desktop-uri Apple care rulează OS X, sisteme mai vechi care rulează Macintosh 9 și chiar dispozitivele iPod portabile care redă audio MP3. De asemenea, hărțile de partiții pot fi utilizate în fișierele imagine pe disc pe care un sistem Macintosh le utilizează pentru a transmite fișiere. Fișierul imagine este similar cu un fișier zip în Windows sau un fișier tar în Unix. Fișierele din imaginea discului sunt stocate într-un sistem de fișiere, iar sistemul de fișiere poate fi într-o partiție. Designul sistemului de partiționare într-un sistem Apple este un echilibru frumos între complexitatea partițiilor bazate pe DOS și numărul limitat de partiții pe care le vom vedea în etichetele discurilor BSD. Partiția Apple poate descrie orice număr de partiții, iar structurile de date sunt în sectoare consecutive ale discului. Această secțiune va oferi o imagine de ansamblu a partițiilor Apple, detaliile structurilor de date și va discuta cum să vizualizați detaliile. Partițiile Apple sunt descrise în structura hărții de partiții, care se află la începutul discului. Firmware-ul conține codul care procesează această structură, astfel că harta nu conține codul de boot așa cum am văzut în tabela de partiții DOS. Fiecare intrare din harta de partiții descrie sectorul de pornire al partiției, mărimea, tipul și numele volumului. Structura de date conține, de asemenea, valori despre datele din interiorul partiției, cum ar fi locația zonei de date și localizarea oricărui cod de boot. Prima intrare în harta partițiilor este, de obicei, o intrare pentru ea însăși și arată dimensiunea maximă a hărții de partiții. Apple creează partiții pentru stocarea driverelor hardware, astfel încât discul principal pentru un sistem Apple are mai multe partiții care conțin drivere și alte tipuri de conținut non-file. Figura 5.9 prezintă un exemplu de dispunere a unui disc Apple cu trei partiții de sistem de fișiere și partiția pentru harta partițiilor.

Chiar dacă Mac OS X se bazează pe un nucleu BSD, utilizează o hartă a partițiilor Apple și nu o etichetă de disc. Harta partițiilor Apple conține mai multe structuri de date de 512 octeți și fiecare partiție utilizează o structură de date. Harta de partiții începe în al doilea sector al discului și continuă până când toate partițiile au fost descrise. Structurile de date de partiție sunt prezentate în sectoare consecutive, iar fiecare intrare a hărții are o valoare pentru numărul total de partiții. Structura de date de 512 octeți este prezentată în Tabelul 5.7.

Pentru a identifica partițiile dintr-un disc Apple, un instrument (sau o persoană) citește structura de date din cel de-al doilea sector. Se procesează pentru a afla numărul total de partiții, iar apoi se colectează celelalte

informații de partiție din acesta. Prima intrare este, de obicei, intrarea pentru hărțile partiției în sine. Următorul sector este apoi citit și procesul continuă până când toate partițiile au fost citite. Computerele Apple folosesc procesoarele Motorola PowerPC și, prin urmare, stochează datele în comenzi big-endian. Ca rezultat, nu va trebui să inversăm ordinea numerelor, așa cum am făcut-o cu partițiile DOS. Vom vedea valoarea semnăturii 0x504d în octeți 0 la 1 și numărul de partiții în octeți 4 la 7, adică 10 (0x0000000a). Bytes de la 8 la 11 ne arată că primul sector al discului este sectorul de pornire pentru această partiție și că dimensiunea acesteia este de 63 de sectoare (0x3f). Numele partiției este "Apple", iar tipul de partiție este "Apple_partition_map". Bytes de la 88 până la 91 arată că nu sunt setate steaguri pentru această partiție. Restul de intrări în harta partițiilor care nu sunt pentru hărțile de partiții au valoarea de setare a stării. Puteți vizualiza o hartă a partițiilor Apple cu mmls în The Sleuth Kit. Comanda fdisk din Linux nu va afișa conținutul unei hărți de partiții. Iată rezultatele de la rularea mmls pe un laptop iBook de 20 GB:

În această ieșire, intrările sunt sortate după sectorul de pornire, iar a doua coloană arată în ce înregistrare în harta partiției a fost descrisă partiția. În acest caz, intrările au fost deja sortate. Putem vedea în intrarea 12 că Apple raportează sectoarele care nu sunt alocate în prezent. Intrările 0, 2 și 3 au fost adăugate prin mmls pentru a arăta ce spațiu folosește harta partițiilor și ce sectoare sunt libere. Driverele enumerate aici sunt utilizate de sistem atunci când este boots. Un instrument alternativ care poate fi utilizat pe o imagine de disc brut este instrumentul pdisk cu pavilion -dump pe OS X:

Singura caracteristică unică a partițiilor Apple este aceea că există mai multe câmpuri neutilizate în structura de date care ar putea fi folosite pentru a ascunde cantități mici de date. De asemenea, datele ar putea fi ascunse în sectoarele dintre ultima structură de date a partițiilor și sfârșitul spațiului alocat hărții 84 de partiții. Ca în cazul oricărei scheme de partiționare, orice ar putea fi în partițiile care au un nume oficial sau care pretind că au un anumit tip. Harta partițiilor Apple este o structură destul de simplă și este ușor de înțeles. Structurile de date sunt toate localizate într-un singur loc, iar numărul maxim de partiții se bazează pe modul în care discul a fost inițial împărțit. Instrumentul mmls ne permite să identificăm cu ușurință unde sunt localizate partițiile dacă folosim un sistem non-Apple, iar instrumentul pdisk poate fi utilizat într-un sistem OS X.

Partiții BSD Devine tot mai des întâlnită investigarea pe calculator a serverelor BSD UNIX, cum ar fi FreeBSD, OpenBSD și NetBSD. Aceste sisteme utilizează propriul sistem de partiționare, iar această secțiune va arăta detaliile structurilor sale. Este mai frecvent întâlnirea cu un sistem Linux în timpul unei investigații, dar Linux folosește numai partițiile bazate pe DOS și nu are structuri de date speciale. Multe sisteme BSD utilizează hardware bazat pe IA32 (adică, x86 / i386) și au fost concepute astfel încât să poată exista pe același disc ca și produsele Microsoft. Prin urmare, acestea se bazează pe partițiile DOS descrise în capitolul precedent. Un sistem BSD care rulează pe hardware non-IA32 probabil nu utilizează partițiile DOS și acestea nu sunt acoperite în această carte. Un concept important de inteles inainte de a incepe este acela ca atunci cand ruleaza un sistem de operare, acesta poate alege la ce partitii va da accesul utilizatorului. După cum se va arăta, sistemul de operare FreeBSD utilizează atât sistemele de partiții DOS, cât și BSD, dar OpenBSD și NetBSD utilizează numai sistemul de partiționare BSD. O înțelegere de bază a partițiilor DOS este necesară pentru această secțiune. Sistemul de partiții BSD este mai simplu decât partițiile DOS, dar este mai limitat decât harta de partiții Apple. Există un singur sector care conține datele necesare și este localizat într-o partiție DOS, așa cum se arată în Figura 6.1. Se află în interiorul unei partiții DOS, astfel încât sistemul poate avea și Windows pe același disc și oferă utilizatorului posibilitatea de a alege ce sistem de operare să se încarce. Tabelul de partiții DOS va avea o intrare pentru o partiție cu un FreeBSD, OpenBSD sau NetBSD tip-0xa5, 0xa6 și, respectiv, 0xa9. Partiția BSD va fi una dintre partițiile primare DOS.

Structura centrală a datelor este eticheta discului. Este de cel puțin 276 octeți și este situat în cel de-al doilea sector al partiției BSD. Pentru unele sisteme non-IA32, aceasta poate fi în primul sector și are un offset. FreeBSD, OpenBSD și NetBSD utilizează aceeași structură, dar implementarea este ușor diferită. Prin urmare, teoria generală va fi descrisă aici, iar detaliile specifice sunt prezentate în secțiunile următoare. Structura etichetei de disc conține specificațiile hardware ale discului și o tabelă de partiții pentru opt sau șaisprezece partiții BSD. Spre deosebire de partițiile Apple, tabela de partiții este o dimensiune fixă și, spre deosebire de partițiile DOS, există doar un singur tabel de partiții. Fiecare intrare din tabela de partiții BSD are următoarele câmpuri: • Sectorul de pornire al partiției BSD • Dimensiunea partiției BSD • Tip de partiție • Dimensiunea fragmentului sistemului de fișiere UFS • Numărul de fragmente ale sistemului de fișiere UFS pe bloc • Numărul de cilindri pe grupul cilindrilor UFS Adresa sectorului de pornire este dată în raport cu începutul discului, și nu cu adresa Disc sau partiție DOS. Câmpul pentru tipul de partiție identifică tipul de sistem de fișiere care ar trebui să fie în partiția BSD, cum ar fi UFS, spațiul de swap, FAT și neutilizate. Ultimele trei valori sunt utilizate numai atunci când partiția conține un sistem de fișiere UFS. Teoria de bază a partițiilor BSD este simplă. Se citește o structură și lista cu partiții poate fi ușor procesată. Provocarea unui investigator, totuși, este să știm la ce partiții a accesat utilizatorul. De exemplu, dacă a fost un sistem de boot dual, investigatorul trebuie să știe dacă utilizatorul a avut acces la partiția Windows, precum și la partițiile BSD. FreeBSD se ocupă de acest lucru diferit de OpenBSD și NetBSD. FreeBSD oferă utilizatorului acces la toate partițiile DOS și BSD de pe disc. FreeBSD folosește termenul "slice" pentru a se referi la fiecare partiție DOS și utilizează termenul "partiție" pentru a se referi la partițiile BSD. Prin urmare, dacă un sistem are Windows și FreeBSD instalat pe acesta, utilizatorul ar avea acces la secțiunile Windows atunci când rulează FreeBSD. Structura etichetei de disc din FreeBSD este utilizată pentru a

organiza sectoarele numai în partiția FreeBSD DOS. Acest lucru poate părea evident, dar este unul dintre modurile în care implementarea OpenBSD este diferită de implementarea FreeBSD. Dacă ne referim la Figura 6.2, eticheta disc descrie trei partiții în interiorul partiției DOS de tip FreeBSD, dar nu are nevoie să descrie partiția de tip NTFS.

FreeBSD, ca și alte arome UNIX, atribuie un fișier de dispozitiv special pentru fiecare partiție și felie. Fișierul este denumit în funcție de numărul partiției DOS și de numărul partiției BSD. Numele de bază pentru discul ATA primar este / dev / ad0. Fiecare felie, denumită și o partiție DOS, adaugă litera "s" și numărul de slice la numele de bază. De exemplu, prima slice este / dev / ad0s1, iar a doua parte este / dev / ad0s2. Orice felie care are un tip de partiție FreeBSD este procesată pentru structura etichetei discului. Partițiile din felie sunt date cu litere bazate pe intrările lor în tabela de partiții a etichetelor de disc. De exemplu, dacă cea de-a doua partiție DOS a fost FreeBSD, prima partiție BSD ar fi / dev / ad0s2a, iar cea de-a doua partiție BSD ar fi / dev / ad0s2b. Un al doilea set de dispozitive care nu include numărul de felie poate fi, de asemenea, realizat pentru partițiile BSD. De exemplu, / dev / ad0a ar fi o scurtătură pentru partiția / dev / ad0s2a dacă partiția FreeBSD a fost partiția DOS 2. Unele dintre partițiile BSD au un înțeles special. Partiția "a" este de obicei pentru partiția rădăcină, unde se află codul de boot. Partiția "b" este de obicei pentru spațiul de swap al sistemului, partiția "c" este de obicei pentru întreaga felie, iar partițiile care încep de la 'd' pot fi orice. Termenul "de obicei" este folosit pentru că acesta este modul în care multe dintre instrumentele de partiționare BSD vor crea partițiile, dar orice utilizator poate edita tabela de partiții de discuri cu un editor hex și modifica intrările. În concluzie, un sistem FreeBSD oferă acces la toate partițiile DOS și partițiile BSD. Un investigator trebuie să analizeze fiecare dintre partițiile DOS și partițiile BSD din eticheta discului pentru a analiza complet sistemul. OpenBSD și NetBSD dau utilizatorului acces doar la intrările din structura etichetei discului BSD. Spre deosebire de eticheta discului FreeBSD, structura etichetei de disc OpenBSD și NetBSD poate descrie partițiile oriunde pe disc. Cu alte cuvinte, eticheta de disc poate descrie partiții care se află în afara limitelor partiției DOS în care este localizată. Pentru restul acestui capitol, mă voi referi doar la OpenBSD, dar cu adevărat mă refer atât la OpenBSD, cât și la NetBSD. Codul OpenBSD sa desprins de codul NetBSD cu mulți ani în urmă. După încărcarea kernelului OpenBSD, partițiile DOS sunt ignorate. Partițiile DOS sunt utilizate numai pentru a găsi începutul partiției OpenBSD. Prin urmare, dacă un sistem are Windows și OpenBSD pe acesta și utilizatorii au acces la o partiție FAT din OpenBSD, partiția FAT ar fi atât în tabela de partiții DOS, cât și în eticheta discului BSD. Putem vedea acest lucru în Figura 6.3 unde avem aceleași partiții DOS ca în Figura 6.2. În acest caz, totuși, trebuie să avem o intrare suplimentară în eticheta discului, astfel încât să putem accesa partiția DOS tip DOS.

OpenBSD utilizează nume de fișiere similare cu cele utilizate de FreeBSD pentru dispozitivele de partiționare. Numele de bază pentru dispozitivul ATA principal este / dev / wd0. Nu există nicio noțiune de felii, iar partițiile BSD sunt numite cu litere. Prin urmare, prima partiție BSD este / dev / wd0a, iar a doua este / dev / wd0b. Ca și FreeBSD, prima partiție este de obicei pentru partiția rădăcină, iar a doua partiție este pentru spațiul de swap. A treia partiție, / dev / wd0c în exemplul nostru, este dispozitivul pentru întregul disc. Amintiți-vă că cea de-a treia partiție pentru FreeBSD a fost doar pentru partiția slice sau DOS. În concluzie, un

sistem OpenBSD oferă acces doar la partițiile descrise în eticheta discului OpenBSD. O analiză a unui sistem OpenBSD ar trebui să se concentreze asupra partițiilor care sunt enumerate în eticheta discului. Fiecare partiție BSD din structura discului de disc are un câmp de tip, dar nu este aplicată. Este de fapt impusă mai puțin cu sistemele BSD decât cu Microsoft Windows, deoarece Windows folosește câmpul de tip pentru a determina dacă partiția ar trebui să primească o literă de unitate sau nu. Cu un sistem BSD, este creat un dispozitiv pentru fiecare intrare pe disc, astfel încât partițiile să poată fi montate ca orice tip. Prin urmare, verificați dacă partiția nu are un sistem de fișiere cunoscut, chiar dacă tipul îl identifică ca un vechi format UNIX, deoarece ar putea fi de fapt un sistem de fișiere obișnuit, cum ar fi FAT. Structura etichetei de disc este de cel mult 404 octeți. Pentru etichetele de disc cu numai opt intrări în ele, structura etichetei de disc este de numai 276 de octeți. Prin urmare, restul sectorului de 512 de octeți poate fi folosit pentru a ascunde datele, deși nu este o mulțime. Dacă tabela de partiții DOS este coruptă și locația partiției tip BSD nu poate fi determinată, poate fi efectuată o căutare pentru valoarea semnătură 0x82564557. Valoarea semnăturii ar trebui să existe la octetul 0 și octetul 132 al structurii etichetei discului. Cu un sistem FreeBSD, rețineți că utilizatorul a avut acces atât la partițiile DOS, cât și la partițiile BSD. Prin urmare, ancheta trebuie să includă analiza tuturor partițiilor DOS și a partițiilor BSD. Rețineți că este posibil ca sistemul să nu aibă suport pentru NTFS, astfel că utilizatorul nu ar fi putut să monteze o partiție NTFS dacă există.

Partițiile BSD sunt descrise într-o structură simplă a etichetei discului. O dificultate pentru un investigator este identificarea tuturor datelor pe care utilizatorul a avut acces la sistemul suspect. Sistemele BSD sunt frecvent utilizate ca servere și sunt implicate în investigații penale și corporative. O înțelegere aprofundată a partițiilor BSD va oferi investigații mai cuprinzătoare. Partiții GPT-Sistemele cu procesoare Intel Itanium pe 64 de biți (IA64) nu au un sistem BIOS cum ar fi sistemele IA32. În schimb, au o interfață extensibilă de firmware (EFI). EFI este, de asemenea, utilizat de platforme non-Intel, cum ar fi sistemele SunSparc. EFI utilizează un sistem de partiții numit Tabelul de partiții GUID (GPT) care poate suporta până la 128 de partiții și utilizează adrese LBA pe 64 de biți. Copiile de rezervă ale structurilor importante de date sunt menținute în caz de eșec. La momentul acestei scrieri, discurile GPT se găsesc în servere de vârf și nu în sisteme desktop tipice. Un disc GPT are cinci domenii majore, așa cum se arată în figura 6.7. Prima zonă este MBR de protecție și pornește în primul sector al discului și conține o tabelă de partiție DOS cu o singură intrare. Intrarea unică este pentru o partiție cu un tip de 0xEE care se întinde pe întregul disc. Această partiție există astfel încât computerele vechi să poată recunoaște discul ca fiind utilizat și să nu încerce să îl formateze. De fapt, EFI nu folosește partiția.

A doua parte a discului GPT începe în sectorul 1 și conține antetul GPT. Antetul definește dimensiunea și locația tabelei de partiții, care sunt fixate atunci când este creat discul GPT. Windows limitează numărul de intrări în tabela de partiții la 128 [Microsoft 2004]. Antetul conține, de asemenea, o sumă de control a antetului și a tabelei de partiții, astfel încât erorile sau modificările să poată fi detectate. A treia secțiune conține tabela de partiții. Fiecare intrare din tabela de partiții conține o adresă de start și de sfârșit, o valoare de tip, un nume, un flag atribut și o valoare GUID. GUID-ul pe 128 biți trebuie să fie unic pentru acel sistem și este setat atunci când tabela de partiții este creată. A patra secțiune a discului este zona de partiție. Zona de partiție este cea mai mare zonă și conține sectoarele care vor fi alocate partițiilor. Sectoarele de început și de sfârșit pentru această zonă sunt definite în antetul GPT. Secțiunea finală a discului

conține o copie de rezervă a antetului și tabelei de partiții GPT. Acesta este situat în sectorul urmând zona de partiție. Prima zonă a unui disc GPT utilizează o tabelă de partiție standard DOS, pe care am examinat-o anterior. Un disc GPT are o tabelă de partiții DOS cu o intrare care se întinde pe întregul disc. Un exemplu este prezentat aici:

În urma tabelului de partiții DOS, sectorul 1 conține antetul GPT. Antetul GPT descrie aspectul discului. Structura sa de date este dată în Tabelul 6.16.

Utilizând aceste valori, putem determina aspectul discului, inclusiv locațiile tabelei de partiții, a zonei de partiție și a copiilor de rezervă ale antetului GPT și ale tabelei de partiții. Un instrument alternativ care poate fi utilizat pe o imagine de disc brut este instrumentul pdisk cu pavilion dump pe OS X:

Putem vedea valoarea semnăturii în primele 8 octeți și octeții 12 până la 15 ne arată că dimensiunea antetului GPT este de 96 octeți (0x5c). Octetele 32 până la 39 arată că copia de rezervă a antetului este situată în sectorul 120,103,199 (0x0728a1af). Rețineți că acesta este același sector pe care l-am văzut ca ultimul sector al partiției de protecție DOS. Byte 40 la 47 arată că zona de partiție începe în sectorul 34 (0x22) și se termină în sectorul 120,103,166 (0x0728a0fe). Byte 72 la 79 arată că tabela de partiții începe în sectorul 2, iar octeții 80 până la 83 arată că există 128 de intrări în tabel (0x80) 108. Byte 84 la 87 arată că fiecare intrare este de 128 (0x80) octeți, ceea ce înseamnă că sunt necesare 32 de sectoare. Folosind informațiile din antetul GPT, putem găsi începutul și sfârșitul tabelei de partiții și mărimea fiecărei intrări. Fiecare intrare de tabel are câmpurile din Tabelul 6.17.

Valoarea tipului de 128 biți identifică conținutul partiției. Cu un disc GPT, partițiile sunt utilizate pentru a ține atât informațiile despre sistem, cât și sistemele de fișiere. De exemplu, fiecare computer care utilizează EFI trebuie să aibă o partiție de sistem EFI care conține fișierele necesare pentru a porni hardware-ul și softwareul sistemului. Furnizorii atribuie valorile tipului; din păcate, în prezent nu există o listă centrală de valori care sunt utilizate. Specificația Intel definește tipurile de partiții date în Tabelul 6.18.

Microsoft a definit unele dintre valorile de tip pe care le utilizează și acestea sunt date în Tabelul 6.19.

Windows utilizează o "Partiție rezervată" pentru a stoca fișiere și date temporare. O "partiție primară" este o partiție de bază și un sistem de fișiere este amplasat în interiorul acesteia. Partițiile primare sunt similare cu partițiile primare pe care le-am văzut cu partițiile DOS. "LDM Metadata Partition" și "LDM Data Partition" sunt utilizate pentru discurile dinamice Microsoft, care sunt descrise în următorul capitol. Discurile dinamice sunt utilizate pentru a îmbina datele din mai multe discuri într-un singur volum. Câmpul de atribut pe 64 de biți este împărțit în trei părți. Cel mai mic bit este setat la 1 atunci când sistemul nu poate funcționa fără această partiție. Aceasta este utilizată pentru a determina dacă un utilizator are permisiunea de a șterge o partiție. Bitile de la 1 la 47 sunt nedefinite, iar biții 48-63 pot stoca toate datele pe care tipul de partiție le dorește. Fiecare tip de partiție poate folosi aceste valori așa cum le place.

Linia de sus este octeți de la 0 la 15 și vedem tipul de partiție GUID și GUID-ul partiției este dat pe a doua linie în bytes 16 la 31. Adresa de pornire a partiției este în octeți 32-39 și vedem că ea este sectorul 32 (0x0022). Adresa de încheiere a partiției este dată în bytes 40 - 47 și este de 4.096.000 (0x003E8000). Putem vedea output-ul de rulare mmls pe această imagine aici:

La sfârșitul discului sunt copiile de rezervă ale antetului GPT și ale tabelei de partiții. Ele sunt în ordine inversă: antetul GPT este în ultimul sector, iar tabela de partiții este înaintea acestuia. În imaginea exemplului nostru, antetul GPT de rezervă se află în sectorul 120.103.199. Linux poate fi folosit pentru a descompune un disc GPT în partiții, astfel încât să poată fi utilizate alte instrumente de analiză a sistemului de fișiere. De asemenea, Kitul Sleuth acceptă partiții GPT dacă trebuie să rupeți discul. Discurile GPT au o copie de siguranță a tabelei de partiții, astfel încât datele pot fi recuperate mai ușor dacă tabela originală devine coruptă. Porțiunile neutilizate din sectorul 0, sectorul 1 și din toate intrările de partiții neutilizate ar putea fi utilizate pentru a ascunde datele. De la scrierea acestei cărți, partițiile GPT nu sunt întâlnite frecvent în timpul anchetelor și nu le susțin toate instrumentele de analiză criminalistică. În viitor, acest lucru nu va fi cu siguranță cazul, deoarece mai multe sisteme folosesc hardware pe 64 de biți. Partițiile GPT sunt mult mai flexibile și mai simple decât partițiile DOS RAID RAID-ul reprezintă o serie de arhitecturi reduse de discuri necostisitoare și este utilizat în mod obișnuit în sistemele de performanță ridicată sau în sistemele critice. RAID a fost propus pentru prima dată la sfârșitul anilor 1980 ca o metodă de utilizare a unor discuri ieftine pentru a atinge performanțe și capacități de stocare

similare discurilor scumpe de înaltă performanță. Teoria principală din spatele RAID este de a folosi mai multe discuri în loc de unul pentru a oferi redundanță și pentru a îmbunătăți performanța discului. Un controler de hardware sau un driver de software îmbină mai multe discuri împreună, iar calculatorul vede un singur volum mare. RAID-ul se găsește numai în servere de vârf, dar acum devine tot mai frecvent pe sistemele desktop. Microsoft Windows NT, 2000 și XP au opțiunea de a oferi utilizatorului un anumit nivel de RAID. În această secțiune, vom descrie mai întâi tehnologia implicată cu sistemele RAID și apoi vom discuta cum să achiziționăm sau să analizăm un sistem RAID. Există mai multe niveluri de RAID și fiecare nivel oferă o valoare diferită de fiabilitate și îmbunătățiri ale performanței. În această secțiune, vom descrie modul în care funcționează șase dintre diferitele niveluri RAID. Un volum RAID este volumul creat de hardware sau software care combină hard disk-urile.

RAID-urile cu nivel 0 utilizează două sau mai multe discuri, iar datele sunt dungate pe discuri în bucăți de dimensiuni bloc. Când datele sunt dungate, blocurile consecutive ale volumului RAID sunt mapate în blocuri pe discurile alternative. De exemplu, dacă există două discuri, blocul RAID 0 este blocul 0 pe discul 1, blocul RAID 1 este blocul 0 pe discul 2, blocul RAID 2 este blocul 1 pe discul 1 și blocul RAID 3 este blocul 1 pe discul 2. Acest lucru poate fi văzut în Figura 7.1 unde "D0", "D1", "D2" și "D3" reprezintă blocuri de date. Un sistem ar folosi acest nivel de RAID din motive de performanță și nu din redundanță, deoarece există doar o singură copie a datelor. RAID-urile de nivel 1 utilizează două sau mai multe discuri și oglindesc datele. Când datele sunt scrise pe un disc, acestea sunt, de asemenea, scrise pe celălalt disc și ambele discuri conțin aceleași date alocate. Cele două discuri pot conține date diferite în sectoarele care nu sunt utilizate în volumul RAID. Dacă există o eroare a discului, celălalt disc poate fi utilizat pentru recuperare. De exemplu, dacă avem două discuri într-un volum RAID de nivel 1, blocul RAID 0 este bloc 0 pe ambele discuri 1 și 2, blocul RAID 1 este blocul 1 pe ambele discuri 1 și 2 etc. De asemenea, 7.1. RAID-urile de nivel 2 sunt rare și utilizează coduri de corectare a erorilor pentru a repara orice date incorecte atunci când sunt citite de pe discuri. Datele sunt dungate pe mai multe discuri folosind bucăți de dimensiuni bit, iar discurile suplimentare conțin valorile codului de corectare a erorilor. RAID-urile de nivel 3 necesită cel puțin trei discuri și au un disc de paritate dedicat. Discul de paritate este folosit pentru a recunoaște erorile din celelalte două discuri sau pentru a recrea conținutul unui disc dacă acesta nu reușește. Un exemplu ineficient de paritate este adăugarea tradițională. Dacă am două valori, 3 și 4, le pot adăuga și paritatea mea este 7. Dacă oricând cele două valori nu se adaugă la 7, știu că există o eroare. Dacă una dintre valori este pierdută, o pot recupera prin scăderea valorii care încă mai există de la 7. Cu RAID Level 3, datele sunt împărțite în bucăți de dimensiuni binare și dungate sau alternate între discurile de date. Un disc de paritate dedicat conține valorile necesare duplicării datelor pentru a reconstrui orice date pierdute atunci când unul dintre discuri eșuează. Acest nivel este similar cu ceea ce am văzut la nivelul 0, cu excepția faptului că dimensiunea stripingului este mult mai mică (octeți în loc de blocuri) și există un disc de paritate dedicat. Un exemplu cu două discuri de date și un disc de paritate poate fi găsit în Figura 7.2.

O metodă comună de calculare a informațiilor despre paritate este utilizarea operației "exclusivă" (XOR). Operatorul XOR ia două intrări de un bit și generează o ieșire de un bit utilizând 113 normele găsite în Tabelul 7.1. XOR a două valori mai mari decât un bit poate fi calculat prin aplicarea independentă a regulilor XOR la fiecare set de biți.

Operatorul XOR este util deoarece, dacă cunoașteți oricare dintre valorile de intrare sau de ieșire, puteți calcula a treia valoare. Acest lucru este similar cu adăugarea a două numere și apoi scăderea pentru a obține originalul. De exemplu, să fie trei discuri de date și un disc de paritate. Discurile de date au valorile: 1011 0010, 1100 1111 și 1000 0001. Paritatea pentru aceste valori va fi calculată după cum urmează:

RAID-urile de nivel 4 sunt similare nivelului 3, cu excepția faptului că datele sunt dungate în bucăți de dimensiuni reduse în loc de bucăți de dimensiune octet. Nivelul 4 utilizează două sau mai multe discuri de date și un disc de paritate dedicat, astfel încât arhitectura sa este identică cu cea din Figura 7.2. RAID-urile nivelului 5 sunt similare nivelului 4, dar elimină blocajul asociat cu discul de paritate. La nivelul 5, nu există un disc de paritate dedicat, iar toate discurile conțin atât date, cât și valori de paritate pe o bază alternativă. De exemplu, dacă există trei discuri, blocul RAID 0 este blocul 0 al discului 1, blocul RAID 1 se află în blocul 0 al discului 2, iar blocul de paritate corespunzător este blocul 0 al discului 3. Următorul bloc de paritate va fi blocul 1 din discul 2 și va conține XOR-ul blocului 1 al discurilor 1 și 3. Acest lucru poate fi văzut în Figura 7.3.

Nivelul 5 este una dintre cele mai comune forme de RAID și necesită cel puțin trei discuri. Există multe alte niveluri RAID care nu sunt foarte frecvente. Acestea combină mai multe niveluri RAID și fac analiza chiar mai greu. O implementare RAID hardware poate veni în două forme majore: ca un controler special care se conectează într-unul din autobuze sau ca un dispozitiv care se conectează la un controler de disc normal, cum ar fi ATA, SCSI sau Firewire. În ambele cazuri, hard-discurile se conectează într-o bucată specială de hardware și, în general, computerul vede doar volumul RAID și nu discurile individuale. Figura 7.4 prezintă conexiunile dintre discuri, controler și volum.

Dacă se folosește un controler RAID special, computerul sondează controlerul la pornire. Cu multe sisteme IA32, BIOS-ul pentru controlerul RAID afișează mesaje pe ecran și utilizatorul poate intra într-un ecran de configurare pentru a configura controlerul și discurile. Sistemul de operare are nevoie de drivere hardware pentru controlerul RAID. Discurile create cu un singur controler nu pot fi folosite cu un alt controler. Dacă se utilizează un dispozitiv special care se află între controlerul de disc normal și hard disk-urile, nu sunt necesare drivere speciale. Există multe tipuri de implementări hardware RAID, deci vom oferi doar câteva linii directoare aici. Pentru a analiza volumul RAID, este mai ușor să achiziționați volumul final RAID ca și cum ar fi un disc normal normal și să utilizați instrumentele tipice de sistem de fișiere și de analiză a partițiilor. O metodă de a efectua acest lucru este de a boota sistemul suspect cu un CD bootabil Linux sau similar, care are drivere pentru controlerul RAID. Apoi puteți folosi dd sau o comandă similară pentru a achiziționa volumul final RAID. Rețineți că unele volume RAID sunt foarte mari; prin urmare, veți avea nevoie de o cantitate mare de spațiu pe care să stocați imaginea (sau poate volumul propriu RAID). Diferitele CD-uri Linux bootabile au drivere pentru controlere RAID diferite, așa că verificați CD-urile preferate și faceți o listă a controlorilor pe care îi suportă. Este posibil să aveți nevoie să creați propriul CD sau să aduceți mai multe CD-uri cu dvs., astfel încât să fiți pregătiți. Este posibil ca volumul RAID să nu utilizeze toate sectoarele pe un disc și este posibil ca sectoarele neutilizate să conțină date ascunse. Prin urmare, achiziționarea conținutului fiecărui disc în plus față de volumul RAID este soluția cea mai sigură, deși nu întotdeauna cea mai ușoară. Dacă nu cunoașteți structura datelor, ar putea fi dificil să identificați sectoarele neutilizate ale discului. Dacă aveți cuvinte cheie specifice pentru care căutați, pe lângă căutarea volumului RAID, pot fi căutate discurile individuale. Cu un software RAID, sistemul de operare are drivere speciale care îmbină discurile individuale. În acest scenariu, sistemul de operare vede discurile individuale, dar poate afișa numai utilizatorului volumul RAID. În general, discurile individuale pot fi accesate prin dispozitivele brute din sistemul UNIX sau prin intermediul obiectelor de dispozitiv din Microsoft Windows. Majoritatea sistemelor de operare oferă acum câteva niveluri de RAID, inclusiv Microsoft Windows NT, 2000 și XP; Apple OS X; Linux; Sun Solaris; HP-UX; și IBM AIX. Software-ul RAID nu este la fel de eficient ca hardware-ul RAID, deoarece CPU-ul trebuie folosit pentru a calcula biții de paritate și a împărți datele. Putem vedea conexiunile din Figura 7.5.

În Windows 2000 și XP, Logical Disk Manager (LDM) controlează volumele RAID. LDM cere ca discurile să fie formatate ca discuri dinamice, care sunt diferite de partițiile bazate pe DOS pe care le-am văzut anterior în Capitolul 5, "Partiții bazate pe PC". LDM poate crea volume RAID nivel 0 (striping), RAID nivel 1 (mirroring) și RAID nivel 5 (striping with parity), deși nivelurile RAID 1 și 5 sunt disponibile numai cu versiunea de server de Windows. Un disc dinamic poate fi folosit pentru mai mult de un volum RAID, dar acest lucru este puțin probabil dacă sistemul utilizează RAID pentru performanță sau pentru motive de redundanță. Toate informațiile de configurare pentru volumul Windows RAID sunt stocate pe discuri și nu pe sistemul local. Analiza și achiziționarea software-ului RAID este similar cu un RAID hardware. Pe baza tehnologiei actuale, scenariul cel mai simplu este să achiziționați volumul RAID, astfel încât să poată fi utilizate instrumentele obișnuite ale sistemului de fișiere. Spre deosebire de hardware-ul RAID, există câteva instrumente de analiză care pot îmbina discurile individuale. Cu software-ul RAID, este posibil să nu aveți nevoie de software-ul original pentru a recrea volumul RAID. De exemplu, Linux are suport pentru Windows Logical Disk Management (LDM) și poate fi capabil să îmbine corect discurile Windows. Nu toate kernelurile Linux sunt livrate cu LDM activat, dar îl puteți activa prin recompilarea kernel-ului. Dacă utilizați Microsoft Windows pentru a crea volumul RAID, aplicați blocante de scriere hardware pentru a preveni suprascrierea datelor. Să ne uităm la un exemplu Windows LDM cu Linux.

Când bootați un kernel Linux cu suport pentru LDM, este creat un dispozitiv pentru fiecare dintre partițiile din RAID. Trebuie să editați fișierul / etc / raidtab astfel încât să descrie configurația RAID și partițiile. De exemplu, următorul exemplu este un fișier de configurare pentru Windows LDM RAID nivel 0 (striping) cu două partiții (/ dev / hdb1 și / dev / hdd1) utilizând blocuri de 64KB:

Folosind acest fișier de configurare, dispozitivul / dev / md0 poate fi montat numai pentru citire sau imaginat folosind dd. Testați procesul înainte de un incident și faceți copii de rezervă ale discurilor reale în timpul unui incident. Vom acoperi procesul de utilizare a Linux cu Windows LDM în detaliu în secțiunea "Spanning Disk". Un proces similar este folosit pentru crearea unui RAID software Linux MD pe sistemul de achiziție. Dacă puteți copia fișierul raidtab din sistemul original, conținutul său poate fi folosit ca bază pentru a face volumul RAID la sistemul de achiziție. Investigarea unui sistem cu un volum RAID poate fi dificilă deoarece nu se întâlnesc frecvent și nu fiecare implementare este aceeași. Utilizați blocatoarele de scriere hardware sau jumperul numai pentru citire pe discurile individuale pentru a preveni modificările. Poate fi util să faceți imagini ale discurilor individuale înainte de a face o imagine a volumului total de RAID. Imaginile individuale ale discurilor pot conține date ascunse care nu se află în volumul RAID final. Nu s-au publicat cazuri care implică date RAID ascunse, dar ar putea fi posibil în funcție de cine anchetați. De asemenea, este posibil ca întregul disc să nu fie folosit pentru RAID. Unele sisteme RAID utilizează numai o parte din hard disk, astfel încât să fie mai ușor să înlocuiți discul dacă acesta nu reușește. De exemplu, doar 40 GB din fiecare disc individual din volumul RAID ar putea fi utilizate, indiferent dacă fiecare disc este de 40 GB sau 80 GB. Zona neutilizată poate conține date dintr-o utilizare anterioară sau poate fi utilizată pentru a ascunde date. Această secțiune a făcut o prezentare generală a RAID-ului. RAID este comună în serverele high-end și devine tot mai frecventă în sistemele desktop care necesită performanță sau cantități mari de spațiu pe disc. Detaliile la nivel scăzut nu au fost date deoarece variază în funcție de implementare și nu există un singur standard. Mai multe detalii vor fi oferite mai târziu în secțiunea "Disk Spanning", deoarece multe sisteme încorporează software-ul RAID în suportul pentru gestionarea volumelor. Conceptul-cheie pentru investigații este de a practica achiziționarea de sisteme RAID. Dacă este posibil, este mai ușor să achiziționați întregul volum RAID la scena și apoi să efectuați analize utilizând instrumente standard. Problemele cu această abordare sunt că necesită un disc foarte mare pentru salvarea datelor și ar putea exista date despre discurile individuale care nu sunt afișate în volumul RAID final. Prin urmare, este cel mai sigur să achiziționați mereu și discurile individuale. ANALIZA SISTEMELOR DE FIȘIERE Analiza sistemului de fișiere examinează datele dintr-un volum (adică o partiție sau un disc) și le interpretează ca un sistem de fișiere. Există multe rezultate finale din acest proces, dar exemple includ listarea fișierelor într-un director, recuperarea conținutului șters și vizualizarea conținutului unui sector. Sistemele de fișiere oferă un mecanism pentru utilizatori de a stoca datele într-o ierarhie de fișiere și directoare. Un sistem de fișiere constă din date structurale și de utilizator care sunt organizate astfel încât computerul să știe unde să le găsească. În majoritatea cazurilor, sistemul de fișiere este independent de orice computer specific. FAT32 – Permite atât gestionarea fişierelor cu nume lungi, cât şi o optimizare a spaţiului ocupat de fişierele mici pe disc, prin micşorarea dimensiunii cluster-ului. Exemplu: o partiţie de 2 GB pe sistemul FAT16 va avea 65.526 clustere (2 16 fără câteva valori rezervate) de câte 32 KB (64 sectoare), iar pe sistemul FAT32, 524.208 clustere de câte 4 KB (8 sectoare). Un fişier de 3 KB va “risipi” 29 KB pe sistemul FAT16 şi doar 1 KB pe sistemul FAT32. NTFS (New Technology File System) Este un sistem de fişiere dezvoltat pentru Windows NT 3.1 (la mijlocul anului 1993) şi dezvoltat ulterior la versiunile 1.2 (cunoscut şi ca NTFS 4.0 pentru Windows NT 3.5 şi 4.0), NTFS 5.0 (Windows 2000), NTFS 5.1 (Windows XP), NTFS 5.2 (Windows Server 2003), NTFS 6.0 (Windows Vista, Windows Server 2008).

       

    

foloseşte adrese de disc de 64 de biţi; poate suporta partiţii de până la 264 bytes; oferă posibilitatea folosirii caracterelor Unicode în numele de fişiere, maxim 255 de caractere, inclusiv spaţii şi puncte; permite indexare generală a fişierelor; fiabilitate – oferă un mecanism îmbunătăţit pentru transferul fără pierderi a datelor, îmbunătăţirea toleranţei la defectări şi recuperare a datelor, suportă hard-diskuri în matrici RAID (Redundant Arrays of Inexpensive Disks) suport îmbunătăţit pentru hard-disk-uri mari optimizarea spaţiului ocupat pe disc (utilizarea altei metode de alocare a spaţiului pentru fişiere şi evitarea pierderii spaţiului de stocare – “slack” – existentă la FAT) suport îmbunătăţit pentru metadata (fişierele metadata sunt structuri de date localizate în MFT folosite de NTFS pentru accesul şi managementul fişierelor). Acest sistem de fişiere se bazează pe principiul „totul este fişier”. Astfel, descriptorul de volum, informaţia de boot, înregistrări ale sectoarelor defecte etc. sunt toate stocate în fişiere. managementul spaţiului ocupat de date (disk quota) – administratorul sistemului poate monitoriza şi limita spaţiul ocupat de fişierele unui utilizator sau grup de utilizatori compresia datelor implementarea unui mecanism pentru inserarea punctelor de montare (Reparse Points) menţinerea unui jurnal la nivel de partiţie care să monitorizeze operaţiile efectuate asupra fişierelor şi directoarelor asigură defragmentarea discului EXT 2/3 (Extended File System) EXT2 (Second Extended) Spaţiul este împărţit în blocuri şi organizat sub formă de grupuri de blocuri în scopul reducerii fragmentării datelor şi minimizarea căutărilor (disk seek) la citirea unei mari cantităţi de date consecutive. Fiecare grup de blocuri conţine: - un superbloc (metainformaţii esenţiale şi statistici despre sistemul de fişiere); - un descriptor de grup, cu informaţii despre grupul de blocuri, inode şi începutul tabelei de inoduri pentru fiecare grup de blocuri; - blocuri de date (conţinutul efectiv al fişierelor). Un inode identifică în mod unic un fişier de pe disc şi deţine informaţii despre acesta (uid – user id, gid – group id, drepturi de acces – Read, Write, eXecute, lungime, timpi de acces / modificare, numărul de legături, pointeri la blocurile de date). EXT3- este compatibil cu sistemul de fişiere EXT2, adăugând facilitatea de jurnalizare (o metodă de recuperare mai bună a datelor în caz de oprire necorespunzătoare a sistemului, prin introducerea unui jurnal care va fi analizat şi corectat pentru a reface sistemul de fişiere, în locul verificării fişierelor propriu-zise).

2. Reţele de calculatoare (modelele de referinţă ISO-OSI şi TCP/IP; topologii de reţea; protocoale de rutare; protocolul IP; utilitare TCP/IP; adresare IP etc.); Modelul de referinţă OSI

Modelul de referinţă OSI- Acest model se bazează pe o propunere dezvoltată de către Organizaţia Internaţională de Standardizare (International Standards Organization - ISO) ca un prim pas către standardizarea internaţională a protocoalelor folosite pe diferite niveluri. Modelul se numeşte ISO OSI (Open Systems Interconnection, rom: interconectarea sistemelor deschise), pentru că el se ocupă de conectarea sistemelor deschise - adică de sisteme deschise comunicării cu alte sisteme. Modelul OSI cuprinde şapte niveluri. Principiile aplicate pentru a se ajunge la cele şapte niveluri sunt următoarele: 1. Un nivel trebuie creat atunci când este nevoie de un nivel de abstractizare diferit. 2. Fiecare nivel trebuie să îndeplinească un rol bine definit. 3. Funcţia fiecărui nivel trebuie aleasă acordându-se atenţie definirii de protocoale standardizate pe plan internaţional. 4. Delimitarea nivelurilor trebuie făcută astfel încât să se minimizeze fluxul de informaţii prin interfeţe. 5. Numărul de niveluri trebuie să fie suficient de mare pentru a nu fi nevoie să se introducă în acelaşi nivel funcţii diferite şi suficient de mic pentru ca arhitectura să rămână funcţională. Modelul OSI nu reprezintă în sine o arhitectură de reţea, pentru că nu specifică serviciile şi protocoalele utilizate la fiecare nivel. Modelul spune numai ceea ce ar trebui să facă fiecare nivel. ISO a produs de asemenea standarde pentru fiecare nivel, însă aceste standarde nu fac parte din modelul de referinţă propriu-zis. Fiecare din standardele respective a fost publicat ca un standard internaţional separat. Nivelul fizic Nivelul fizic se ocupă de transmiterea biţilor printr-un canal de comunicaţie. Proiectarea trebuie să garanteze că atunci când unul din capete trimite un bit 1, acesta e receptat în cealaltă parte ca un bit 1, nu ca un bit 0. Problemele tipice se referă la câţi volţi trebuie utilizaţi pentru a reprezenta un 1 şi câţi pentru un 0, dacă transmisia poate avea loc simultan în ambele sensuri, cum este stabilită conexiunea iniţială şi cum este întreruptă când au terminat de comunicat ambele părţi, câţi pini are conectorul de reţea şi la ce foloseşte fiecare pin. Aceste aspecte de proiectare au o legătură strânsă cu interfeţele mecanice, electrice, funcţionale şi procedurale, ca şi cu mediul de transmisie situat sub nivelul fizic. Nivelul legătură de date Sarcina principală este de a transforma un mijloc oarecare de transmisie într-o linie care să fie disponibilă nivelului reţea fără erori de transmisie nedetectate. Nivelul legătură de date realizează această sarcină obligând emiţătorul să descompună datele de intrare în cadre de date (în mod tipic, câteva sute sau câteva mii de octeţi) şi să transmită cadrele secvenţial. Dacă serviciul este sigur, receptorul confirmă fiecare cadru trimiţând înapoi un cadru de confirmare pozitivă. Nivelul reţea -se ocupă de controlul funcţionării subreţelei. O problemă cheie în proiectare este determinarea modului în care pachetele sunt dirijate de la sursă la destinaţie. Dirijarea se poate baza pe tabele statistice care sunt ,,cablate” intern în reţea şi care sunt schimbate rar. Traseele pot fi de asemenea stabilite la începutul fiecărei conversaţii, de exemplu la începutul unei sesiuni la terminal (de ex. o operaţie de login pe o maşină la distanţă). Dirijarea poate fi foarte dinamică, traseele determinânduse pentru fiecare pachet în concordanţă cu traficul curent din reţea. Nivelul transport Rolul principal al nivelului transport este să accepte date de la nivelul sesiune, să le descompună,

dacă este cazul, în unităţi mai mici, să transfere aceste unităţi nivelului reţea şi să se asigure că toate fragmentele sosesc corect la celălalt capăt. Cel mai obişnuit tip de conexiune transport este un canal punct-la-punct fără erori care furnizează mesajele sau octeţii în ordinea în care au fost trimişi.

Nivelul sesiune Nivelul sesiune permite utilizatorilor de pe maşini diferite să stabilească între ei sesiuni. Sesiunile oferă diverse servicii:  controlul dialogului  gestionarea jetonului  sincronizarea Nivelul prezentare Spre deosebire de nivelurile inferioare, care se ocupă numai de transferul biţilor dintr-un loc în altul, nivelul prezentare se ocupă de sintaxa şi semantica informaţiilor transmise. Pentru a face posibilă comunicarea între calculatoare cu reprezentări diferite ale datelor, structurile de date care se schimba între ele pot fi definite întrun mod abstract, alături de o codificare standardizată ce va fi utilizată „pe cablu”. Nivelul prezentare gestionează aceste structuri de date abstracte şi permite definirea şi comunicarea unor structuri de date de nivel mai înalt (de ex. înregistrări bancare). Nivelul aplicaţie Nivelul aplicaţie conţine o varietate de protocoale frecvent utilizate. Un exemplu de protocol utilizat pe scară largă este HTTP (HyperText Transfer Protocol, rom: protocol de transfer al hiper-textului), care sta la baza WWW (World Wide Web, rom: reţea de întindere planetară). Atunci când un program de navigare (browser) accesează o pagină Web, el trimite serverului numele paginii pe care o doreşte folosind HTTP. Serverul va trimite ca răspuns pagina. Alte protocoale de aplicaţie sunt folosite pentru transferul fişierelor, poştă electronica, ştiri în reţea. Modelul de referinţă TCP/IP Nivelul internet Nivelul internet este axul pe care se centrează întreaga arhitectură. Rolul său este de a permite gazdelor să emită pachete în orice reţea şi a face ca pachetele să circule independent până la destinaţie (fiind posibil ca aceasta să se găsească pe o altă reţea). Pachetele pot chiar să sosească într-o ordine diferită faţă de cea în care au fost trimise, caz în care dacă se doreşte livrarea lor ordonată - rearanjarea cade în sarcina nivelurilor superioare. Nivelul internet defineşte oficial un format de pachet şi un protocol numit IP (InternetProtocol, rom: protocol Internet). Sarcina nivelului internet este să livreze pachete IP către destinaţie. Problemele majore se referă la dirijarea pachetelor şi evitarea congestiei. În consecinţă, este rezonabil să spunem că nivelul internet din TCP/IP funcţionează asemănător cu nivelul reţea din OSI.

Nivelul transport Nivelul situat deasupra nivelului internet din modelul TCP/IP este frecvent numit nivelul transport. Acesta este proiectat astfel, încât să permită conversaţii între entităţile pereche din gazdele sursă şi, respectiv, destinaţie, la fel ca în nivelul transport OSI. În acest sens au fost definite două protocoale capăt-la-capăt. TCP (Transmission Control Protocol, rom: protocolul de control al transmisiei), este un protocol sigur orientat pe conexiuni care permite ca un flux de octeţi trimişi de pe o maşină să ajungă fără erori pe orice altă maşină din inter-reţea. Acest protocol fragmentează fluxul de octeţi în mesaje discrete şi pasează fiecare mesaj nivelului internet. La destinaţie, procesul TCP receptor reasamblează mesajele primite într-un flux de ieşire. TCP tratează totodată controlul fluxului pentru a se asigura că un un emiţător rapid nu inundă un receptor lent cu mai multe mesaje decât poate acesta să prelucreze. UDP (User Datagram Protocol, rom: protocolul datagramelor utilizator), este un protocol nesigur, fără conexiuni, destinat aplicaţiilor care doresc să utilizeze propria lor secvenţiere şi control al fluxului, şi nu pe cele asigurate de TCP. Protocolul UDP este de asemenea mult folosit pentru interogări rapide întrebare-răspuns, client-server şi pentru aplicaţii în care comunicarea promptă este mai importantă decât comunicarea cu acurateţe, aşa cum sunt aplicaţiile de transmisie a vorbirii şi a imaginilor video.

Nivelul aplicaţie Deasupra nivelului transport se află nivelul aplicaţie. Acesta conţine toate protocoalele de nivel mai înalt. Nivelul gazdă-reţea Sub nivelul internet se află necunoscutul. Modelul de referinţă TCP/IP nu spune mare lucru despre ce se întâmplă acolo, însă menţionează că gazda trebuie să se lege la reţea, pentru a putea trimite pachete IP, folosind un anumit protocol. Acest protocol nu este definit şi variază de la gazdă la gazdă şi de la reţea la reţea. Topologii de rețea- prin topologia unei rețele se înțelege modul de interconectare a calculatoarelor în rețea. Folosirea unei anumite topolog ii are influenta asupra vitezei de transmitere a datelor, a costului de interconectare si a fiabilitatii retelei. Exista cateva topologii care s-au impus si anume: magistrala, inel, arbore. Pe langa acestea intalnim si alte modele topologice: stea, inele intersectate, topologie completa si topologie neregulata. Topologia de magistrală este cea mai folosită atunci când se realizează rețele locale de mici dimensiuni, iar performanțele nu trebuie să fie spectaculoase. Acest model topologic se mai numeste și magistrală liniară, deoarece există un singur cablu care leagă toate calculatoarele din rețea. Avantajul este atât acela al costului mai scăzut (se folosește mai puțin cablu), dar și acela ca, în cazul ruperii unui cablu sau defectării unui calculator, nu se ajunge la oprirea întregii rețele. Dezavantajul folosirii unui singur cablu este ca, atunci când dorește să transmită date, calculatorul trebuie să "lupte" pentru a câștiga accesul (trebuie să aștepte eliberarea cablului). Topologia de inel conectează fiecare calculator de alte două, imaginea fiind aceea a unor calculatoare așezate în cerc. Datele transmise de un calculator trec prin toate calculatoarele intermediare înainte de a ajunge la destinație. Dacă nu se folosesc cabluri suplimentare, oprirea unui calculator sau ruperea unui cablu duce la oprirea întregii rețele. Performanțele unei rețele inel sunt ceva mai mari decât ale unei rețele magistrală. Topologia stea folosește un calculator central care va fi conectat cu toate celelalte calculatoare prin cabluri directe. Toate transferurile de date se realizează prin intermediul calculatorului central. Dacă se folosește un

calculator central de mare putere, atunci rețeaua va avea performanțe ridicate, însă defectarea acestuia duce la oprirea rețelei. Se pot folosi topologii combinate, cum ar fi lanțul de stele însă, orice topologie ar fi aleasă, există un număr de probleme ce trebuiesc rezolvate (modul de obținere a accesului este una dintre cele mai importante, trebuind eliminată posibilitatea ca un singur calculator să "monopolizeze" mediul de transmisie). Apar probleme suplimentare atunci când rețeaua noastră este eterogenă (conectează diverse tipuri de calculatoare sau este formată din mai multe rețele diferite ca tip). Trebuie să facem distincție între topologia fizică și topologia logică (modul în care datele sunt transferate de la un calculator la altul). PROTOCOLUL IP O datagramă IP constă dintr-o parte de antet şi o parte de text. Antetul are o parte fixă de 20 de octeţi şi o parte opţională cu lungime variabilă. Antetul este transmis în ordinea big endian (cel mai semnificativ primul): de la stânga la dreapta, începând cu bitul cel mai semnificativ al câmpului Versiune. (Procesorul SPARC este de tip big endian; Pentium este de tip little endian - cel mai puţin semnificativ primul). Pe maşinile de tip little endian, este necesară o conversie prin program atât la transmisie cât şi la recepţie.

Câmpul Versiune memorează cărei versiuni de protocol îi aparţine datagrama. Prin includerea unui câmp versiune în fiecare datagramă, devine posibil ca tranziţia între versiuni să dureze ani de zile, cu unele maşini rulând vechea versiune, iar altele rulând-o pe cea nouă. La ora actuală are loc o tranziţie de la IPv4 la IPv6, care deja durează de câţiva ani şi în nici un caz nu s-a apropiat de final. IPv5 afost un protocol experimental de flux în timp real care nu a fost folosit pe scară largă. IHL, este pus la dispoziţie pentru a spune cât de lung este antetul, în cuvinte de 32 de octeţi. Valoarea minimă este 5, care se aplică atunci când nu sunt prezente opţiuni. Valoarea maximă a acestui câmp de 4 biţi este 15, ceea ce limitează antetul la 60 de octeţi şi, astfel, câmpul de opţiuni la 40 de octeţi. Pentru unele opţiuni, cum ar fi cea care înregistrează calea pe care a mers un pachet, 40 de octeţi sunt mult prea puţini, făcând această opţiune nefolositoare. Câmpul Tip serviciu este unul dintre puţinele câmpuri care şi-a schimbat sensul (oarecum) de-a lungul anilor. A fost şi este în continuare menit să diferenţieze diferitele clase de servicii. Sunt posibile diferite combinaţii de fiabilitate şi viteză. Pentru vocea digitizată, livrarea rapidă are prioritate faţă de transmisia corectă. Pentru transferul de fişiere, transmisia fără erori este mai importantă decât transmisia rapidă. La început, câmpul de 6 biţi conţinea (de la stânga la dreapta), un câmp Precedenţă de trei biţi şi trei indicatori, D, T şi R. Câmpul Precedenţă reprezintă prioritatea, de la 0 (normal) la 7 (pachet de control al reţelei). Cei trei biţi indicatori permiteau calculatorului gazdă să specifice ce îl afectează cel mai mult din mulţimea {Delay (Întârziere), Throughput (Productivitate), Reliability (Fiabilitate)}. În teorie, aceste câmpuri permit ruterelor să aleagă între, de exemplu, o legătură prin satelit cu o productivitate mare şi o întârziere mare sau o linie dedicată cu o productivitate scăzută şi o întârziere mică. În practică, ruterele curente ignoră adesea întregul câmp Tip serviciu. Lungimea totală include totul din datagramă - atât antet cât şi date. Lungimea maximă este de 65535 octeţi. În prezent, această limită superioară este tolerabilă, dar în viitoarele reţele cu capacităţi de gigaocteţi vor fi necesare datagrame mai mari. Câmpul Identificare este necesar pentru a permite gazdei destinaţie să determine cărei datagrame îi aparţine un nou pachet primit. Toate fragmentele unei datagrame conţin aceeaşi valoare de Identificare. Urmează un bit nefolosit şi apoi două câmpuri de 1 bit. DF însemnă Don t Fragment. Acesta este un ordin dat ruterelor ca să nu fragmenteze datagrama pentru că destinaţia nu este capabilă să reasambleze piesele la loc. De exemplu, când un calculator porneşte, memoria sa

ROM poate cere să i se trimită o imagine de memorie ca o singură datagramă. Prin marcarea datagramei cu bitul DF, emiţătorul ştie că aceasta va ajunge într-o singură bucată, chiar dacă aceasta înseamnă că datagrama trebuie să evite o reţea cu pachete mai mici pe calea cea mai bună şi să aleagă o rută suboptimală. Toate maşinile trebuie să accepte fragmente de 576 octeţi sau mai mici. MF însemnă More Fragments (mai urmează fragmente). Toate fragmentele, cu excepţia ultimului, au acest bit activat. El este necesar pentru a şti când au ajuns toate fragmentele unei datagrame. Deplasamentul fragmentului spune unde este locul fragmentului curent în cadrul datagramei. Toate fragmentele dintr-o datagramă, cu excepţia ultimului, trebuie să fie un multiplu de 8 octeţi -unitatea de fragmentare elementară. Din moment ce sunt prevăzuţi 13 biţi, există un maxim de 8192 de fragmente pe datagramă, obţinându-se o lungime maximă a datagramei de 65536 octeţi, cu unul mai mult decât câmpul Lungime totală. Câmpul Timp de viaţă este un contor folosit pentru a limita durata de viaţă a pachetelor. Este prevăzut să contorizeze timpul în secunde, permiţând un timp maxim de viaţă de 255 secunde. El trebuie să fie decrementat la fiecare salt (hop - trecere dintr-o reţea în alta) şi se presupune că este decrementat de mai multe ori când stă la coadă un timp îndelungat într-un ruter. În practică, el con- torizează doar salturile. Când ajunge la valoarea zero, pachetul este eliminat şi se trimite înapoi la gazda sursă un pachet de avertisment. Această facilitate previne hoinăreala la infinit a datagramelor, ceea ce se poate întâmpla dacă tabelele de dirijare devin incoerente. Câmpul Protocol spune cărui proces de transport trebuie să o predea. TCP este o posibilitate, dar tot aşa sunt şi UDP şi alte câteva. Numerotarea protocoalelor este globală la nivelul întregului Internet. Protocoalele şi alte numere alocate erau anterior definite în RFC 1700, dar astăzi ele sunt conţinute într-o bază de date on-line. Suma de control a antetului verifică numai antetul. O astfel de sumă de control este utilă pentru detectarea erorilor generate de locaţii de memorie proaste din interiorul unui ruter. Algoritmul este de a aduna toate jumătăţile de cuvinte, de 16 biţi, atunci când acestea sosesc, folosind aritmetică în complement faţă de unu şi păstrarea complementului faţă de unu al rezultatului. Pentru scopul acestui algoritm, se presupune că la sosire suma de control a antetului este zero. Acest algoritm este mai robust decât folosirea unei adunări normale. Observaţi că suma de control a antetului trebuie recalculată la fiecare salt, pentru că întotdeauna se schimbă cel puţin un câmp (câmpul timp de viaţă), dar se pot folosi trucuri pentru a accelera calculul. Adresa sursei şi Adresa destinaţiei indică numărul de reţea şi numărul de gazdă. Vom discuta adresele Internet în secţiunea următoare. Câmpul Opţiuni a fost proiectat pentru a oferi un subterfugiu care să permită versiunilor viitoare ale protocolului să includă informaţii care nu sunt prezente în proiectul original, pentru a permite cercetătorilor să încerce noi idei şi pentru a evita alocarea unor biţi din antet pentru informaţii folosite rar. Opţiunile sunt de lungime variabilă. Fiecare începe cu un cod de un octet care identifică opţiunea. Unele opţiuni sunt urmate de un câmp de un octet reprezentând lungimea opţiunii, urmat de unul sau mai mulţi octeţi de date. Câmpul Opţiuni este completat până la un multiplu de 4 octeţi. Iniţial erau definite cinci opţiuni:

UTILITARE TCP/IP

Utilitare pentru conectarea la distanţă folosind protocolul TCP/IP

IPCONFIG- acesta se folosește pentru verificarea configurației PROTOCOLULUI TCP/IP. Se folosește /all pentru a arăta toate informațiile disponibile. Rezultatul tastării comenzii ipconfig /all:  Dacă este setată o configuraţie validă, este afişată adresa IP şi masca de subreţea, precum şi gatewayul implicit, dacă este cazul.  Dacă este detectat în reţea un duplicat al adresei IP folosite, va fi afişată adresa IP folosită, dar în dreptul măştii de subreţea se va trece 0.0.0.0.  Dacă Windows nu a putut obţine o adresă IP de la un server DHCP, va fi afişată adresa alocată prin tehnologia APIPA. PING- Instrument folosit pentru testarea conexiunii TCP/IP între computerul dumneavoastră şi unul aflat la distanţă. Ping transmite pachetele utilizând ICMP ECHO_REQUEST şi se aşteaptă primirea unui răspuns de confirmare pentru fiecare pachet transmis prin ICMP ECHO_REPLY. Sintaxa comenzii este ping adresa_IP_a_computerului_de_la_distanţă. FINGER- Listează numele de login, numele complet, numele terminalului, precum şi alte caracteristici. Opţiuni - selectiv: -b Format de redare redus -f Suprimă afişarea părţii de antet -i Afişează o listă cu timpii inactivi -l Format de redare extins -q Afişează o listă rapidă de utilizatori NETSTAT- folosită pentru a extrage o serie de informaţii cum ar fi tabelele de rutare, conecţiile active, fluxuri. folosită pentru a extrage o serie de informaţii cum ar fi tabelele de rutare, conecţiile active, fluxuri -a Solicită afişarea stării socketurilor. Cele asociate cu procesele server nu sunt afişate -i Afişează starea interfeţelor ce au fost autoconfigurate -m Afişează modul de utilizare a memoriei -r Afişează tabelele de rutare -p nume_protocol Limitează informaţiile la un protocol anume TRACEROUTE- pentru a identifica traseul ce trebuie urmat de un pachet pentru a ajunge la destinaţie. Această comandă lucrează utilizând un câmp special TTL (time to live) din cadrul pachetului IP.

ARP- afişează şi modifică tabela de corespondenţă între adrese Internet şi adrese Ethernet (MAC). În momentul în care nu există intrări ARP pentru o anumită adresă Internet se va afişa un mesaj în acest sens. -a Afişează toate intrările din tabele ARP curentă -d nume Şterge intrările corespunzătoare din tabela ARP -s adresă host Crează o nouă intrare în tabela ARP folosind o adresă Ethernet ADRESARE IP Fiecare familie de protocoale trebuie să conţină un mod de adresare, pentru a identifica reţelele şi nodurile în cadrul acestora.

Adresele de clasa A sunt folosite în reţelele cu un număr foarte mare de noduri aflate sub aceeaşi autoritate (companii transnaţionale, organizaţii mondiale, etc.). Adresele de clasă A folosesc opt biţi (un octet) pentru identifica reţeaua. Prin urmare ceilalţi 24 biţi sunt folosiţi pentru a identifica nodurile (interfeţele). Prin urmare unei reţele de clasă A i se pot asigna 224 noduri. Adresele de clasa B au rezervată o zonă de reţea de 16 biţi, iar cele de clasă C au rezervată o zonă de reţea de 24 biţi. Adresele de clasa B au fost atribuite iniţial marilor universităţi şi companii. În ultima vreme obţinerea unei adrese de clasa B este dificilă.

În momentul în care se doreşte împărţirea în subreţele se alocă în cadrul adresei IP un număr de biţi care identifică subreţelele. Aceştia sunt preluaţi din cadrul zonei de host a adresei IP. Astfel, în cadrul adresei IP, sunt definite trei zone: reţea, subreţea şi host. Biţii ce identifică reţeaua sunt definiţi prin tipul clasei, cei de host sunt definiţi de către masca de reţea folosită, iar cei de subreţea sunt obţinuţi prin preluarea biţilor rămaşi. De exemplu o mască de reţea de forma: 255.255.255.240, utilizată în cadrul unei reţele de clasă C, determină un număr de patru biţi de host.

  

Două adrese IP unice din aceeaşi reţea au valori identice pentru partea de reţea, diferind prin partea de host. Două adrese IP unice din aceeaşi subreţea au valori identice în partea de reţea, în cea de subreţea diferind doar prin partea de host. Două adrese IP unice aflate în subreţele diferite dintr-o reţea de clasă A, B sau C au aceeaşi valoare în partea de reţea şi diferă prin partea de subreţea.

Baze numerice ale calculatoarelor Sistemele de numeraţie pot fi:  poziţionale (sistemele: zecimal, binar, octal);  nepoziţional (sistemul roman)

Conversia bazei de numeraţie  conversia din baza b în baza q. Conversia numerelor dintr-un sistem de numeraţie b în alt sistem de numeraţie cu baza q se efectuează examinând separat partea întreagă şi partea fracţionară.  Conversia numerelor întregi (N ) = a q + a q + + a q I b n n n-1 n-1 0 0 ⋅⋅⋅⋅ , unde ai (i = 0, n) sunt cifre ce aparţin sistemului de numeraţie în baza q.  Conversia rapidă În cazurile în care între cele două baze de numeraţie (implicate în conversie) există o relaţie de genul: b1=b2 p.  Conversia numerelor fracţionare (NF)b=a-1q -1 + a-2q -2 + a-3q-3 + ⋅⋅⋅ unde: a-j reprezintă cifre aparţinând sistemului de numeraţie q. Reprezentarea binară a informaţiei numerice Informaţia numerică se reprezintă în calculatoare într-unul dintre formatele:  în virgulă fixă (VF);  în virgulă mobilă (VM);  prin coduri numerice (cel mai utilizat este codul 8421). Reprezentarea în virgulă fixă (VF) a) Reprezentarea prin mărime şi semn (Cod direct - CD). b) Reprezentarea prin complement faţă de 1 ( cod invers - CI) c) Reprezentarea prin complement faţă de 2 (cod complementar – CC) Reprezentarea în virgulă mobilă În cazul reprezentării numerelor în virgulă mobilă, se pleacă de la faptul că un număr N se poate scrie sub forma: N=±(f)b*bE , unde:  b – reprezintă baza sistemului de numeraţie utilizat (mai frecvent se utilizează baza 2 sau 16);  E – exponentul real;  f – partea fracţionară a numărului. Reprezentarea în calculator, implică existenţa a trei câmpuri, acestea fiind:  bitul de semn  Exponentul (cunoscut şi sub denumirea de caracteristică)  Fracţia (sau mantisa). Numere şi valori speciale În cadrul reprezentării valorilor numerice pentru microprocesorul Intel, există o serie de numere şi valori ce au o reprezentare specială, prezentate în continuare:  Zerouri cu semn- în acest sens, valoarea 0 poate fi reprezentată drept +0 sau -0 în funcţie de bitul de semn. Ambele reprezentări sunt egale ca valoare. Semnul unui rezultat cu valoare 0 depinde de operaţia efectuată şi de modalitatea de rotunjire.  Numere finite normalizate și denormalizate.  +∞, -∞- reprezintă valoarea maximă pozitivă, respectiv valoarea minimă negativă pentru numere reale ce poate fi reprezentată în virgulă mobilă. Valoarea infinit este totdeauna reprezentată de o fracţie 0 şi de exponentul maxim permis de formatul respective.



Valori NaN (Not a Number)- aceste valori nu fac parte din mulţimea numerelor reale. Reprezentarea lor se face prin intermediul unui exponent maxim acceptat de reprezentarea respectivă şi a unei fracţii diferită de zero. În acest caz bitul de semn este ignorat. Numere finite normalizate şi denormalizate Numerele normalizate reprezintă numerele ce pot fi codificate într-o formă normalizată între 0 şi ∞. Numere denormalizate- atunci când exponentul modificat este 0, numerele mai mici pot fi reprezentate făcând bitul părţii întregi zero. Reprezentarea numerelor întregi zecimale codificate binar (BCD) Pentru reprezentarea numerele folosind codificarea BCD:  formatul împachetat (packed BCD) -conţine două cifre zecimale pe un octet  formatul despachetat (unpacked BCD)- conţin o cifră zecimală pe octet. Microprocesorul acceptă datele în format BCD împachetat sau despachetat, având următoarea machetă de reprezentare pe un octet:

Operaţii aritmetice în sistemul binar Adunarea în binar

Scăderea în binar

Înmulțirea în binar

Împărțirea în binar Cea mai simplă metodă este scăderea repetată a împărţitorului din deîmpărţit. Operaţiile aritmetice în virgulă fixă (VF) Adunarea în cod direct (CD) Se adună mărimile numerelor, fără cifra de semn şi se dă rezultatului semnul comun celor două numere. Adunarea/scăderea în cod invers (CI) Adunarea/scăderea numerelor cu acelaşi semn a) Dacă ambele numere sunt pozitive, reprezentarea lor în cod invers este identică reprezentării în cod direct. b) Numerele sunt negative, fie N1 < 0 şi N2 < 0. Adunarea/scăderea în cod complementar (CC) Adunarea /scăderea numerelor cu acelaşi semn: a) Dacă ambele numere sunt pozitive, reprezentarea lor în cod complementar este identică reprezentării în CD. b) Numerele sunt negative. Adunarea/scăderea numerelor cu semn diferite Operaţii aritmetice în virgulă mobilă (VM)

a) Adunarea/scăderea b) Înmulţirea şi împărţirea Operaţii aritmetice în codul numeric 8421 Adunarea în 8421- se face binar, rang cu rang pe fiecare grup de patru cifre binare, cu adăugarea, eventual, a unor corecţii. Scăderea în 8421. Baze de date oracle limbajul SQL Administratorul bazei de date (DBA) este, în funcţie de complexitatea şi mărimea unei baze de date, o persoană sau mai multe persoane, care să execute următoarele sarcini administrative:  Instalarea şi dezvoltarea sever-ului Oracle;  Alocarea memoriei sistemului şi planificarea cerinţelor viitoare de memorie ale acestuia;  Crearea bazei de date şi a obiectelor acesteia (tabele, viziuni, indecşi);  Modificarea structurii bazei de date în funcţie de cerinţele dezvoltatorilor de aplicaţii;  Definirea utilizatorilor bazei de date şi întreţinerea sistemului de securitate;  Controlul şi monitorizarea accesului utilizatorilor la baza de date;  Monitorizarea şi optimizarea performanţelor bazei de date;  Definirea şi asigurarea politicii de salvarea sau copiere (backup) şi refacere (recovery) a bazei de date;  Arhivarea datelor;  Asigurarea legăturii cu firma Oracle pentru suportul tehnic şi licenţa de utilizare a produselor Oracle. 

Arhitectura în sistemele de operare a dispozitivelor mobile Android , Windows Phone, Blackberry şi iOS. Arhitectura sistemelor de operare mobile a trecut de la complex la simplu la ceva între ele. Procesul de evoluție este determinat în mod natural de progresele tehnologice în hardware, software și Internet. ANDROID

Android folosește un kernel Linux cu API de nivel superior scrise în C și aplicațiile sunt în mod normal programate în Java și se execută cu ajutorul mașinii virtuale Dalvik (DVM) folosind compilația just-in-time pentru a traduce codul octet Java în cod Dalvik. Fiecare aplicație Android rulează într-un proces separat, sub un UID unic, cu permisiuni distincte, ceea ce înseamnă că aplicațiile nu pot citi sau scrie reciproc datele sau codurile. Platforma Android conține următoarele straturi:  Linux Kernel: Android se bazează pe Linux pentru serviciile de bază ale sistemului, cum ar fi securitatea, gestionarea memoriei, gestionarea proceselor, etc.  Runtime Android: oferă un set de biblioteci de bază care acceptă cea mai mare parte a funcționalității din bibliotecile de bază ale Java. Mașina virtuală Android cunoscută sub numele Dalvik VM se bazează pe kernelul Linux pentru unele funcționalități care stau la baza acestuia.

 

Biblioteci: Android include un set de biblioteci C / C ++. Aceste biblioteci sunt expuse dezvoltatorilor prin cadrul de aplicații Android. Acestea includ biblioteci media, biblioteci de sistem C, manager de suprafață, biblioteci 3D, SQLite, etc. Cadru de aplicații: oferă un strat de acces la API-urile de bază utilizate de aplicațiile de bază. Permite utilizarea componentelor de către dezvoltatori.

Ios iOS este derivat din Mac OS X și își împarte fundația Darwin de bază, un sistem UNIX compatibil POSIX cu sursă deschisă. În acest sens, iOS poate fi considerată o variantă a UNIX. iOS este alcătuită din patru straturi de abstractizare: Core OS, Core Services, Media și Cocoa Touch6:  Core OS: Kernel-ul sistemului de operare, care include caracteristici de baza la nivel inferior: fire de sistem, thread-uri, IO, DNS, matematica, servicii de securitate generale de memorie, chei private / publice, precum și prelucrarea sunetului și a imaginilor.  Servicii de bază: Servicii de sistem fundamentale, care sunt subdivizate în diferite cadre și bazate pe C și Obiectivul C. Acesta include servicii de bază de aplicații, inclusiv conturi, contacte, networking, managementul datelor, locație, evenimente calendar, achiziționare magazin, SQLite și suport XML .  Media Layer: consideră platformele de nivel înalt, care sunt responsabile pentru utilizarea grafică (suport pentru grafica 2d și 3d), tehnologii audio și video.  Cocoa Touch: UIKIT, care este un cadru bazat pe Obiectiv-C și oferă o serie de funcționalități necesare dezvoltării unei aplicații iOS, cum ar fi Managementul interfeței cu utilizatorul. De asemenea, include API-uri pentru construirea de aplicații - multitasking, intrare touch, notificări, vizualizări de interfață și acces la datele dispozitivului.

Windows Phone Windows Phone este un sistem de operare inteligent pentru telefonul mobil, dezvoltat de Microsoft.Este succesorul Windows Mobile, deși este incompatibil cu platforma anterioară.

Aplicația Windows Phone kernelhandles acces la driverul de nivel scăzut al dispozitivului, precum și securitatea de bază, crearea de rețele și depozitare. Trei biblioteci:  un model de aplicație pentru gestionarea aplicațiilor,  un model UI pentru gestionarea interfeței cu utilizatorul  un modul de integrare în cloud pentru căutare web prin Bing, servicii de localizare, notificări push și așa mai departe, se află deasupra kernelului. Aplicațiile API includ Sliverlight, XNA, HTML / JavaScript și Common Language Runtime (CLR) care acceptă aplicații C # sau VB .Net. Kernel-ul în sine este un design propriu-zis al sistemului de operare Windows pentru dispozitivele încorporate care combină Windows Embedded CE 6.0 R3 și Windows Embedded Compact 77. Windows Phone 8 a înlocuit kernelul Windows CE cu unul bazat pe Windows NT. Aceasta se referă în parte la imitarea sistemului de operare desktop Windows 8, care permite o portare mai ușoară a aplicațiilor între cele două sisteme de operare.

Blackberry OS BlackBerry OS suportă profilul Java Device Information Device (MIDP) și profilul aplicației wireless (WAP). Aceste protocoale sunt utilizate pentru a se sincroniza printr-un BlackBerry Enterprise Server (BES) cu calendar bazat pe push, sarcină, contact, e-mail și schimb de note. BES oferă capacitatea, securitatea, ștergerea de la distanță și alte caracteristici pe care corporațiile le solicită pentru dispozitive mobile care accesează rețele interne și / sau date corporative. BlackBerry OS oferă de asemenea BlackBerry Internet Service (BIS), o metodă specifică clientului care permite accesul la Internet pentru utilizatori individuali. Acest lucru permite clienților consumatori să acceseze e-mailurile personale, să navigheze pe web. BlackBerry OS inițial a sprijinit aplicațiile scrise în C ++. Un tip de aplicație este un program de rulare a serviciilor de date mobile (MDS), care este un container pentru procesarea și afișarea datelor, de obicei împinse din sistemul corporativ al unui utilizator. Programarea se face acum în Java pentru telefoane și în limbajele C++ sau Web pentru tableta PlayBook. OSurile acceptate de OS includ browsing, poștă, telefon, aplicații PDA, LDAP, UI, http, matematică, criptografie și așa mai departe. Un kit de dezvoltare nativ C ++ a fost recent disponibil pentru a sprijini dezvoltarea pe sistemul de operare BlackBerry PlayBook Tablet. BlackBerry PlayBook OS 1.0, care este disponibilă numai pe PlayBook, a fost schimbată pentru a fi bazată pe QNX. QNX este un microkernel UNIX care a fost inițial dezvoltat în anii 1980 și mai târziu repurtat pentru dispozitive încorporate. RIM a achiziționat QNX în aprilie 2010, cu intenția de a-și tranziționa telefoanele inteligente viitoare la OS 10 și QNX.

Related Documents

Analiza De Volume.docx
January 2021 0
Analiza Comparativa
March 2021 0
Analiza Bugetului
January 2021 0
Stranac Analiza
January 2021 0

More Documents from "Danilo Popovic"