UNIVERSITATEA TRANSILVANIA
LABORATOARE SECURITATE
Informatică aplicată în Limba germană ANUL III
OBANCIA CARMEN-ELENA
Laborator 1: 1.1 Enumerati si descrieti 3 tipuri de vulnerabilitati. Proiectul Metasploit este un proiect de securitate IT, care furnizează informații despre vulnerabilitățile de securitate informatică și ajută în dezvoltarea testelor de securitate. Pașii de bază pentru exploatarea unui sistem, folosind arhitectura Metasploit sunt: 1. Alegerea și configurarea unui 'exploit' (cod care pătrunde în sistemul țintă, profitând de una din vulnerabilitățile acestuia; platforma Metasploit include aproximativ 900 de exploit-uri diferite de Windows, Unix / Linux și Mac OS X) 2. Se verifică dacă sistemul țintă vizat este vulnerabil față de exploit-ul ales (opțional) 3. Alegerea și configurarea unui payload (cod ce va fi executat pe sistemul țintă după obținerea accesului pe acesta; de exemplu, un shell la distanță sau un server VNC server) 4. Alegerea tehnicii de codare pentru a cripta payload-ul astfel încât sistemul de prevenire a intrărilor neautorizate (IPS) să nu depisteze payload-ul codat 5. Execuția exploit-ului w3af (atac de aplicație web) este un scaner de securitate pentru aplicații web open source. Proiectul oferă un scanner de vulnerabilitate și un instrument de exploatare pentru aplicații Web. Oferă informații despre vulnerabilitățile de securitate folosite în misiunile de testare a penetrării. Scannerul oferă o interfață grafică de utilizator și o interfață de linie de comandă. w3af este împărțit în două părți principale, nucleul și plug-in-urile.Miezul coordonează procesul și oferă caracteristici care sunt consumate de plug-in-urile, care găsesc vulnerabilitățile și le exploatează. Plugin-urile sunt conectate și partajarea informațiilor între ele folosind o bază de cunoștințe. sqlmap este un instrument de testare a penetrarii open source care automatizează procesul de detectare și exploatare a erorilor de injecție SQL și preluarea serverelor de baze de date. Dispune de un motor puternic de detectare, multe funcții de nișă pentru testerul de penetrare final și o gamă largă de switch-uri de la amprentă la bază de date, la date preluate din baza de date, la accesarea sistemului de fișiere și la executarea comenzilor pe sistemul de operare. 1.2 Ce vulnerabilitate ati observat pe serverul de retea de la scoala? SQLmap 1.3 De ce existenta unui utilizator inactiv in sistem este o problema de securitate? 1.4 Ce porturi sunt deschise de obicei pe un calculator oarecare? Ce protocoale functioneaza pe ele? Portul 80 - HTTP, TCP
Portul 443 – HTTPS TLS/SSL Portul 8080 – HTTP Alternate 1.5 Ce s-ar scana daca pe interfata GFI se lasa toate optiunile implicite (default) si se scaneaza 10.0.0.0? 2.1 Enumerati 3 tool-uri care fac copii de siguranta ale sistemului. AOMEI Backupper Strandard EaseUS Todo Backup Acronis Backup 2.2 Explicati in 2-3 fraze de ce versiunea de Norton Ghost pentru lucru in mod consola are dimensiuni foarte mici. 2.3 Care este diferenta dintre “TO IMAGE” si “FROM IMAGE”? “TO IMAGE” se foloseste pentru a salva imaginea si pentru a o muta pe diferite drive-ere, iar ”FROM IMAGE” se foloseste pentru a modifica imaginea. 2.4 Enumerati si descrieti pe scurt 3 pasi in clonarea unei partii. 1. Creati o discheta bootable Ghost. Vedeti documentul How to create a DOS system disk for Ghost. 2. Porniți computerul utilizând discheta de boot Ghost. Porneste automat. 3. Apasati OK cand apare ecranul Ghost. 4. În meniul principal Ghost, efectuați una dintre următoarele acțiuni: Local: Click Local > Disk > To Disk. Conexiune peer-to-peer: Faceți clic pe Peer to peer> Disk> To Disk 5. In Source Drive box, selectati discul sursa. Caseta Source Drive box afișează detaliile fiecărui disc pe care Ghost.exe îl găsește pe computerul local. 6. In Destination Drive dialog box, selectați discul de destinație. Alegeți cu atenție, deoarece acesta este discul care va fi suprascris. Dacă se folosește o metodă de conectare peer-to-peer, discul de destinație poate fi oricare dintre discurile computerului. Cu toate acestea, dacă aceasta este o copie locală pe disc, atunci discul sursă nu este disponibil pentru selectare. 7. Apasati OK. 8. "Proceed with disk clone?" apare promptul, efectuați una dintre următoarele acțiuni: Faceți clic pe YES pentru a continua clonarea discului. Sistemul efectuează o verificare a integrității structurii de fișiere de pe discul sursă și apoi copiază discul sursă la destinație. Dacă trebuie să întrerupeți procesul, apăsați pe Ctrl + C, dar fiți conștienți de faptul că acest lucru lasă discul de destinație într-o stare necunoscută.
Ghost acum copiază discul sursă pe discul de destinație. Când este terminat, Ghost afișează o fereastră care indică finalizarea procesului. Apasati NO pentru a va intoarce la meniu. 2.7 La ce se refera termenul de backup incremental? Backupurile incrementale vă economisesc timp și spațiu pe disc. Puteți chiar să programați backup-uri pentru a rula automat. Puteți restabili fișierele individuale, directoarele selectate sau întregul hard disk. 3.a 1. 2. 3. 4. 5. 6. 7. 8. 9.
2/5? Raspuns: 0 2/5.0? Raspuns: 0.4 3**4? Raspuns:81 “Hallo”? Raspuns:Hallo Print „Hallo” + „Welt”? Raspuns:HalloWelt (i,j)=(1,2) Raspuns:Nu afiseaza nimic Range(10)? Raspuns:[0,1,2,3,4,5,6,7.8,9] Range(1,1000,100)? Raspuns: [1,101,201,301,401,501,601,701,801,901] S=”ham” ? Rapuns:variabilei s i se atribuie stringul ‚ham ’ iar daca inmultim variabila s cu 2 ne va returna ‚hamham’ 10. „eggs” +2? Raspuns: Nu poti concatena un string cu un int 11. ‚ham’’and’’eggs’? Raspuns:hamandeggs 12. S*5? Raspuns:hamhamhamhamham 13. S[:0]? Raspuns: gol 14. S[0][0][0]? Raspuns:h 15. (‚x’,)[0]? Rapuns:x 16. ‚eggs’[2][0]? Raspuns:g 17. (‚x’,’y’)[1]? Raspuns:y 18. L=[1,2,3]+[4,5,6]? Raspuns: Nu afiseaza nimic 19. L[:]? Raspuns: Afiseaza continutul listei : 1,2,3,4,5,6 20. L[:0]? Raspuns: [] 21. L[-2]? Raspuns:5 22. L[-2:]? Raspuns: 5,6 23. ([1,2,3] + [4,5,6])[2:4]? Raspuns : [3,4] 24. (l[2],l[3])? Raspuns: [3,4] 25. L.reverse()? Raspuns: Nu afiseaza nimic 26. L? Raspuns: Afiseaza lista invers -> [6,5,4,3,2,1] 27. L.sort; l? Raspuns: Afiseaza lista sortata -> [1,2,3,4,5,6] 28. L.index(4)? Raspuns: 3 29. {‚a’:1,’b’:2}[‚b’]? Raspuns: 2 30. D={‚x’:1, ‚y’:2 , ‚z’:3} Raspuns: s-a implementat un dictionar 31. D=[‚w’]=0
32. D[‚x’]+d[‚w’]? Raspuns: 1 33. D[(1,2,3)] = 4; d? Raspuns: {‚x’:1 , ‚y’:2 , ‚z’:3 , ‚w’:0 , (1,2,3):4} 34. D.keys()? Raspuns: dict_keys([‚x’, ‚y’ , ‚z’, ‚w’, (1,2,3)]) 35. D.values()? Raspuns: dict_values([1,2,3,0,4]) 36. D.has_key((1,2,3))? Raspuns: Nu exista has_key pentru dictionar 37. (1,2,3) in d? Raspuns: True 38. 0 or [] or () or {} or None or „Ende”? Raspuns: ‚Ende’ 39. (x,y)=(1,2)? Raspuns: Variabilei x i se atribuie valoarea 1, iar variabilei y i se atribuie valoarea 2 40. (x,y)=(y,x)? Raspuns: x primeste valoarea lui y si invers. 3.b 1.
var origArray = [3, 5, 7, 9]; var newArray = origArray. slice(0, -1);
2.
var anewArray = origArray.append(„6789”); document.write(origArray); l = [1,2] l.append(l) Raspuns : Afiseaza lista [1, 2, [...]] l = [1,2] l = l+l Raspuns : [1, 2, 1, 2 ]
d. Cititi in documentatia python ce face functia dir . Ce metode are clasa lista? Dacă obiectul are o metodă numită __dir __ (), această metodă va fi apelată și trebuie să returneze lista de atribute. Acest lucru permite obiectelor care implementează o funcție personalizată __getattr __ () sau __getattribute __ () pentru a particulariza modul în care dir () raportează atributele lor. dir() ['__builtins__', '__doc__', '__name__', 'struct'] dir(struct) ['Struct', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_clearcache', 'calcsize', 'error', 'pack', 'pack_into', 'unpack', 'unpack_from'] class Shape(object): def __dir__(self): return ['area', 'perimeter', 'location']
Laborator 2: 1.Antivirus de retea (Trend) 1. Ce capabilitati are un server de antivirus de retea? 2. Pot fi instalati noi clienti de antivirus folosind consola serverului de antivirus? In ce conditii? 3. Descrieti avantajele folosirii unui server de antivirus intr-o retea.
4. Scrieti un program (C/C++/C#/Java), care pentru un folder (primit ca parametru) calculeaza pentru fiecare fisier in parte o suma de control (SHA,MD5..) si o salveaza intr-un fisier alaturi de alte informatii despre fisier (nume, data, ..). La a doua rulare a programului acesta raporteaza fisierele modificate (au hash-ul diferit de cel initial). Comparati dimensiunea fisierului obtinut in urma rularii programului ce ceea a fisierului thumbs.db generat de programe antivirus.
2. Masini virtuale (VMWare/SunVirtualBox) 1. Cate masini virtuale de windows xp pot fi instalate in medie pe un calculator cu 512MB RAM? Pe un calculator cu 512MB RAM pot fi instalate doua masini virtuale, intrucat o masina virtuala Windows XP are nevoie de 160MB.
2. Explicati pe scurt optiunea "Bridged networking" O punte de rețea este un dispozitiv de rețea pentru calculator care creează o singură rețea agregată din mai multe rețele de comunicații sau segmente de rețea. Această funcție se numește punte de rețea. Punerea în mișcare este diferită de rutare, deoarece rutarea permite mai multor rețele diferite de a comunica independent, rămânând separate, în timp ce puntea de legătură conectează două rețele separate ca și cum ar fi o singură rețea (de aici numele de "bridgeing"). În modelul OSI, punerea în mișcare este efectuată în primele două straturi, sub stratul de rețea (stratul 3). Dacă una sau mai multe segmente ale rețelei de bridge sunt wireless, dispozitivul este cunoscut ca o punte wireless și funcția de conexiune wireless. Există patru tipuri de tehnologii de interconectare a rețelelor: punți simple, conexiuni multiport, învățare sau punți de legătură transparente și punți rutiere sursă. 3. Explicati pe scurt ce este un snapshot.
În sistemele informatice, un snapshot este starea unui sistem la un anumit moment în timp. Termenul a fost inventat ca o analogie cu cea din fotografie. Se poate referi la o copie reală a stării unui sistem sau la o capacitate furnizată de anumite sisteme. 4. Indicati o diferenta intre masina reala si masina virtuala. Pot de exemplu sa am acelasi sistem de operare si acasa si la serviciu. Pot instala acel sistem de operare pe un stick USB sau pe un hard-disk USB. Singura cerinta este sa existe in ambele parti instalat acelasi program de virtualizare. 5. Daca se copiaza o masina virtuala configurata, care este deja intr-un domeniu, ce modificari trebuie facute pentru a fi ambele masini virtuale functionale? Se porneste a doua masina virtuala si se schimba domeniul. Se restarteaza si se schimba numele masinii s,i adresa IP a acesteia si se readauga masina la domeniu. Se restarteaza din nou masina.
3. Python (Py02). a. Instructiuni ciclice 1. Pentru secventa de cod de mai jos transformati instructiunea repetitiva for in instructiunea repetitiva while l = [1,2,3] for e in l: print e while (l>=1&&l<=3) e=l print e
2. Pentru secventa de cod de mai jos transformati instructiunea repetitiva while in instructiunea repetitiva for d = {1:"unu", 2:"doi", 3:"trei"} l = d.keys() i=0 while i < len(l):
s = l[i] print s, d[s] i = i+1
3. Compactati secventele de cod de mai sus la dimensiune minima.
b. Scrieti o functie care calculeaza cmmdc. Pentru calcul utilizati metoda cmmdc(x; y) = cmmdc(y; x) si pentru x > y : cmmdc(x; y) = cmmdc(x - y; y). Testati functia cu numere din fisierul py02_b.dat. Fiecare linie din fisier contine un singur numar. Calculati cmmdc dintre numerele de pe linia i si i+1 pentru i numar par. c. Calculati cmmdc pentru toate numerele din fisier. d. Scrieti o functie care calculeaza cmmdcLista pentru o lista de numere (pentru numerele x,y,z cmmdc(x,y,z)=cmmdc2(cmmdc2(x,y),z) ). e. Argumente. Definiti urmatoarele functii:
def f(a,b,c=1): print a,b,c def g(a,b,*c,**d): print a,b,c,d def h(a,b,c=1,*d,**e): print a,b,c,d,e
Pentru apelurile de mai jos justificati valorile tiparite pe baza argumentelor transmise functiilor. f(1,2,3)
f(1) f(1,2) f(1,2,3,4) g(1,2) g(1,2,3,4) g(1,2,3,4,bla="bla") h(1,2,3,4,5,6,c=7) h(1,2,3,4,5,6,x=7) f. Reconsiderati implementarea functiei cmmdc de la punctul b. Scrieti o implementare folosind lambda-expresii si reduce. g. Scrieti o functie Python care citeste un fisier (input.txt) care contine mai multe linii de forma
Nume
VenitStudent
NumarOre
si pentru fiecare linie afiseaza Nume
VenitStudent*NumarOre
daca NumarOre>0. h. Rezolvati problema precedenta (g.) folosind o singura expresie utilizand lambdaexpresii si functiile map si filter.
Laborator 3: 1.1 Nmap este un scaner de securitate, scris inițial de către Gordon Lyon (cunoscut și sub pseudonimul de Fyodor Vaskovich)[1] folosit pentru a descoperi host-uri și servicii într-o rețea de calculatoare, creând astfel o „hartă” a rețelei. Pentru a-și realiza obiectivul, Nmap trimite pachete special formatate la host-ul țintă și analizează apoi răspunsurile. Spre deosebire de multe scanere simple de porturi, care doar trimit pachete cu o frecvență constantă predefinită, Nmap ia în considerare și particularități ale rețelei (fluctuațiile de latență, traficul din rețea, interferența targetului cu scanarea) în timpul procesului de scanare. 1.2 Cu toate ca functiile Nmap au crescut ca numar in timp, el a inceput ca un scaner de porturi eficient si acesasta ramane fuctia lui de baza. Simpla comanda nmap
scaneaza mai mult de 1660 de porturi TCP ale . 1.3 Filtrarea poate proveni de la un firewall dedicat, din regulile unui router sau dintr-un firewall software al tintei. Aceste porturi frustreaza atacatorii deoarece furnizeaza foarte putine informatii. Uneori raspund cu un mesaj de eroare ICMP cum ar fi tipul 3 codul 13 (destinatie care nu a putu fi atinsa: comunicatia interzisa administrativ), dar filtrele care executa operatia drop (ignora pachetul) fara sa raspunda sunt mult mai comune. Acest lucru forteaza Nmap sa retrimita de cateva ori probele pentru cazul in care pachetul s-a pierdut din cauza congestionarii retelei si nu din cauza filtrarii. Acest lucru incetineste viteza de scanare dramatic. 1.4 Un port inchis este accesibil (primeste si raspunde la un pachet de proba trimis de Nmap), dar nu exista nici o aplicatie care sa asculte la el. Pot fi folositoare in dezvaluirea starii hostului sau ca parte a detectiei sistemului de operare. Deoarece cu porturile inchise se pote comunica, ele merita scanate si mai tarziu in caz ca vreunul dintre ele se deschide. Administratorii pot lua in considerare blocarea unor astfel de porturi cu ajutorul unui firewall. 2.1 Nu. 2.2 Cei care se conecteaza la retea nu mai beneficiaza de serviciile oferite de programul restrictionat.
2.3 CONFIG_IP_ALWAYS_DEFRAG 2.5 NetFilter si OpenBSD PF 4.a.1 L={1,2,3} l.add(4)
=> set([1,2,3,4])
a.3 l.remove(1)
=> set([2,3,4])
a.4 l.clear()
=> set([])
b.1 a =[‚Mary’ , ‚had’ , ‚little’ , ‚lamb’] for i in range (len(a)): print (i, a[i])
=> 0 Mary 1 had 2 a 3 little 4 lamb
b.2 l=[”paine”, “”gem”, “margarina”] for item in l:
for item in l:
if item == „gem”: print („Yuck”) else:
if item != „cartofi”: print(„Yuck) else:
print („Good!”) Rezultat: Good! b.3 l=[„mar” , „banana”, „kiwi”] print l => [‚mar’ , ‚banana’ , ‚kiwi’] c. parent = dict () rank = dict() def make_set(vertice): parent[vertice] = vertice rank[vertice] = 0 def find(vertice): if parent[vertice] != vertice: parent[vertice] = find(parent[vertice]) return parent[vertice] def union(vertice1, vertice2): root1 = find(vertical1) root2 = find(vertical2) if root1 != root2: if rank[root1] > rank[root2]: parent[root2] = root1 else:
print („Good”) Rezultat: Yuck
parent[root1] = root2 if rank[root1] == rank[root2]: rank[root2] += 1 def kruskal (graph): for vertice in graph[‚vertices’]: make_set(vertice) minimum_spanning_tree = set() edges = list(graph[‚edges’]) edges.sort() #print edges for edge in edges: weight, vertice1, vertice2 = edge if find(vertice1) != find(vertice2): union(vertice1, vertice2) minium_spanning_tree.add(edge) return sorted(minimum_spanning_tree) d. import random print „Am ales un numar intre 1 si 100. Il poti ghici?” solutie = random.randit(1,100); numar = int(raw_input(„Introduceti numarul:”)) while numar != solutie: if numar < solutie: print „Mai mare” else: print „Mai mic” numar = int(raw_input(„Introduceti numarul:”)); print „Ai ghicit! Numarul era:”, solutie
Laborator 4: iptraf 1. Cate interfete de retea pot fi urmarite folosind comanda iptraf? In functie de memoria disponibila. 2. Pot fi obtinute informatii statistice despre un calculator din retea de pe un altul care are instalat iptraf? Motivati.
3. Ce trafic dintr-o retea se include la trafic non-IP? 4. Pot fi facute modificari de configurare ale retelei folosind iptraf? 5. Cum s-ar putea masura largimea benzii efective a unei retele folosind iptraf?
Wireshark 1. Ce contine sectiunea de date dintr-un pachet ping? 2. Enumerati trei tipuri de protocoale care genereaza trafic in retea. Explicati pe scurt la ce se refera. 3. Cate pachete si de ce tip trimite in conditii obisnuite o comanda ping? 4. Observati trafic http. Ce puteti sspune despre imaginile dintr-o pagina de web? 5. Ce tipuri de trafic de tip broadcast observati in retea? 6. Folosind JPCAP sa se scrie un program care prezinta continutul unui pachet ICMP (ping).
Python (Py04). a. b. c. d. e. f. g. h. i. j. k. l. m. n. o. p. q. r. s. t. u. v. w. x. y. z.
Sa se implementeze adunarea unui sir de numere folosind threaduri #suma elementelor unui sir folosind mai multe fire de executie #!/usr/bin/env python import threading import time sum = 0 count = 0 a = [1, 2, 3 ,4, 5, 6, 7, 8, 9, 10] class KissThread(threading.Thread): def run(self): global sum global count sum += a[count] + a[count+len(a)/2] print "suma dupa firul %s de executie este %s" % (count,sum) count+=1 for t in range(5): KissThread().start() time.sleep(1) print "suma numerelor de la 1 la 10:", sum
aa. Sa se scrie un script python care trimite un mail la o adresa data cu lista utilizatorilor logati in ziua curenta bb. #Sa se scrie un script python care trimite un mail la o adresa data cu lista utilizatorilor logati in ziua curenta cc.
dd. import smtplib ee. import subprocess ff. import string gg. import time hh. import os ii. jj. from datetime import date kk. today=date.today() ll. #p = subprocess.Popen("last ", shell=True, stdout=subprocess.PIPE) mm. #MSG = p.stdout.read() nn. today=date.today() oo. today= today.strftime("%Y%m%d%H%M%S") pp. x='last -t'+ today qq. MSG = os.system(x) rr. FROM = "[email protected]" ss. TO = "[email protected]" tt. SUBJECT = "The users logged in today" uu. msg = string.join(( vv. "From: %s" % FROM, ww. "To: %s" % TO, xx. "Subject: %s" % SUBJECT, yy. "", zz. MSG), "\r\n") aaa. server = smtplib.SMTP('info.unitbv.ro') bbb. server.sendmail(FROM, TO, msg) ccc. server.quit()
ddd. Scrieti un script care extrage mailurile de pe serverul de mail folosind pop3. eee. Scrieti un script care extrage mailurile de pe serverul de mail folosind imap. fff. Generati un grafic pe baza fisierelor de log. ggg. #!/usr/bin/env python hhh. iii. import gdchart jjj. import shelve kkk. lll. shelve_file = shelve.open('access.s') mmm. items_list = [(i[1], i[0]) for i in shelve_file.items()] nnn. items_list.sort() ooo. bytes_sent = [i[0] for i in items_list] ppp. ip_addresses = ['XXX.XXX.XXX.XXX' for i in items_list] qqq. rrr. chart = gdchart.Bar() sss.chart.width = 400 ttt. chart.height = 400 uuu. chart.bg_color = 'white'
vvv. chart.plot_color = 'black' www. chart.xtitle = "IP Address" xxx. chart.ytitle = "Bytes Sent" yyy. chart.title = "Usage By IP Address" zzz. chart.setData(bytes_sent) aaaa. chart.setLabels(ip_addresses) bbbb. chart.draw("bytes_ip_bar.png") cccc. dddd. shelve_file.close()
Laboratorul 5: 1 1.1
Cryptool Criptati un text folosind Caesar (Crypt menu)
Text: This text file was created in order to help you to make your first steps with CT1. Text criptat: Uijt ufyu gjmf xbt dsfbufe jo psefs up ifmq zpv up nblf zpvs gjstu tufqt xjui DU1. 1.2
Creati o pereche de chei RSA. La ce pot folosite aceste chei?
Perechile de chei RSA sunt utilizate pentru crearea unei semnaturi digitale pentru mesaje.
1.3 Descrieti procesul verificarii semnaturii digitale (trebuie semnat mai intai un mesaj ..) Se deschide fisierul cu mesajul respectiv Se selecteaza Sign Message din meniul Digital Signatures Se alege o cheie Se introduce codul PIN si se apasa butonul Sign Se deschide fisierul cu mesajul semnat Se selecteaza Verify Signature din meniul Digital Signatures Se alege cheia cu care mesajul a fost semnat si se apasa butonul Verify Signature 1.4 Creati un fisier text ce contine textul ”teste”. Ce valoare de hash (MD5) are acest fisier? 69 8D C1 9D 48 9C 4E 4D B7 3E 28 A7 13 EA B0 7B. 1.5 Creati un fisier care contine textul ”abracadabra”. Ce valoare SHA are acest fisier?
F5 43 39 3F C9 4B C9 02 16 5A F2 00 FB AC 09 79 42 FD E6 3B. 1.6 Decriptati fisierul ”cryDES” folosind Crypt¿DES(ECB) cu cheia AAAAAAAAAAAAAAAA Ce contine acest fisier? Acesta este un test. Felicitari ati reusit!! 1.7 Decriptati urmatorul fisier ”cryIDEA” folosind Crypt_IDEA cu cheia: BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC. Ce reprezinta acest mesaj? !!”Nimic nu-i mai de ras ca plansul in ochii unui luptator”!!
Laborator 6: 1 1.1
Snort De ce aveti nevoie pentru ca instalarea snort sa functioneze?
Pentru a functiona instalarea Snort, trebuie instalate mai intai niste librarii software (libpcap, zlib1g, libssl, libnghttp, libdumbnet s,i libpcre). Se foloseste urmatoarea comanda (pentru Linux): sudo apt install -y gcc libpcre3-dev zlib1g-dev libpcap-dev openssl libssl-dev libnghttp2-dev libdumbnet-dev bison flex libdnet 1.2
La ce este folosit Winpcap?
WinPcap este o versiune a librariei libpcap, disponibila pentru Windows, care contine un driver pentru a putea instala tooluri de interceptare a pachetelor in retea. Aceasta librarie este folosita, spre exemplu, de Wireshark.
Laboratorul 7: 1 1.1
PGP Configurati outlook sa foloseasca un cont de email. Care este diferrenta intre outlook si un client webmail?
Webmail este un client care este conectat la server in permanenta, pe cand Outlook descarca mesajele, stergandu-le ulterior de pe server. 1.2 Trimiteti un mail criptat cu cheia publica unui alt coleg. Explicati ce se intampla. Colegul care nu are acces la cheia privata nu poate descifra mesajul primit.
Laborator 8: 1.1 .NET Framework oferă un mecanism pentru aplicarea unor niveluri diferite de încredere pe diferite coduri care rulează în aceeași aplicație numită Security Access Code (CAS). Securitatea codului de acces în .NET Framework nu ar trebui să fie folosită ca un mecanism pentru impunerea limitelor de securitate pe baza originii codului sau a altor aspecte de identitate. Gazda implicită pentru aplicațiile desktop permite codului să ruleze în deplină încredere. Prin urmare, dacă aplicația dvs. vizează desktopul, acesta are un permis de setare nerestricționat. Alte gazde sau sandboxuri oferă o permisiune limitată setată pentru aplicații. Deoarece setul de permisiuni se poate modifica de la gazdă la gazdă, trebuie să proiectați aplicația pentru a utiliza doar permisiunile permise de gazda țintă. 1.2 Permisiunile de acces la cod provin din clasa CodeAccessPermission. Sunt necesare permisiuni pentru a accesa resurse protejate, cum ar fi fișiere și variabile de mediu, și pentru a efectua operațiuni protejate, cum ar fi accesarea codului neangajat. Permisiunile de identitate reprezintă caracteristici care identifică un ansamblu. Permisiunile sunt acordate unei adunări bazate pe dovezi, care pot include elemente precum semnătura digitală sau locul în care a apărut codul. De asemenea, permisiunile de identitate provin din clasa de bază CodeAccessPermission. Rolul permisiunilor de securitate se bazează pe faptul dacă un director are o identitate specificată sau dacă este membru al unui anumit rol. Clasa PrincipalPermission permite controale declarative și imperative de permisiune împotriva principalului activ. FullTrust - Permiteți accesul deplin la toate resursele. Everything - Permiteți accesul complet la toate resursele (grupul nu este adăugat la lista de ansamblu) Internet – Drepturi de Grant Default. SkipVerification - Treceți prin toate verificările de securitate Nothing - Anulează tot accesul, inclusiv executarea Execution - Permite accesul exclusiv în execuție. 1.3 Să spunem că 2 clienti decid să semneze digital, un contract între ei, care este foarte confidențial. Iată protocolul pe care îl pot utiliza pentru a semna digital contactul: 1. Clientii obțin fiecare câte o copie a dosarului care conține contractul.
2. Al doilea client pregătește un mesaj și calculează hash-ul și criptează valoarea hash-ului cu cheia privată numită Block Signature. 3. Apoi criptează mesajul cu cheia publică a primului client. 4. Al doilea client trimite două fișiere către primul: hash și mesajul criptat. 5. După primire, primul client decriptează valoarea hash cu cheia publică a celui de-al doilea. 6. Apoi decodifică mesajul cu cheia privată. 7. Apoi calculează hash-ul acestui mesaj. 8. În cele din urmă, compară cele două valori hash. Dacă acestea sunt identice, semnătura este "bună", altfel nu este buna.
Laborator 12: 1. Definitia spune, pe scurt, ca spamul este orice mesaj nesolicitat. Din nefericire insa (pt cei din industria antispam), utilizatorii uneori fac abuz de ceea ce ofera produsele antispam pentru a bloca nu neaparat "mesajele nesolicitate", ci mesajele "nedorite". Sunt mai multe metode de detectare a acestor mesaje, unele se bazeaza pe continut, unele nu. Dintre cele care se bazeaza pe continut, unele sunt proactive (o retea neurala, expresii regulate create in asa fel incat sa detecteze si variatii ulterioare ale valurilor de spam) iar detectia proactiva este cea mai valoroasa, pentru ca spamurile sunt prinse instantaneu, de la momentul zero al "campaniei de spam". Se face de asemenea filtrare in functie de url-urile din spam, in functie de IP-urile de unde au fost trimise. Filtrarea care nu se bazeaza pe continut se refera la monitorizarea frecventei mesajelor similare intr-un interval mic de timp - comportament specific valurilor de spam. Se raporteaza numai date din care nu se poate extrage continutul mesajului sau identitatea utilizatorului. Black list - Lista neagră este forma de filtrare bazată pe reguli, care utilizează o regulă pentru a decide care e-mailuri sunt spamuri. Lista neagră este lista cu adresa IP a mașinii sau a înregistrării adreselor de e-mail care au fost utilizate anterior. Când ajunge mesajul de intrare, filtrul de spam verifică dacă IP sau adresa de e-mail se află pe lista neagră, dacă da, mesajul este considerat spam și respins. Greylist - O tehnică relativ nouă de filtrare a spamului, are avantajul faptului că mulți spammeri încearcă doar să trimită o singură dată un lot de mesaje nedorite.Sub sistemul greylist, serverul de e-mail destinatar respinge inițial mesajele de la utilizatori necunoscuți și trimite un mesaj de eroare serverului inițial. Dacă serverul de poștă electronică încearcă să trimită mesajul a doua oară - un pas pe care îl va lua cel mai legitim server - greylistul presupune că mesajul nu este spam și lasă-l să meargă la cutia poștală a destinatarului. În acest moment filtrul greylist va adăuga e-mailul sau adresa destinatarului la o listă de expeditori permiși.Deși filtrul greylist necesită mai puține
resurse de sistem decât alte tipuri de filtre de spam, acestea întârzie și livrarea de mesaje, ceea ce ar putea fi incomod. Content Based Filter - Filtrul bazat pe conținut este cel mai frecvent utilizat grup de metode de filtrare a spamurilor. Filtrul de conținut acționează fie asupra conținutului, informațiilor conținute în corpul poștal, fie asupra anteturilor poștale (cum ar fi "Subiecții") pentru a clasifica, accepta sau respinge un mesaj. 2. Fiecare cuvânt din e-mail contribuie la probabilitatea spam a emailului sau numai la cele mai interesante cuvinte. Această contribuție se numește probabilitatea posterioară și se calculează folosind teorema lui Bayes. Apoi, probabilitatea de spam a e-mail-ului se calculează peste toate cuvintele din e-mail și, dacă totalul depășește un anumit prag (de exemplu 95%), filtrul va marca e-mailul ca un spam. 3. Shamir's scheme - Este nevoie de două puncte pentru a defini o linie dreaptă, trei puncte pentru a defini complet un patrat, patru puncte pentru a defini o curbă cubică și așa mai departe. Adică, este necesar să se definească un polinom de gradul t - 1. Metoda este de a crea un polinom de gradul t - 1 cu secretul ca primul coeficient și coeficienții rămași sunt aleși la întâmplare. Apoi găsiți n puncte pe curbă și dați câte unul jucătorului. Atunci când cel puțin t din jucătorii n dezvăluie punctele lor, există suficiente informații pentru a se potrivi cu un polinom gradului (t - 1), primul dintre ele fiind secretul. Blakley's scheme - Două linii neparalele în același plan se intersectează exact la un punct. Trei planuri non-paralele în spațiu se intersectează exact la un punct. Mai general, orice n nelinear (n - 1) . Secretul poate fi codificat ca orice coordonată a punctului de intersecție. Dacă secretul este codificat folosind toate coordonatele, chiar dacă acestea sunt aleatoare, atunci un insider câștigă informații despre secret, deoarece știe că trebuie să stea pe plane-ul lui. Dacă un insider poate dobândi mai multe cunoștințe despre secret decât un străin poate, atunci sistemul nu mai are informații de securitate teoretică. Dacă se folosește doar una dintre coordonatele n, atunci insiderul nu cunoaște mai mult decât un outsider (adică secretul trebuie să stea pe axa x pentru un sistem bidimensional). Fiecare jucător primește suficiente informații pentru a defini un hiperplane; secretul este recuperat prin calcularea punctului de intersecție al avionului și apoi luând o coordonată specifică a intersecției respective. 4. import soket import random __all__ = [‚Tracer’] class Tracer (object): def __init__(self, dst, hops = 30): self.dst = dst self.hops = hops self.ttl = 1 #Alegeti un port random in range (33434-33534) self.port = random.choise(range(range(33434-33535))
def run(self): try: dst_ip = socket.gethostname(self.dst) exept socket.error as e: raise IOError(„Unable to resolve {}: {}”, self.dst,e) text = ‚traceroute to {} ({}), {} hops max’.format( self.dst, dst_ip, self.hops ) print (text) while True: reciver = self.create_reciver() sender = self.create_sender() sender.sentto(b’’’,(self.dst, self.port)) addr = None try: data, addr = reciver.recvform(1024) except socket.error: raise IOError(’Socket error :{}’.format(e)) finally: reciver.close() sender.close() if addr: print(’{:<4} {}’.format(self.ttl, addr[0])) else: print (’{:<4} *’.format(self.ttl)) self.ttl += 1 if addr[0] == dst_ip or self.ttl > self.hops: break def create_reciver(self): s = socket.socket( family=socket.AF_INET, type=socket.SOCK_RAW, proto=socket.IPPROTO_ICMP )
try: s.bind((’’ ,self.port)) except socket.error as e: raise IOError(’Unable to bind receiver socket: {}’.format(e)) return s def create_sender(self): s = socket.socket( family=socket.AF_INET, type=socket.SOCK_DGRAM, proto=socket.IPPROTO_UDP ) s.setsockpt(socket.SOL_IP, socket.IP_TTL, self.ttl) return s
Laborator 14: 1. Dati doua exemple de cai troieni. Trojan.Cryptolocker este un troian, utilizat pentru a răspândi nişte viruşi foarte periculoşi numiţi Cryptolocker şi Cryptowall. Se crede că acest troian poate fi utilizat şi pentru distribuirea altor malware-uri, precum programele false anti-spyware, backdoors şi alte ameninţări similare. Se răspândeşte cu ajutorul unor mesaje de securitate false ce pretind că maşina dumneavoastră este infectată cu un posibil virus. Atunci când utilizatorul apasă pe un astfel de mesaj, troianul intră în sistem şi silenţios instalează un ransomware. În plus, va bloca sistemul şi va afişa un mesaj de avertizare imens pe ecranul victimei. De asemenea, puteţi descărca această ameninţare în calculator ca şi ataşament de email sau reclamă de tip pop-up care se oferă să vă actualizeze Java sau Flash Player. Trojan.ZeroAccess este un alt troian periculos, cunoscut ca şi max++. Notaţi faptul că există foarte multe versiuni ale acestui troian şi că toate au acelaşi ţel – să fure informaţiile personale ale oamenilor. Cu acest scop în minte, aceştia înregistrează fiecare bătaie de tastă a victimei şi pot face continuu capturi de ecran. Acest troian, de obicei, se furişează în sistem de pe diverse resurse de pe internet precum pagini web nesigure sau reţele peer-to-peer, şi începe să acţioneze fără a pierde timpul.
2. Faceti o comparatie intre doua programe antivirus. 3. Folosind wireshark puneti in evidenta pasii interceptare a unui pachet icmp.
4. Scrieti un script pentru backupul unui sistem linux. Acesta arhiveaza directoarele importante si folosind scp copiaza arhivele la caile indicate ca si constante la inceputul scriptului. Determinati ce servicii necesita atentie deosebita la realizarea backuplui avand in vedere rularea periodica a acestuia.
Laborator 18: 1.Setarea controlului parental poate fi foarte benefică pentru familia ta. Vă oferă posibilitatea de a gestiona modul în care copiii utilizează dispozitivul dvs. și vă oferă liniște că acestea se află în siguranță online. 2. Qustodio - O suită completă de instrumente de control parental pentru a vă menține copiii în siguranță online Majoritatea software-urilor de control parental vizează Windows, dar Qustodio (cred că "custodian") este de asemenea disponibil pentru Mac, Android, iOS, Kindle și (ciudat) Nook. OpenDNS FamilyShield - Blocheaza domenii pe întreaga rețea de domiciliu la nivel de router. FamilyShield este un serviciu gratuit de la OpenDNS. Instrumentele de control parental blochează automat domeniile pe care OpenDNS le-a semnalat sub titlurile "fără gust, proxy / anonimizator, sexualitate sau pornografie". Kidlogger - Afișarea detaliată a activităților, inclusiv aplicațiile utilizate și apăsările de la tastatură. Nimic nu trece de Kidlogger. Acest software gratuit de control parental nu numai că urmărește ceea ce copiii dvs. scriu la tastaura și site-urile pe care le vizitează - de asemenea, păstrează o înregistrare a programelor pe care le folosesc și a oricărui screenshot-uri pe care le iau. 4. Keylogger – inregistreaza actiunile tastaturii (si chiar capturi de ecran) iar dupa o perioada sunt trimise autorului virusului astfel incat acesta poate afla informatii importante, cum ar fi useri si parole, conturi, numere de carti de credit…
Exploit – utilizeaza erorile de programare pentru a prelua controlul computerului-tinta. Sunt periculoase datorita faptului ca multe nu sunt aduse la cunostinta publicului si sunt cunoscute numai de cei care au descoperit „portile de intrare” (hackeri). Din acest motiv, periodic, furnizorii de programe (inclusiv Microsoft) fac update-uri pentru a remedia erorile descoperite si a imbunatati siguranta programului; Backdoor – dupa cum ii spune si numele (usa din spate) deschide o intrare – fara ca posesorul computerului sa observe ceva – si, controlandu-l, are la dispozitie toate informatiile personale, unele foarte importante (useri, password-uri, numere carti de credit, conturi etc.). Un foarte bun virus de acest tip a fost creeat de un roman si se numeste Subseven. Sniffing – se intercepteaza datele transferate printr-o rețea de calculatoare – eventual se si decodifica – in scopul sustragerii de informatii importante; autorul trebuie sa se afle in aceeasi retea pentru a putea avea acces la datele respective, cele transferate prin retea. Port-scanning – se verifica toate porturile unui calculator (65.535 de toate!) si cand se depisteaza unul se incepe atacul pentru a se prelua controlul. 1.1 Ce se intelege prin control parental? Prin Controlul parental se intelege gestionarea modului in care copiii utilizeaza calculatorul, restrictionand accesul la programe si setand un timp limitat de actiune. De asemenea, se pot trimite rapoarte parintilor cu activitatea copiilor pe internet. 1.2 Descrieti trei softuri care ajuta la controlul parental. Bitdefender KinderServer AVG Family Safety
1.3
Prezentati 3 cai troieni care au fost detectati in ultima perioada.
CoreFlood Tiny Banker Trojan Shedun Android malware