È possibile sfruttare C #, Java, Python o qualsiasi linguaggio in esecuzione su VM (ovvero runtime gestito)

0

È possibile sfruttare un'applicazione vulnerabile in esecuzione in una macchina virtuale di elaborazione ?

Supponiamo di avere una vulnerabilità di overflow del buffer in un'applicazione Java, ma la JVM non è vulnerabile. C'è un modo per sfruttarlo?

    
posta user46969 20.05.2014 - 23:07
fonte

2 risposte

3

Non è possibile avere una vulnerabilità di overflow del buffer in un ambiente di memoria gestita come Java, .Net o Python fornite. Dal momento che il runtime, non gli sviluppatori gestiscono allocazioni di memoria e deallocations, questa classe di vulnerabilità è inesistente.

Detto questo, ci sono vulnerabilità in questi ambienti, ma la JVM (o equivalente) è relativamente immateriale. Ad esempio, Java ha problemi a impedire alle applet di sfuggire alla sandbox e ASP.NET ha sofferto di un oracle di riempimento .

Quindi, qualsiasi linguaggio offre il potenziale per gli exploit in abbondanza. I linguaggi a memoria gestita eliminano semplicemente le vulnerabilità specifiche della gestione manuale della memoria, come i buffer overflow. Anche questo, tuttavia, è vero solo all'interno dell'ambiente di runtime. Java consente di eseguire codice non sicuro all'esterno della JVM tramite JNI e .Net offre lo stesso tramite P / Invoke o COM-Interop. Di nuovo, in questi casi, il runtime non è significativo, in quanto viene completamente ignorato.

    
risposta data 21.05.2014 - 00:49
fonte
1

Se un'applicazione è vulnerabile, è per definizione sfruttabile. Tu dici che un'app è "vulnerabile", ma in realtà è una riduzione della frase "vulnerabile allo sfruttamento". I due concetti sono approssimativamente sinonimi.

La vulnerabilità prende in considerazione il framework. Non si vedono exploit di overflow del buffer nei programmi Python perché il framework protegge da questo. Ma non protegge in modo implicito da attacchi di iniezione o archiviazione insicura, quindi ti aspetti di vedere gli exploit rivolti a quelle aree.

Si noti che il framework non ha alcuna vulnerabilità; Python non è suscettibile agli attacchi di iniezione, né è Java, ma né il framework protegge contro tali attacchi nello stesso modo in cui lo fanno per i buffer overflow. Quindi, mentre Python non è vulnerabile, potrebbe esserci un programma scritto in Python.

    
risposta data 21.05.2014 - 05:06
fonte

Leggi altre domande sui tag