Qual è la storia di Java Vulnerabilities?

1

Ho sempre apprezzato il linguaggio Java. È conosciuto come una piattaforma molto sicura e molte banche lo usano nelle loro applicazioni web.

Volevo costruire un progetto per la mia scuola e ho discusso le opzioni con alcuni sviluppatori. Tuttavia, uno di loro ha affermato che dovremmo ignorare Java a causa delle vulnerabilità riportate di recente in esso.

Per questo motivo voglio essere sicuro, qual è la storia dietro a questo e ciò significa che Java oggi considerato non molto sicuro come in precedenza?

    
posta Maryam 15.09.2013 - 14:54
fonte

2 risposte

17

Ecco di cosa parla lo sviluppatore. Vedi qui e qui per un elenco di vulnerabilità nel motore di runtime stesso. Se scorri fino alla fine di questa pagina e alla pagina successiva troverai più vulnerabilità che potrebbero essere rilevanti, a seconda di cosa c'è nel tuo stack software.

Perché?

Innanzitutto devi capire che Java è sia un server che un client. Come client, tenta di eseguire in modo accuratamente sandbox in cui il codice reciprocamente non attendibile può essere eseguito nello stesso spazio. Questo è un problema molto difficile, ed è usato in abbastanza "obiettivi molto interessanti" che sono stati fatti molti sforzi per infrangerlo. Il risultato è che la maggior parte dei browser ti darà grandi avvisi di sicurezza prima di abilitare Java. È semplicemente troppo facile per un utente malintenzionato inviarti qualcosa che, quando è gestito da JRE, farà ufficialmente cose cattive che il modello di sicurezza ha detto che non dovrebbe fare.

Generalmente le persone non eseguono codice non affidabile su un server, quindi la maggior parte di esse non si applica a te.

Naturalmente ci sono ancora vulnerabilità che si applicano. Ma qui abbiamo una domanda più complessa. È meglio avere vulnerabilità che si applicano a te, ma che trovi? O non conoscere le vulnerabilità che ti riguardano?

Java è un target di alto profilo, utilizzato in applicazioni di alto profilo. Quindi un sacco di sforzi va nella ricerca di bug. Ci sono molti bug pubblici. Che vanno in strumenti di attacco automatico. Che qualsiasi bambino possa usare, e qualsiasi amministratore decente può difendersi. Ma un tester di penetrazione avrà più difficoltà a trovarne uno nuovo che nessun altro ha già trovato.

Se usi uno stack software meno conosciuto, è probabile che ci siano un numero simile di bug, ma è stato fatto meno sforzo nel trovarli. Ciò significa che un bambino a caso con uno strumento di attacco che conosce un elenco di bug ha meno probabilità di trovare qualcosa. Ma qualsiasi penetrometro che esamina il tuo stack software avrà una giornata campale alla ricerca di attacchi a cui non puoi difenderti perché non li conosci.

Se stai scrivendo un'applicazione di alto profilo (software bancario, ecc.), devi assumere che gli attaccanti competenti sono un dato di fatto. Quindi qualcosa come Java ha senso lì. Se sei un avvio di piccole dimensioni, Java potrebbe non avere senso, ma onestamente per una startup, quanto sia vulnerabile la tua lingua è uno dei tuoi problemi meno importanti. Essere abbastanza grandi da farti attaccare da qualcuno sarebbe un buon problema.

E, a dire il vero, chiunque voglia entrare nel tuo sito si guarderà intorno per le iniezioni SQL ovvie e simili. La maggior parte dei quali sarà colpa tua, e non per colpa del tuo venditore. In realtà, la tua lingua non sarà la tua fonte principale di problemi di sicurezza. La tua programmazione è. Né è la tua seconda fonte di problemi di sicurezza. La tua errata configurazione dei tuoi sistemi è.

In breve, ci sono molti motivi per usare o non usare Java. (Personalmente evito la lingua.) Ma la sicurezza non è un buon motivo per stare alla larga, nonostante il gran numero di noti problemi di sicurezza.

    
risposta data 15.09.2013 - 16:57
fonte
6

Le vulnerabilità esistono in qualsiasi grande software. Java non è il solo a questo riguardo.

Sistemi operativi (Windows, osX, Android, Linux - praticamente tutti i sistemi operativi) e molti runtime hanno avuto e avranno rilevato vulnerabilità.

Quello che hai ottenuto era l'opinione di una persona - questo non lo rende universalmente d'accordo. Dire che una lingua deve essere ignorata perché ci sono state scoperte vulnerabilità (nel linguaggio, nella sua "implementazione, nelle librerie e / o nel runtime comuni) manca il punto - ogni lingua principale è stata soggetta a qualche forma di collegamento (C e sovraccarico del buffer, .NET ha le sue serie di problemi ecc ... ecc ... ecc ...).

In breve - quindi c'erano vulnerabilità recenti. Presumibilmente sono stati riparati o riparati in un aggiornamento. Non significa che la lingua non è più adatta all'uso.

    
risposta data 15.09.2013 - 15:13
fonte

Leggi altre domande sui tag