- Ce este Java?
- De ce a fost creat inițial Java?
- Cadrele majore Java și amenințările la adresa securității acestora:
- Struts
- Spring MVC
- Google Web Toolkit (GWT)
- Hibernate
- OWASP ESAPI
- Java Server Faces (JSF)
- JSP
- Vulnerabilități de securitate Java
- Vulnerabilități de securitate Java cu risc ridicat:
- Securing your Java
Ce este Java?
Lansat inițial în mai 1995, Java este cel mai popular limbaj de programare din lume, peste 95% din toate computerele de birou ale întreprinderilor funcționând pe Java. Jave este conceput pentru a permite dezvoltatorilor să „scrie o singură dată, rulează oriunde” (WORA), ceea ce înseamnă că codul scris în Java este capabil să ruleze pe toate platformele cu suport Java, fără a fi necesară o recompilare ulterioară.
Java este un limbaj de programare concurent, bazat pe clase, orientat pe obiecte, de uz general, care este renumit pentru că este rapid, sigur și fiabil și poate fi găsit peste tot, de la cele mai populare site-uri web la dispozitive mobile și de la console de jocuri la centre de date de întreprindere și nu numai. Licențiat sub licența GNU General Public License, Java poate fi descărcat gratuit.
Java este influențată de numeroase limbaje de programare, inclusiv C++, C#, Eiffel, Mesa, Modula-3, Objective-C și altele și a jucat un rol important în dezvoltarea multor limbaje de programare populare, cum ar fi Groovy, Hack, Haxe, Kotlin, PHP, Python, Scala și altele. La nivel mondial, există peste 9 milioane de dezvoltatori Java care, dacă s-ar aduna și ar forma o țară, ar fi a 95-a țară ca populație din lume sau, dacă ar crea un oraș, acesta ar fi la egalitate pe locul 20 ca mărime din lume.
De ce a fost creat inițial Java?
La începutul anilor 1990, extinderea puterii de calcul în rețea la viața de zi cu zi a fost considerată o viziune radicală, iar un grup de ingineri Sun Microsystem, cunoscut sub numele de „Green Team”, condus de James Gosling, a încercat să realizeze această viziune prin introducerea următorului val de calculatoare prin unirea dispozitivelor de consum și a computerelor, prin crearea Java. Această echipă de ingineri de la Sun a fost ușor în avans față de timpul lor, deoarece eforturile lor inițiale s-au concentrat asupra televiziunii interactive, iar limbajul acestui proiect a fost numit inițial Oak, după numele copacului din fața biroului lui Gosling, înainte de a fi redenumit în Java, după cafeaua Java.
În timp ce Java a fost înaintea curbei în ceea ce privește televiziunea interactivă, a apărut în același timp în care internetul începea să ia avânt și a fost o potrivire perfectă pentru această tehnologie emergentă. În 1995 s-a anunțat că browserul de internet Netscape Navigator va încorpora tehnologia Java și, de atunci, principalele browsere web au încorporat capacitatea de a rula applet-uri Java.
Ca și în cazul majorității limbajelor de codare, dezvoltarea Java a fost ghidată de o serie de principii care au influențat crearea și dezvoltarea continuă a Java:
- Debuie să fie „simplu, orientat pe obiecte și familiar”.
- Debuie să fie „robust și sigur”.
- Debuie să fie „neutru din punct de vedere al arhitecturii și portabil”.
- Trebuie să se execute cu „performanțe ridicate”.
- Trebuie să fie „interpretat, cu fire de execuție și dinamic”.
Cadrele majore Java și amenințările la adresa securității acestora:
Struts
Struts este un cadru gratuit, bazat pe acțiuni, open-source, Model-view-controller (MVC), utilizat pentru a dezvolta aplicații web Java EE. Lansat în mai 2000, Struts a fost scris de Craig McClanahan și donat Fundației Apache, principalul obiectiv din spatele lui Struts este separarea modelului (logica aplicației care interacționează cu o bază de date) de vizualizare (paginile HTML prezentate clientului) și de controler (instanța care transmite informații între vizualizare și model).
O preocupare majoră de securitate cu care se confruntă aplicațiile construite folosind Struts este executarea de cod de la distanță. În 2010, Struts2, un framework Struts popular, a fost descărcat de peste 1 milion de ori în 2010 de peste 18.000 de organizații și includea o clasă unică de slăbiciuni care permitea
Părți rău intenționate să execute cod arbitrar pe orice aplicație web Struts2.
Spring MVC
Spring MVC este un cadru de aplicații Spring scris de dezvoltatorii Spring ca răspuns la ceea ce au considerat a fi defecte de proiectare în alte cadre populare, cum ar fi separarea insuficientă între straturile de prezentare și de gestionare a cererilor și între stratul de gestionare a cererilor și model. Ca și Struts, Spring MVC este, de asemenea, un cadru bazat pe acțiuni. În 2011, Spring MVC, împreună cu Struts, a fost considerată una dintre cele mai descărcate biblioteci vulnerabile din cauza CVE-2012-3451, această versiune a fost descărcată de peste 18 milioane de ori între 2011-2012 de peste 43.000 de organizații
Google Web Toolkit (GWT)
Ca un set de instrumente open source care permite dezvoltatorilor să creeze și să mențină aplicații complexe de front-end JavaScript în Java, Google Web Toolkit (GWT) este gratuit și este utilizat atât de Google, cât și de mii de dezvoltatori din întreaga lume. GWT a fost conceput pentru a permite dezvoltarea productivă a aplicațiilor web de înaltă performanță fără ca programatorul să fie nevoit să aibă cunoștințe avansate despre ciudățeniile browserului, XMLHttpRequest și JavaScript. Datorită faptului că GWT produce cod JavaScript, aplicațiile GWT trebuie să fie securizate împotriva tuturor amenințărilor cu care se confruntă aplicațiile JavaScript.
Hibernate
Hibernate ORM, cunoscut sub numele simplu de Hibernate, este un cadru de cartografiere obiect-relațională pentru limbajul Java. Conceput pentru maparea claselor Java în tabelele bazelor de date și pentru maparea de la tipurile de date Java la tipurile de date SQL. Aplicațiile care conțin Hibernate pot fi amenințate de injecții SQL în cazul în care sunt generate interogări SQL, sau HQL, prin concatenarea de șiruri de caractere. O modalitate de a vă proteja împotriva acestora este utilizarea parametrilor numiți în orice SQL sau HQL.
OWASP ESAPI
OWASP ESAPI, OWASP Enterprise Security API, este o bibliotecă gratuită, open source, de control al securității aplicațiilor web, care face mai simplu pentru dezvoltatori să scrie aplicații cu risc redus, în timp ce bibliotecile ESAPI sunt concepute pentru a facilita programatorilor adăugarea retroactivă a securității în aplicațiile existente.
Java Server Faces (JSF)
Formalizat ca standard prin intermediul Java Community Process, Java Server Faces (JSF) este o specificație Java pentru construirea de interfețe utilizator bazate pe componente pentru aplicații web. Conform OWASP „JSF nu implementează propriul model de securitate, ci se bazează pe securitatea JEE standard. Acest lucru înseamnă că atât modelul de securitate al serverului de aplicații, cât și JAAS sau alte implementări ACL pot fi utilizate cu cadrul JSF fără niciun efort de integrare.” O preocupare de securitate pentru aplicațiile care implementează JSF este reprezentată de problemele de control al accesului și autorizare.
JSP
JavaServer Pages (JSP) este construit pe baza Servlet API și permite încorporarea de cod Java care este compilat și apoi executat atunci când se primește o cerere. O amenințare comună la adresa codului JSP este cross-site scripting (XSS).
Vulnerabilități de securitate Java
În timp ce platforma Java include numeroase caracteristici concepute pentru a îmbunătăți securitatea aplicațiilor Java, este esențial pentru dezvoltatori să se asigure că codul lor Java este lipsit de vulnerabilități încă din primele etape ale ciclului de viață al dezvoltării software. Evitarea greșelilor de securitate Java, cum ar fi faptul de a nu restricționa accesul la clase și variabile, de a nu finaliza clasele, de a se baza pe scoop-ul pachetului și altele, reprezintă cel mai bun punct de plecare în securizarea codului Java; de asemenea, este important ca dezvoltatorii să se familiarizeze cu amenințările de securitate comune cu care se confruntă codul Java, precum și cu cadrele Java. Pentru mai multe informații despre securizarea codului Java în timpul dezvoltării, citiți aici 9 greșeli de securitate pe care fiecare dezvoltator Java trebuie să le evite.
Vulnerabilități de securitate Java cu risc ridicat:
Cu peste 95% din toate desktopurile de întreprindere din lume care rulează Java, există consecințe grave atunci când vulnerabilitățile din codul Java ajung în producție și sunt exploatate de părți rău intenționate. Următoarea este o listă a unora dintre amenințările cu risc ridicat cu care se confruntă aplicațiile scrise în Java:
- Injecții de cod
- Injecții de comenzi
- Injecție de șir de conexiuni
- Injecție de șiruri de conexiuni
- InjecțieLDAP
- XSS reflectat
- Resurse Injection
- Second Order SQL Injection
- SQL Injection
- Stored XSS
- XPath Injection
Securing your Java
Checkmarx’s CxSAST, o soluție de analiză statică a codului, se evidențiază printre soluțiile de testare Java nu numai ca fiind soluția care vă va menține codul Java fără probleme de securitate și conformitate, ci și ca instrument care va contribui la progresul organizației dumneavoastră în ceea ce privește maturitatea securității aplicațiilor.
CxSAST funcționează cu instrumentele pe care dezvoltatorii dvs. le folosesc deja, deoarece se integrează perfect cu majoritatea programelor de dezvoltare comune disponibile în fiecare etapă a SDLC. Caracteristicile CxSAST, cum ar fi scanarea incrementală a codului și cea mai bună locație de remediere, l-au făcut ideal pentru orice mediu de dezvoltare continuă de integrare continuă (CICD).
Când sunt detectate vulnerabilități în codul Java, CxSAST nu numai că va identifica cea mai bună locație de remediere, dar va oferi, de asemenea, resurse dezvoltatorului pentru a înțelege modul în care funcționează vectorul de atac, precum și sfaturi de remediere care îl vor ajuta să se asigure că greșeli similare sunt evitate în viitor.
.