Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Java

Le vulnerabilità delle applicazioni scritte in Java
Le vulnerabilità delle applicazioni scritte in Java
Link copiato negli appunti

Java è un linguaggio progettato da Sun Microsystem agli inizi degli anni 90 con l'intento di risolvere alcuni dei problemi insiti nella programmazione tradizionale.

In effetti, grazie anche ad un buon disegno progettuale, questo linguaggio può dirsi effettivamente in grado di impedire quei classici errori del programmatore che possono condurre a ben più seri problemi di sicurezza, come ad esempio i buffer overflow, e ciò perché si tratta di un linguaggio che non permette di accedere né tantomeno manipolare gli indirizzi di memoria attraverso i puntatori.

Inoltre questa non è l'unica caratteristica di sicurezza poiché Java è un linguaggio fortemente tipizzato e la sua rigidità in fatto di tipi è rafforzata sia in fase di compilazione sia in fase di esecuzione del codice attraverso la Java Virtual Machine ed un verificatore di bytecode che ha il compito di proteggere le aree di memoria alle quali il programma accede.

La stessa Java Virtual Machine si caratterizza per la presenza di un Security Manager che impone un controllo sulla legittimità dell'accesso alle risorse di sistema sulla base di criteri di protezione che possono essere definiti e modellati dall'utente in base alle sue esigenze reali.

L'insieme di tutte queste peculiarità ha fatto sì che, nel corso di quest'ultimo decennio, Java si dimostrasse un linguaggio sicuro almeno dal punto di vista formale.

Ciò che invece ha causato i maggiori problemi in termini di sicurezza sono state alcune implementazioni della Java Virtual Machine, forse non completamente aderenti alle specifiche del linguaggio, fornite da alcune note case produttrici di software per Internet.

In particolare nel corso del 1999 è stato scoperto un bug nella implementazione della JVM di Netscape Communicator che impediva alla Java Virtual Machine di controllare tutto il codice caricato con la conseguente possibilità per un eventuale aggressore di eseguire codice Java in violazione dei criteri di protezione fissati.

Lo stesso tipo di difetto nella implementazione della sandbox della JVM ha afflitto anche il browser Microsoft Internet Explorer.

Nel corso invece del 2000 ulteriori difetti sono stati riscontrati nelle implementazioni Java di Netscape Communicator, nelle versioni dalla 4.0 alla 4.74 per le piattaforme Windows, Macintosh e Unix.

Questi difetti riguardano alcune classi Java, tra cui java.net.Socket, netscape.net.URLConnection e netscape.net.URLInputStream, che esponevano metodi che, o non richiamavano esplicitamente il metodo check del SecurityManager per verificare se un applet fosse in possesso delle autorizzazioni necessarie, oppure ignoravano l'eccezione risultante nel caso in cui la verifica fallisse.

Peraltro un proof-of-concept di questi bug è stato prodotto e denominato "BrownOrifice" ed è disponibile all'indirizzo http://www.brumleve.com/BrownOrifice/.

Ti consigliamo anche