STAW 08/12: Programare Web. Suita de tehnologii HTML5
Computer Networks. Security: monitoring & testing
1. Retele de calculatoare
Retele de calculatoare
Introducere in securitate (II)
Sabin-Corneliu Buraga
busaco@infoiasi.ro
http://www.infoiasi.ro/~busaco
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [1]
2. Retele de calculatoare
Cuprins
• Prevenirea & supravietuirea *
• Monitorizarea
• Testarea
• Raspunsul la incidente
• Protocoale
• Probleme specifice
* Multumiri lui Dragos Acostachioaie
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [2]
3. Retele de calculatoare
Prevenirea
• La ce nivel trebuie luate masuri de securitate?
– Nivelul fizic: inhibarea ascultarii mediilor de
transmisie, interzicerea accesului fizic la server,…
– Nivelul legatura de date: criptarea legaturii
– Nivelul retea: ziduri de protectie (firewall-uri)
– Nivelul transport: criptarea conexiunilor
(SSL – Secure Socket Layer,
TLS – Transport Layer Security)
– Nivelul aplicatie: monitorizare si actualizare
a software-ului, jurnalizare, educare a utilizatorilor,
politici generale adoptate,…
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [3]
4. Retele de calculatoare
Prevenirea
• Elaborarea de politici de securitate
– Planificarea cerintelor de securitate
• Confidentialitate, integritate, disponibilitate, control
– Evidentierea riscurilor
• Scenarii de risc
– Analiza raportului cost-beneficii
• Costurile prevenirii, refacerii dupa dezastru etc.
– Stabilirea politicilor de securitate
• Politica generala (nationala, organizationala,…)
• Politici separate pentru diverse domenii protejate
• Standarde & reglementari (recomandari)
• Masurile luate pot fi tehnice si non-tehnice
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [4]
5. Retele de calculatoare
Prevenirea
• Elaborarea de politici de securitate – exemplu:
– Gestionarea accesului (nume de cont, alegerea si
modul de schimbare a parolelor, blocarea
terminalului, politica de acces din exterior,…)
– Clasificarea utilizatorilor (grupuri, permisiuni,
utilizatori speciali, utilizatori administratori,…):
constituirea ACL (Access Control List)
– Accesul la resurse (drepturi de acces la fisiere,
directoare, criptarea fisierelor importante,…)
– Monitorizarea activitatii (fisiere de jurnalizare)
– Administrarea copiilor de siguranta (tipuri de
salvari, medii de stocare, durata pastrarii,…)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [5]
7. Retele de calculatoare
Prevenirea
• Principii de baza:
– Simplificare – configurarea sistemului astfel incit
sa acorde vizitatorilor cele mai scazute privilegii
– Reducere – minimizarea ariei de actiune
– Intarire – “never trust user input” +
securizarea accesului la fisiere/aplicatii externe
– Diversificare – utilizarea mai multor niveluri de
protectie (“don’t rely on security by obscurity” )
– Documentare – memorarea setarilor, strategiilor
si masurilor adoptate pentru securitate
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [7]
8. Retele de calculatoare
Prevenirea
• De retinut!
– Atacatorul poate alege cel mai slab punct
al sistemului
• Siguranta sistemului depinde de cea
mai vulnerabila componenta a acestuia
– Ne putem apara doar contra atacurilor cunoscute,
dar atacatorul poate exploata vulnerabilitati
misterioase
– Cracker-i pot ataca oricind si de oriunde,
vigilenta trebuie sa fie permanenta
– Atacatorul nu tine cont de legi, reguli,
recomandari ori de bunul-simt!
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [8]
9. Retele de calculatoare
Supravietuirea
• Supravietuirea ≡ capacitatea unui sistem
(calculator/retea) de a-si indeplini misiunea, in timp
util, in prezenta atacurilor, defectelor sau accidentelor
• Atac ≡ eveniment potential distrugator provocat
intentionat de persoane rau-voitoare
• Defect ≡ eveniment potential distrugator cauzat de
deficiente ale sistemului sau ale unui factor de care
depinde sistemul (e.g., defecte hardware,
bug-uri software, erori ale utilizatorilor)
• Accident ≡ evenimente aleatoare (neprevazute);
exemple: dezastre naturale sau caderi de tensiune
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [9]
10. Retele de calculatoare
Supravietuirea
• Sistemul trebuie sa-si duca pina la capat
misiunea chiar daca unele componente sau
parti din sistem sunt afectate ori scoase din uz
– Exemplu: oferirea unei copii read-only a datelor
• Sistemul trebuie sa sustina macar indeplinirea
functiilor vitale (mission-critical)
– Identificarea serviciilor esentiale
– Identificarea perimetrelor de securitate majora
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [10]
11. Retele de calculatoare
Supravietuirea
• Proprietati ale sistemului:
– Rezistenta la atacuri ≡ strategii de respingere a atacului
(e.g., autentificarea utilizatorilor, firewall-uri,
validarea obligatorie a datelor de intrare)
– Recunoasterea atacurilor si efectelor lor ≡ strategii
pentru restaurarea informatiilor, limitarea efectelor,
mentinerea/restaurarea serviciilor compromise
RAID (Redundant Array of Independent Disks),
SAN (Storage Area Network), backup-uri, cluster-e,...)
– Adaptarea la atacuri ≡ strategii pentru imbunatatirea
nivelului (sansei) de supravietuire – invatarea din greseli
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [11]
12. Retele de calculatoare
Monitorizarea
• Monitorizarea securitatii retelei (NSM – Network
Security Monitoring) ≡ colectarea, analiza &
aprecierea indicatorilor si avertismentelor
privind detectarea si raspunsul la incidente de
securitate
– Indicator: actiune observabila care confirma
intentiile sau capacitatile de atac
– Indicatorii generati de sistemele de detectie
a intrusilor se mai numesc si alerte
(vizind un anumit context)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [12]
13. Retele de calculatoare
Monitorizarea
• Observatii:
– Detectarea este realizata (automat)
de produse software
– Analizarea implica factorii umani
– Aprecierea incidentului reprezinta
un proces de luare a deciziilor
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [13]
14. Retele de calculatoare
Monitorizarea: detectarea
• Principii:
– Intrusii care comunica (direct/indirect)
cu victimele pot fi detectati
– Detectia prin luare de probe (sampling)
este superioara lipsei detectiei
• Nu pot fi monitorizate toate datele
– Detectia pe baza analizei traficului
este superioara lipsei detectiei
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [14]
15. Retele de calculatoare
Monitorizarea: detectarea
• Remarci:
– Colectarea tuturor datelor este problematica
(dar ideala)
– Colectarea datelor poate fi efectiva daca
se bazeaza pe aparitia unor evenimente
– Instrumentele de detectie trebuie sa fie
optimizate si sa asigure ergonomia
utilizatorului
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [15]
16. Retele de calculatoare
Monitorizarea
• Divizarea retelei
in zone de interes
– Fiecare zona
poate fi subiectul
unor atacuri
– DMZ separa
datele sensibile de
cele disponibile
public (servere
DMZ uzuale: DNS,
e-mail, Web)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [16]
17. Retele de calculatoare
Monitorizarea
• Pot fi colectate date provenite de la:
– Hub-uri, porturile switch-urilor (via SPAN – Switched
Port ANalyzer), tap-uri (test access port – dispozitiv
de retea proiectat special pentru monitorizare),
portile de filtrare (filtering bridges)
• pentru retele cu fir
– Senzori intre firewall-ul organizatiei si punctul de
acces wireless, o platforma wireless
• pentru retele wireless
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [17]
18. Retele de calculatoare
Monitorizarea
• Aspectele importante privind colectarea datelor:
granularitatea & relevanta
– Instrumente: biblioteca libpcap, utilitarele tcpdump,
Wireshark (Ethereal), Snort, tcpslice, ngrep, netdude
• Conversatia intre 2 entitati ≡ date de tip
sesiune (session data, flow, stream)
– Adresele IP sursa & destinatie, porturile sursa &
destinatie, timestamp, masura informatiilor
transmise in timpul unei sesiuni
– Instrumente: NetFlow, fprobe, sFlow (RFC 3176),
Argus, tcptrace
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [18]
19. Retele de calculatoare
Monitorizarea
• Realizarea de statistici
– La nivel de router (e.g., CISCO accounting)
– La nivel de sistem de operare
• instrumente: Ipcad, ifstat, bmon, trafshow, ttt,
tcpdstat, MRTG (Multi Router Traffic Grapher), ntop
• Alertarea (network intrusion detection)
– Instrumente: Bro, BRA (Bro Reusable Architecture),
Prelude, Shoki
• Asistarea in luarea de decizii:
– Instrument de referinta: Sguil
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [19]
20. Retele de calculatoare
Monitorizarea: identificarea
• Date (trafic de retea):
– Normale
• Privind HTTP, FTP, SMTP, POP3, DNS, IP, IPSec,
SSL/TLS etc.
– Suspicioase
• Apar dubioase la prima vedere, dar nu cauzeaza
probleme pentru corporatie, ci – eventual – doar
utilizatorului
– Malitioase
• Au impact negativ asupra securitatii organizatiei
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [20]
21. Retele de calculatoare
Monitorizarea: validarea
• Validarea asociaza un incident preliminar
unei categorii de evenimente:
– Acces neautorizat ca root (administrator)
– Acces neautorizat la nivel de utilizator
– Incercare de accesare neautorizata
– Atac (D)DoS soldat cu succes
– Violare a politicii de securitate
– Scanare, probare, detectie
– Infectie cu virusi
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [21]
22. Retele de calculatoare
Monitorizarea: reactia
• Dupa aparitia unui incident de securitate,
trebuie demarata o reactie:
– Pe termen scurt
STIC (Short-Term Incident Containment)
• Exemple: inchiderea portului switch-ului prin care
se realizeaza atacul, deconectarea fizica,
introducerea unei reguli noi de filtrare a datelor etc.
– Intrarea in stare de urgenta (Emergency NSM)
• O importanta majora o are analiza
(analyst feedback)
– Implica personal specializat
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [22]
23. Retele de calculatoare
Monitorizarea
• Se poate recurge si la capcane pentru cracker-i:
honeypots
– Masini-tinta special configurate pentru a observa
atacurile cracker-ilor
– Mai multe honeypots formeaza un honeynet
• vezi si www.honeynet.org
– Pentru a detecta & studia noi tehnici de atac +
a contracara diverse incidente de securitate
– Folosind un daemon (honeyd), se pot imita servicii
de retea, rulind intr-un mediu virtual
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [23]
24. Retele de calculatoare
Monitorizarea
• Arhitectura generala a unui honeypot
A se vedea si proiectul Metasploit – www.metasploit.com
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [24]
25. Retele de calculatoare
Testarea
• Teste de verificare a:
–Capacitatii de deservire a clientilor
–Robustetei
–Rularii in situatii extreme
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [25]
26. Retele de calculatoare
Testarea
• Teste specifice legate de programare:
– Buffer overruns
• Exemplu: lungimea parametrilor trimisi de client
– Probleme de prelucrare (parsing)
• E.g., procesarea numelor de fisiere,
a interogarilor SQL, a fisierelor de configurare,…
– Probleme de conversie a datelor
– Si multe altele
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [26]
27. Retele de calculatoare
Testarea
• Teste specifice legate de programare:
– Solutii & strategii:
• Programare defensiva (defense programming)
• Includerea unui sistem de prevenire, detectare
si raportare a erorilor survenite in cod +
recurgerea la un sistem de urmarire a bug-urilor
(bug tracking) – e.g., Bugzilla
• Adoptarea standardelor de redactare a codului
(enforcing coding standards)
• Recurgerea la unitati de testare (testing units)
• Folosirea unui sistem de control al versiunilor
(CVS – Concurrent Versioning System)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [27]
28. Retele de calculatoare
Testarea
• Alte tipuri de teste:
– Teste vizind confidentialitatea
& intimitatea (privacy)
– Teste privitoare la integrarea componentelor
– Teste privind opacizarea datelor (obfuscation)
• Datele nu trebuie stocate in locatii predictibile
• Fenomenul information disclosure
– Teste specifice legate de exploatare
• Pregatirea adecvata a exploatarii in practica (deployment)
• Teste de incarcare (load testing)
– Teste referitoare la performanta
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [28]
29. Retele de calculatoare
Testarea
• Instrumentele de stresare (stressing tools)
pot da informatii privitoare la:
– Performanta (timp de raspuns,
timp de generare a continutului etc.)
– Scalabilitate (memorie ocupata, utilizarea
discului, numarul inregistrarilor inserate,
accesarea altor tipuri de resurse,...)
– Corectitudine
(functionarea eronata a unor componente)
– Lacune de securitate
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [29]
30. Retele de calculatoare
Testarea
• Metodologii de analiza a riscurilor:
– DREAD (Damage potential, Reproducibility,
Exploitability, Affected users, Discoverability)
– OCTAVE (Operationally Critical Threat, Asset,
and Vulnerability Evaluation)
– STRIDE (Spoofing identity, Tempering with data,
Repudiation, Information disclosure,
Denial of service, Elevation of privilege)
– OSSTMM (Open Source Security Testing
Methodology Manual)
www.osstmm.org
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [30]
31. Retele de calculatoare
Raspunsul la incidente
• Metodologia SANS (System Administration,
Networking, and Security) – etape:
– Pregatire
– Identificare
– Controlul efectelor (containment)
– Eradicare
– Recuperare
– Continuare (follow-up)
• Raspunsurile agresive (e.g., hack back)
sint prohibite!
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [31]
32. Retele de calculatoare
Raspunsul la incidente
• Forensics ≡ proces de “prindere” a cracker-ilor
– Investigation of digital evidence for use in criminal
or civil courts of law
– Uzual, are loc dupa un incident de securitate
– Implica: analiza hardware-ului (discuri, RAM,…),
“deseelor” (information detritus), log-urilor etc.
– Instrumente: WinHex, FIRE (Forensic and Incident
Response Environment), ForensiX
– Actiunea de “stergere” a urmelor ≡ anti-forensics
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [32]
33. Retele de calculatoare
Protocoale
• Nivelul retea:
IPSec – RFC 2401, 2402, 2406, 2408
– Comunicatii sigure la nivel de retea
(LAN, WAN, Internet)
– Poate fi implementat in cadrul unui router
sau firewall
– Nu necesita modificarea software-ului
la nivel de transport/aplicatie
– Servicii oferite: controlul accesului, integritatea
datelor, autentificare, confidentialitate
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [33]
34. Retele de calculatoare
Protocoale
• Nivelul retea:
IPSec – RFC 2401, 2402, 2406, 2408
– Autentificarea & integritatea se precizeaza
intr-un antet special: Authentication Header
– Confidentialitatea este asigurata de
algoritmi de criptare via date suplimentare
ESP (Encapsulating Security Payload)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [34]
35. Retele de calculatoare
Protocoale
• Nivelul transport:
TLS (Transport Layer Security)
– Imbunatatire a SSL (Secure Socket Layer) creat de
Netscape
– Ofera servicii de securitate de baza pentru TCP
– Fiecare conexiune dintre un client si server
reprezinta o sesiune (session)
– Starea unei sesiuni ≡ identificator unic al sesiunii,
certificat digital, metoda de compresie, metoda de
cifrare (algoritm de criptare sau de tip hash),
cod secret partajat de client & server
– Un mesaj are asociat un cod de autentificare:
MAC (Message Authentication Code)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [35]
36. Retele de calculatoare
Protocoale
• Nivelul transport: TLS
– Alert Protocol – managementul alertelor provenite
de la un punct-terminal: mesaj neasteptat
receptionat, eroare de decompresie, MAC incorect,
certificat eronat,…
– Handshake Protocol – permite autentificarea
serverului la client si vice-versa, plus negocierea
algoritmilor de criptare si a cheilor; se realizeaza
inainte de transmiterea efectiva a datelor
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [36]
37. Retele de calculatoare
Protocoale
• Nivelul aplic.: SSH (Secure Shell)
– Negociaza si stabileste o conexiune criptata intre un server
si un client SSH via metode diverse de autentificare
– Implementari: ssh, PuTTY, SCP (Secure CoPy),…
• Nivelul aplic.: PGP (Pretty Good Privacy) – RFC 3156
– Ofera confidentialitatea & autentificarea mesajelor e-mail
si a fisierelor transmise prin retea
– Foloseste o pleiada de algoritmi de criptare
– Implementari: GPG (GNU Privacy Guard)
• Nivelul aplic.: S/MIME – RFC 3369, 3370, 3850, 3851
– Pune la dispozitie extensii de securitate
pentru MIME (Multipurpose Internet Mail Extension)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [37]
38. Retele de calculatoare
Probleme specifice
• Sistemele peer-to-peer
– Incredere (trust): componentele P2P
au comportamentul pe care-l pretind?
• Software P2P poate fi modificat de terte persoane
• Transferurile pot fi jurnalizate
– Asigurarea anonimitatii
– Rezistenta la atacuri: DoS, storage flooding,
conectare/deconectare rapida,…
• Nodurile malitioase pot redirecta mesajele spre destinatii
incorecte sau inexistente ⇒ pierderi de pachete
– Includerea de mecanisme anti-pollution
– Autentificarea
– Efectuarea de transferuri de date securizate
– Oferirea de servicii sigure
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [38]
39. Retele de calculatoare
Probleme specifice
• Sistemele peer-to-peer
– Pot fi folosite impotriva atacurilor DoS: tehnica SOS
– Permit ca un numar de utilizatori legitimi
sa comunice cu o destinatie tinta atunci cind:
• Atacatorii incearca sa intrerupa comunicarea cu tinta
• Datele tintei nu pot fi replicate
• Utilizatorii legitimi pot fi mobili
– Idee: redirectarea traficului catre reteaua de
acoperire (overlay)
• Cracker-ii trebuie sa atace mai multe puncte ale retelei
• Reteaua se poate adapta rapid
(gazdele atacate sunt substituite dinamic cu altele)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [39]
40. Retele de calculatoare
Probleme specifice
• Sistemele wireless
– Necesitate: un mediu sigur
(autentificare, integritate a datelor,
confidentialitate, autorizare, nerepudiere)
– Pericole – tipuri de atacuri:
• falsificarea identitatii (spoofing)
• interceptarea (sniffing)
• alterarea datelor (tampering)
• interferenta (jamming) – e.g., la Bluetooth
• furtul (device theft)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [40]
41. Retele de calculatoare
Probleme specifice
• Sistemele wireless
–Solutii:
• certificate digitale
–WIM (Wireless Identification Module)
• infrastructura cu chei publice (PKI)
• protocoale de securitate:
WTLS (Wireless Transport Layer Security)
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [41]
42. Retele de calculatoare
Probleme specifice
• Sistemele wireless
–Solutii:
• securitatea la nivel de IP: IPSec
• extensii de securitate
in cadrul IP-ului mobil
• firewall-uri
• retele private virtuale (VPN)
• smartcard-uri
• autentificari biometrice
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [42]
43. Retele de calculatoare
Rezumat
• Prevenirea & supravietuirea
• Monitorizarea
• Testarea
• Raspunsul la incidente
• Protocoale
• Probleme specifice
Sabin-Corneliu Buraga 2006/2007 – www.infoiasi.ro/~busaco/ [43]