A Java következetesen rossz hírnévre tesz szert, ha a biztonságról van szó – de figyelembe véve, hogy az elmúlt 15 évben a vállalati alkalmazások felét ezzel a nyelvvel írták, a nyelv elterjedtsége (és a közismert támadási vektorok) sokkal inkább okolható, mint a Java eredendő biztonsági gyengeségei önmagukban. Ennek ellenére új megközelítéseket dolgoznak ki (pl. Rask, Waratek) a Java webes alkalmazások biztonságának javítására a Java virtuális gép (JVM) szintjén, de a legtöbb szervezet számára a Java-alkalmazások hagyományos biztonsági védelmének bevezetése segíthet megvédeni a Java-hoz kapcsolódó támadások többségét.
A Java mindenütt jelenléte miatt a Java-hoz kapcsolódó eszközök és technológiák átfogó sebezhetőségi kezelése elengedhetetlen az erős biztonság fenntartásához – akár egy teljes CI/CD csővezetékről, akár néhány belső vállalati webes alkalmazásról van szó. Az alábbiakban bemutatjuk a 10 legfontosabb Java-technológiai sebezhetőséget, a Java-alapú alkalmazásfejlesztést támogató eszközöket és népszerű alkalmazásokat.
JUnit
Ez az egységtesztelési keretrendszer a legtöbb Java-fejlesztő eszköztárának standard eleme, amely lehetővé teszi a kódbázis gyors és automatizált tesztelését. A más alkalmazásokhoz mellékelt JUnit fájlok azonban sebezhetőségeket rejthetnek magukban. Például a Google Web Toolkit (GWT) 2.5.1 RC előtti verziói több XSS (cross-site scripting) sebezhetőséget tartalmaznak.
Jenkins
A Jenkins a piacon leggyakrabban használt folyamatos integrációs (CI) szerverként ennek megfelelően nagy népszerűségnek örvend a Java-fejlesztők körében. Sajnos a folyamatos integrációs eszközként való népszerűség általában több sebezhetőséget és exploitot jelent – és a Jenkins esetében több XSS, cross-site request forgery (CSRF) és denial-of-service (Dos) sebezhetőség is létezik.
Hibernate
A népszerű ORM keretrendszert, a Hibernate-et a Java fejlesztők körében gyakran használják relációs adatbázis-objektumok, például táblázatok Java osztályokra való leképezésére. A nyílt forráskódú eszköz 4.1.0 és 4.2.1 előtti, 4.3.x és 4.3.2 előtti, valamint 5.x és 5.1.2 előtti verziói olyan sebezhetőséget tartalmaznak, amely lehetővé teszi a támadók számára a Java Security Manager (JSM) megkerülését.
Maven
Apache Maven egy széles körben használt build manager Java projektekhez, amely lehetővé teszi egy projekt buildjének, jelentésének és dokumentációjának központi kezelését. Az Apache Maven 3.0.4-ben található sebezhetőség lehetővé teszi, hogy távoli hackerek egy man-in-the-middle támadás során meghamisítsák a szervereket.
Tomcat
Ez a népszerű Java webes alkalmazáskiszolgáló a fejlesztők örök kedvence a szervletek és a JavaServer Pages alkalmazásainak építéséhez. A jóval több mint egy évtizedes Tomcat az XSS-től a CSRF sebezhetőségekig viszonylag lenyűgöző mennyiségű biztonsági rést halmozott fel – ezek közül sokat már a vadonban is kihasználtak.
Java 7
A Java 8 tavalyi belépése ellenére még mindig a Java 7 van túlsúlyban – bár várhatóan 2016-ra a 8-as verzió lesz a vezető. Magától értetődik, hogy a Java minden 7 alatti verzióját azonnal frissíteni kell – még a 7-es verzió is jelentős javításra szorul a sebezhetőségek flottája miatt.
Spring Framework
A Spring egy saját modell-nézet-vezérlő keretrendszerrel rendelkező alkalmazás-keretrendszer a Java számára, amely lehetővé teszi a bemeneti, üzleti és felhasználói felület logikájának szétválasztását. A nyílt forráskódú Spring projekt nem mentes a dokumentált sebezhetőségektől.
JavaServer Faces
A JavaServer Faces (JSF) egy prezentációs keretrendszer Java számára, amely megkönnyíti az újrafelhasználható felhasználói felületelemek fejlesztését. Az Apache MyFaces Core 2.0.x 2.0.12 és 2.1.x 2.1.6 előtti verziójában található sebezhetőség távoli támadóknak lehetőséget adhat tetszőleges fájlok olvasására.
Eclipse IDE
Az Eclipse egy népszerű asztali eszköz webes alkalmazások Java nyelven történő építéséhez, és évek óta a Java fejlesztők kedvelt integrált fejlesztési környezeteként (IDE) szolgál. Sajnos a súgófájljainak bizonyos verziói – mindenekelőtt – sebezhetőek az XSS-sel kapcsolatos exploitokkal szemben.
Vaadin
A Vaadin egy népszerű Java keretrendszer a kortárs Java webes alkalmazások építéséhez – gondoljunk csak a modern, egyoldalas webes alkalmazásokra, amelyeket Java hajt. A keretrendszerben található XSS sebezhetőség lehetővé teszi a távoli támadók számára, hogy tetszőleges szkripteket juttassanak be az oldalakba.
Kármentesítés
A fenti sebezhetőségek kijavításához azonosítania kell, hogy az Ön környezetében mely technológiákat használja, és fel kell keresnie az adott gyártó/projekt weboldalát a frissítési/javítási információkért. Az UpGuard néhány egérkattintással automatikusan megtalálja az összes ilyen elemet. Továbbá, a szerkeszthető Java sebezhetőségi házirendünk bővíthető a további Java-eszközökre vonatkozó egyéni ellenőrzésekkel. Próbálja ki még ma – ingyenesen.