I linguaggi di programmazione gestiti sono immuni da exploit di esecuzione di codice arbitrario?

2

L'esempio classico dell'esecuzione di codice arbitrario si verifica quando un buffer basato su stack sovrascrive, sovrascrive l'indirizzo di ritorno in modo che il controllo possa saltare nell'attaccante con attenzione nell'impostare i dati per eseguire un codice shell per accedere al sistema.

Se sviluppi in C e scrivi molto codice, alla fine ti rovini da qualche parte e il tuo codice diventa sfruttabile.

Nei linguaggi gestiti come C #, Java, ecc. gli array sono controllati, non hanno puntatori che possono penzolare (sono garbage collection), ecc. Sembra corruzione della memoria, overflow del buffer e altre cose cattive che possono consentire un attaccante subentra nel computer non è possibile dal codice gestito, è vero?

Te lo chiedo perché ho intenzione di abbandonare C e C ++ e di usare C # o Java solo per motivi di sicurezza per le parti in cui le prestazioni non sono critiche.

    
posta Calmarius 01.08.2018 - 18:48
fonte

2 risposte

3

Supponendo che l'implementazione di quelle lingue sia impeccabile, allora è certo. Tuttavia, non è quasi mai il caso. Ad esempio, sono stati rilevati exploit di esecuzione di codice arbitrario per motori JavaScript .
Inoltre, anche con un linguaggio perfettamente "sicuro" puoi comunque essere sfruttato. Una sorgente comune di esecuzione di codice arbitrario proviene da deserializzazione dell'input utente non pubblicizzato .

    
risposta data 01.08.2018 - 18:55
fonte
0

Java soffre di una vulnerabilità di overflow perché gli intervalli di tipi Java non sono simmetrici.

Because the ranges of Java types are not symmetric (the negation of each minimum value is one more than each maximum value), even operations such as unary negation can overflow if applied to a minimum value. Because the java.lang.math.abs() method returns the absolute value of any number, it can also overflow if given the minimum int or long as an argument.

Puoi leggere ulteriori informazioni sul Wiki di codifica sicura di SEI qui: link

    
risposta data 01.08.2018 - 18:58
fonte

Leggi altre domande sui tag