Java ottiene costantemente una cattiva reputazione quando si tratta di sicurezza, ma considerando che la metà delle applicazioni aziendali negli ultimi 15 anni sono state scritte con questo linguaggio, la sua pervasività (e i vettori di attacco comunemente noti) può essere più da biasimare delle sole debolezze di sicurezza intrinseche di Java. Detto questo, si stanno sviluppando nuovi approcci (ad esempio, Rask, Waratek) per migliorare la sicurezza delle applicazioni web Java a livello di Java Virtual Machine (JVM), ma per la maggior parte delle organizzazioni, l’istituzione di difese di sicurezza tradizionali per le applicazioni Java può aiutare a proteggere dalla maggior parte degli exploit legati a Java.
A causa dell’ubiquità di Java, una gestione completa delle vulnerabilità degli strumenti e delle tecnologie legate a Java è fondamentale per mantenere una forte sicurezza, sia che si stia eseguendo una pipeline CI/CD completa o un paio di applicazioni web aziendali interne. Le seguenti sono le 10 principali vulnerabilità della tecnologia Java, per includere strumenti e applicazioni popolari per supportare lo sviluppo di applicazioni basate su Java.
JUnit
Questo framework per i test unitari è un elemento standard nel toolkit della maggior parte degli sviluppatori Java, permettendo un test rapido e automatizzato della codebase. Tuttavia, i file JUnit che vengono forniti con altre applicazioni possono nascondere vulnerabilità. Per esempio, le versioni del Google Web Toolkit (GWT) prima della 2.5.1 RC contengono vulnerabilità multiple di cross-site scripting (XSS).
Jenkins
Come il server di integrazione continua (CI) più comunemente usato sul mercato, Jenkins ha un grande seguito tra gli sviluppatori Java. Sfortunatamente, la popolarità come strumento di integrazione continua di solito significa più vulnerabilità ed exploit e nel caso di Jenkins, esistono vulnerabilità multiple XSS, cross-site request forgery (CSRF) e denial-of-service (Dos).
Hibernate
Popolare framework ORM Hibernate è comunemente usato tra gli sviluppatori Java per mappare oggetti di database relazionali come tabelle in classi Java. Le versioni 4.1.0 prima della 4.2.1, 4.3.x prima della 4.3.2, e 5.x prima della 5.1.2 dello strumento open source contengono una vulnerabilità che può permettere agli aggressori di bypassare Java Security Manager (JSM).
Maven
Apache Maven è un build manager ampiamente utilizzato per i progetti Java, che permette la gestione centrale della compilazione di un progetto, dei rapporti e della documentazione. Una vulnerabilità in Apache Maven 3.0.4 permette agli hacker remoti di spoofare i server in un attacco man-in-the-middle.
Tomcat
Questo popolare web application server Java è stato un favorito perenne tra gli sviluppatori per costruire servlet e applicazioni con JavaServer Pages. Ben oltre un decennio di vita, Tomcat ha accumulato una gamma relativamente impressionante di lacune di sicurezza, da XSS a vulnerabilità CSRF, molte delle quali sono state sfruttate in natura.
Java 7
Nonostante l’ingresso di Java 8 l’anno scorso, Java 7 è ancora in uso predominante, anche se si prevede che entro il 2016 la versione 8 sarà in testa. Va da sé che qualsiasi versione di Java inferiore alla 7 dovrebbe essere aggiornata immediatamente – anche la versione 7 ha bisogno di un rimedio significativo per il suo parco di vulnerabilità.
Spring Framework
Spring è un framework di applicazioni con il proprio framework model-view-controller per Java, permettendo la separazione di input, business e logica UI. Un progetto open source, Spring non è senza la sua giusta quota di vulnerabilità documentate.
JavaServer Faces
JavaServer Faces (JSF) è un framework di presentazione per Java che facilita lo sviluppo di elementi di interfaccia utente riutilizzabili. Una vulnerabilità in Apache MyFaces Core 2.0.x prima della 2.0.12 e 2.1.x prima della 2.1.6 può dare agli attaccanti remoti la possibilità di leggere file arbitrari.
Eclipse IDE
Eclipse è un popolare strumento desktop per costruire applicazioni web in Java, ed è stato l’ambiente di sviluppo integrato (IDE) preferito dagli sviluppatori Java per anni. Sfortunatamente, alcune versioni dei suoi file di aiuto – di tutte le cose – sono vulnerabili agli exploit legati a XSS.
Vaadin
Vaadin è un popolare framework Java per la costruzione di applicazioni web Java contemporanee – pensate alle moderne applicazioni web a pagina singola basate su Java. Una vulnerabilità XSS nel framework può consentire agli aggressori remoti di iniettare script arbitrari nelle pagine.
Rimedio
Per risolvere le vulnerabilità di cui sopra, è necessario identificare quali di queste tecnologie sono utilizzate nel proprio ambiente e visitare il sito web del rispettivo fornitore/progetto per informazioni su aggiornamenti e patch. UpGuard può trovare tutti questi elementi automaticamente con pochi clic del mouse. Inoltre, la nostra politica modificabile sulle vulnerabilità Java può crescere per ospitare qualsiasi controllo personalizzato per ulteriori strumenti Java. Fate una prova oggi stesso, è gratis.