Facultatea de electronica, telecomunicatii si tehnologia informatiei



Yüklə 318,29 Kb.
səhifə4/4
tarix28.10.2017
ölçüsü318,29 Kb.
#18495
1   2   3   4

Interpretoarele

O a 2-a metodă utilizata este utilizarea de interpretoare. Aceasta presupune nu numai utilizarea unei simple memorii virtuale ci virtualizarea întregii aplicații.

Aceste aplicații pot fi interpretate direct de WebBrowser. În general paginile web sunt scrise în Java. Se poate folosi cod normal de programare Java sau chiar limbaje de nivel înalt cum ar fi Java Script.

Limbajul Java folosește un concept numit JVM (Java Virtual Machine = Mașina Virtuala Java). Când applet-urile JVM sunt descărcate de pe internet ele sunt introduse intr-un interpretor JVM în interiorul browser-ului.

Principalul avantaj al folosirii interpretoarelor în detrimentul compilatoarelor este acela că fiecare instrucțiune înainte de a fi executata este verificată. În funcție de modul cum funcționează și locul de proveniența o aplicație poate fi rulată normal sau în interiorul unui Sandbox.

Singurul dezavantaj major al interpretării este viteza de execuție mult mai mica decât în cazul rulării de cod nativ.





  1. Java Security (Securitate Java)

Limbajul de programare Java și întregul sistem de rulare au fost realizate astfel încât să fie scrise și apoi compilate o data și apoi transmise prin internet. Acestea pot fi rulate pe orice mașină care suporta Java.

Prima etapa în rularea unui program Java este compilarea lui intr-un cod intermediar numit JVM byte code. JVM are în jur de 100 instrucțiuni. În general programele Java sunt interpretate, deși în anumite cazuri ele pot fi compilate în cod mașină pentru a mari viteza de rulare.

Unul din principalele lucruri care s-au dorit încă din momentul realizării limbajului Java a fost realizare unui limbaj cu un grad mare de securitate. Restricțiile applet-urilor Java nu se aplică și aplicațiilor Java, pentru că acestea sunt făcute ca să poată accesa fișierele locale și cele din rețea.

Restricțiile de securitate variază de la browser la browser. În Netscape, restricțiile sunt foarte stricte. El nu permite încălcarea lor. Internet Explorer și HotJava însă va lasă să încălcați unele dintre restricții.

Majoritatea browserelor renunță la restricțiile de securitate pentru applet-urile încărcate de pe sistemul local, adică acelea încărcate cu "file:". Atunci când încărcați însă un fișier cu protocolul "http:", chiar dacă el se află pe mașina locală, restricțiile de securitate vor fi activate.

Accesul la fișiere este unul dintre cele mai vulnerabile locuri pentru atacuri rău intenționate. Dacă un applet ar putea modifica fișierele unui sistem care rulează appletul, ar putea încărca viruși sau ar putea distruge date direct. Din acest motiv, nici unui applet nu îi este permis să acceseze sistemul local al clientului în nici un fel, nici măcar în mod read-only.

Principiul general pe care se bazează restricțiile de rețea este următorul: appleturile pot realiza conexiuni de rețea numai cu serverul de Web de unde au fost încărcate. Un applet nu primește conexiuni sau datagrame din altă parte decât de la serverul părinte. De asemenea poate trimite datagrame numai către serverul părinte.

Principalul scop al acestei restricții de securitate este de a proteja rețelele locale care se află în spatele unui firewall. Rolul unui firewall este de a proteja rețeaua locală de pătrunderi indiscrete din exterior, în timp ce permite calculatoarelor din interior să acceseze date din Internet. De obicei un firewall face ca rețeaua locală să fie invizibila din exterior.

Dezvoltatorii Java au hotărât să nu permită appleturilor să dezvăluie informații despre calculatoarele client dintr-o rețea locală.

Pe lângă restricțiile asupra fișierelor și restricțiile de rețea, mai există și alte restricții.

Applet-urile non-locale nu pot accesa proprietățile sistemului client. Un applet local poate citi și scrie aceste proprietăți. Dacă acest lucru ar fi posibil și pentru cele non-locale, ar putea reduce securitatea acelui sistem. Uneori proprietățile sistemului conțin informații despre mașina locală, care pot include numele mașinii și adresa IP. Accesul la aceste informații ar contrazice restricțiile de rețea.

Applet-urile nu pot defini clase care aparțin pachetelor standard. Altfel spus, appleturile non-locale nu pot încărca clase care au același nume cu cele standard, dar care au fost supradefinite. Să presupunem că ați definit propriile clase cu numele InputStream și OutputStream care ar putea citi sau scrie pe sistemul client, și care nu cer permisiunea pentru aceasta (clasele InputStream și OutputStream standard cer mai întâi permisiunea clasei SecurityManager). Aceste clase ar trebui încărcate din altă clasa, s-o numim A. Încărcătorul clasei A, care determină clasa A să apeleze cele 2 clase, va fi întrebat dacă le poate încărca. Datorită acestei restricții, el le va încărca pe cele standard, și nu pe cele supradefinite.

Applet-urile nu pot apela metode native. Metodele native sunt metode scrise în alt limbaj de programare decât Java (de exemplu C sau C++), dar apelate dintr-un program Java. Dacă ar putea apela metode native, atunci aceste metode ar putea încălca restricțiile de securitate.

Applet-urile nu pot executa comenzi pe sistemul local folosind funcția Runtime.exec. Aceasta funcție execută comenzi sau fișiere executabile. Dacă unui applet i-ar fi permis să execute aceasta funcție, atunci ar putea executa de exemplu "format c:".

Există firme care vor să creeze appleturi Java care să acceseze în mod liber alte sisteme din intranet, dar appleturile încărcate din internet să nu poată face acest lucru.

Acest lucru se poate realiza cu ajutorul semnăturilor digitale pentru applet-uri. Mecanismul semnăturilor digitale poate determina o mașină să permită ca appleturile care se încarcă de la un site "de încredere" să aibă mai mult acces asupra sistemului local. Dacă un applet este semnat digital, este considerat "de încredere", și astfel are mai mult acces, incluzând abilitatea de a scrie pe sistemul local.


  1. Project Singularity

Singularity reprezintă un proiect de cercetare al firmei Microsoft, orientat pe construirea de sisteme independente. Astfel se lucrează la realizarea unui sistem de operare prototip numit Singularity, care extinde limbajele de programare, și dezvolta noi metode și unelte pentru controlul comportamentului programelor.

Limbajele de programare, compilatoarele, și alte unelte avansate oferă posibilitatea de îmbunătățiri semnificative ale softului. Singularity folosește aceste avantaje pentru a genera un mediu în care softul are mai multe șanse să fie făcut corect, comportamentul programelor este mult mai ușor de verificat și erorile de rulare pot fi limitate.

Unul din principiile pe care este creat acest proiect poarta numele de Software Isolated Processes (Izolarea proceselor software), prescurtat SIP. Astfel bucăți ale unei aplicații sau al unui sistem sunt încapsulate și presupune ascunderea informației, izolarea erorilor și interfețe puternice. SIP-urile sunt folosite prin intermediul sistemului de operare și al softului de program.

SIP-urile reprezintă procesele sistemului de operare pe Singularity. Toate codurile din afara kernelului se execută într-un SIP.

SIP-urile diferă de sistemele de operare diferite prin diferite proprietăți:



  • SIP-urile reprezintă spatii obiect închise, nu spatii de adrese. Doua procese ale Singularity-ului nu pot accesa simultan un obiect. Comunicațiile între procese transfera date.

  • SIP-urile sunt spatii de cod închise. Un proces nu poate încărca sau genera dinamic cod.

  • SIP-urile nu se bazează pe managementul hardware al izolării memoriei. Mai multe SIP-uri se pot găsi în aceiași locație de memorie fizica sau virtuala.

  • Comunicația dintre SIP-uri este bidirecțională, Un canal specifică protocolul de comunicare, valorile transferate, iar ambele aspecte sunt verificate.

  • SIP-urile nu au cost mare pentru a fi create, iar comunicațiile dintre ele duc la supraîncărcări mici. Costul redus le face practice din punct de vedere al mecanismului de izolare.

  • SIP-urile sunt create și terminate de sistemul de operare, astfel încât resursele unui SIP pot fi refolosite eficient.

  • Sip-urile sunt executate independent, chiar și având, la limita, formate de date, sisteme run-time, și "garbage collectors" diferite.

SIP-urile nu sunt utilizate numai pentru încapsularea datelor. Singularity folosește o serie de mecanisme pentru protecție și extensibilitate, în loc de mecanismele procese și încărcare dinamica a codului.

Singularity reprezintă un experiment prin care se dorește construirea unui întreg sistem de operare folosind SIP-uri și se dorește să se arate ca sistemul de operare rezultat este mult mai performant decât unul normal.

Kernelul Singularity este alcătuit în întregime din cod sigur, iar sistemul rezultat, care se execută în SIP-uri, este constituit numai din cod verificabil, inclusiv toate driverele componentelor periferice, procesele sistemelor și aplicații.


  1. Concluzii

Sistemele de securitate au un rol importat pentru protecția împotriva atacurilor nedorite. Este necesar ca fiecare calculator sa aibă sisteme de protecție împotriva acestor atacuri pentru a preveni eventualele probleme generate de acestea.

În cazul unui simplu utilizator nu este justificata utilizarea tuturor acestor metode, costul lor fiind mult prea mare și nejustificat. Este suficient să fie instalat un antivirus bun, eventual care să conțină și un firewall software, folosirea numai de softuri originale, iar în cazul navigării pe WEB, accesarea cu grija a aplicațiilor găsite.

În cazul unei firme securizarea datelor este esențială. Pierderea unor date, sau chiar furtul acestora pot duce la pierderi mult superioare costului implementării acestor sistem. Din acest motiv adăugarea unui nou sistem de securitate este întotdeauna benefica. Este evident ca orice sistem de securitate poate fi spart însă cu cat sunt mai multe cu atât probabilitatea de a fi depășite toate este mai mica. Esențială este și calitatea sistemului ales. Sistemul de securitate trebuie sa fie cât mai performant, indiferent de costul acestuia.




  1. Bibliografie

Modern Operating Systems third edition, autor Andrew S. Tanenbaum, editura Pearson Prentice Hall, 2008



  • Capitol 9.8 Defenses: pag. 692-711

Alte surse:

  • 2) Firewall-ul

http://www.calificativ.ro/referate/referat-Firewall-rid4573.html

  • 4) Code Signing (Semnarea codului)

  • 5) Jailing

http://www.cs.vu.nl/~guido/publications/ps/secrypt07.pdf

  • 6) Model-Based Intrusion Detection (Detecția bazata pe modelelor de instrucțiuni)

http://www.google.ro/search?q=5%29%09Model+Based+Intrusion+detection&rls=com.microsoft:ro:IE-Address&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GZAZ_en

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.95.5011&rep=rep1&type=pdf

  • 7) Encapsulating Mobile Code (Încapsularea codului mobil)

http://ro.pokerstrategy.com/strategy/others/1520/1/

  • 8) Java Security (Securitate Java)

http://er.adrianmoisei.com/java/Restrictiile_de_securitate_ale_apleturilor_Java.html

  • 9) Project Singularity

http://research.microsoft.com/pubs/52716/tr-2005-135.pdf

http://en.wikipedia.org/wiki/Singularity_(operating_system)

http://research.microsoft.com/en-us/projects/singularity/



Yüklə 318,29 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin