Conficker Worm

A keni degjuar ndonjeher per kete worm i cili vertitet neper internet kohet e fundit. Eshte nje nder me te rrezikshmit i cili ka bere te jene viktime miliona kompjutera qe nga viti 2003 me sisteme operimi windows.
Dhe e bukura eshte se ky worm u be i ditur vetem ne 2008. Ne 2009 u be e ditur qe ky worm kishte sulmuar mbi 15 milion kompjutera ne mbi 200 shtete te botes. Wormi fillimisht u perhap sipas LAN dhe me pas me ane te usb dhe network share. Ne janar wormi sulmoi Floten Detare Franceze e cila bllokoi dhe uljet e avioneve ne te pasi nuk arrinin dot te benin update planet e fluturimit. Ministria e mbrojtjes se Britanise se Madhe deklaroi qe shum nga kompjuterat desktop te saj ishin infektuar nga ky worm. Ne 2 shkurt 2009 Ministria e Mbrojtjes gjermane deklaroi gjithashtu qe qindra kompjutera te saj ishin infektuar nga Conficker.
Pra kemi te bejme me nje monster te vertete, prandaj une pata deshire te shkruaj kete teme per te palajmeruar te gjithe IT shqiptare per kete rrezik. Ketu do tju jap disa nga nga menyrat se si ky worm punon dhe si mund ta parandalojme dhe ta identifikojme.

Atehere wormi sulmos sic thame sistemet Windows dhe cili eshte nje nga pjeset me vulnerabel te ketyre sistemeve? NetBIOS pasi sic e dime ne kohe me ane te stack overflow dhe Buffer overflow qe ky ka mund te shtrytezojme menyra pa fund per te shperndare dicka nepermjet rrjetit.

-Ne nje rast worm ka shfrytezuar nje Remote Code Execution i cili ben te mundur ekzekutimin e nje komande apo aplikacioni per pa kerkuar te drejta autentikimi.
-Rasti II
Conficker B perdor te njejten gje por nese ky bug eshte mbyllur fillon me brute force pra provon pass dhe username me rradhe me ane te nje fjalori.

-Rasti III
Perdor usb apo krijon dll te cilat te ekzekutojne autorun.

-Rasti IV
Eshte nje menyre qe perdor Conficker D qe realisht akoma nuk eshte zbuluar.

P.S Nese dikush gjen source kodin ta postoj, po nuk besoj pasi ne keto momente ate vetem mund ta blesh pasi nuk e gjen gjekundi.

Per te vazhduar te infektoi Worm vazdhon keto procedura:
-Bllokon Dns LookUp
-C’aktivizon AutoUpdate
-C’aktivizon Safe Mode
-Dhe mbyll proceset e anti malwareve
-Me pas kontrollon qe keto jane mbyllur.
Worm synon proceset explorer.exe dhe services.exe dhe si perfundim eshte lidhet me ane te p2p te serverat .
Fale vegles me te mire per security nmap ne mund ta detektojme kete worm me ane te kesaj komande:

nmap -PN -T4 -p139,445 -n -v --script smb-check-vulns,smb-os-discovery --script-args safe=1 [targetnetworks]
Pas ekzekutimit aplikacioni ju informon me nje mesazh qe komjuteri eshte i infektuar apo jo.
Pra sic shohim te sulmuara jane portat 139 dhe 445.

Ndersa per nje analize me te detajuar te worm do ta gjeni ketu:
http://www.honeynet.org/files/KYE-Conficker.pdf
e shkruajtur nga gjenia Dan Kaminsky.

Konfigurimi baze i Iptables ne nje Sistem Linux

Iptables eshte nje program shume i njohur dhe popullor per te gjithe perdoruesit e sistemeve Linux, ai eshte nje firewall goxha i mire dhe ne baze te tij jane ndertuar dhe shume te tjere.
Ne kete “mini-guide” te vogel do te shohim konfigurimin e tij te thjeshte.
Supozohet qe ky firewall te perdoret nga nje kompiuter personal, nese deshironi qe te perdorni firewallin nga ndonje server atehere normalisht duhet te lejoni sherbime te caktuara psh (httpd), (ssh), (ftp)(mysql)(dns) etj .
INSTALIMI

Shume i thjesht, ne shumicen e distribucioneve Linux e keni te instaluar, keshtu qe mund ta instaloni direkt nga package manageri.

KONFIGURIMI

Perpara kesaj duhet te fiksojm disa gjera te vogla shpejt e shpejt, Iptables ka disa “zinxhir” apo fronte ne te cilat kalojn paketat (sepse eshte thjesht nje software qe analizon paketat qe hyjn nga skeda ethernet apo wireless).
Kemi 3 tabela:
FILTER  : ka 3 fronte /INPUT/FORWARD/OUTPUT
NAT : nuk do merremi kesaj rradhe
MANGLE : nuk do merremi kesaj radhe

Ne kete here perderisa po behet fjale per nje konfigurim baze do te shohim vetem tabelen e pare, ate FILTER e cila na ndihmon te konfigurojm firewallin tone me ane te 3 fonteve, Input, forward [perdoret per te kaluar paketa nga makina jote tek nje makine tjeter, pra makina jote eshte thjesht nje “ure” dhe ti zgjedh ti kaloj apo jo]  output [kontrollon paketa qe gjenerohen nga sistemi e ne kete rast ti mund te kontrollosh psh nese dikush (user) nga makina jote kerkon te lidhet me ssh ti mund ta bllokosh duke percaktuar rregulla tek output] .
Ne rastin tone, do te shohim se ç’fare mund te bejm me Input i cili percakton se ç’fare duhet te bejm me paketat qe vijn ne kete zinxhir (pasi eshte kontakti i pare). Pra fronti i pare i “luftes” ku hyjn paketat nga jashte.
Kemi 3 rregulla te ndertuara ne kete front, kemi DROP, ACCEPT dhe REJECT.
ACCEPT – kemi kur paketa pranohet dhe kalon permes firewallit dhe ne kete rast pra eshte kur kemi nje port te hapur dhe nje server httpd. Koneksioni krijohet pa problem.
DROP –  i njohur ndryshe dhe si “blackhole” i cili thjesht injoron paketen duke mos derguar paket pergjigje per tek hosti origjinar.
REJECT – ndalon paketen te kaloj duke derguar nje paket pergjigje ICMP si “destinacioni eshte i paaritshem” duke lene te kuptoje se hosti eshte offline.

DROP versus REJECT
Kemi ndryshim midis ketyre 2 opcioneve qe na ofron iptables, ku secili ka te mirat dhe te keqiat e veta, psh ne aspektin e koneksionit, DROP do i thoshte klientit, ose atij qe kerkon te lidhet apo te sulmoj qe paketa ka humbur dhe ne baze te ligjeve te rrjetit automatikisht do te bente ritransmetimin e kerkeses derisa te perfundonte kurse Reject do ti thoshte qe ne fillim me nje paket “destination unreachable” ICMP keshtu qe do te thote kursim kohe dhe kursim rrjeti.

Per me shume info, provoni firewallin tuaj me netcat ,hping dhe nmap per te testuar keto 2 opcione.
Si fillim:
iptables -A INPUT -p icmp -j REJECT  #Blloko ç’do lloj ICMP-je qe vjen tek kompiuteri yt, gjithmon nese nuk ke ndonje sherbim (server\ftp etj) kjo do te kthej kompiuterin ne nje fare “fantazme” per skanerat qe nuk perdorin opcionin (no-ping)  te nmap.

iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT #Per te garantuar qe koneksionet qe jane te fiksuara te mos mbyllen.

Bllokojm lidhjet udp dhe tcp

iptables -A INPUT -p tcp -j REJECT –reject-with tcp-reset
iptables -A INPUT -p udp -j REJECT –reject-with icmp-port-unreachable
Bllokojm trafikun qe mund te kaloj nepermjet kompiuterit tone, ne kete rast psh evitohet qe kompiuteri te shnderrohet ne nje zombie:
iptables -P FORWARD DROP
Tani na ngelet te kontrollojm trafikun qe del nga kompiuteri yne, dhe nese duam qe te lejojm ç’do gje (eshte diçka normale nese nuk doni te kufizoni ndonje perdorues) atehere:
iptables -P OUTPUT ACCEPT

Krijojm 2 zinxhir te ri te personalizuar si:

iptables -N hapur
iptables -N interface

Persa i perket zinxhirit apo frontit interface do e perdorim per te lejuar komunikimet e brendshme te kompiuterit (loopback) qe mund te perdorin shume aplikacione keshtu qe :
iptables -A interface -i lo -j ACCEPT
KUJDES: nese japim psh iptables -A interface -i eth0 -j ACCEPT dhe eth0 perdoret per tu lidhur me internetin atehere kjo do te mbishkruaj rregullat e mesiperme dhe nuk do jet me firewall lol.
Kalojm tek zinxhiri “hapur” qe sapo krijuam.
Ketu mund te shtojm portat qe ne do i leme te hapura, psh per sherbime te ndryshme qe mund te ofrojm si web-server, ftp-server, mail-server, ssh e keshtu me radhe.
Keshtu qe:

iptables -A hapur -p tcp –dport 80 -j ACCEPT #kjo do te lejonte lidhjet e jashtme per tek porta 80, pra ne rastin tone me web-serverin.
Nese duam qe serverin ta vizitoj vetem ndonje miku yne qe psh ka ip 192.168.1.140 atehere japim ne vend te asaj qe shkruajtem:
iptables -A hapur -p tcp -d 192.168.1.140 –dport 80 -j ACCEPT

Kunder sulmeve te ndryshme

Te kujdesemi qe te gjitha paketat ne hyrje te jen kerkesa per sinkronizim, ne te kundert DROP IT!!

iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP
Kjo do te evitonte nje sere sulmesh me nmap.
Kunder sulmeve te tipit “Fragmentation”
iptables -A INPUT -f -j DROP
Kunder XMAS scan
iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP
Kunder FIN scan

iptables -A INPUT -p tcp –tcp-flags FIN ALL -j DROP

iptables -A INPUT -p tcp –tcp-flags ACK,FIN FIN -j DROP
Kunder NULL Scan

iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP
Mbrojtje e pergjithshme:

iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
Kunder “pingut te vdekjes”
iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
Kunder sulmeve syn fload dhe DoS
iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
Kunder skanimeve SYN\RST
iptables -A INPUT -p tcp –tcp-flags SYN,RST SYN,RST -j DROP

Per sulme te personalizuara, personalizoni iptables, psh kunder nje sulmi FIN,SYN mbrojtja do te ishte:
iptables -A INPUT -p tcp –tcp-flags FIN,SYN FIN,SYN -j DROP

Kunder spoofing:

iptables -A INPUT -d 224.0.0.0/4 -j DROP
iptables -I INPUT -i eth0 -s 10.0.0.0/8 -j DROP
iptables -I INPUT -i eth0 -s 172.16.0.0/12 -j DROP
iptables -I INPUT -i eth0 -s 192.168.0.0/16 -j DROP
iptables -I INPUT -i eth0 -s 127.0.0.0/8 -j DROP

Thame qe ishte nje konfigurim i thjeshte, ky konfigurim firewalli mund te modifikohet shume here me shume, por shpresoj se do kem kohe dhe do e shkruajm ndonje skript ne bash :)
PS, te gjithe kesaj duhet ti shtoni psad dhe fwsnort.

OSI SHTRESA 7 – APLIKACIONI

Kjo eshte shtresa e fundit dhe me e larte e OSI-t, dhe emri eshte vertet i goditur sepse kjo eshte shtresa qe perdoret nga aplikacionet network te cilat jane pergjegjese per ti ofruar sherbime inputeve te drejtperdrejta te perdoruesit.
Gabimi qe bejn shumica kur flasin per kete shtrese eshte se i trajtojn aplikacionet si (ftp-clinet, web browser, Wireshark :D) e keshtu me radhe sikur ato “qendrojn ne shtresen e aplikacionit” pra ne shtresen 7 gje e cila nuk eshte aspak e vertet sepse ne realitet aplikacionet perdorin shtresen 7 kjo sepse kur kemi trajtuar temen “Te pathenat per OSI” thame se nuk duhet te egzagjerojm ne kuptimin e OSI-t dhe duhet ta mbajm ate ne nje nivel metodologjik.

Keshtu pra kjo eshte diçka qe duhet fiksuar edhe pse shume shpesh ndodh qe vet sistemi operativ te perdori shtresen 7 dhe jo vetem aplikacionet. Per te kuptuar me mire kete bejm krahasimin midis nje browseri (Firefox psh) dhe protokollit HTTP i cili percakton se si do te paraqitet nje dokument qe gjendet ne rrjet ne browser, pra browseri eshte tjeter dhe qendron ne kompiuterin tone si aplikativ kurse HTTP i cili eshte protokoll eshte tjeter dhe ky qendron si koncept ne shtresen Aplikative duke specifikuar menyren se si duhet te sillet kur ti marri apo kaloj informacion me browserin.
A ka shtrese tjeter (shtrese 8) siper kesaj? JO!
Shtresa Aplikacion eshte e vetmja shtrese qe nuk i sherben nivelit te mesiperm pasi nje nivel 8 nuk egziston por ne vend te kesaj u siguron sherbim aplikacioneve
qe jane te “ngjitura” me te. Kjo rrjedhimisht sjell edhe funksionin e saj i cili eshte te implementoj funksionet e nevoitura nga perdoruesi ne rrjet.
Dis protokolle te njohura qe operaojn ne kete shtrese jane:
HTTP, FTP, SMTP, DHCP, NFS, Telnet, SNMP, POP3, NNTP ,IRC etj etj…

OSI SHTRESA 6 – SHTRESA E PREZANTIMIT

Per mua personalisht kjo shtrese eshte nje lloj simotre e shtreses data link ne aspektin e “driverit” apo interfaces qe krijon midis shtreses qe ka poshte dhe asaj qe ka larte kete e them sepse:
1.Shtresa e prezantimit sherben per te prezantuar (duke formatuar etj) ^akoma me shume^ informacionin per tek shtresa 7 , ajo e aplikacionit.
2.Ka funksione goxha te limituara dhe specifike
3.Perdoret shume me pak se sa shtresat e tjera.
Funksionet e Shtreses se Prezantimi

  • Perkthimi – ne nje rrjet mund te kemi kompiutera Linux [:D], Windows [:'(], Macintosh, Solaris e keshtu me radhe dhe te gjitha keto jane shume te ndryshem nga njeri-tjetri por ne te njejten kohe ato mund te komunikojn me njeri-tjetrin, pergjegjes per te zhdukur diferencat eshte Shtresa 5.
  • Kompresimi – ne kete shtrese eshte e mundur te behet dhe kompresimi (gjithashtu dhe dekompresimi) i te dhenave duke rritur performancen e rrjetit.
  • Enkriptimi – siguria eshte nje faktor gjithnje e me ne rritje, askush nuk deshiron te dali defiçit, keshtu qe te dhenat ne network shpesh-here i gjejm te transmetohen ne forma te ~sigurta~ psh me ane te SSL, enkriptimi behet pikerisht ne Shtresen 5 ndersa decryptimi behet ne te njejten shtrese por tek hosti ku jane destinuar te dhenat.

Funksioni baze eshte ai i shafitjes se ndarjeve nga nje sistem ne nje tjeter, ose me sakt nga nje aplikativ ne nje tjeter, keshtu Linux mund te komunikoj lehte me Windows. :D1
Arsyeja se pse u tha se kjo shtrese nuk perdoret shume eshte sepse funksione si Enkriptimi, Kompresimi, “Perkthimi” konsiderohen si opcionale dhe realisht nuk jane nje fenomen ciklik ne rrjet.
“Protokollet” me te njohura ne kete shtrese jane RDP (Remote Desktop Protocol), SSL, TLS, MIME, NCP (NetWare Core Protocol) etj.

OSI SHTRESA 5 – SHTRESA E SESIONIT

Ja ku po hyjm tek “abstraktja” apo aty ku fillon aplikacioni dhe ndryshimi real i shtresave te OSI-t. Deri tani u mesuam me fragmentim, paketim , transport , adresim dhe preokupim me si te shkembejm te dhenat, ku ti transferojm , si ti transferojm , si te krijojm lidhjen midis dy hosteve e keshtu me radhe ndersa tani kemi hyre tek Shtresa 5 e cila eshte me e uleta e niveleve te larta dhe tashme nuk merret me me punet e “renda” por preokupohet me shume me lejimin e paisjeve qe te krijojn sesione. Ç’fare eshte nje sesion? Sesion eshte nje linkim persistent midis dy proçeseve aplikative per nje kohe te caktuar aq sa i nevoitet aplikacioneve per te shkembyer te dhenat.
API – Application Program Interface
Puna primare e shtreses se sesionit eshte qe te vendosi sesione midis aplikativeve dhe ne realitet programet e kesaj shtrese jane me shume aplikative se sa protokolle. Keto aplikative i sherbejn shtresave te siperme nepermjet komandave te caktuara qe zakonisht quhen appliaction program interface apo API.

API-t e zakonshme perfshijn NetBIOS, Remote Procedure Calls [RPC], TCP\IP Sockets te cilat e lejojn aplikacionin te kryej komunikime te nje niveli te lart nepermjet networkun thjesht duke perdorur keto ‘metoda komunikimi’ te standardizuara.
Keto (API-t) jane ne interes primar sidomos per programatoret te cilet shkruajn inteface komunikimi per programet e tyre , dhe ky interes deshmohet edhe ne C# (C sharp) e cila eshte nje gjuhe e ideuar pikerisht per nje API te programueshme me thjesht dhe per programe networku te kodueshme ne menyre te thjeshte dhe funksionale.

Socket Programming, eshte nje shkenc e zhvilluar plotesisht ne kete shtrese, pra ne shtresen Session (5), dhe perdoret zakonisht per te krijuar bashkbisedimin midis dy aplikacioneve ne rrjet ne nje sistem Unix, nderkohe qe NetBIOS perdoret gjeresisht ne sistemet windows. Keshtu qe nuk duhet te bejm gabim dhe te themi se “Socket eshte protokoll” sepse nuk kemi te bejm me me “si dhe qysh te transportohen te dhenat nga filan router, te kalojn ne kete linje, e te fragmentohen kaq here” por kemi te bejm me shtresen abstrakte dhe aplikative ku fuqia i qendron aplikacionit. E njejta gje ndodh dhe me NetBios meqe ra fjala, ai nuk eshte protokoll prandaj quhet NetBios – TCP\IP sepse ndertohet dhe nderverpon MBI Tcp\IP-n dhe nuk eshte protokoll me vete. QART 😉 !?
Kjo eshte dhe arsyeja se pse kur klikoni tek NETWORK ne windows u dalin kompiuterat me emra te caktuar qe i takojn nje domini (WORKGROUP, psh) dhe nuk u dalin adresat IP, te tyre apo adresat Hardware (kjo nuk do te thote qe nuk i disponojn, ndryshe nuk do te ishte e mundur lidhja).

OSI Shtresa 4 – Transporti

Shtresa 4 e OSI-t quhet Transport Layer (Shtresa e Transportit) dhe ne baze te protokolleve qe perdoren ne te, ajo kryen inkapsulimin e blloqet e te dhenave te krijuara nga aplikacionet ne segmente dhe datagrame (vini re, tani nuk quhen me paketa por segmete dhe datagrame) nga nje host ne nje destinacion tjeter.
Pse quhen segmente e datagrame e jo me paketa?
Sepse qe te kryhet transporti ne menyre te kuptueshme dhe pa gabime duhet qe mesazhet (po perdor kete si term te pergjithshem) te jene te kuptueshem edhe nga shtresa 4 e rrjetit ku gjendet destinacioni e per me teper keto mesazhe duhet te plotesojn disa kushte qe percaktohen nga protokolli qe jane duke perdorur (psh UDP) , ne munges te kesaj qe thash nuk do kishte sherbim TCP\IP, UDP e keshtu me rradhe.
Kjo shtrese (Transport) ben dhe te kunerten e proçesit te permendur me siper, merr datagrame – segmente dhe i kthen ato ne ngarkese te dhenash per aplikacionet. Kjo aftesi e dyte qe permenda i jep kesaj shtrese emrin Shtresa e Transportit sepse duke ndodhur kjo1 krijohet nje “bashkbisedim” i drejteperdrejt midis dy hosteve (bashkbisedimi per te qene korret quhet virtual sepse transporti ne realitet nuk ndodh drejtpersedrejti nga shtresa 4 ne shtresen 4 por kalon njehere ne shtresat me te uleta, kujto kounikimin virtual).
Ketu jemi ne mes :), shtresa e mesme dhe e katert e OSI eshte shtresa e Transportit. Kemi nje koncept kyç, sa me lart te ngjitemi ne hierarkine OSI aq me shume rritet dhe abstraksioni pasi i largohemi punes me “çekiç e gozhde” dhe i afrohemi abstraktes e ne kete rast shtresa e Transportit eshte ne njefare menyre me shume e ngjitur me nivelet e uleta pasi ka te beje me transportin (virtualisht dhe jo realisht) por nga ana tjeter ka dhe pika shume te ngjashme me shtresat 5 dhe 7.
Nuk duhet keqkuptuar qe ky nivel i OSI-t preokupohet me transportin real te mesazheve, dmth bazohet ne shtresat e meposhtme qe e bejn kete pune , pra (tranposrtimin fizik) nderkohe qe vet preokupohet me transportin por ne aspektin e protokollit, rregullave dhe aspketeve te tjera qe do i shohim me poshte. Komunikimi behet ne menyre horizontale por virtualisht pasi nuk komunikon ne menyre te drejtperdrejt me shtresen Network te destinacionit.
Ne kohen tone kompiuterat jane multitasking dhe ne te njejtin moment shume aplikacione mund te kerkojn qe te dergojn dhe marrin te dhena nga interneti. Shtresa e Transportit eshte pikerisht pergjegjese per kete pune. Kjo ndodh sepse ne momentin qe aplikacionet fillojn kerkesat e tyre , shtreses Network i vijn te dhena nga aplikacione te ndryshme dhe eshte detyre e kesaj shtrese qe te bashkoj keto rryma ne nje rryme te vetme (multiplexing sepse ndajn te njejten adrese IP) dhe te bej tranzmisionin per tek shtresa Network.
Ne kete shtrese (shtresa 4 e transportit), lidhjet mund te jene connection oriented (TCP) ose connectionless (UDP).
Asnjera nuk eshte me e mire se tjetra, te dyja perdoren ne menyre frekuente.
Protokolleve te kesaj shtrese u jepet “inteligjence” me ane te algoritmeve (ja ku eshte dhe lidhja me shtresat e mesiperme te bazuara ne aplikativin dhe abstrakten) dhe ne kete menyre keto protokolle sigurohen qe transporti i mesazheve midis paisjeve te jete i rregullt dhe efiçent.
Pse datagram dhe segment dhe jo vetem datagram ose vetem segment?
Sepse datagram zakonisht perdoret per protokollet e thjeshta qe nuk kane shume sherbime si psh UDP (nuk siguron ritransmetim ne rast gabimi, mund te humbasin te dhena gjate trasmetimit dhe nuk siguron kontroll fluksi – pra connectionles) kurse segment perdoret per Connection Oriented si psh TCP.
Opcionet specifike te shtreses 4 te OSI, Tranportit.

  • Adresimi i Proçeseve neper Porta te caktuara – thame se ne kete shtrese (4) behet kujdesja qe multitasking te jete dhe ne network, dhe lind pyetja si ka mundesi qe te perdorin 8 programe rrjetin ne te njejten kohe?
    Thame se Data Link jep adresat hardware, ndersa Network jep adresen IP, keshtu qe Transportit i ngelet te percaktoj adresimin ne menyre qe te ndahen programet nga programet dhe keshtu secili program ka hapesiren dhe destinacionin e tij, keshtu qe nuk hyjn ne konflikt dhe sherbimi nuk i mohoet asnje programi. Ky adresim eshte i paraqitur shume mire nga Portat UDP e TCP. Pra ne kete rast behet fjale kur psh ne nje Tcp header shkruhet dhe porta e destinacionit , psh 80 ne rastin kur perdoret si aplikativ HTTP (web server) dhe adresa eshte akoma me shume e specifikuar.
  • Multiplexing dhe Demultiplexing – ajo qe u tha me siper ka lidhje ne menyre te drejteperdrejt me kete qe po shkruhet, multiplexing eshte kur shume proçeseve (proçes ne rrjet eshte veprimi qe shkakton nje aplikacion duke komunikuar me rrjetin) u dedikohet nje adrese dhe u jepet sherbimi ne baze te nje adrese IP te vetme, ndersa Demultiplexing eshte e kunderta dhe ndodh kur vjen pergjigja dhe pergjigja qe kalon ne IP-n tone zberthehet dhe u jepte proçeseve qe kerkuan me pare komunikim, apo sherbim.2
  • Segmentimi , Paketimi dhe Riasemblimi – Shtresa e Tranportit segmenton grumbujt e medhenj te te dhenave qe dergon neper rrjet ne mesazhe te vogla te cilat ja kalon shtreses se Networkut, eshte proçesi i ngjashem qe u quajt Fragmentim kur Networku copetonte mesazhet dhe ja dergonte Data Layer, ndryshimi i vetem eshte se ne rastin e Transportit paketat copetohen qe te kenaqin shtresen e Networkut, kurse ne rastin e Networkut ato copetoheshin ne limitet e Data Link.
  • Menaxhimi, Hapja dhe mbyllja e lidhjeve – Protokollet connection oriented te shtreses se Transportit jane pergjegjese per hapjen, mbylljen dhe mbarvajtjen e lidhjeve.
  • Njohja (ACK) dhe ritransmetimi – Shtresa e Transportit per te realizuar transmetimin korrekt te te dhenave perdor nje teknik qe i ben te ditur derguesit se te dhenat erdhen, apo i kerkon ritransmetimin nese mbas 3 tentativave te dhenat nuk kane arritur ende.
    Kjo njihet dhe si 3 handshake.
  • Kontrolli i Fluksit – tek protokollet qe jane connection oriented ofrohet dhe mundesia per te kontrolluar fluksin e dergimit te mesazheve ne rrjet. Kjo specifik sepse kompiuterat kane nje memorje te limituar dhe nese memorja eshte duke u konsumuar i thuhet derguesit qe te uli pak fluksin e dergimit per te mos rezultuar ne nje sulm Fload.3

Relacioni midis shtreses Network dhe asaj te Transportit.
Panvaresisht se ne teori duken shume te ndare nga njeri-tjetri ne praktike jane shume te ngjashem dhe argument per kete eshte se mjafton qe te drejtohemi tek protokolli me i perdorur TCP/IP dhe vjen pergjigja. IP eshte protokoll i shtreses Network kurse TCP eshte protokoll i shtreses se Transportit, e njejta gje ndodh dhe me protokolle te tjera psh IPX/SPX ku IPX eshte i shtreses 3 dhe SPX eshte i shtreses 4. Pra , qendrojn vertet shume afer njeri-tjetrit ne praktik aq sa nuk mund te gjendet nje protokoll i TCP-s nen nje protokoll tjeter perveç se IP e keshtu me radhe.. Ne te njejten kohe shtresa e Transportit eshte pergjegjese per krijimin e komunikimit nga nje proçes aplikativ ne nje proçes tjeter aplikativ qe po perdor rrjetin.
Nje fenomen qe ndodh ne kete shtrese te rrjetit eshte dhe ai qe quhet Konxhestion rrjeti , ndodh kur rrjeti eshte i tejngarkuar dhe fillon ti bej DROP4 paketave. Ky fenomen mund te evitohet duke aplikuar kontrollin e fluksit duke perfshire nje nga opcionet qe quhet “slow-start” me ane te se cilit fillon rikuperimi i segmenteve (jo datagram sepse kur themi datagram nuk suportohet ky opcion) duke ruajtur dhe bandwithin.
Shembujt e protokolleve te shtreses se Transportit
TCP , UDP , DCCP , SCTP , RSVP , ECN etj.

OSI SHTRESA 2 – DATA LINK (DLL)

Data link renditet e dyta ne shtresat OSI, kjo shtrese fillon aty ku parimisht fillojn shume sherbime te “telave” dhe wirelesit si psh : Ethernet, Token Ring, FDDI, dhe 802.11 (Wi-Fi) etj. Njeri nga funksionet kryesore qe ka kjo shtrese eshte qe te tranportoj te dhenat nga nje entitet networku ne nje entitet tjeter dhe ka gjithashtu aftesine per te korigjuar gabime qe mund te krijohen ne shtresen fizike.
Ne kete shtrese te OSI-t te dhenat do i quajm “frames” term te cilin e kemi sqaruar ne temat e meparshme tramsporti i te cilave behet ne te njejtin rrjet, pra ne te njejtin LAN apo ne te njejtin Local Network per te qene me i sakt. Pra frames nuk i kalojn limitet e local network, pasi per komunikimin midis networkeve i takon shtresave me te larta te rrjetit.

Data link ndahet ne 2 nenshtresa te cilat jane LLC (Logical Link Control) dhe MAC (media access control), ndarje e caktuar nga IEEE ne projektin Ethernet 802.
Funksionet e Shtreses Data Link

  • Logical Link Control (LLC) apo linku llogjik i kontrollit i referohet funksionit te kerkuar per vendosjen e lidhjes midis paisjeve te rrjetit.
  • MAC – Media Access Control , kjo i referohet proçedurave te perdorura nga paisjet per te kontrolluar aksesin ne “Mesataren e Networkut”.Perderisa shume networke perdorin nje mesatare te ndarjes se risurseve si kabllo interneti qe jane te lidhur elektrikisht me paisjet e ndryshme duhet te kontrollohet aksesi dhe perdorimi i tyre ne menyre qe te evitohen konfliktet.
  • CSMA/CA – si protokoll per te evituar kolizionet ne rrjetet Wireless
  • Data Framing – i takon Data Linkut si proçes dhe eshte proçesi i inkapsulimit te mesazheve qe vijn nga nivelet me te larta te rrjetit ne frames apo copeza te vogla te cilat dergohen neper rrjet ne nivelin Fizik (1).
  • Adresimi (ne baze te adreses MAC) – pergjegjes per adresimin ne rrjet, ne nivelin me te ulet te mundur eshte Data Link i cili sigurohet qe ne paketa te jete destinacioni i duhur destinacion qe percaktohet nga nje adrese e paisjeve hardware qe quhe adresa MAC ose MAC adress. Eshte nje adres ne hexadecimal e hardwarit dhe secili hardware (skede ethernet apo wireless) ka nje te tijen dhe ne baze te kesaj adrese Data Link kontrollon destinacionin.
  • Identifikimi i gabimeve dhe perpunimi i tyre – data link eshte pergjegjes per kapjen e gabimeve qe krijohen ne shtresen poshte saj (Shtresa Fizike).
    Ne kete shtrese te rrjetit, ndodhin dhe ato qe njihen me emrin “Kolizione” dhe kjo ndodh kur paisjet duan te perdorin mediumin e rrjetit ne menyre te njekohesishme, dhe si pasoje ndodh kolizioni i cili ne keto raste eshte i paevitueshem por me ane te funksionit te rikuperimit\ripristinimit Data Link rikthen rrjetin ne gjendjen normale.

Siç u tha dhe ne temen e meparshme, PHY dhe DLL jane shume te varur nga njeri-tjetri dhe relacionohen shume mire. Disa karakteristika enkodimi dhe shtresa te nivelit Fizik specifikohen nga teknologjia e perdorur nga DLL (Data Link). Nje shembull per kete eshte dhe standarti Ethernet 802.3 i cili specifikon jo vetem se si Etherneti duhet te punoj ne shtresen 2 po edhe varjimet e tij ne shtresen Fizike. Shtresa Data link nga ana tjeter preokupohet vetem me paisjet lokale, pra qe jane te aferta me te dhe jo me paisjet e largeta.
Pikerisht per keto arsye, kemi thene se eshte gabim qe ti ndash me thik shtresat e OSI-t dhe ne te njejten kohe eshte gabim qe ti lesh anash pasi perdoren per dizainin konceptual baze sot ne fushen e networkut.

Ne vazhdim themi dhe se per disa paisje thuhet se operojn pjeserisht ne nje nivel dhe pjeserisht ne nje tjeter e ky fenomen vjen gjithmon e me shume ne rritje me suportin dhe opcionet gjithmon e me te mira te paisjeve te reja network qe po prodhohen.
Keshtu qe: Shtresa Data Link eshte vendi ku percaktohet shumica e teknologjive LAN dhe Wireless, eshte pergjegjes per kontrollit logjik te linkut, kontrollit te aksesit mesatar, adresimit hardware, fragmentimit dhe identifikimit te gabimeve.
Ne raport me abinimin e saj me softwarin shtresa Data Link shpesh mund te merret dhe si “driveri i networkut” per hardwarin e perdorur dhe shpesh merret si nje interface komunikimi midis shtresave te tjera.
Shembuj te DATA LINK ne boten reale:
Nder protokollet me te njohura qe perdoren ne kete shtrese jane: ATM, Ethernet, (PPP) Point-to-Point-Protocol, High-Level Data Link Control (HDLC), Cisco Discovery Protocol (CDP), IEEE 802.11 wireless LAN, StarLan etj…

OSI SHTRESA 1 – Shtresa Fizike – OSI Layer 1 (PHY)

Shtresa fizike eshte shtresa e pare e networkut sipas OSI, dhe gjithashtu dhe me e veçanta pasi eshte e vetmja shtrese ku ne realitet informacioni kalon\tranmsetohet nga nje paisje networku tek tjetra, pasi per tu transmetuar te dhenat duhet te kalojn te gjitha ne shtresen fizike.
Shtresat e tjera thjesht krijojn paketat, apo modifikojn apo kryejn funksione te tjera , ne realitet eshte shtresa Fizike (1) e cila ben transportin. Meqenese po i trajtojm temat ne menyre realiste duhet te ç’rrenjosim nje koncept te gabuar qe eshte tek shumica e atyre qe kane studjuar rrjetin. Shumica mendojn qe shtresa fizike ka te beje vetem me kabllat dhe paisjet hardware te rrjetit por kjo eshte e nxituar dhe ne te njejten kohe jo plotesisht e sakte.
Shtresa fizike percakton nje sere funksionesh, dhe nuk eshte vetem “kablla dhe paisje hardware”. Kjo sepse shtresa fizike duhet te kete nje relacion , dhe ka nje sere funksionesh me shtresen e mesiperme , relacion i cili harrohet nga ata qe thone shprehjen e mesiperme (“vetem kablla dhe paisje hardware”).
Ja disa funksione:

Percaktimi i specifikave hardware – ç’do detaj i operacioneve kabllore i detajeve te paisjeve
hardware, i funksioneve dhe interfaceve te tyre jane funksione te shtreses fizike.
Enkodimi dhe sinjalistika – mbasi te dhenat kalojn ne form binare neper cirkuitet e kompiuterit Shtresa Fizike eshte pergjigjese per encodimin e tyre , dhe perkthimin e tyre ne sinjale networku.
Dergimi dhe Marrja e te dhenave – te dhenat dergohen dhe merren sepse ndryshe nuk do te kishte komunikim dhe pergjegjes per dergimin e tyre eshte shtresa fizike e cila mbasi i ka encoduar bitet ne sinjale i dergon ato dhe normalisht eshte pergjegjese per marrjen e tyre. Kjo ndodh me ane te kabllave te cilat mund te jene fiber, koaksial etj ose me ane te kanaleve radio te wirelessit, edhe pse paketat dergohen “ne ajer” pergjegjes per kete eshte perseri shtresa fizike.
Topologjia dhe Dizaini – kjo shtrese konsiderohet gjithashtu si “nena” e shume strukturave network si LAN , WAN.
Raporti qe ka shtresa fizike me te dhenat eshte i njejti raport qe ka kompiuteri me 0 dhe 1, pasi ne realitet nuk “kupton” ate qe po transmeton por thjesht merr dhe dergon te dhena neper network. Paisje te tjera si routerat qe operojn ne nivele me te larta realisht “shikojn” dhe analizojn te dhenat dhe nuk i konsiderojn ato thjesht impulse elektrike me voltazh te lart (nga 3 – 5 qe perfaqson 1shin) apo te ulet (nga 1 – 3 qe perfaqson 0).
Me siper thame se shtresa fizike percakton dhe nje sere funksionesh dhe nuk eshte thjesht “kablla dhe paisje hardware te rrjetit”, tani do te shohim dhe PSE-ne. Njera nga veçorite e shtreses fizike eshte se percakton hardwarin e perdorur dhe specifikat e tij, e pra kjo nuk mund te behet ne menyre te ‘izoluar’ pa perdorur per referim teknologjine qe eshte e perdorur nga ky hardware , pra pa u referencuar dhe me shtresen Data Link e cila eshte shtresa 2. Pershembull kavot ethernet bejne pjese ne shtresen fizike por gjatesia e kavos i afrohet shume rregullave te formatimit qe jane pjese e shtreses 2. Duke vazhduar, operacione si kapja dhe rregullimi i gabimeve mund te behen ne nivelin 1 ne disa raste nderkohe qe shumica qe njerezve i konsiderojn keto si operacione te nivelit 2 (data link).

Wireless – Mbrojtja, nderthurje DMZ-Firewall-VPN.

Nje DMZ apo nje demilitarized zone,  eshte nje koncept mbrojtjeje. Ajo percakton ku te vendosim serverat qe aksesojne internetin. Kjo lejon perdoruesit e internetit te ken akses ne informacionin e serverit por neqoftese nje person arrin te futet ne server ai nuk mund ta perdor kompjuterin e hackeruar per te kerkuar pjesen tj e network-ut. Pra DMZ eshte nje network i vogel,  i ndar nga pjesa tj e networkut te brendshem dhe i ndar nga interneti.
Nje Firewall shpesh mbron DMZ nga sulme te jashtme.  Sidoqofte nje server do te komunikoj me boten e jashtme,  por firewall duhet konfiguruar ne menyre te tille qe te mos pranoj disa lloje lidhjes.  DMZ shpesh konfigurohet ne menyre te till qe te jete i aksesueshem lehte nga perdoruesit e network-ut te brendshem.
Kjo mund te realizohet me ndihmen e nje firewall ne formen e hardware apo software. Nje hardware i till mund te kete tre porta. Nje per lidhjen e internetit, nje per lidhjen lokale te network-ut dhe nje per DMZ (nje hub apo switch mund te lidhet qe te lejoj servera te ndryshem.
E njejta porte mund te perdoret per te lidhur access pointin e wireless. Duke ber kete mund te vendosim WLAN ne nje zone gjysme-tbesuar qe pritet te sulmohet. Duke ecur me mentalitetin qe WLAN juaj eshte mposhtur, ju mund te caktoni ke dhe cfare te lejoni ne networkun tuaj te brendshem.
Gjithsesi kjo mund tju ndihmoj per te mbrojtur informacione te brendshme, por nuk mund te mbroj perdoruesit e rrjetit Wireless.
DMZ eshte thjesht nje pjese e planit tuaj per mbrojtjen e WLAN.
Eshte e nevojshme te perdorim firewall per te ndar rrezikun e userave te jashtem.
Nje firewall i mir konfiguruar mund te eleminoj shum rreziqe.
Eshte e rendesishme qe rregullat e firewall te percaktohen ne menyre korrekte.Keshillohet te perdorni nje hardware firewall te dedikuar sepse mund ta konfiguruar per te bllokuar gjithcka.
Nje element tjeter i rendesishem per te ngritur planin tone te sigurise eshte dhe VPN.

VPN – Virtual Private Networks. eshte nje network virtual dhe i enkriptuar i ndertuar ne maje te nje network-u ekzistues.
Gjithashtu njihet dhe si tunneling sepse datat e enkriptuara mbahen brenda nje lidhje normale jo te enkriptuar.
Nje VPN mban rrjetin tone te brendshem te sigurte nga userat e jashtem.Rrjeti wireless mbetet i disponueshem, por nje tunel VPN krijohet per te lidhur klientin remote me rrjetin e brendshem.
I trajtojm bashke firewall dhe vpn per arsyjen qe mund te bashkepunojn mjaft mir me njera tjetren ne planin tone te sigurise.

Nje firewall mund te bllokoj te gjitha kerkesat qe vijne nga jashte ne perjashtim te klienteve VPN te autorizuar.
Sic thame tek temat e kaluara nje person mund te mbledhi te dhena te mjaftueshme per te crackuar WEP, por prezenca e VPN ja ben shum te veshtire punen. Atij i duhet te kaloi dhe enkriptimin e VPN, probabiliteti qe te bej nje gje te till eshte mjaft i vogel. Pervec ketij avantazhi te madh qe na ofron ky bashkpunim kemi dhe nje ane negative.
Datat qe te kalojne duhet enkriptuar njeher kalon nga WEP me pas nga VPN kshuqe koha per transmetimin e te dhenave eshte me e madhe… Gjithashtu klienteve i duhet dhe software i instatuar qe te perdor VPN…

Gjithsesi eshte nje zgjedhje e mir per shtepi dhe per plane te bizneseve te vogla.  :)

Inkapsulimi – ja se si funksionon komunikimi ne network – rrjet

Kjo teme eshte ne podjum :), zakonisht keto jane gjerat kyçe qe shumica preferojn ti mbajn pervete (per studentet, pergjigjuni nese profesori ua ka thene keto gjera ) sepse njehere qe ke kuptuar kete, ke kuptuar realitetin se si funksionon networku me rrenje e dhemball.
Duke u bazuar gjithmon tek OSI kur flasim per shtresat e OSI-t dhe komunikimin, ky komunikim eshte Vertikal dhe Horizontal, le te shohim nje shembull praktik per te kuptuar ne menyre perfekte se ç’fare do te thote komunikim vertikal dhe horizontal.
Po marrim rastin tim qe po vizitoj albanianwizard.org me browserin Opera.
Ne kete rast, kompiuteri im ka nje IP, dhe severi ka nje IP te veten qe eshte baza e komunikimit, dhe ky komunikim midis browserit dhe faqes, ose me mire clientit dhe serverit behet ne baze te nje protokolli tani te pershkruajm se ç’fare ndodh ne realitet kur une klikoj linkun “Sisteme Operative” i cili duket ne frontalen e albanianwizard.org .

Ne rradhe te pare, ky klikim per kompiuterin nuk eshte asgje, browseri ne kete rast Opera i dergon nje grumbull bitesh Sistemit Operativ (ne kete rast Linux) ku ky i fundit ja dergon kernelit qe ja dergon proçesorit i cili di se ç’fare te bej dhe instruksionin ja dergon skedes wireless (perderisa po perdor wireless ne kete moment per lidhjen e internetit) te ciles i vijn  vetem impulse elektrike te larta (1) dhe te uleta (0)  ne te cilat jane te gjitha te dhenat e duhura dhe instruksionet per veprimin e deshiruar (pra paraqitjen ne ekran te faqes Sisteme Operative). Ketu jemi ne shtresen me te funidt te OSI-t ate qe quhet Shtresa Fizike qe perdor kabllin per te tejçuar kete grumbull bitesh te organizuar te quajtur PDU ne kete rast pasi vet shtresa 1 e OSI-t qe te kuptoj kete “grumbull bitesh” duhet qe vet grumbulli i biteve te plotesoje disa kushte te cilat jane kushtet e protokollit perkates ne kete rast. Mbas kesaj, ky grumbull paketash kerkon qe te shkoj tek serveri, dhe kalon ne nje nivel me te lart te OSI-t qe quhet: Data Link, ky lloj komunikimi quhet komunikim vertikal pasi te dhenat kalojn nga shtresa me e larte tek me e uleta (nga browseri i cili eshte aplikacion [application layer] tek skeda etherenet apo skeda wireless e cila eshte hardware [physical layer])  dhe nga me e uleta (ne kete rast hardwari qe perdor serveri) tek me e larta (vete aplikacioni server, psh apache web server eshte program dhe ne kete rast eshte aplikacion). Per kete arsye pra, meqenese paketat origjinale te gjeneruara nga nje klikim ne ekranin e kompiuterit per te pare nje faqe ne internet kaluan neper keto shtresa te rrjetit duke ecur ne menyre te njepasnjeshme, shtrese mbas shtrese ky lloj komunikimi quhet vertikal por nese e shohim rezultatin perfundimtar do te shohim qe te njejtat paketa kane qene nje here ne nivelin fizik (sipas OSI) tek kompiuteri im dhe njehere ne te njejtin nivel tek Serveri, keshtu qe krijohet nje komunikim horizontal , ose shembull nje here ne shtresen 7 (aplikative) ku une me maus nepermjet browserit klikova linkun  e faqes, dhe nje here tjeter kur serveri i faqes (qe eshte aplikacion dhe sipas OSI-t eshte ne nivelin 7) ju pergjigj kerkeses duke derguar permbajtjen e faqes ne grumbull bitesh shtrese mbas shtrese duke zbritur nga niveli 7 i vet, ne nivelin 6, nga niveli 6 ne te 5-stin e keshtu me rradhe deri ne nivelin 1, mbas kesaj kaloi informacioni ne nivelin 1 ne kompiuterin tim, e duke u ngjitur nivel mbas niveli, protokoll mbas protokolli arriti tek niveli 7 e ne kete moment browseri me paraqit permbajtjen e faqes “Sisteme Operative” ne ekran :)

Kuptuam pra, qe ne kete rast kemi transportim vertikal te te dhenave e ne te njejten kohe, transportim horizontal.
Nje pyetje me vend do te ishte, ç’fare i ndodh paketave kur kalojn  nga niveli 7 ne ate 6, e keshtu me radhe?, psh Serveri (albanianwizard.org) mori kerkesen nga Clienti (Browseri Opera ne shtepine time) per te paraqitur nje faqe qe gjendet ne te, e cila eshte kjo qe ne realitet per ne eshte nje faqe kurse per serverin eshte vetem nje grumbull te dhenash qe duhen derguar si pergjigje.
Ketu do te perdorim PDU dhe SDU si terma ashtu dhe Inkapsulimin te cilin do e shohim ne vazhdim.
Kur jemi ne shtresen (layer) 7 dhe serveri albanianwizard.org po dergon grupin e paketave, ky grumbull quhet PDU (Protocol Data Unit) pasi permban informacionet e nevojshme per protokollin ne te cilin po gjenerohet, dhe ka dhe te dhenat (data) ne brendesi.
Ne momentin qe kalon ne N – 1 (7 – 1 = 6) behet grumbulli i te dhenave qe shtresa 6 eshte supozuar te sherbej (service) keshtu qe ne kete moment (N-1) quhet SDU (Service Data Unit).
Ç’fare ndodhi?, grupi i paketave ishte PDU dhe SDU, si PDU + SDU = SDU?
Kjo ndodh, sepse Protocol Data Unit do te thote diçka vetem per shtresen (layerin e OSI-t) ne te cilin ndodhet dhe nuk do te thote asgje per shtresen qe vjen me mbrapa keshtu qe trajtohet si SDU (Service Data Unit) dhe ne momentin qe arrin tek shtresa 6 (N – 1) kete grumnbull te dhenash kjo shtres e vesh me PDU-n e saj [pra i gjeneron nje header dhe footer sipas kushteve te protokollit te saj] dhe kjo “veshje” apo “mbeshtjellje”  quhet INKAPSULIM
Keshtu qe jemi tek shtresa 6 te e cila ka ardhur nje PDU + SDU (qe trajtohet si SDU).
Tani qe shtresa 6 te kaloj tek shtresa 5 (sherbimin – SDU-n) duhet qe tek SDU-ja qe ka marr, te vendosi PDU-n e vet, dhe keshtu del SDU (i nivelit 6) + PDU-n e nivelit 5. Dhe edhe njehere e perserisim ky eshte saktesisht Inkapsulimi, apo ne shqipe me te thjesht “mbeshtjellja” e paketave.
Ja nje pamje per te pasur me te qarte se per ç’fare behet fjale:
Informatika Shqiptare

Siç e shohim te dhenat jane njelloj, pra “data” nuk ndryshon, por ne ç’do here qe zbresim 1 nivel grumbulli i paketave “vishet” me nje PDU te cilat jane te nevojshme qe kete grumbull te dhenash ta bejn te kuptueshem dhe te perdorshem ne shtresen N – 1 ( e cila ka protokollin e saj i cili mund te varjoj).
Ç’fare ndodh kur paketat ngjiten nga niveli 1 tek 7-ta?
Ndodh e kunderta, pra fillon zhveshja e grumbullit te paketave duke hequr PDU-t njeri mbas tjetrit, kjo eshte edhe arsyeja qe nese duam qe nuk mund te perdorim protokollin FTP nese ne porten 21 e kemi te mbyllur, panvarsisht se serveri psh mund te jete verpues ne ate port, dhe kjo eshte edhe arsyeja pse kemi ato qe quhen “porta sherbimi” dhe “porta te sherbyera , apo kliente”.
Nese ka pyetje, jane te mirepritura.