NETWORK PACKET ANALY SIS SYSTEM Student : Napadaică Mihail Conducător: lector universitar: Antohi Ionel Chișinău 20 18 6 Ministerul Educației,… [626371]

Universitatea Tehnică a Moldovei

SISTEM DE ANALIZĂ A PACHETELOR
TRANSMISE ÎN REȚEA
NETWORK PACKET ANALY SIS SYSTEM

Student: [anonimizat]:
lector universitar: Antohi Ionel

Chișinău 20 18

6
Ministerul Educației, Culturii și Cercetării
Universitatea Tehnică a Moldovei
Facultatea Calculatoare Informatică și Microelectronică
Departamentul Ingineria Software și Automatică

Admis la susținere
Șef departament: dr.conf.univ. Ciorb ă D.
__________________________
„__”_____________ 2018

Sistem de analiză a pachetelor transmise în rețea

Proiect de licență

Student : ____________ (M. Napadaică )
Conducător: ________ (I. Antohi )
Consultanți: _________ (I. Antohi )
_________ ( M. Gîrbu )

Chișinău 2018

7
Universitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică și Microelectronică
Departamentul Ingineria Software și Automatică
Programul de studii Securitate informațională

Aprob
dr.conf.univ. Dumitru Ciorbă
șef departament
___________________
„__”_____________ 2018

CAIET DE SARCINI
pentru proiectul de licență al student: [anonimizat]

1. Tema proiectului de licență: Sistem de analiză a pachetelor transmise în rețea
confirmată prin hotărârea Consiliului facultății de la 07.11.2017
2. Termenul limită de prezentare a proiectului 31.05.2018
3. Date inițiale pentru elaborarea proiectului Sarcina pentru elaborarea proiectului de
diplomă .

4. Conținutul memoriului explicativ
Introducere
1. Analiza domeniului de studiu
2. Descrierea comportamentală a sistemului
3. Realizarea sistemului
4. Descrierea sistemului
5. Evaluarea proiectului din punct de vedere economic
Concluzii
5. Conținutul părții grafice a proiectului
Diagrame UML: Diagrama generală caz de utilizare a sistemului, Diagrama caz de utilizare,
Diagrama de secvență, Diagrama de claborare și activitate, Diagrama de clasă și de componente;
Interfața principală a sistemului;

8
6. Lista consultanților:
Consultant Capitol Confirmarea realizării activității
Semnătura
consultantului (data) Semnătura
student: [anonimizat]

7. Data înmânării caietului de sarcini 01.09.2017

Conducător _________________________
semnătura

Sarcina a fost luată pentru a fi executată

de către student: [anonimizat] 01.09.2017
semnătura, data

PLAN CALENDARISTIC

Nr.
crt. Denumirea etapelor de proiectare Termenul de
realizare a etapelor Nota
1 Elaborarea sarcinii, primirea datelor pentru sarcină 01.09.17 – 30.09.17 10%
2 Studierea literaturii de domeniu 01.10.17 – 30.11.17 20%
3 Alegerea și pregătirea de lucru a softului 01.12.17 – 25.12.17 20%
4 Realizarea programului 16.01.18 – 30.04.18 25%
5 Descrierea programului, diagramele UML 01.05.18 – 15.05.18 10%
6 Testarea aplicației 16.05.18 – 28.05.18 10%
7 Finisarea proiectului 29.05.18 – 31.05.18 5%

Student: [anonimizat]___________)
Conducător de proiect Antohi I. (_______________)

9
Cuprins

Introducere ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. 10
1. Analiza domeniului de studiu ………………………….. ………………………….. ………………………….. …………………….. 12
1.1. Descrierea sisteme lor deja existente pentru monitorizarea rețelei ………………………….. ………………………… 16
1.2. Cerințele și scopurile față de sistem ………………………….. ………………………….. ………………………….. ……………. 21
2. Descrierea comportamentală a sistemului ………………………….. ………………………….. ………………………….. ….. 26
2.1. Cazurile de utilizare pentru sistemul elaborat ………………………….. ………………………….. …………………………. 27
2.2. Activitățile sistemului elaborat ………………………….. ………………………….. ………………………….. …………………… 29
2.3. Stările si stemului elaborat ………………………….. ………………………….. ………………………….. …………………………. 31
2.4. Interacțiunile entitățiilor sistemului elaborat ………………………….. ………………………….. ………………………….. 33
2.5. Reprezentarea fluxurilor de mesaje și legăturile dintre componentele sistemului ………………………….. ….. 35
2.6. Reprezentare schematică a structurii programului ………………………….. ………………………….. …………………. 36
2.7. Reprezentarea componentelor sistemului elaborat ………………………….. ………………………….. ………………….. 37
2.8. Arhitectura fizică a sistemului ………………………….. ………………………….. ………………………….. …………………… 37
3. Realizarea sistemului ………………………….. ………………………….. ………………………….. ………………………….. …….. 38
3.1. Limbajul ales ………………………….. ………………………….. ………………………….. ………………………….. ………………… 38
3.2. Interfața grafică ………………………….. ………………………….. ………………………….. ………………………….. ……………. 39
3.3. Tehnologii utilizate ………………………….. ………………………….. ………………………….. ………………………….. ……….. 40
3.4. Implementarea sistemului ………………………….. ………………………….. ………………………….. ………………………….. 41
4. Descrierea sistemului ………………………….. ………………………….. ………………………….. ………………………….. …….. 45
5. Evaluarea proiectului din punct de vedere economic ………………………….. ………………………….. ………………. 49
5.1. Scopul elaborării proiectului din punct de vedere economic ………………………….. ………………………….. …….. 49
5.2. Planul calendaristic în scopul optimizării volumului de timp și resurselor de muncă necesare pentru
elaborare ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. …. 49
5.3. Analiza SWOT ………………………….. ………………………….. ………………………….. ………………………….. ……………… 52
5.4. Calculul indicatorilor econimico -financiari ………………………….. ………………………….. ………………………….. … 58
5.5. Concluzie ………………………….. ………………………….. ………………………….. ………………………….. ……………………… 58
Concluzie ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. … 60
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. 61
Anexa A ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ….. 63
Anexa B ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ….. 64
Anexa C ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ….. 65
Anexa D ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ….. 66
Anexa E ………………………….. ………………………….. ………………………….. ………………………….. ………………………….. ….. 67

10
Introducere
În ziua de astăzi Internetul a devenit o parte a vieții umane, fiind folosit practic în toate domeniile.
Cel mai mare a vantaj al internetului îl constituie accesul foarte rapid și facil la informații. Oamenii au
posibilitatea de a se informa, a studia noi limbi, a urma cursuri online gratuite și a se informa în orice
domeniu doresc fără a ieși din casă , ceea ce le oferă o mulțime d e posi bilități de realizare în viață și le oferă
o economie mare de timp .
Odată cu dezvoltarea internetului a apărut tot felul de metode pentru comunicare cu instituțiile
publice și companii private folosind fax, poșta electronică, dar și socializare prin mail, siteuri de socializare
și diferite aplicații care oferă posibilitatea de a telefona gratuit și a comunica cu oricine din orice capăt al
lumii. A fost dezvoltat comerțul electronic și fiecare om are posibilitatea de a-și face publică părerea.
Din cauza apariției multor surse de informare și documente pe internet este necesar implementarea
unor măsuri specifice. Măsurile ar trebui să asigure protecția informației împotriva pierderii, distruger ii sau
divulgării neautorizate. Î n cadrul tuturor compani ilor sunt folosite rețele, pentru comunicare, activare sau
orice alte acțiuni, fără de care astăzi este practic imposibil de activat. Aceste necesități atrag după ele
anumite vulnerabilități cu care se poate confrunta compania. În prezent există o mulțime de soluț ii pentru
securizarea rețelelor, deoarece prin rețea are loc transportul unui număr mare de informații și trebuie de
asigurat un nivel de securitate adecvat. Implementarea securității într -o rețea cuprinde trei aspecte:
confidențialitatea, integrit atea și disponibilitatea informațiilor.
Confidențialitatea reprezintă capacitatea rețelei de a asigura accesul la informație doar persoanelor
autorizate.
Integritatea garantează faptul că informația pe perioada tranmiterii sau menținerii nu a fost
modifi cată de persoane neautorizate.
Disponibilitatea este definită ca timpul în care rețeaua și informațiile sunt operaționale.
Rețelele de calculatoare sunt zi de zi supuse unor anumite riscuri și vulnerabilități. Chiar dacă
vulnerabilitățile sunt probleme ce le mai grave și sunt greu de controlat, mai poate fi o pricină a atacurilor
și configurările incorecte a unui sistem sau definirea politicii de securitate necorespunzătoare.
De obicei atacurile asupra unei rețele se poate clasifica în atacuri interne sau e xterne și atacuri
structurate și nestructurate. Atacurile interne sunt efectuate din rețeaua organizației, ele de obicei, se
întimplă din greșeală dar tot pot fi și pătrunderi în cadrul rețelei. Atacurile externe sunt efectuate din afara
organizației, adic ă cu alte cuvinte atacuri de la distanță.
Atacurile nestructurate sunt atacuri inițializate de indivizi neexperimentați care cu ajutorul unor
exploit -uri disponibile pe i nternet. Exploit -urile sunt programe ce exploatează vulnerabilitățile pentru a
ocoli p olitica de securitate implementată.

11
Atacurile structurate sunt inițiate de indivizi mult mai motivați și cu cunoștințe tehnice competente.
Aceștia cunosc toate vulnerabilitățile de sistem și le folosesc pentru a obține accesul la rețea de unde pot
lua info rmația dorită. Aceștia pot detecta și noi vulnerabilitățo dar și dezvolta coduri și script -uri pentru a
le exploata.
Securitatea informației se obține prin implementarea unui set de reguli, politici de securitate corecte,
adecvate. Aceste elemente trebuie implementate în măsura în care se asigură atingerea obiectivelor
specifice de securitate. Este important pentru o organizație să -și identifice propriile cerințe pentru
securitate. De aceea se face apel la trei surse principale: evaluarea riscurilor, legis lația existentă și analiza
securității.

\

12
1. Analiza domeniului de studiu
Practic orice firmă dispune de o rețea cu ajutorul căreia își efectuează activitatea în cadrul companiei
cît și în afara ei. O rețea se bazează pe protocoale de comunicație care descriu toate regulile și protocoalele
de transmitere a datelor în această reț ea.
Un model de stratificat pentru rețelele de calculatoare s -a impus din considerente practice și teoretice
de mai mult timp. Fără un astfel de model, dezvoltarea, înțelegerea și funcționarea rețelelor ar fi imposibile.
Acest gen de model aduce următoare le avantaje:
– Sparge comunicația în rețea, precum și complexitatea acesteia și numeroasele aspect implicate,
în părți mici, care pot fi studiate individual și tratate separate.
– Standardizarea componentelor de rețea pentru a putea face posibilă dezvoltarea î n system de
concurență a dispozitivelor.
– Permite diferitor tipuri de hardware și software să comunice între ele.
Un astfel de model este stiva ISO – OSI. Ea cuprinde următoarele nivele:
– Aplicație
– Prezentare
– Sesiune
– Transport
– Rețea
– Legătură de date
– Fizic [1]
Modelul OSI nu precisează cum se construiesc straturile, dar insistă asupra serviciilor oferite de
fiecare și specifică modul de comunicare între ele prin intermediul interfețelor. Fiecare producător poate
construi straturile așa cum dorește, însă fi ecare strat trebuie să furnizeze un anumit set de servicii.
Proiectarea arhitecturii pe straturi determină extinderea sau îmbunătățirea facilă a sistemului.
Deci după cum a mai fost menționat modelul OSI împarte arhitectura rețelei în șapte straturi,
adăug ând funcționalitate serviciilor oferite de nivelul inferior.
Se consideră că OSI este cel mai bun mijloc prin care se poate face înțeles modul în care informația
este transmisă și primită. În concluzie, modelul OSI sunt șapte straturi care fiecare au funcț ii diferite în
rețea, această repartiție purtând numele de stratificare.
În modelul OSI, la transferul datelor, se consideră că acestea traversează virtual de sus în jos
straturile modelului OSI al calculatorului destinație. Controlul este transferat de la un nivel la următorul,
plecând de la nivelul aplicație într -unul din dispozitivele spre nivelul de bază, cel fizic, de -a lungul
canalului de comunicație către celălalt dispozitiv de rețea și înapoi la nivelul aplicație în ierarhia pe nivele.

13
– Nivelul Aplicație – oferă suport aplicațiilor și proceselor utilizator. Sunt identificați partenerii
de comunicație, calitatea serviciilor, autentificarea utilizatorilor și restricțiile legate de sintaxa
datelor. Tot ce are legătură cu acest nivel este legat de aplicațiile de rețea. Nivelul oferă
servicii de aplicații pentru transfer de fișiere, e -mail, chat, conexiune la distanță.
– Nivelul Prezentare – oferă independență cu privire la diferențele de reprezentare a datelor în
diverse formate prin translatarea de l a aplicație la formatul rețelei și invers. Nivelul Prezentare
are rolul de a adduce datele într -o formă convenabilă nivelului aplicație. Acest nivel
formatează și criptează datele transmise de -a lungul rețelei, oferind libertate de exprimare fără
problem d e compatibilitate. Acest nivel poartă numele de nivelul sintaxei.
– Nivelul Sesiune – asigură stabilirea, gestionarea și închiderea sesiunilor de comunicație între
utilizatorii de pe două stații diferite. Prin sesiune se înțelege dialogul între două sau mai multe
entități. Nivelul Sesiune sincronizează dialogul între straturile sesiune ale entităților și
gestionează schimbul de date între acestea. În plus, acest nivel oferă garanții în ceia ce privește
expedierea datelor, clase de servicii și raportarea erori lor.
– Nivelul Transport – oferă o modalitate transparentă de transfer al datelor între sisteme. De
asemenea, nivelul Transport este responsabil cu corectarea erorilor și fluxul de date, asigurând
complet transferal de date. Este nivelul aflat în mijlocul ie rarhiei, asigurând straturilor
superioare o interfață independent de tipul rețelei utilizate. Granița dintre acest strat și cel de
deasupra lui este foarte importantă pentru că delimitează straturile care se ocupă de procesarea
locală a informației și pe c ele care au ca funcție definirea modulului în care trebuie să circule
datele între echipamente.
– Nivelul Rețea – asigură dirijarea unităților de date între nodurile sursă și destinație, trecând
eventual prin noduri intermediare. Este foarte important ca flu xul de date să fie astfel dirijat
încât să se evite aglomerarea anumitor zone ale rețelei.
– Nivelul Legături de Date – la acest nivel se corectează erorile de transmitere apărute la nivelul
fizic, realizând o comunicare corectă între două noduri adiacente a le rețelei. Mecanismul
utilizat în acest scop este împărțirea pachetelor în cadre, cărora le sunt adăugate informații de
control. Cadrele sunt transmise individual, putând fi verificate și confirmate de către receptor.
Alte funcții ale nivelului se referă la fluxul de date și la gestiunea legăturii.
– Nivelul Fizic – are rolul de a transmite datele de la un calculator la altul prin intermediul unui
mediu de comunicație. Datele sunt văzute la acest nivel ca un șir de biți.
Modelul OSI nu este implementat în î ntregime de producători, nivelele Sesiune și Prezentare putând
să lipsească. Modelul OSI este un model orientativ, strict teoretic, realizările practice fiind mai mult sau
mai puțin diferite. [2]

14
Protocoalele fundamentale ale internetului, care asigură inte ropabilitatea între orice două
calculatoare sau aparate inteligente care le implementează sunt Internet protocol (IP), Transmission Control
Protocol (TCP) și User Datagram Protocol (UDP) . [1]
Internet protocol asigură livrarea pachetelor numai dacă în func ționarea rețelelor nu apar erori.
– Dacă un mesaj este prea lung, IP cere fragmentarea lui în mai multe pachete.
– Transmiterea pachetelor IP se face între calculatoarele gazdă și nu direct între programele de
aplicație.
Transmission Control Protocol face frag mentarea mesajelor și asigură trimiterea corectă a mesajelor
între utilizatori. Pachetele unui mesaj sunt numerotate, putându -se verifica primirea lor în forma în care au
fost transmise și reconstruirea mesajelor lungi, formate din mai multe pachete.
Suita de protocoale TCP/IP reprezintă cel mai flexibil protocol de transport disponibil și permite
calculatoarelor din întreaga lume să comunice între ele, indiferent de tipul sistemului de operare pe ele. [3]
Deși modelul OSI este universal recunoscut, standard ul aplicat comunicării într -o rețea este TCP/IP,
adică Transmission Control Protocol/Internet Protocol.
TCP/IP este cel mai utilizat protocol folosit în rețelele locale cât și pe internet datorită disponibilității
și flexibilității lui având cel mai mare g rad de corecție a erorilor. [2]
Punctele forte ale stivei TCP/IP sunt:
– Este independentă de configurația hardware;
– Reprezintă o arhitectură care facilitează conectarea în medii eterogene;
– Se poate utiliza atât pentru rețelele locale (LAN) cât și pentru rețelele globale (WAN);
– Este un protocol standard, routabil;

Fig 1 .1 – Modelul TCP/IP [3]
În figura 1.1 după cum observăm avem reprezentat modelul TCP/IP. Protocolul TCP/IP are patru
nivele: Aplicație, Transport, Internet, Rețea. El păstrează nivelurile Transport și Internet ale modelului OSI
ca niveluri individuale și comasează într -un singur nivel (Aplica ție), toate nivelurile de peste nivelul
Aplicație

Transport
Internet
Rețea
Nivel 4
Nivel 3
Nivel 2
Nivel 1
Protocoale
Rețele

15
Transport (Aplicație, Prezentare, Sesiune), și într -un nivel (Rețea), toate nivelurile de sub nivelul Rețea
(Legătură de date și Fizic). [3]
Cele patru niveluri realizează funcțiile necesare pentru a pregăti datele în ainte de a fi transmise pe
rețea. Un mesaj pornește de la nivelul superior și traversează de sus în jos cele patru niveluri până la nivelul
inferior.
Informațiile din header sunt adăugate la mesaj în timp ce acesta parcurge fiecare nivel, apoi mesajul
este transmis.
După ce ajunge la destinație, mesajul traversează din nou, de data aceasta de jos în sus fiecare nivel
al modelului TCP/IP. Informațiile din header care au fost adăugate mesajului sunt înlăturate în timp ce
acesta traversează nivelurile destina ție.
Nivelul aplicație comasează nivelurile Aplicație, Prezentare și Sesiune din modelul OSI. Proiectanții
TCP/IP au considerat că protocoalele de nivel superior trebuie să includă detaliile nivelurilor Prezentare și
Sesiune ale modelului OSI. Pur și simpl u au creat un nivel Aplicație care manevrează protocoalele de nivel
superior, problemele de reprezentare, codificările și controlul dialogurilor.
TCP/IP combină toate aceste deziderate într -un singur nivel, care asigură împachetarea corectă a
datelor pentr u nivelul următor.
Nivelul Aplicație oferă servicii de rețea aplicațiilor utilizator cum ar fi browserele web, programelle
de email, terminal virtual, transfer te fișiere.
Nivelul Transport al modelului TCP/IP administrază transmisia de date de la un calculator la altul,
asigurând calitatea serviciului de comunicare, siguranța liniei de transport, controlul fluxului, detecția și
corecția erorilor.
Una dintre funcțiile acestui nivel este de a împărți datele în segmente mai mici pentru a fi
transportate ușor prin rețea. El este proiectat astfel încât să permită conversații între entitățile pereche din
gazdele sursă, respectiv, destinație.
Nivelul transport include protocoalele TCP și UDP. TCP este un protocol orientat pe conexiune care
permite ca un flux de octeți transmiși de la un calculator la altul să ajungă fără erori pe orice alt calculator
din Internet. Dacă pe calculatorul destinație un pachet ajunge cu erori, TCP cere retrimiterea acelui pachet.
Orientarea pe conexiune nu semnifică faptul că exist ă un circuit între calculatoarele care comunică,
ci faptul că segmentele nivelului Aplicație călătoresc bidirecțional între două gazde care sunt conectate
logic pentru o anumită perioadă. Acest proces este cunoscut sub denumirea de packet switching.
TCP/IP fragmentează fluxul de octeți în mesaje discrete și transferă fiecare mesaj nivelului Internet.
TCP tratează totodată controlul fluxului pentru a se asigura ca un emițator rapid nu inundă un receptor lent
cu mai multe mesaje decât poate acesta să prelucre ze.
Al doilea protocol din acest nivel UDP(User Datagram Protoco) este un protocol nesigur, fără
conexiuni, destinat aplicațiilor care doresc să utilizeze propria lor secvențiere și control al fluxului.

16
Protocolul UDP este de asemenea mult folosit pentru i nterogări rapide întrebare -raspuns, 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 Internet este cel care fa ce adresarea logică în stiva TCP/IP. Pe scurt, el poate face două
lucruri:
– Identifică cea mai bună cale pe care trebuie să o urmeze un pachet pentru a ajunge la destinație.
– Realizează comutația acelui pachet, aceasta fiind posibilitatea de a trimite pachet ul printr -o altă
interfață decât acea de primire.
Inițial nivelul Internet trebuia să asigure rutarea pachetelor în interiorul unei singure rețele. Cu timpul a
apărut posibilitatea interconexiunii între rețea sursă și o rețea destinație.
Protocolul specif ic care guvernează acest nivel se numește protocol Internet (IP). În acest nivel se
realizează alegerea căii optime și distribuirea pachetelor. Aceasta este locul unde acționează routerul în
internet.
Nivelul Acces Rețea se ocupă cu toate problemele legate de transmiterea efectivă a unui pachet IP
pe o legătură fizică incluzând și aspectele legate de tehnologii și medii de transmisie.
Printre protocoalele care funcționează la acest nivel se regăsesc cele pentru: terminalul virtual
(TELNET), transferul de fișiere (FTP), poșta electronică (SMTP), serviciul numelor de domeniu (DNS),
folosit pentru stabilirea corespondenței dintre numele gazdelor și adresele rețelelor, transferul paginilor web
(HTTP), editarea de pagini Web (HTML). [3]

1.1. Descrierea s isteme lor deja existente pentru monitorizarea rețelei
Există o mulțime de sisteme pentru monitorizarea rețelei. Printre cele mai cunoscute sunt:
– Wireshark
– Tcpdump
– Microsoft Network Monitor

17
Wireshark

Fig 1. 2 – Interfața aplicației wireshark
Wireshark este un analizator de pachete gratuit și cu sursă deschisă. Se utilizează pentru
depanarea, analiza și dezvoltarea de protocoale de comunicații software și de comunicații în rețea,
precum și pentru educație. Este foarte asemănător cu tcpdump, dar are front -end grafic, plus opțiuni
integrate de sortare și filtrare. Wireshark permite utilizatorului să pună controlerele interfeței de
rețea dacă este acceptat de controlerul de interfață al rețelei, astfel încît să poată vedea tot traficul
vizibil pe interfața r espectivă, inclusiv traficul unicast care nu este transmis la adresa MAC a
controlerului de interfață de rețea. Captarea pachetelor poate oferi administratorului de rețea
informații despre pachete individuale cum ar fi timpul de transmisie, sursa, destinaț ia, tipul
protocolului și datele antetului. Aceste informații pot fi utile pentru evaluarea evenimentelor de
securitate și depanarea problemelor dispozitivului de securitate a rețelei.

18

Fig 1. 3 – Funcțiile bloc ale Wireshark [4]
În figura 1.3 sunt reprezentate funcțiile bloc pentru Wireshark:
– GUI – Manipularea tuturor intrărilor/ieșirilor utilizatorilor, toate ferestrele, dialogurile și altele.
– Core – Principalul cod ce ține împreună celelalte blocuri.
– Epan – Ethereal Packet Analyzer – pachetu l care analizează motorul. Epan provine din următoarele
API-uri:
1. Protocol Tree. – Informații despre disecție pentru un pachet individual.
2. Dissectors. Variația de protocoale din epan/dissectors.
3. Dissector Plugins – Sprijin pentru implementarea disecțiilor c a module separate.
4. Display Filters – Afișarea motorului de filtrare la epan/dfilter.
– Wiretap – Wiretap este o librarie utilizată pentru citirea și scrierea fișierelor captate în libcap,
pcapng și multe alte formate.
– Capture – Interfața pentru motorul de captare.
– Dumpcap – motorul de captare în sine. Aceasta este singura parte care trebuie executată cu privilegii
ridicate.

19
– WinPcap și libpcap – Acestea sunt librarii pentru captarea și filtrarea pachetelor pe diferite
platforme. Filtrarea prin WinPcap și libpcap lucrează la un nivel mai mic decît filtrele de afișare a
Wireshark -ului și utilizează un mecanism semnificativ diferit. De aceea avem diferite sintaxe a
filtrelor de afișare și captare .
Captarea are loc prin luarea pachetelor de la un adaptor de r ețea și salvarea lor într -un fișier pe hard
disk.
Deoarece accesul necorespunzător al adaptorului de rețea necesită privilegii crescute, aceste funcții
sunt izolate în programul dumpcap. Numai acest program are nevoie de aceste privilegii, permițînd ca
partea principală a codului să ruleze cu privilegii de utilizator obișnuite. [4]

Tcpdump

Fig 1. 4 – Consola Tcpdump
Tcpdump – este un analizator de pachete obișnuit care lucreză sub linia de comandă. Acesta permite
să afișeze TCP/IP și alte pachete transmise și recepționate dintr -o rețea.
El afișează conținutul pachetelor de rețea. El poate citi pachete de pe un adaptor de rețea sau din
fișierul salvat precedent cu pachete. Tcpdump poate scrie pachete într -un fișier standard. Este de asemenea
posibi l de utilizat tcpdump pentru a intercepta și afișa comunicațiile unui alt utilizator sau calculator.
Utilizatorul cu privilegiile necesare pentru sistem acționînd ca un router sau gateway prin care trece trafic
necriptat cum ar fi Telnet sau HTTP poate fol osi tcpdump pentru a vizualiza ID -urile de conectare, parolele,
adresele URL și conținutul site -urilor vizionate sau orice altă informație necriptată. Utilizatorul poate aplica
de asemenea opțional un filtru bazat pe BPF pentru limita numărului de pachete văzute de tcpdump; acest
lucru face ca ieșirea să fie utilizabilă mai mult pe rețele cu un volum mare de trafic. [5]

20
Microsoft Network Monitor

Fig 1. 5 – Interfața Microsoft Network Monitor
Microsoft Network Monitor – este un soft pentru diagnosticarea unei rețele care monitorizează
rețelele locale și oferă o afișare grafică a statisticilor de rețea. Administratorii de rețea pot folosi această
statistică pentru a efectua sarcini de rutină cum ar fi localizarea unui server care rău funcțion ează sau care
primește un număr disproporționat de cereri.
În timp ce colectează informații din fluxul de date al rețelei, Network Monitor afișează adresa sursă
a calculatorului care a trimis un frame în rețea, adresa de destinație a calculatorului care a primit -o,
protocoalele folosite pentru a trimite frame -ul și datele sau o porțiune de mesaj. Dacă trebuie să de adîncit
în comportamentul rețelei atunci acest interval de statistici ar trebuie să fie mai mult decît suficient. [6]
Wireshark – un sniffer put ernic care poate decoda o mulțime de protocoale, o mulțime de filtre.
Tcpdump – un protocol limitat la decodare dar disponibil pe majoritatea platformelor UNIX.
Wireshark utilizează libpcap (pe windows winpcap) și poate folosi sintaxa filtrelor tcpdump ca filtru
de captare. De exemplu este posibil de folosit tcpdump pentru a captura pachete ca mai apoi să le analizăm
cu Wireshark.
Wireshark și Microsoft Network Monitor au o interfață grafică iar tcpdump folosește consola.
Wireshark utilizează o licență pub lică și codul sursă este public pentru toți, iar Microsoft Network
Monitor este gratis însă codul sursă nu este public.

21
Wireshark poate citi fișiere de captare în mai multe formate inclusiv formatul pcap și pcap -NG,
precum și diferite formate de la alți an alizatori de pachete, inclusiv formatul NetMon, NetMon poate citi
atît formatul său nativ, cît și formatul pcap; susține unele caracteristici ale formatelor sale native pe care
Wireshark -ul nu le conține.
Microsoft Network Monitor poate clasifica mesajele de rețea pe procese în timp ce Wireshark nu
poate.
1.2. Cerințele și scopurile față de sistem
Cea mai mare amenințare de securitate într -o companie îl reprezintă factorul uman. Pentru a menține
securitatea, fiecare companie ar trebui să adopte strategii de apărare și să creeze politici de securitate
actuale, proceduri și training -uri de securitate pentru angajați.
Riscurile pe care il poate produce factorul uman sunt: pierderea legitimației de către un angajat,
uitarea unei parole de acces, utilizarea unui echipament mobil în locuri sau rețele publice fără măsuri
specifice de securitate, configurar ea ironată accidentală a unui echipament, pierderea unor documente,
virusarea echipamentelor de rețea și multe altele. De aceea este necesar de respectat toate condițiile de
securitate impuse într -o companie.
Scopul principal al sistemului este captarea și analiza pachetelor transmise prin protocoale la nivel
de aplicație cum ar fi TELNET, FTP, SMTP, DNS, HTTP, SSH etc.
Sistemul realizat obține și prelucrează pachetele HTTP și SMTP deoarece aceste două protocoale
sunt unele din cele mai utilizate.
Protocolu l HTTP este un protocol utilizat pentru a transmite informații între un program de navigare
Web (browser) și un server Web, fiind un protocol de tip text. HTTP permite aducerea pe calculatorul local
a unor documente HTML, fișiere grafice, audio, animație s au video, programe executabile pe server sau un
editor de text. El este utilizat practic de toate browserele.
Protocolul HTTP se caracterizează prin faptul că nu memorează o succesiune a stărilor prin care
trece legătura client -server. Astfel fiecare tranz acție este independentă.
Serverul HTTP așteaptă pe portul 80, cereri de la clienți care de fapt sunt adrese ale documentelor
dorite. Clientul primește un document în mod text și dacă găsește în el legături către imagini și le vrea și pe
acestea le cere. A stfel transferul unei pagini hipertext constă din faptul că una sau mai multe sesiuni de
transfer a informației de la și către serverul. După primirea informațiilor browser -ul hotărăște în ce format
acestea vor fi afișate.

22

Fig 1. 6 – Diagramă a protocolului HTTP [3]

Protocolul SMTP (Simple Mail Transfer Protocol) este un protocol simplu, folosit pentru
transmiterea mesajelor în format electronic pe internet.
Protocolul SMTP specifică modul în care mesajele de poștă electronică sunt transferate între
procose SMTP aflate pe sisteme diferite. Procesul SMTP care transmite un mesaj este numit client SMTP,
iar procesul care primește mesajul este numit server SMTP.
Obiectivele protocolului SMTP este de a trimite mail -uri într -un mod eficient. El este independent
de sistemele care participă la comunicație, dacă se asigură un canal prin care datele să fie transmise într -un
mod ordonat.
SMTP folosește următorul model de comunicație: transmițătorul, ca urmare a unei cereri de
transmitere a email -ului, st abilește o legătură bidirecțională cu receptorul, care poate fi destinatarul final al
mail-ului, sau doar un intermediar. De aceea este necesar să se precizeze numele de host al destinației finale
precum și utilizatorului căruia îi este destinat mesajul.
Mod de funcționare a protocolului SMTP:
– Comunicarea între client și server se realizează prin texte ASCII. Inițial clientul stabilește
conexiunea către server și așteaptă ca serverul s ă-i răspundă cu mesajul “220 Service Ready”. Dac ă
serverul e supraîncărcat, poate să întrârzie cu trimiterea unui răspuns.
– După primirea mesajului cu codul 220, clientul trimite comanda HELO prin care își indică
identitatea.
– Odată ce comunicarea a fost stabilit ă, clientul poate trimite unul sau mai multe mesaje (pri n
comanda MAIL), poate încheia conexiunea sau poate folosi unele servicii precum verificarea
adreselor de e -mail.

23
– Serverul trebuie să răspundă după fiecare comandă indicând dacă aceasta a fost acceptată, dacă se
mai așteaptă comenzi sau dacă există erori î n scrierea acestor comenzi.
– Atunci când un mesaj este trimis către mai mulți destinatari, protocolul SMTP urmărește trimiterea
datelor din mesaj o singură data pentru toți destinatarii care aparțin aceluiași destinație. [3]

Comenzile specifice protocolulu i SMTP sunt următoarele:
– HELO – identificare computer expeditor
– EHLO – identificare computer expeditor cu cerere de mod extins
– MAIL FROM – specificare expeditor
– RCPT TO – specificarea destinatarului
– DATA – conținutul mesajului
– RSET – Reset
– QUIT – termin ă sesiunea
– HELP – ajutor pentru comenzi
– VRFY – verificare od adresă
Fig 1. 7 – Diagram a de funcționare a protocolului SMTP [3]
În figura 1. 7 este reprezentat cum are loc lucrul cu protocolul SMTP, folosind comenzile redate mai
sus. Utilizatorul se conectează la server după care îi trimite comenzi de executare.

24

Fig 1. 8 – Schema conectării sistemului
În figura 1. 8 este reprezentat ce reprezintă conectarea sistemului . Sistemul elaborat va conține un
switch M icrel KSZ 8895 cu proprietatea de port mirroring și un soft pentru vizualizarea și analiza pachetelor
de rețea. Sistemul elaborat va conține un switch M icrel KSZ 8895 cu proprietatea de port mirroring și un
soft pent ru vizualizarea și analiza pachetelor de rețea. Acesta va fi conectat la router și va primi toate
pachetele pentru ca mai apoi să le transmită la destinatari. Pe calculatorul 1 va fi rulat sistemul elaborat de
captare a pachetelor. Cum s -a specificat anter ior switch -ul are proprietatea de port mirroring.
Port mirroring este folosit pe un comutator de rețea pentru a trimite o copie a pachetelor de rețe
văzute pe un port de switch sau un VLAN întreg la o conexiune de monitorizare a rețelei pe un alt port de
comutare. Acest lucru este utilizat în mod obișnuit pentru dispozitivele de rețea care necesită monitorizarea
traficului, cum ar fi un sistem de detecție a intruziunilor.
Port mirroring este necesar pentru analiza traficului pe un comutator deoarece un comutator trimite
în mod normal pachete numai către portul la care a fost conectat dispozitivul de destinație. Configurația
port mirroring pe comutator pentru a trimite copii ale traficului unicast de la o interfață locală sau un VLAN
și a rula o aplicație de analizator pe un dispozitiv conectat la interfață sau VLAN.
De aceia pachetele destinate pentru calculatorul 2 vor fi copiate și transmise și la calculatorul 1 iar
cu ajutorul sistemului le vom putea vizualiza.
Din cauza care este cunoscută deja că fac torul uman poate crea o mulțime de probleme companiei,
este necesar de monitorizat acțiunile întreprinse de această persoană în orele de muncă.
În cazul în care o persoană va fi considerată suspectă că nu își îndeplinește bine lucrul sau din cauza
ei a avu t loc o scurgere de date, aceasta poate fi cu ușurință descoperită urmărind toate acțiunile ei în rețea,
pe ce site -uri activează în timpul muncii, ce email -uri trimite după care se va putea face o statistică pe care
vom putea analiza cu ce s -a ocupat în t impul orelor de muncă.
deployment Component Model
«device»
Calculator 1«device»
Router
«device»
Micrel KSZ8895«device»
Calculator 2

25
Soft-ul dat ar putea îmbunătăți activitatea companiei, deoarece cu un simplu soft și switch se va
putea realiza toate acestea, care de asemenea pot fi stocate pentru a fi păstrate pe o anumită perioadă de
timp, precum și filtrarea l or.

26
2. Descrierea comportamentală a sistemului
Pentru descrirea comportamentală a sistemului au fost elaborate un șir de diagrame folosind limbajul
de modelare UML (Unified Modelling Languaage) . El este un limbaj pentru modelare folosit în domeniul
software, la realizarea documentelor de specificații șim în general pentru comunicarea între ingineri.
Scopul unui limbaj de modelare este analiza și proiectarea programelor. Deci UML reprezintă
limbajul universal standard pentru dezvoltatori de software, pentru că el unește cele mai bune tehnici și
practici în domeniul ingineriei programării, care și -au dovedit eficiența în crearea unor sisteme complexe.
Pentru a înțelege arhitectura UML se i a în con siderare modul în care programele și limbajele de programare
sunt relaționate între ele. Există multe limbaje de programare, iar fiecare program în parte este dezvoltat
utilizând un limbaj specific. Toate aceste limbaje susțin diferite construcții declarat ive pentru a declara
datele și aspectele procedurale, precum și definirea logicilor care manipulează datele. Fiecare program
implementat într -un limbaj poate fi definit într -un model.
În standardul UML sunt definite următoarele diagrame:
– Class Diagram
– Object Diagram
– Component Diagram
– Deployment Diagram
– Use Case Diagram
– Activity Diagram
– Statechart Diagram
– Sequence Diagram
– Collaboration Diagram
Conceptele folosite în cadrul diagramelor UML se numesc elemente de modelare. Un element de
modelare are o sema ntică, o definiție formală și o reprezentare grafică, sau un simbol grafic cu care se
reprezintă în cadrul diagramelor.
Un element poate fi regăsit în mai multe tipuri de diagrame și pentru fiecare context există propriile
reguli. [9]
Pentru realizarea diag ramelor a fost folosit instrumentul Enterprise Architect. Enterprise Architect
este un instrument de modelare vizuală și de proiectare bazat pe OMG UML. Platforma suportă:
– Proiectarea și construirea de sisteme software.
– Modelarea proceselor de afaceri.
– Modelare domeniilor bazate pe industrie.

27
Enterprise Architect este folosit de întreprinderi și organizații pentru a nu numai modela arhitectura
sistemelor lor, ci și să proceseze implementarea acestor modele în întregul ciclu de viață a dezvoltării
aplicaț iilor. [10]

Fig 2.1. – Enterprise Architect interfața
2.1. Cazurile de utilizare pentru sistemul elaborat

Fig. 2.2 – Opțiunile utilizatorului
uc Use Case Model
UtilizatorScaneaza traficul
Creaza statistica
Salv eaza traficul
obtinut
Preia traficulFiltreaza pacheteSorteaza pachetele

28
În figura 2.2 este ilustrată diagrama care reprezintă posibilitățile utilizatorului de interacțiune cu
sistemu l. Utilizatorul poate scana traficul pentru a obține pachetele din rețea. La scanarea traficului este
posibil de a sorta pachetele după ordine și protocol. Deasemenea este posibil de a filtra pachetele, de a
obține doar pachetele transmise printr -un protoc ol obținut. Utilizatorul poate salva într -un fișier traficul
obținut pentru a interacționa mai tîrziu cu el, preluînd -ul din fișierul în care a fost salvat. Cu traficul obținut
sau preluat putem crea o statistică în formă de grafic sau diagramă pentru a mo nitoriza ce protocol a fost
folosit cel mai recent.

Fig. 2 .3 – Reprezentarea cum are loc procesul de scanare

În figura 2.3 este reprezentată diagrama care arată mai detaliat cum are loc procesul de scanare a
traficului din rețea. La lansarea scanării utilizatorul poate filtra sau sorta pachetele obținute. La sortarea
după ordine pachetele se vor sorta după id -ul lor iar în ca zul sortării după protocoale se vor sorta în
dependență de protocol adică se vor afișa pachetele pe rând pentru un protocol apoi pentru altul.
uc Use Case Model
Scaneaza traficulFiltreaza pachetele
Sorteaza pacheteleFiltreaza
protocoalele
Sorteaza dupa ordine
Sorteaza dupa
protocol«extend»«extend»«extend»
«extend»«extend»

29
2.2. Activitățile sistemului elaborat

Fig. 2.4 – Diagrama de activități pentru scanarea rețelei

În figura 2.4 este reprezentată diagrama de activități în care putem vizualiza procesul de scanare a
traficului rețelei. Utilizatorul accesează aplicația după care la lansarea procesului de scanare el poate aplica
sortarea, filtrarea sau poate lansa scanarea rețelei fără a aplica nimic. Deasemenea după scanare ele poate
salva datele obținute într -un fișier pentru a le folosi mai apoi la crearea unei statistici.

act Use Case Model
ActivityInitial
Scaneaza traficul
FiltrareSortare
ActivityFinal[Aplica sortarea][Aplica filtrarea]

30

Fig. 2.5 – Procesul de creare a statisticii

În figura 2.5 este reprezentată procesul de creare a unei statistici. Utilizatorul dorind să creeze
statistica trebuie să aleagă sub ce forma va fi ea creată, grafic sau diagramă, după care este se va crea o
statistică care va putea fi vizualizată de utilizator. În ac eastă statistică va fi reprezentat protocoalele și cît
de des au fost transmise prin ele pentru a observa la ce protocol trebuie de atras atenția pentru a asigura o
securitate mai bună a datelor.

act Use Case Model
ActivityInitial
Creaza statistica
Creaza grafic Creaza diagrama
ActivityFinal

31
2.3. Stările sistemului elaborat

Fig. 2 .6 – Diagrama de stări care reprezintă procesul de scanare a traficului

În figura 2.3.1 este reprezentată diagrama de stări în care putem vizualiza procesul de scanare a
traficului rețelei. Utilizatorul accesează aplicația după care la lansarea procesului d e scanare el poate aplica
sortarea, filtrarea sau poate lansa scanarea rețelei fără a aplica nimic. Deasemenea după scanare ele poate
salva datele obținute într -un fișier pentru a le folosi mai apoi la crearea unei statistici.

stm Use Case Model
Initial
Scaneaza traficul
Sorteaza Filtreaza
Final

32

Fig. 2 .7 – Diagrama de stări pentru reprezentarea creării unei statistici

În figura 2.7 este reprezentată procesul de creare a unei statistici. Utilizatorul dorind să creeze
statistica trebuie să aleagă sub ce forma va fi ea creată, grafic sau diagramă, după care este se va c rea o
statistică care va putea fi vizualizată de utilizator. În această statistică va fi reprezentat protocoalele și cît
de des au fost transmise prin ele pentru a observa la ce protocol trebuie de atras atenția pentru a asigura o
securitate mai bună a dat elor.

stm Use Case Model
Initial
Creaza statistica
Creaza graficCreaza diagrama
Final

33
2.4. Interacțiunile entitățiilor sistemului elaborat

Fig. 2 .8 – Diagrama de secvență pentru scanarea traficului

În figura 2 .8 este reprezentată diagrama de secvență pentru scanarea traficului. Utilizatorul deschide
interfața după care pornește scanar ea traficului. Comanda este transmisă către sistem iar sistemul execută
această comandă returnînd pachetele capturate. După executarea scanării utilizatorul trimite comanda de
sortare a pachetelor și sistemul returnează pachetele deja sortate.

sd Use Case Model
UtilizatorInterfata Sistem
1. Deschide interfata()
2. Deschide interfata()
3. Afiseaza interfata()
4. Afiseaza interfata()
5. Scaneaza traficul()
6. Scaneaza traficul()
7. Executa comanda()
8. Trimite pachetele()
9. Afiseaza pachetele()
10. Sorteaza pachetele dupa protocol()
11. Sorteaza pachetele()
12. Afiseaza pachetele()
13. Afiseaza pachetele()

34

Fig. 2 .9 – Salvarea pachetelor obținute
În figura 2 .9 este reprezentat detaliat procesul de salvare a traficului. Utilizatorul transmite comanda
de salvare a traficului după care este întrebat de utilizator directoria și numele la fișier unde vor fi salvate.
După introducerea datelor pachetele sunt salvate î ntr-un fișier cu posibilitatea de a prelua mai tîrziu datele
salvate.

Fig. 2 .10 – Procesul de creare a unei statistici
sd Use Case Model
UtilizatorInterfata Sistem
1. Salveaza traficul obtinut()
2. Salveaza traficul()
3. Alege directoriul si numele()
4. Alege directoriul si numele()
5. Introduce datele()
6. Trimite datele()
7. Salveaza datele()
8. Trimite rezultatul()
9. Afiseaza raspunsul()
sd Use Case Model
UtilizatorInterfata Sistem
1. Creaza o statistica()
2. Creaza statistica()
3. Alege formatul()
4. Alege formatul()
5. Alege formatul()
5. Trimite alegerea()
6. Creaza
statistica()
7. Afiseaza statistica()
8. Afiseaza statistica()

35
În figura 2.10 este reprezentat detaliat procesul de creare a unei statistici. Utilizatorul trimite
comanda către sistem după care este întrebat sub ce formă va fi elaborată statistica, după alegerea formatului
sistemul crează statistica și o afișează utilizatorului.

2.5. Reprezentarea fluxurilor de mesaje și legăturile dintre componentele sistemului

Fig. 2.11 – Diagrama de colaborare pentru scanarea traficului
În figura 2.11 este reprezentată diagrama de colaborare pentru scanarea traficului. Utilizatorul
deschide interf ața după care pornește scanarea traficului. Comanda este transmisă către sistem iar sistemul
execută această comandă returnînd pachetele capturate. După executarea scanării utilizatorul trimite
comanda de sortare a pachetelor și sistemul returnează pachete le deja sortate.

Fig. 2.12 – Diagrama de colaborare pentru salvare traficului
În figura 2.12 este reprezentat detaliat procesul de salvare a traficului. Utilizatorul transmite comanda de
salvare a traficului după care este întrebat de utilizator director ia și numele la fișier unde vor fi salvate.
După introducerea datelor pachetele sunt salvate într -un fișier cu posibilitatea de a prelua mai tîrziu datele
salvate.

Fig. 2.13 – Diagrama de colaborare pentru crearea unei statistici

36
În figura 2.13 este reprezentat detaliat procesul de creare a unei statistici. Utilizatorul trimite comanda către
sistem după care este întrebat sub ce formă va fi elaborată statistica, după alegerea formatului sistemul
crează statisti ca și o afișează utilizatorului.

2.6. Reprezentare schematică a structurii programului

Fig 2.14 – Diagrama de clasă a sistemului

În figura 2.14 este reprezentată diagrama de clasă a sistemului cu toate metodele. Cu ajutorul acestei
diagrama a fost repre zentat conceptul proiectului care mai tirziu va fi elaborat. Diagrama de clasă ne ajută
să ne facem un plan înaintea începerii proiectului. Clasa Main se va lansa la rularea programului, se va rula
o interfață grafică cu care va interacționa utilizatorul, de funcționalul acestei interfețe va răspunde
controllerul, iar în dependență de dorința utilizatorului se vor apela alte clase. Clasa controller raspunde de
funcționalul funcționalul interfeței programului, la tastarea unui buton ce acțiune se va îndeplini sau alte
funcționalități a sistemul ui. Clasa Packet este un prototip a unui pachet capturat, adică această clasă conține
class sample
GetPackets
Initializable
Controller
– capture: Button
– close: Button
+ data: ObservableList<String> = FXCollections.o… {readOnly}
+ data1: ObservableList<String> = FXCollections.o… {readOnly}
~ devlist: List<PcapIf>
~ dIP: byte ([]) = new byte[4]
– executorService: ExecutorService = Executors.newCa…
~ getI: GetInterface = new GetInterface()
– getPackets: GetPackets = new GetPackets()
~ http: int = 0
~ https: int = 0
– interfaces: ComboBox<?>
~ ip4: Ip4 = new Ip4()
+ list: ObservableList = FXCollections.o… {readOnly}
– listbox: ListView<String>
– listPacket: ListView<String>
~ msg: String
+ number: int = 0
~ observableI: ObservableList<String> = FXCollections.o…
~ other: int = 0
~ packetslist: ArrayList = new ArrayList()
~ protocol: String
– showAll: CheckBox
– showHTTP: CheckBox
– showHTTPS: CheckBox
– showSMTP: CheckBox
~ sIP: byte ([]) = new byte[4]
~ smtp: int = 0
– statistics: Button
– stop: Button
~ tcp: Tcp = new Tcp()
+ add(PcapPacket) : void
+ addAll(PcapPacket) : void
+ addHTTP(PcapPacket) : void
+ addHTTPS(PcapPacket) : void
+ addSMTP(PcapPacket) : void
+ initialize(URL, ResourceBundle) : void
~ onClickAll() : void
~ onClickClose() : void
~ onClickList() : void
~ onClickStart() : void
~ onClickStatistics() : void
~ onClickStop() : voidGetInterface
+ getInterfaces() : List<PcapIf>
Application
Main
+ main(String[]) : void
+ start(Stage) : void«interface»
Observ able
+ add(PcapPacket) : void
Packet
– destination: String
– id: int
– info: String
– length: int
– protocol: String
~ sb: StringBuilder = new StringBuilder()
– source: String
– time: long
+ Packet(int, String, String, String, int)
+ Packet(int, String, String, String, int, String)
+ Packet()
+ toString() : String
+ toStringPackets() : String~getI

37
informația necesară despre un pachet care trebuie afișată utilizatorului. Clasa GetInterface conține metoda
getInterface() care returnează to ate interfețele calculatorulu i.
2.7. Reprezentarea componentelor sistemului elaborat

Fig 2.15 – Diagrama de componente a sistemului

În figura 2.15 este reprezentată diagrama de componente pentru aplicație. Această diagramă
reprezintă componentele necesare pentru lucrul aplicației. Utilizatorul lucrează cu aplicația, iar aplicația
pentr u lucru are nevoie de librăria S harpPcap.
2.8. Arhitectura fizică a si stemului

Fig. 2.16 – Diagrama de amplasare pentru sistemul elaborate
După cum se observă în figura 2.16 utilizatorul este conectat la un swich prin care se va efectua
monitorizarea traficului. Administratorul rul ând aplicația poate monitoriza acțiunile utilizatorului pe
internet. Acesta obține toate pachetele transmise și primite pe care le poate analiza și crea o statistică despre
activitatea utilizatorului în internet.

cmp Use Case Model
Application
UserSharpPcap
deployment Use Case Model
Calculatorul administratorului«device»
Router
«device»
SwitchApplication
Calculatorul
Utilizatorului

38
3. Realizarea sistemului
În cadrul acestei lucrări a fost realizat un sistem de analiză a pachetelor din rețea. Această temă a
fost aleasă din cauza importanței rețelelor în viața de zi cu zi. Pe zi ce trece oamenii tot mai mult și mai
mult folosesc internetul în activitatea lor, deaceea a apărut și necesitatea protecției adecvate împ otriva
pierderii sau fraudării datelor.
3.1. Limbajul ales
Pentru realizarea sistemului a fost ales limbajul Java. Java este un limbaj de programare de nivel
înalt, dezvoltat de JavaSoft. Dintre caracteristicile principale ale limbajului amintim:
– Simplitate – Java este ușor de învățat, caracteristicile complicate (supraâncărcarea operatorilor,
moștenirea multiplă, șabloane) întâlnite în alte limbaje de programare sunt eliminate.
– Robustețe – elimină sursele frecvente de erori ce apar în programele prin eliminare a pointerilor,
administrarea automată a memoriei și eliminarea fisurilor de memorie printr -o procedură de
colectare a “gunoiului” care ruleaz ă pe fundal. Un program Java care a trecut de compilare are
proprietatea că la exepția sa nu “crap ă sistemul ”.
– Com plet orientat pe obiecte – elimină complet stilul de programare procedural; se bazează pe
încapsulare, moștenire, polimorfism.
– Ușurință în ceia ce privește programarea în rețea.
– Securitate, este cel mai sigur limbaj de programare disponibil în acest moment, asigurând
mecanisme stricte de Securitate a programelor concretizate prin: impunerea unor reguli stricte
pentru rularea programelor lansate pe calculatoare aflate la distanță.
– Este neutru din punct de vedere architectural.
– Portabilitate – cu alte c uvinte Java este un limbaj independent de platforma de lucru, aceeași
aplicație rulând fără nici o modificare, pe sistemme diferite cum ar fi Windows, UNIX sau
Macintosh, lucru care aduce economii substanțiale firmelor care dezvoltă aplicații pentru Intern et.
– Compilat și interpretat.
– Conține o librărie de clase și interfețe pentru domenii specific cum ar fi programarea interfețelor
utilizator (JFC, AWT, Swing), programare distribuită (comunicare TCP/IP, COBRA, RMI etc.).
– Permite programarea cu fire de execu ție (multithreaded).
– Dinamicitate.
– Este modelat după C și C++, trecerea de la C/C++ la Java făcându -se foarte ușor.
– Face diferența între literele mici și mari.
– Permite dezvoltarea aplicațiilor pentru internet – crearea unor documente Web îmbunătățite cu
animație și multimedia.
– Java Development Kit(JDK) este disponibil gratis. [11]

39
Limbajul de programare Java a fost folosit la dozvoltarea unor tehnologii dedicate rezolvării unor
probleme din cele mai diverse domenii. Aceste tehnologii au fost grupate în așa numitele platforme de
lucru, ce reprezintă seturi de librării scrise în limbajul Java, precum și diverse programe utilitare, folosite
pentru dezvoltarea de aplicații sau componente destinate unei anume categorii de utilizatori.
– J2SE (Standard Edition) – Este platforma standard de lucru ce oferă support pentru crearea de
aplicații independente și appleturi. De asemenea aici se include și Java Web Start ce furnizează o
modalitate extrem de facilă pentru lansarea și instalarea locală a programelor scrise în Ja va direct
de pe Web, oferind cea mai comodă soluție pentru distribuția și actualizarea aplicațiilor Java.
– J2ME (Micro Edition) – Folosind Java, programarea dispozitivelor mobile este extrem de simplă,
platforma de lucru J2Me oferind suportul necesar scrier ii de programe dedicate acestui scop.
– J2EE (Enterprise Edition) – Această platformă oferă API -ul necesar dezvoltării de aplicații
complexe, formate din componente ce trebuie să ruleze în sisteme eterogene, cu informațiile
memorate în baze de date distribui te etc.
În funcție de modul de execuție a aplicațiilor, limbajele de programare se împarte în două categorii:
– Interpretate: instrucțiunile sunt citite linie cu linie de un program numit interceptor și traduse în
instrucțiuni mașină. Avantajul acestei soluț ii este simplitatea și faptul că fiind interpretată direct
sursa programului obținem portabilitatea. Dezavantajul evident este viteza de execuție redusă.
– Compilate: Codul sursă al programelor este transformat de compilator într -un cod ce poate fi
executat direct de procesor, numit cod mașină. Avantajul este execuția extrem de rapidă,
dezavantajul fiind lipsa portabilității, codul compilat într -un format de nivel scăzut nu poate fi rulat
decât pe platforma de lucru pe care a fost compilat.
Limbajul Java comb ină ambele soluții, programele fiind atât interpretate cât și compilate. Așadar se
oferă la dispoziție un compilator responsabil cu transformarea surselor programului în așa numitul cod de
octeți, precum și un interpretor ce va executa respectivul cod de o cteți. [12]

3.2. Interfața grafică
Pentru crearea interfeței grafice a programului a fost folosită JavaFX care este un set de pachete
grafice și media care le permite dezvoltatorilor să proiecteze, să creeze, să testeze, să depaneze și să
implementeze aplicații client bogate care funcționează în mod consistent pe diferite platforme.
Interfețele in javafx pot fi personalizate. În JavaFx avem posibilitatea de a adauga stiluri css astfel
putem reda cu ușurință asp ectul după un design. Dacă este nevoie de un fundal de design web sau dacă e
necesar de a separa interfața utilizator și logica back -end se poate dezvolta aspecte de prezentare a interfeței
UI în limba de scripting FXML și putem folosi codul pentru o aplic ație logică.

40
JavaFX are următoarele caracteristici:
– Java API -uri – JavaFX este o bibliotecă Java care constă din clase și interfețe care sunt scrise în
cod Java native. API -urile sunt concepute să fie o alternativă prietenoasă cu limbile Java Machine
(Java VM), cum ar fi JRuby și Scala.
– FXML și Scene Builder – FXML este un limbaj declarativ de marcare declarativă XML pentru
construirea unei interfețe de utilizare a aplicației JavaFX. Un designer poate codifica în FXML sau
poate folosi JavaFX Scene Builder p entru a proiecta interactiv interfața grafică (GUI). Scenariul
Builder generează marcare FXML care poate fi portată la un IDE unde un dezvoltator poate
adăuga logica de afaceri.
– WebView – O componentă Web care folosește tehnologia WebKitHTML pentru a face posibilă
încorporarea paginilor web într -o aplicație JavaFX. JavaScript care rulează în WebView poate
apela Java API -uri, iar API -urile Java pot apela JavaScript care rulează în WebView.
– Swing interoperabilitate – Aplicațiile Swing existente pot fi actuali zate cu noi caracteristici
JavaFX, cum ar fi redarea grafică bogată și conținutul web încorporat.
– Build -in UI controls and CSS – JavaFx oferă toate controalele UI majore necesare pen tru a
dezvolta o aplicație completă. Componentele pot fi prelucrate cu teh nologii web cum ar fi CSS.
[13]
Pentru proiectarea unei interfețe i proiectului dat a fost folosită JavaFX Scene Builder. Pe măsură ce
se proiectează UI, Scene Builder crează un markup FXML care poate fi portat într -un mediu integrat de
dezvoltare (IDE), as tfel încât dezvoltatorii să poată adăuga logica de afaceri. [13]
Deci JavaFX Scene Builder este un instrument de aspect vizual care permite utilizatorilor să
proiecteze rapid interfețe de tip JavaFX fără codificare. Utilizatorii pot plasa componentele UI într-o zonă
de lucru, pot modifica proprietățile acestora, pot aplica stiluri, iar codul FXML pentru aspectul pe care îl
crează este generat automat în fondal. Rezultatul este un fișier FXML care poate fi apoi combinat cu un
proiect Java prin legarea UI -ului la logica aplicației. [14]

3.3. Tehnologii utilizate
Pentru realizarea sist emului au fost folosite un șir de librării standarde pentru limbajul Java, iar
pentru analiza rețelei a fost folosit jNetPcap API.
JnetPcap este o librărie pentru Java open -source. Ea conține:
– Un pachet pentru Java cu aproape toate apelurile native ale bibliotecii libpcap.
– Decodează packetul capturat în timp real.
– Oferă o mare bibliotecă de protocoale de rețea.
– Utilizatorul poate adăuga cu ușurință propria definire a protocolului fol osind java SDK.

41
– JNetPcap folosește un amestec de implementare native și java pentru o performanță optima de
decodare a pachetelor. [15]

3.4. Implementarea sistemului
Pentru captarea pachetelor direct dintr -o rețea în timp real, trebuie mai întâi de obținut o listă de
interfețe de rețea disponibile și apoi să alegem care din aceasta să fie deschisă. Numele interfețelor diferă
foarte mult pe fiecare platformă și pot schimba ordinea oricând, chiar și în același sistem.

public List<PcapIf> getInterfaces(){
List<PcapIf> alldevs = new ArrayList<PcapIf>();
StringBuilder errbuf = new StringBuilder();
int r = Pcap.findAllDevs(alldevs, errbuf);
if (r != Pcap.OK || alldevs.isEmpty()) {
System.err.printf("Can't read list of devices, error is %s",
errbuf.toString());
}
return alldevs;
}

Această funcție ne permite să obținem o lista de interfețe a calculatorului. Există o funcție oferită
de clasa Pcap pentru a recupera o listă de interfe țe. Această funcție este Pcap.findAllDevs(). Aceasta
returnează un cod de eroare întreg și umple lista cu obiecte PcapIf. Fiecare PcapIf este o interfață separată
găsită pe acest sistem. După care funcția getInterfaces() returnează o listă de obiecte pentr u lucrul în
continuare cu acestea.

int snaplen = 64 * 1024;
int flags = Pcap.MODE_PROMISCUOUS;
int timeout = 10 * 1000;
Pcap pcap = Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);

Odată ce avem interfața de rețea sub forma unui obiect, deschidem interfața pentru a începe a primi
pachete din rețea. Apelul principal pentru acest lucru este Pcap.openLive(). Această metodă are un număr
de parametri, dar cea mai importantă este numele interfeței de rețea. Numele acesteia este un șir și nu
obiectul însăși, dar se poate obține numele cu ușurință folosind device.getName unde device este o interfață.
Și astfel se obține numele interfeței de rețea și putem începe captarea de pachete.
Ceilalți parametri stabilesc diferite opțiuni libpcap care pot limita numărul de pachete capturate și
dacă înregistrarea ar trebui să depășească timpul când nu se primesc pachetele. Ultimul parametru este un
tampon de eroare, un obiect simplu StringBuilder care va fi completat cu orice avertismente sau mesaje de

42
eroar e. Dacă apelul la openLive() nu reușește, se va returna null din apel. Se poate verifica dacă este null și
aștepta ca un mesajul de eroare.
Prin setarea flags = Pcap.Mode_PROMISCUOUS este setată o configurație a plăcii de rețea care
face să treacă tot tra ficul pe care îl primește la unitatea centrală de procesare, mai degrabă decât doar
pachetele adresate acestuia, aceasta este o caracteristică folosită în mod obișnuit pentru sniffing -ul
pachetelor.
Dacă nu se setează acest mod, interfața de rețea va vedea numai pachetele de rețea care sunt adresate
în mod specific mașinii în care are loc capturarea. De asemenea, va vedea întotdeauna toate pachetele
difuzate și pot fi unele pachete multicast.
Parametrul snaplen = 64*1024 stabilește numărul maxim de octeți d e capturat din rețea. Dacă
pachetul care este capturat este mai mare decât lungimea stabilită, atunci pachetul va fi trunchiat în lungime.

PcapPacketHandler<String> jpacketHandler = ne w PcapPacketHandler<String>() {
public void nextPacket(Pc apPacket packet, String user) {
for (Observable observable : observables) {
observable.add(packet);
}
}
};
pcap.loop(1000, jpacketHandler, "");
pcap.close();
}

În acestă secvență de cod este creată un ciclu în interiorul căreia are loc capturarea pachetelor în
dependență de numărul care îl dorim. La rularea acestei secvențe de cod o singură copie a PcapPacket este
reutilizată pentru fiecare pachet din aceeași instan ță a ciclului de expediere pcap. Pachetul ajunge pe deplin
decodat și poate fi accesat imediat, dar nu poate fi pus pe o coadă sau altă depozitare permanentă. Trebuie
să fie procesată imediat de aplicația utilizatorului, aruncată sau copiată în locația de memorie mai
permanentă.

public Packet(int id, long time, String source, String destination, String protocol, int length)
{

this.id = id;
this.time = time;
this.source = source;
this.destination = destination;
this.protocol = protocol;
this.length = length;

43
}

Un pachet de rețea este conține multă informație care nu întotdeauna trebuie afișată. În cazul
sistemului realizat s -a pus în plan ca sa nu se afișeze pachetul întreg deodată ci doar informația cea mai
importantă, de aceia a fost creată o clasă Packet, obiectul de tipul căreia va conține toată informația cea mai
necesară despre un pachet. În secvența de mai sus este reprezentat constructorul acestei clase. Deci din tot
pachetul întreg se vor extrage id, timpul primirii/expedierii pachetului, adresa ip a sursei, adresa ip a
destinației, protocolul folosit și lungimea pachetului.

if (packet.hasHeader(ip4) && packet.hasHeader(tcp)){
if (tcp.source() == 80){
protocol = "HTTP";
sIP = ip4.source();
dIP = ip4.destination();
number++;
http++;
try {
data.add((new Packet(number,
packet.getCaptureHeader().timestampInMill is(), Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen(),
Inet4Address.getByAddress(sIP).getHostName())).toStringPac kets());

packetslist.add(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}

În această secvență de cod este reprezentat lucru cu un pachet. Întâi verifi căm header -ul după care
verificăm portul care îl folosește pentru a determina protocolul, obținem din pachet ip la sursă și la destinație
după care creăm un nou obiect Packet pentru și înscriem în el doar informația necesară pentru afișarea
inițială a pach etului la rularea sistemului după care înscriem în altă listă tot pachetul pentru a putea obține
mai multă informație despre un anumit pachet la dorința utilizatorului.

Stage primaryStage = new Stage();
Scene scene = new Scene(new Group());
Parent root = null;
try {
root = FXMLLoader.load(getClass().getResource("statistics.fxml"));
} catch (IOException ex) {
ex.printStackTrace();

44
}
primaryStage.setTitle("Statistics");
primaryStage.setScene(new Scene(root, 500, 500));
ObservableList<PieChart.Data> pieChart = FXCollections.observableArrayList(
new PieChart.Data("HTTP", http),
new PieChart.Data("HTTPS", https),
new PieCh art.Data("SMTP", smtp),
new PieChart.Data("OTHER", other));
final PieChart chart = new PieChart(pieChart);
chart.setTitle("Statistics");

((Group) scene.getRoot()).getChildren().add(chart);
primaryStage.setSc ene(scene);
primaryStage.show();

Crearea statisticii despre protocoalele utilizate are loc în felul următor. Se obține numărul de utilizări
a protocoalelor după care are loc crearea diagramei într -o scenă nouă.

45
4. Descrierea sistemului
La lansarea aplicației apare o fereastră în care utilizatorul trebuie să aleagă interfața de rețea pe care
urmează să o analizăm.

Fig 4 .1– Fereastra la lansarea aplicației

În primul rând pentru capturarea pachetelor se alege interfața care va fi analizată. Pentru aceasta se
tastează pe ComboBox care este alcătuit din lista de interfețe a calculatorului. Odată ce am tastat vizualizăm
toate numele tuturor interfețelor disponib ile și alegem una din ele. Afișarea listei de interfe țe este
demonstrată în figura 4 .2.

Fig 4 .2 – Fereastra pentru alegerea interfeței

După alegerea interfeței dorite utilizatorul tastând butonul start începe captarea pachetelor. Acestea
în timp real sunt afișate într -un listView care este situat mai jos te ComboBox -ul cu interfețe. După cum se

46
observă în interfață utilizatorul are posibilitatea de a alege și protocolul prin care pachetele circulă pentru a
le analiza, de asemenea el le poate afișa și p e toate. Î n listă sunt afișate obiectele de tip Packet cu informația
cea mai necesară pentru un pachet de rețea. D eci după cum se vede în figura 4 .2 în listView sunt
reprezentate pachetele cu următoarele atribute: id fiecărui pachet, ip adresa sursei de un de a venit, ip adresa
destinației, protocolul, mărimea pachetului și în cazul când este folosit protocolul http se afișează și
hostname -ul de unde a venit pachetul dacă acesta este sau în caz contrar tot ip adresa. În cazul când
utilizatorul este interesa t de un pachet anumit și dorește mai aprofundat să analizeze informația pe care o
conține acest pachet, la tastarea pe acest pachet în listView -ul de mai jos este afișat pachetul în întregime.

Fig 4 .3 – Vizualizarea pachetelor

După cum a mai fost menți onat la tastarea pe un pachet anumit în listView este reprezentată toată
informația despre acest pachet. Aceasta este reprezentat în figura 4 .3. Dec i cu alte cuvinte în figura 4 .3 este
reprezentată toată practic tot funcționalul sistemului de la alegerea interfeței analizate și până la vizualizare
mai detaliată a unui pachet . De această opțiune este nevoie în cazul când utilizatorul are nevoie de mai
multă informația decât i -a fost pus la dispoziție.

47

Fig 4 .4 – Vizualizarea detaliată a unu i pachet
În cazul când utilizatorul dorește să oprească captarea pachetelor este predispus butonul stop care
are destinația de a stopa captarea pachetelor din rețea pentru analiză sau crearea unei statistici despre
activitatea utilizatorului în rețea.
La tastarea Close Application aplicația va finisa toate procesele care au fost create pentru rularea
acesteia pe calculator, și își va opri activitatea.
Și a mai rămas o opțiune a sistemului de care nu s -a vorbit este crearea statisticii despre protocoalele
utilizate. Aceasta statistică este creată pentru a asigura unei companii sau unde va fi folosită această aplicație
o securitate adecvată. Vizualizând ce protocoale sunt folosite mai des de către angajați vom putea trage
concluzii din aceasta și securiza tra nsferul de date.
Deci la tastarea butonului Statistics apare o diagramă în care este reprezentată informația. Aceast a
se poate observa în figura 4 .5.

48

Fig 4 .5 – Crearea unei statistici

Această statistică ne demonstrează protocoalele cele mai des folosite pentru activitatea în rețea,
chiar de la prima vedere se observă că diagrama este foarte frendly și va putea fi înțeleasă de oricine. În
cazul dat se observă o mare activitate folosind protocolul HTTP.

49
5. Evaluarea proiectului din punct de ve dere economic
Evaluarea econimică a proiectului constă în calcularea bugetului planificat pentru realizarea
proiectului, distribuirea cheltuielilor și în caz de comercializarea a produsului finit determinarea eficienței
economice.

5.1. Scopul elaborării proiec tului din punct de vedere economic
La etapa actuală internetul a devenit o parte a vieții umane fiind folosit practic în toate domeniile.
Cel mai mare avantaj al său constituind accesul foarte rapid și facil la informații.
Softul elaborat în cadrul proiectului de licență este destinat ajutării companiilor la monitorizarea
activității lucrătorilor în cadrul internetului. Deci companiile vor putea economisi considerabil la
cumpărarea soft -ului și instruirea personalului pentru lucrul cu acesta, deoarec e sistemul are o interfață
prietenoasă care va fi înțeleasă de oricine. Cele mai principale avantaje a aplicației sunt:
Monitorizarea traficului de rețea pentru obținerea pachetelor de rețea a angajaților companiei ceea
ce va ajuta în asigurarea securităț ii adecvate a companiei și detectarea oricăror nereguli în rețea. Din punct
de vedere economic acest soft ar putea economisi companiei sume bune de bani și preveni o mulțime de
incidente ce pot avea loc.
Elaborarea unei statistici despre protocoalele cele mai des utilizate în cadrul companiei. Această
opțiune a sistemului detectează și crează o statistică despre protocoalele cel mai des utilizate de angajații
companiei, aceasta ajutând la menținerea și îmbunătățirea securității din cadrul companiei. Detect ând cele
mai des utilizate protocoale de comunicare compania poate întreprinde un șir de scenarii pentru a verifica
aceste protocoale la siguranța lor, și în caz de necesitate îmbunătățirea securității lor.
În cazul unui incident obținerea logurilor desp re toți angajații care au accesat internetul și obținerea
pachetelor pentru detectarea surselor cu care au comunicat aceștia.
Obținerea unor informații despre anumite protocoale ceea deasemenea va permite identificarea
breșurilor de securitate în cadrul companiei.
Scopul elaborării acestui proiect este asigurarea companiilor un nivel mai înalt de securitate și
asigurarea că regulile deja implementate sunt respectate.

5.2. Planul calendaristic în scopul optimizării volumului de timp și resurselor de muncă
necesare pentru elaborare
Un plan calendaristic al proiectului reprezintă distribuirea în timp a procesului de elaborare și
repartizare a sarcinilor și resurselor. Durata timpului pentru realizarea proiectului este de 3 luni, însă nu
trebuie de uitat de unel e situații neprevăzute care mai pot consuma timpul preconizat inițial.

50
Există 4 etape de planificare a timpului care vor descrie elaborarea proiectului și în conformitate cu
care se va da informația referitor la acesta.

Figura 5.1 – Etapele de planificar e

Obiective
Principalele obiective ale proiectului reese din eficiența produsului finit și necesitățile personale de
perfecționare profesională.
Datorită popularității mare a internetului și numărului mare de companii pe piață, aplicația dată are
un viito r prestabilit de întrebuințare, exemplu fiind o mulțime de aplicații similare folosite pe larg în cadrul
companiilor. Din cauza că sistemul dat nu este unicul pe piața de desfacere crează concurență, de aceia
această aplicație are niște opțiuni specifice e i care ii va ajuta la menținere pe piață și pe viitor aplicația poate
fi perfecționată.

Volumul de lucru
Volumul de lucru trebuie sistematizat în mai multe etape pentru crearea unui plan ce va spori timpul
realizării și eficientizării rezultatului. Reali zarea sistemului este divizată în trei etape:
– Etapa de pregătire
– Etapa de elaborare
– Etapa de finisare
Etapa de pregătire asupra proiectului s -a început din data de 17 octombrie 2017. La această etapă a
fost începută pregătirea de începere a proiectului, manifestându -se prin studiere și selectare a informației
ce ține de tema proiectului ce urmează a fi elaborat. De asemenea la această etapă au fost elaborate niște
diagrame schematice cum ar trebuie să arate proiectul.
Începând cu februarie și până la data de 2 martie 2018, a fost elaborată practica de diplomă în cadrul
căreia a fost realizată și evaluată prima parte a proiectului de 30%.
Pe la data de 19 aprilie 2018 a fost elaborat și prezentat 70% din proiect, unde a fost demonstrată o
mare parte din par tea practică a acestui proiect. Și în sfârșit în mai proiectul va fi prezentat integral unde va
fi evaluat și va rămâde de îl susținut în fața comisiei.

Timpul destinat realizării proiectului
Timpul destinat realizării proiectului este durata de la încep erea proiectului și până la finisarea lui.
În cazul proiectului dat data începerii este 17 octombrie 2017 și proiectul va fi finisat la data de 15 mai

51
2018. Pentru calcularea duratei se iau în considerație acțiunile necesare și rezervele pentru fiecare acț iune
în parte.
Formula conform căreia se calculează durata de timp necesară pentru efectuarea proiectului este
următoarea:
Durata acțiunii = data începerii – data finisării + rezerva de timp (zile).
Deci durata preconizată pentru proiectul dat de la etapa inițială și până la finisarea acestuia este de
115 zile calendaristice, incluzând și zilele oficiale de sarbatori și de odihnă ca zile libere.

Plan calendaristic
Planul calendaristic este reprezentat printr -un tabel în care sunt descrise fiecare acțiune și timpul
necesar pentru efectuarea fiecărei acțiuni planificate.
Tabelul 5.1 – Fondul de timp necesar elaborării proiectului

d/o Denumirea
sarcinilor Perioada Durata
Acțiunii
(zile) Executant Resurse
utilizate
începerea finisarea
1 Stabilirea temei
scopurilor, și
obiectivelor
aplicației 17.10.17 25.10.17 7 Inginer
programator
Internet
2 Analiza
domeniului de
studiu și
estimarea
costurilor de
implementare 26.10.17 10.11.17 12 Conducător
proiect
Internet
3 Elaborarea
caietului de
sarcini 11.11.17 28.11.17 12 Conducător
proiect Indicații
metodice
4 Modelarea
aplicației 29.11.17 28.12.17 27 Inginer
programator Internet /
forum
5 Proiectarea
aplicației 06.02.18 05.03.18 20 Inginer
programator Soft de
creare

52
Continuare tabelul 5.1
6 Configurarea
switch -ului 06.03.18 12.03.18 4 Inginer programator Internet
7 Implementarea
aplicației 13.03.18 16.04.18 25 Inginer programator Soft de
creare
8 Testarea
aplicației 17.04.18 19.04.18 2 Inginer programator Soft de
creare
9 Verificarea și
corectarea
erorilor software 20.04.18 14.05.18 13 Inginer programator Internet /
forum
10 Prezentarea
proiectului 15.05.18 15.05.18 1 Inginer programator Internet
Total 123

Cum a fost calculat durata elaborării proiectului constituie 123 de zile respectiv pentru conducătorul
proiectului ii revin 24 de zile, iar pentru inginerul programator 99 de zile.

5.3. Analiza SWOT
Analiza SWOT constă în evaluarea punctelor forte și slabe ale mediului intern și extern al
proiectului. Aceasta este necesară pentru identificarea raționalității proiectului. Analiza SWOT este
instrumentul cel mai renumit pentru verificarea și analiza pozi ției strategice de ansamblu a afacerii și a
mediului său. Scopul cheie al acesteia este de a identifica strategiile care vor crea un model specific afacere,
care va alinia cel mai bine resursele și capacitățile unei organizații la cerințele mediului în car e funcționează
firma. Cu alte cuvinte aceasta este fundamentală pentru evaluarea potențialului intern și a limitelor și
oportunităților & amenințărilor posibile din mediul extern. Examinează toți factorii din interiorul și din
afara firmei care influențeaz ă succesuluii. Un studiu consecvent al mediului în care firma operează ajută la
previzionarea tendințelor de schimbare și, de asemenea, ajută la integrarea acestora în procesul de luare a
deciziilor al organizației. [16]

53
Tabelul 5.2 – Matricea SWOT
MEDIU INTERN
Puncte forte:
1. avantaj față de concurenți prin pre ț și
opțiuni specifice doar sistemului dat ;
2. calitatea unică și inovativă a
produsului;
3. ingineri inovativi și creativi în cadrul
echipei;
4. personal tânăr și dianmic;
5. poziția eficientă pe piață;
6. posibilitate de extindere a serviciilor.
Puncte slabe:
1. insuficiența resurselor financiare;
2. marketing slab (lipsa canalelor de
promovare) ;
3. termen de timp limitat;
4. lipsa experienței;

Continuarea tabelului 5.2
MEDIU EXTERN
Oportunități:
1. dezvoltarea mediului de afaceri
global;
2. dezvoltarea tehnologică;
3. investiții din partea companiilor
cointeresate în domeniu;
4. dezvoltarea tehnologiilor
informaționale în țară;
5. deschiderea spre piețe oferite de alte
țări. Riscuri (pericole):
1. instabilitatea politică și ec onomică;
2. lipsa surselor de finan țare de către
întreprinderile mari;
3. apariția noilor concurenți sau a
concurenței neloiale;
4. apariția unor tehnologii mult mai
dezvoltate.

Această analiză a ajutat la:
– Evidențierea punctelor tari
– Îmbunătățire punctelor mai slabe
– Stabilirea obiectivelor pentru planificarea strategică

54
Calculul indicatorilor economici
Pentru început se calculează valoarea activelor utilizate pe termen lung pentru elaborarea
proiectului. (5.3)
Tabelul 5.3 – Imobilizări corporale

Nr.
d/o
Denumirea/
tipul activului
Un.
de
măs.
Preț
achiziție
pe unitate
MDL

Cantitatea
Valorare
de intrare,
MDL
1. Lenovo Ideapad 320 bucată 14650 1 14650
Total 17763

În urma evaluării activelor materiale și nemateriale pe termen lung s -a stabilit valoarea totală a
acestora de 14763 le

Consumuri directe de materiale
Următorul tabel reprezintă costurile legate de consumul direct de materiale utilizate în procesul
elaborării proiectului.
Tabelul 5.4 – Consumuri directe de materiale

Denumirea
Unitate
de
măsură Preț de
unitate,
MDL
Cantitatea Valoarea
totală
MDL
1 Micrel KSZ8895RQ bucată 3113 1 3113
2 Sistem de operare
Windows bucată 2320 1 2320
3 Microsoft Office bucată 2910 1 2910
4 Intellij Idea Community bucată – 1 –
5 USB Flash 8GB bucată 150 1 150
6 Hîrtie, formatul A4 foi 0,50 100 50
7 Pix albastru bucată 10 1 10
8 Copertare – 40 1 40
Total 8593

Consumuri directe privind retribuirea muncii
Aceste consumuri includ consumurile aferente retribuirii muncii personalului încadrat în
implementarea proiectului. În cazul proiectului dat sunt implicate 2 persoane: inginerul programator și
conducătorul de proiect.
Programatorul trebuie să posede următoarele abilități:

55
– Studii în domeniul IT;
– Cunoștințe în limbajul Java;
– Cunoștințe în programarea orientată pe obiecte;
– Experiență de configurare a echipamentelor de rețea;
Consumurile privind retribuirea muncii sunt indicate în tabelul 5.5.
Tabelul 5.5 – Consumuri directe privind retribuirea muncii

Nr.
d/o
Funcția
angajatului
Volumul
de
lucru,
zile Salariul
contractual
pe unitate
de timp,
(lei / zi)
FRM,
lei
1 Conducător proiect 24 400 9600
2 Inginer programator 99 350 34650
Total 123 X 44200

Fondul de remunerare a proiectului pentru perioada implementării este de 44200. Astfel pentru o
lună de muncă conducătorul primește 8800 lei (400 lei x 22 zile lucrătoare în o lună) și inginerul
programator va primi 7700 lei.
Urmează calculele efectuate pentru o perioadă de 12 luni.
Fondul social
Cfs – Cota contribuțiilor de asigurări sociale de stat obligatorii 23%.
FAS(23%) = 44200 x 23% = 10166 lei

Asigurarea medicală obligatorie
Cam(%) – cota de asigurare obligatorie de asistență medicală.
FAMtotal = 442 00 x 4,5% = 1989 lei

Fondul de remunerare totală a muncii
FRTM = FRMtotal + FAStotal + FAMtotal = 13500 + 3105 + 607,5 = 56355 lei

Calculul venitului net al programatorului
La această etapă se va calcula venitul anual și suma impozitului pe venitul anual al unuia din
participanții la elaborarea proiectului (inginerul programator) care reprezintă subiectul de impozitare.
Admitem că salariul brut anual al inginerului programator este aproximativ în valoare de 92400 lei (350
lei/zi x 22 zile x 12 luni = 92400 lei/an)

56
Pentru anul 2018 sunt stabilite următoarele cote de impozitare:
– 7% din venitul anual impozabil ce nu depășește suma de 33000 lei ;
– 18% din venitul anual impozabil ce depășește suma de 33000 lei;
– fondul de pensionare – 6% din salariul brut;
– fondul de asigurare medicală – 4.5% din salariul brut;
– fiecare contribuabil are dreptula la o scutire anuală personală de 11280 lei;
– contribuabil are dreptrul la o scutire anuală pentru fiecare persoană întreținută în sumă de 2520 lei;
În conformitate cu ace ste date se vor efectua următoarele calcule:
FP = 6% x 92400 = 5540 lei;
FAM = 4,5% x 92400 = 4158 lei.
Calculul venitului impozabil conform formulei:
VI=VB -FP-FAM -SP-SiP-SM
unde: VI – venitul impozabil; VB – venitul brut; FP – fondul de pensionare (asigurări sociale); FAM –
fondul de asigurare medicală; SP – scutirea personală; SiP – scutirea pentru persoana întreținută; SM –
scutirea personală majoră.
VI = 92400 – 5540 – 4158 – 11280 = 71422 lei
IV = 33000 x 7% + (71422 – 33000) x 18% = 2310 + 6915,96 = 9225,96 lei
Se calculează suma venitului net (VN), aplicând cotele de impozitare în vigoare conform formulei:
VN = VB – IV – FP – FAM
unde: VB – venitul brut; IV – impozitul pe venit; FP – fondul de pensionare (asigurări sociale); FAM –
prima de asigurare medicală.
VN = 92400 – 9225,96 – 5540 – 4158 = 73476,04 lei

Cheltuieli indirecte
Consumurile indirecte reprezintă consumurile volumul cărora nu depinde sau depinde neesențial de
volumul de producție. În tabe lul 5.6 sunt reprezentate consumurile indirecte.
Tabelul 5.6 – Cheltuieli indirecte

Denumirea
articolului
Unitatea de
măsură
Perioada
luni
Tarif / unitate,
lei
Valoarea totală,
lei
Arendă îcăpere Arendă/lună 5 4000 20000
Servicii internet Abonament/lună 5 250 1250
Total 21250

57

Amortizarea imobilizări corporale și necorporale
Uzura mijloacelor fixe reprezintă repartizarea sistematică a valorii uzurabile a mijloacelor fixe pe
parcursul duratei de funcționare utilă. Norma uzurii se calculează în funcție de durata utilizării activului.
Formula de calcul a fondului de amortizare este:
FA = (Mfi : DFU) x T1
Unde: FA – fondul amortizării, lei; MFi – valoarea de intrare; T1 – durata proiectului; DFU – durata
de funcționare utilă.
Tabelul 5.7 – FA(corporale)
Activele Mfi – valoarea
de intrare DFU – durata
de funcționare
utilă, (zile) TI – durata
proiectului, zile FA – fondul de
amortizare, lei
Lenovo Ideapad
320 14650 2000 123 756,45
Total 756,45

Pentru a reprezenta fondul de amortizare totală sumăm totalitatea fondurilor pentru fiecare activ material.
Ftotal = 756,45 lei

Costul de elaborare a proiectului
Tabelul 5.8 – Costul de elaborare a proiectului

Articole de calculație Valoarea,
lei Ponderea,
%
Consumuri directe de materiale 8593 9,88
Consumuri directe privind retribuirea, municii 44200 50,83
Contribuții de asigurări sociale de stat obligatorii (FAS) 10166 11,69
Prima de asigurare obligatorie de asistență medicală
(FAM) 1989 2,28
Cheltuieli indirecte 21250 24,43
Amortizarea imobilizărilor corporale 756,45 0,86

58
Total 86954,45 100

5.4. Calculul indicatorilor econimico -financiari
Având la dispoziție costul de producție poate fi identificat prețul de realizare și profitul posibil.
Metoda “up -down” identifică prețul de realizare în comparație cu alte produse, similare, de pe piață.
𝑃𝑟𝑧=𝑃𝑙𝑣+𝑇𝑉𝐴
unde: 𝑃𝑟𝑧 – prețul de real izare, 𝑃𝑙𝑣 – prețul de livrare, TVA – taxa pe valoarea adăugată(în marime de 20%
conform pieței)
Prețul de realizare al aplicație îl considerăm în valoare de 3500 lei.
𝑃𝑟𝑧=3500+20%= 4200 𝑙𝑒𝑖 (incl. TVA)
Calculăm venitul brut din vânzări:
𝑉𝑉𝐵=𝑞×𝑃𝑟𝑧
unde: q – numărul de copii planificate spre vânzare
Se consideră că anual vor fi comercializate 30 de copii ale aplicației
𝑉𝑉𝐵=30×4200 = 126000 𝑙𝑒𝑖 (incl. TVA)
Profitul brut se calculează conform formulei:
𝑃𝑏=𝑉𝑉𝑁 −𝐶𝑇
Unde: 𝑉𝑉𝑁–suma netă a venitului din vânzări fără TVA, CT – costul total de realizare a proiectului.
Deci 𝑉𝑉𝑁= 105000 lei.
𝑃𝑏=105000 – 86954,45 = 18045,55 lei
Profitul net se calculează prin deducerea taxelor și impozitelor în vigoare din suma impozabilă:
𝑃𝑛=𝑃𝑏−𝐼𝑣
unde: 𝐼𝑣 – impozitul pe venit conform legislației în vigoare 12%.
𝑃𝑛=18045,55 – 2165,46 = 15880,09 lei
Rentabilitatea costurilor
Rentabilitatea costurilor măsoară eficiența consumului de resurse umane și materiale.Se situează la
un nivel scăzut,în registrînd aproximativ aceeiași evoluție ca și rata rentabilității veniturilor, ce se calculează
conform formulei .
𝑅𝑐=(𝑃𝑏:𝐶𝑇) 𝑥 100%
𝑅𝑐= (15880.09 : 86954,45 ) x100%= 18,26%
5.5. Concluzie
La această etapă a fost realizată partea economică a proiectului pentru determinarea tuturor
cheltuielilor necesare pentru realizare, și stabilirea unui preț pe piață cu scopul de a obține profit. Astfel

59
efectuând calculele de mai sus s -a constatat că chel tuielile la realizarea proiectului se vor recupera după
vânzarea a câtorva copii a produsului. După un an de aflare pe piață se va obține un profit de 32,32%. Pentru
a obține un profit mai mare se poate de elaborat soft -uri ca acesta dar cu un funcțional m ai redus ceia ce va
permite scăderea din preț a produsului și va spori interesul față de acest produs.

60
Concluzie
După cum toți își dau seama în ziua de astăzi toată activitatea umană este în strânsă legătură cu
Internetul. Zi de zi oamenii folosesc rețele de socializare, privesc filme, află știri noi sau chiar în cadrul
muncii folosesc rețelele, și din această cauză multă informație personală circulă prin intermediul rețelelor
și necesită o protecție adecvată.
Elaborarând această lucrace fost proiectat un sistem de analiză a pachetelor transmise în rețea. A
fost analizat domeniul de studiu și sisteme analogice sist emului ce urmează a fi elaborat pentru a pune
accentul pe ceva inovativ ce nu este în sistemele date.
Elaborînd diagramele comportamentale a sistemului s -a constatat funcționalul lui și a fost înțeles
mai bine sistemul ce va fi creat. Diagrama use case ne -a ajutat să definim toată funcționalitatea lui și
interacțiunea acestuia cu utilizatorul. Diagramele de stare și activitate definesc pas cu pas procesele
executate de sistem pas cu pas și cu toate opțiunile posibile. Diagramele de descriere structurală a si stemului
ne-a ajutat să construim schematic structura sistemului și componentele din care va fi compus.
Sistemul elaborat ii oferă utilizatorului o interfață frendly cu care acesta interacționează și nu are
nevoie de instruiri adiționale. De asemenea sist emul datorită switch -ului cu care interacționează oferă
posibilitatea de a fi folosit oriunde este nevoie, acest switch poate fi conectat cu ușurință oriunde este
nevoie. Un mare plus al acestuia il constituie faptul că orice metodă de a îl localiza se va finisa cu insucces
deoarece el va fi ascuns de toate metodele de detectare a arhitecturii rețelei. Folosind sistemul putem face
port mirroring a unui sau mai multe calculatoare fără ca aceștia sa -și dea seama de acest fapt, obținând
informații despre toată activitatea acestora în cadrul rețelei.
Acest sistem poate cu ușurință dezvoltat și se poate adăuga funcționalul necesar, ca protocoale pe
care dorim să le analizăm până la și metode de decriptare a pachetelor criptate ca HTTPS, SSL, TLS și
altele.
Asupra proiectului se poate lucra atât prin modificarea, dezvoltarea și adăugarea funcționalului cât
și putem lucra asupra dezvoltării switch -ului sau procurarea unui nou switch mai performant.

61
Bibliografie
1. Internetul [Resurs ă electronică ], Regim de acces: http://rangfort.ro/forum/topic/8557 –
internetul/
2. Descrierea topologiilor rețelelor de date [Resurs ă electronică ], Regim de acces:
http://www.afahc.ro/ro/facultate/cursuri/retele_note_curs.pdf
3. Protocoale TCP -IP [Resirsă electronică ], – Regim de acces: http://www.ctptc –
airinei.ro/catinfo/1Protocoalele%20TCPIP.doc
4. Wireshark [Resur ă electronică ], Regim de acces: https://www.wireshark.org/docs/
5. Tcpdump [Resurs ă electronică , Regim de acces: https://danielmiessler.com/study/tcpdump /
6. Microsoft Network Monitor [Resursă electronică ], Regim de acces:
https://technet.microsoft.com/en -us/library/cc938655.aspx
7. Packet Sniffer – A Comparative Study , Tcpdump VS. Wireshark VS. Colasoft Capsa
[Resur ă electronică ], Regim de acces : https://community.spiceworks.com/topic/601418 –
packet -sniffer -a-comparative -study -tcpdump -vs-wireshark -vs-colasoft -capsa
8. Difference between sniffer tools [Resurs ă electronică ], Regim de acces:
https://networkengineering.stackexchange.com/questions/10073/difference -between -sniffer –
tools
9. Despre UML [Resursă electronică ], Regim de acces:
http://stst.elia.pub.ro/news/IS/Teme%20IS%202011_12/Berevoianu%20Epure%20Tinta%20U
ML.doc
10. Enterprise Architect [Resursă electronică ], Regim de acces:
http://sparxsystems.com/products/ea/
11. Introducere în limbajul de programare Java [Resurs ă electronică ], Regim de acces:
http://www.cs.ubbcluj.ro/~vcioban/Geografie/MasterGeoPOO/Curs/CursJava.docx
12. Curs Practic de Java [Resurs ă electronică ], Regim de acces:
http://web.info.uvt.ro/~iordan/P_III/Cristian_Frasinaru -Curs_practic_de_Java.pdf
13. JavaFX Overview [Resu rsă electronică ], Regim de acces;
https://docs.oracle.com/javafx/2/overview/jfxpub -overview.htm
14. JavaFX Scene Builder [Resurs ă electronică ], Regim de acces:
http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder -info-
2157684.html
15. JNetPcap version 1.4 [Resursă electronică ], Regim de acces:
http://jnetpcap.com/docs/javadoc/jnetpcap -1.4/index.html
16. Analiza SWOT [Resursă electronică ], Regim de acces: http://caravanacarierei.bns.ro/wp –
content/uploads/sites/2/2013/01/analiza -swot.pdf

62
17. Legea nr. 355 -XVI din 23.12.2005 cu privire la sistemul de salarizare în sectorul bugetar //
Monitorul Oficial al R.Moldova nr.35 -38/148 din 03.03.2006.
18. Legea Republicii Moldova cu privire la antreprenoriat și întreprinderi nr. 845 -XII din
3.01.1992.
19. Legea Republicii Moldova cu privire la înregistrarea de stat a persoanelor juridice și a
întreprinzătorilor individuali nr. 220 din 19.10.2007.
20. Legea Republicii Moldova privind societățile cu răspundere limitată nr. 135 din 14.06.2007.
21. Legea Republicii Moldova privind societățile pe acțiuni nr. 1134 -XIII din 2.04.1997.
22. Hotărîrea Guvernului nr. 473 din 11.06.2002 „Cu privire la salarizarea angajați lor din unitățile
cu autonomie financiară” // Monitorul Oficial al Republicii Moldova nr. 79 din 2002.
23. Hotărîrea Guvernului nr.15 din 19 februarie 2009 „Privind stabilirea cuantumului salariului
minim pe țară”.
24. Dodu A., Gumeniuc I. Managementul întreprind erii. UTM, 2015.
25. Dodu A., Gumeniuc I. Managementul general. Editura „Tehnica -UTM”, 2016

63
Anexa A
Main.java
package sample;

import javafx.application.Application;
import javafx.application.Platform;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;

public class Main extends Application {

@Override
public void start(Stage primaryStage) throws Exception{
Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
primaryStage.setTitle("Packet Capture");
primaryStage.setScene(new Scene(root, 1000, 700));
primaryStage.show();

}

public static void main(String[] args) {
launch(args);
}
}

64
Anexa B
GetInterface.java

package sample;

import org.jnetpcap.Pcap;
import org.jnetpcap.PcapIf;
import org.jnetpcap.packet.PcapPacket;
import org.jnetpcap.packet.PcapPacketHandler;
import java.util.ArrayList;

public class GetPackets {

private ArrayList<Observable> observables = new ArrayList<>();

public int st = 0;
Pcap pcap;
public void registerObservable(Observable observable){
observables.add(observable);
}

public void getPacket(PcapIf device) throws InterruptedException {

StringBuilder errbuf = new StringBuilder();

int snaplen = 64 * 1024;
int flags = Pcap.MODE_PROMISCUOUS;
int timeout = 10 * 1000;
pcap = Pcap.openLive(device.getName(), snaplen, flags, timeout, errbuf);

if (pcap == null) {
System.err.printf("Error while opening device for capture: "
+ errbuf.toString());

}
PcapPacketHandler<String> jpacketHandler = new PcapPacketHandler<String>() {

public void nextPacket(PcapPacket packet, String user) {

for (Observable observable : observables) {
observable.add(packet);
}
if (st == 1){
pcap.close();
}
}
};
pcap.loop(Integer.M AX_VALUE, jpacketHandler, "");

}

}

65

Anexa C
Packet.java
package sample;

public class Packet {
private int id;
private long time;
private String source;
private String destination;
private String protocol;
private int length;
private String info;

StringBuilder sb = new StringBuilder();

@Override
public String toString() {
sb.setLength(30);
return sb.append("id=" + id).append(" \t\tsource=" + source).append("
\t\tdestination=" + destination).append(" \t\tprotocol=" + protocol).append(" \t\tlength=" +
length).toString();

}

public Packet(int id, String source, String destination, String protocol, int length) {

this.id = id;
this.source = source;
this.destination = destination;
this.protocol = protocol;
this.length = length;
}

public String toStringPackets() {
sb.setLength(30);
return sb.append("id=" + id).append(" \t\tsource=" + source).append("
\t\tdestination=" + destination).append(" \t\tprotocol=" + protocol).append(" \t\tlength=" +
length).append(" \t\tinfo=" + info).toString();
}

public Packet(int id, Stri ng source, String destination, String protocol, int length,
String info){
this.id = id;
this.source = source;
this.destination = destination;
this.protocol = protocol;
this.length = length;
this.info = info;
}

public Packet(){}
}

66
Anexa D
GetPackets.java
package sample;

import org.jnetpcap.Pcap;
import org.jnetpcap.PcapIf;
import org.jnetpcap.packet.PcapPacket;
import org.jnetpcap.packet.PcapPacketHandler;
import java.util.ArrayList;

public class GetPackets {

private ArrayList<Observable> observables = new ArrayList<>();

public int st = 0;
Pcap pcap;
public void registerObservable(Observable observable){
observables.add(observable);
}

public void getPacket(PcapIf device) throws InterruptedException {

StringBuilder errbuf = new StringBuilder();

int snaplen = 64 * 1024;
int flags = Pcap.MODE_PROMISCUOUS;
int timeout = 10 * 1000;
pcap = Pcap. openLive(device.getName(), snaplen, flags, timeout, errbuf);

if (pcap == null) {
System.err.printf("Error while opening device for capture: "
+ errbuf.toString());

}
PcapPacketHandler<String> jpacke tHandler = new PcapPacketHandler<String>() {

public void nextPacket(PcapPacket packet, String user) {

for (Observable observable : observables) {
observable.add(packet);
}
if (st == 1){
pcap.close();
}
}
};
pcap.loop(Integer.MAX_VALUE, jpacketHandler, "");

}

}

67
Anexa E
Controller.java
package sample;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.concurrent.Task;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Group;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.chart.PieChart;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.ListView;
import javafx.stage.Stage;
import org.jnetpcap.PcapIf;
import org.jnetpcap.packet.PcapPacket;
import org.jnetpcap.protocol.network.Ip4;
import org.jnetpcap.protocol.tcpip.Tcp;

import java.io.IOException;
import java.net.Inet4Address;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Controller extends GetPackets implements In itializable, Observable{

private ExecutorService executorService = Executors.newCachedThreadPool();
public static final ObservableList<String> data =
FXCollections.observableArrayList();

public static final ObservableList<String> data1 =
FXCollections.observableArrayList();

private GetPackets getPackets = new GetPackets();

GetInterface getI= new GetInterface();
ObservableList<String> observableI = FXCollections.observableArrayList();
List<PcapIf> devli st;

public static final ObservableList list = FXCollections.observableArrayList();

ArrayList packetslist = new ArrayList();
Tcp tcp = new Tcp();
Ip4 ip4 = new Ip4();
byte[] sIP = new byte[4];
byte[] dIP = new byte[4];
String protocol;
String msg;

int http = 0;
int smtp = 0;
int https = 0;
int other = 0;

public static int number = 0;

@FXML
private ComboBox<?> interfaces;

68
@FXML
private ListView<String> listbox;

@FXML
private Button capture;

@FXML
private ListView<String> listPacket;

@FXML
private CheckBox showSMTP;

@FXML
private Button close;

@FXML
private CheckBox showHTTP;

@FXML
private CheckBox showHTTPS;

@FXML
private CheckBox showAll;

@FXML
private Button statistics;

@FXML
private Button stop;

@FXML
void onClickStart(){
listbox.setItems(data);
getPackets.registerObservable(this);
Task<Void> retrive = new Ta sk<Void>() {
@Override
protected Void call() throws Exception {

for (int i = 0; i < devlist.size(); i++){
if
(devlist.get(i).getName().contains(interfaces.getSelectionModel().getSelectedItem().toString()
)){
getPackets.getPacket(devlist.get(i));
}
}
return null;
}

@Override
protected void succeeded(){
super.succeeded();
}
};
executorService.execute(retrive);
}

@FXML
void onClickStatistics() {
Stage primaryStage = new Stage();
Scene scene = new Scene(new Group());
Parent root = null;
try {
root = FXMLLoader.load(getClass().getResource("statistics.fxml"));
} catch (IOException ex) {
ex.printStackTrace();
}
primaryStage.setTitle("Statistics");
primaryStage.setScene(new Scene(root, 500, 500));
ObservableList<PieChart.Data> pieChart = FXCollections.observableArrayList(

69
new PieChart.Data("HTTP", http),
new PieChart.Data("HTTPS", https),
new PieChart.Data("SMTP", smtp),
new PieChart.Data("OTHER", other));
final PieChart chart = new PieChart(pieChart);
chart.setTitle("Statistics");

((Group) scene.getRoot()).getChildren().add(chart);
primaryStage.setScene(scene);
primaryStage.show();
}

@FXML
void onClickList() {
data1.clear();
int selectedIndex = listbox.getSelectionModel().getSelectedIndex() ;
for (int i = 0; i < packetslist.size(); i++){
if (i == selectedIndex){
data1.add(packetslist.get(i).toString());
}
listPacket.setItems(data1);
}
}

@Override
public void init ialize(URL location, ResourceBundle resources) {
devlist = getI.getInterfaces();
for (int i = 0; i < devlist.size(); i++){
observableI.addAll(devlist.get(i).getName());
}
ComboBox comboBox = new ComboBox(observableI);
comboBox.setItems(observableI);
interfaces.setItems(comboBox.getItems());

}

@Override
public void add(PcapPacket packet) {

if(showAll.isSelected()){
addAll(packet);
}
if(showHTTP.isSelected()){
addHTTP(packet);
}
if (showSMTP.isSelected()){
addSMTP(packet);
}
if (showHTTPS.isSelected()){
addHTTPS(packet);
}

}

@FXML
void onClickStop() {
getPackets.st = 1;
}

@FXML
void onClickAll() {
showHTTP.setSelected(true);
showSMTP.setSelected(true);
showHTTPS.setSelected(true);
}

@FXML
void onClickClose() {
System.exit(0);

70
}

public void addHTTP(PcapPacket packet){

if (packet.hasHeader(ip4) && packet.hasHeader(tcp)) {
if (tcp.source() == 80) {
protocol = "HTTP";
sIP = ip4.source();
dIP = ip4.destination();
number++;
http++;
try {
data.add((new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen(),
Inet4Address.getByAddress(sIP).getHostName())).toStringPackets());

packetslist.add(packet) ;
} catch (UnknownHostException e) {
e.printStackTrace();
}
} else if (tcp.destination() == 80) {
protocol = "HTTP";
sIP = ip4.source();
dIP = ip4.destination();
number++;
http++;
try {
data.add((new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddre ss(dIP).toString(), protocol,
packet.getCaptureHeader().caplen(),
Inet4Address.getByAddress(dIP).getHostName())).toStringPackets());
packetslist.add(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
}

public void addSMTP(PcapPacket packet) {
if (packet.hasHeader(ip4) && packet.hasHeader(tcp)) {
if (tcp.source() == 25) {

sIP = ip4.source();
dIP = ip4.destination();
protocol = "SMTP";
number++;
smtp++;
try {
data.add(new Packet(number, Inet4Address.getByAddres s(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add(packet + packet.toHexdump());
} catch (UnknownHostExcep tion e) {
e.printStackTrace();
}
} else if (tcp.destination() == 25) {
sIP = ip4.source();
dIP = ip4.destination();
protocol = "SMTP";
number++;
smtp++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).t oString());
packetslist.add(packet + packet.toHexdump());
} catch (UnknownHostException e) {
e.printStackTrace();

71
}
}
}
}

public void addHTTPS(PcapPacket packet) {
if (packet.hasHeader(ip4) && packet.hasHeader(tcp)) {
if (tcp.source() == 443) {
sIP = ip4.source();
dIP = ip4.destination();
protocol = "HTTP S";
number++;
https++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
}
} else if (tcp.destination() == 443) {
sIP = ip4.source();
dIP = ip4.destination();
protocol = "HTTPS";
number++;
https++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP) .toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
}

public void addAll(PcapPacket packet){
if (packet.hasHeader(ip4) && packet.hasHeader(tcp)) {
if (tcp.source() == 80) {
protocol = "HTTP";
sIP = ip4.source();
dIP = ip4.destination();
number++;
http++;
try {
data.add((new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen(),
Inet4Address.getByAddress(sIP).getHostName())).toStringPackets());

packetslist.add(packet) ;
} catch (UnknownHostException e) {
e.printStackTrace();
}
} else if (tcp.destination() == 80) {
protocol = "HTTP";
sIP = ip4.source();
dIP = ip4.destination();
number++;
http++;
try {
data.add((new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen(),
Inet4Address.getByAddress(dIP).getHostName())).toStringPackets());
packetslist.add(packet);
} catch (UnknownHostException e) {

72
e.printStackTrace();
}
}
if (tcp.source() == 25) {

sIP = ip4.source();
dIP = ip4.destination();
protocol = "SMTP";
number++;
smtp++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), pr otocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add(packet + packet.toHexdump());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
if (tcp.destination() == 25) {
sIP = ip4.source();
dIP = ip4.destination();
protocol = "SMTP";
number++;
smtp++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add (packet + packet.toHexdump());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
if (tcp.source() == 443) {
sIP = ip4.source();
dIP = ip4. destination();
protocol = "HTTPS";
number++;
https++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address. getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
}
} if (tcp.destination() == 443) {
sIP = ip4.source();
dIP = ip4.destination();
protocol = "HTTPS";
number++;
https++;
try {
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add (packet);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
else {
sIP = ip4.source();
dIP = ip4.destination();
protocol = "OTHER";
number++;
other++;
try {

73
data.add(new Packet(number, Inet4Address.getByAddress(sIP).toString(),
Inet4Address.getByAddress(dIP).toString(), protocol,
packet.getCaptureHeader().caplen()).toString());
packetslist.add(packet);
} catch (UnknownHostException e) {
e.printSta ckTrace();
}
}
}
}

}

Similar Posts

  • Conduita obstetricala si neonatala in nasterea prematura. [613215]

    1 TEZĂ DE ABILITARE MEDICINA MATERNO -FETALA INTRE CERCETARE FUNDAMENTALA SI SANATATEA REPRODUCTIVA A FEMEII Domeniul: MEDICINA Autor : Prof. Univ.Dr.MOGA MARIUS ALEXANDRU Universitatea Transilvania din Bras ov BRA ȘOV, 2017 Universitatea Transilvania din Brașov Medicina materno -fetala: intre cercetare fundamentala MOGA Marius Alexandru si sanatatea reproductive a femeii 2 CUPRINS (A) Summary ………………………….. ……………………………..

  • Heinrich-Böll-Stiftung [611434]

    Heinrich-Böll-Stiftung Die grüne politische Stiftung Schumannstraße 8 10117 Berlin Telefon 030.285 34-0 Fax 030.285 34-109 www.boell.de Borderline EU Border Surveillance Initiatives An Assessment of the Costs and Its Impact on Fundamental Rights A research paper written by Dr. Ben Hayes Mathias Vermeulen Berlin, May 2012, B O R D E R L I N E   EU Border Surveillance  Initiatives   An Assessment  of the Costs and Its Impact on Fundamental  Rights    A research paper written by  Dr. Ben Hayes  …

  • Adobe Creative Suite 6 Product Installation Instructions [630407]

    Adobe® Creative Suite® 6 Product Installation Instructions Welcome to the Adobe Creative Suite 6. This document contains instructions for installation and uninstallation of CS6 suites and standalone products. • Install your software • Uninstall your software • Support • Release Notes Install your software Install a Creative Suite 6 suite or standalone product from disc…

  • Vklicenta Refacuta Zaharia Alexandru 23.01.2019 V0.3 [604069]

    MINISTERULEDUCAȚIEINAȚIONALE ACADEMIADEMUZICĂ„GHEORGHEDIMA”CLUJ LUCRAREDELICENȚĂ PiotrIliciCeaikovskișisimfoniiledestinului: aIV-a,înfaminor,aV-aînînmiminorșiaVI-aînsiminor,„Pathétique” Coordonator:Prof.Univ.Dr.ECATERINABANCIU Absolvent: [anonimizat] 2019 3CUPRINS ARGUMENT………………………………………………………………………………………………………………………………………..4 CAPITOLULI……………………………………………………………………………………………………………………………………..6 I.1.OPERSPECTIVĂCULTURAL–ISTORICĂASUPRAEPOCIICEAIKOVSKIENE……………..6 I.2.PARCURSULGENERALALCREAȚIEISIMFONICECEAIKOVSKIENE…………………………..7 I.3.PERSONALITATEACOMPOZITORULUI………………………………………………………………………….8 I.4.SEMNIFICAȚIACREAȚIEILUICEAIKOVSKIÎNISTORIASIMFONIEI……………………………9 CAPITOLULALII-LEA…………………………………………………………………………………………………………………….12 II.1.SIMFONIANR.4ÎNFAMINOR,OP.36…………………………………………………………………………12 II.1.1.PARTEAI–Andantesostenuto–Moderatoconanima…………………………………………………12 II.1.2.PARTEAaII-a–Andantinoinmododicanzona…………………………………………………………..20 II.1.3.PARTEAaIII-a–Scherzzo:Pizzicatoostinato–Allegro………………………………………………24 II.1.4.PARTEAaIV-a–Allegroconfuoco…………………………………………………………………………….30 II.2.ASPECTESEMANTICE………………………………………………………………………………………………….35 CAPITOLULALIII-LEA…………………………………………………………………………………………………………………..37 III.1.SIMFONIANR.5ÎNMIMINOR,OP.64…………………………………………………………………………37 III.1.1.PARTEAI–Andante–Allegroconanima………………………………………………………………….37 III.1.2.PARTEAaII-a–Andantecantabileconalcunalicenza………………………………………………..44 III.1.3.PARTEAaIII-a–Allegromoderato…………………………………………………………………………..50 III.1.4.PARTEAaIV-a–Andantemaestoso–Allegrovivace………………………………………………….55 III.2.ASPECTESEMANTICE………………………………………………………………………………………………..62 CAPITOLULALIV-LEA…………………………………………………………………………………………………………………..65 IV.1.SIMFONIANR.6ÎNSIMINOR,OP.74…………………………………………………………………………65 IV.1.1.PARTEAI–Adagio–Allegronontroppo…………………………………………………………………..65 IV.1.2.PARTEAaII-a–Allegrocongrazia…………………………………………………………………………..73 IV.1.3.PARTEAaIII-a–Allegromoltovivace………………………………………………………………………77 IV.1.4.PARTEAaIV-a–Adagiolamentoso…………………………………………………………………………..82 IV.2.ASPECTESEMANTICE………………………………………………………………………………………………..86 CONCLUZII……………………………………………………………………………………………………………………………………….90 BIBLIOGRAFIE…………………………………………………………………………………………………………………………………94 CĂRȚI.PUBLICAȚII…………………………………………………………………………………………………………….94 PARTITURI…………………………………………………………………………………………………………………………..97 DISCOGRAFIE…………………………………………………………………………………………………………………………………..98 WEBOGRAFIE…………………………………………………………………………………………………………………………………..99 ARGUMENT __________________________________________________________________________________________________________ 4ARGUMENT Primulmeucontactcumareaculturăclasicărusăs-arealizatprinintermediul capodoperelorliterarealeunorscriitoriprecumGogol,Dostoievski,Tolstoi,Cehov– maeștridenecontestataianalizeiadâncimilornebănuitealesufletuluiomenesc.Apoi, amluatcunoștințăcucreațiamuzicalăclasicărusească,inspiratăînbunămăsurădin inepuizabilulfolclorrusesc,aunuiMusorgskisauRimski-Korsakov.Întâlnireacu Ceaikovskiaconstituitorevelație.Marelecompozitorîmbinăotehnicădecompoziție defacturăclasică,cuoscriiturăfluidășicuunimaginativmelodic,timbralșidinamic inepuizabil.Muzicasaoglindeșteîntr-omanierădramaticăluptaprometeicădintreființa umanășidestinulimplacabil.Astfelamfostmotivat,prinlucrareadefață,săacord…

  • Programul postuniversitar de formare și dezvoltare profesională continuă : [606312]

    MINISTERUL EDUCAȚIEI NAȚIONALE UNIVERSITATEA “LUCIAN BLAGA” DIN SIBIU Programul postuniversitar de formare și dezvoltare profesională continuă : MANAGEMENTUL ADMINISTRAȚIEI PUBLICE LUCRARE DE CERTIFICARE A COMPETENȚELOR PROFESIONALE Coordonator științific , Absolvent , (Grad didactic, nume și prenume) Prof. Univ. Dr. Cioca Lucian Oprea (Brînzoiu) Roxana Sibiu, 2019 „DEZVOLTAREA CONTROLULUI INTERN MANAGERIAL ÎN INSTITUȚIILE PUBLICE ” CAP….

  • În ultimi ani au avut loc dezbater i privind rolul market ingului in administratia publica,fiin d [625273]

    Intro ducere. În ultimi ani au avut loc dezbater i privind rolul market ingului in administratia publica,fiin d un concept relativ nou pe ntru țara noastr ă. Marketingul în administrația publică vizează concepte, principii, metode și tehnici pentru înțelegerea și perfecționarea activităților de marketing și de execuție din instituț iile publice și a comportamentului de…