Turing: impatto sulla completezza della sicurezza del sistema

3

Trovo sempre in molti articoli che discutono di diversi tipi di argomenti relativi alla sicurezza del sistema che gli autori cercano sempre di evidenziare il pericolo di alcune vulnerabilità assumendo che un utente malintenzionato, sfruttandoli, possa raggiungere la completezza di Turing. Qual è la completezza di Turing e qual è il pericolo dietro di esso se raggiunto da un utente malintenzionato?

    
posta Ahmed 20.04.2018 - 10:22
fonte

2 risposte

1

Un exploit che fornisce un ambiente di esecuzione completo di turing consente all'aggressore di eseguire qualsiasi algoritmo che desiderano. Non saranno limitati dal numero di istruzioni disponibili.

Un sistema di regole di manipolazione dei dati (script, programma, set di istruzioni, ecc.) è considerato completo da turing se può essere usato per simulare un Turing machine . L'equivalenza di Turing afferma che due costrutti completi di turing sono identici nelle loro capacità. In altre parole, se qualcuno può eseguire il codice completo di turing su un computer vulnerabile, può calcolare qualsiasi , limitando i limiti delle risorse. La tesi di Church-Turing congettura che una macchina di Turing può calcolare qualsiasi valore che può essere calcolato anche da un algoritmo. Dall'articolo di Wikipedia:

To show that something is Turing complete, it is enough to show that it can be used to simulate some Turing complete system. For example, an imperative language is Turing complete if it has conditional branching (e.g., "if" and "goto" statements, or a "branch if zero" instruction; see one instruction set computer) and the ability to change an arbitrary amount of memory (e.g., the ability to maintain an arbitrary number of variables). Since this is almost always the case, most if not all imperative languages are Turing complete if the limitations of finite memory are ignored.

Questo è particolarmente rilevante nel caso di ROP , una tecnica di sfruttamento in cui il codice esistente viene eseguito fuori -ordine. Un programma vulnerabile sufficientemente complesso può creare un ROP completo di turing, il che significa che l'attaccante non è limitato solo a determinati tipi di calcolo.

Quindi, perché importa qualcosa di astratto come la computazione , piuttosto che le funzionalità del programma sfruttato? Immagina se tu avessi accesso a una shell, eseguendo come root. Ovviamente root può fare praticamente tutto, ma cosa succede se l'unica cosa che si può fare sulla shell è eseguire echo , id e cd ? Nessuna dichiarazione if , nessuna mv , nessuna sed ... Sarai piuttosto limitato in quello che puoi fare. Questo scenario non sarebbe completo perché non hai abbastanza comandi per renderlo completo. Una catena ROP completa di turing è un concetto simile, ma anziché utilizzare i comandi di shell, utilizza il codice macchina. Se puoi solo eseguire alcune istruzioni, non puoi fare molto.

    
risposta data 20.04.2018 - 10:27
fonte
0

La completezza di Turing significa fondamentalmente che gli attaccanti possono fare ciò che vogliono all'interno dell'applicazione. È lo stesso di poter eseguire codice arbitrario .

La macchina completa di Turing è nella teoria dell'informazione una macchina in grado di calcolare qualsiasi problema risolvibile. In pratica, di solito significa che gli attaccanti possono eseguire codice arbitrario sulla tua macchina. In alcuni casi, ci possono essere altri modi per ottenere l'accesso completo a Turing, ma le implicazioni sono le stesse. Una vulnerabilità che non offre agli attaccanti la completezza di Turing può porre alcuni problemi più limitati. Si consideri, ad esempio, che un overflow del buffer in un'applicazione bancaria consente agli aggressori di modificare il proprio saldo, ma non consente loro di modificare la cronologia delle transazioni. Questo tipo di vulnerabilità sarebbe negativo, dato che il saldo corretto potrebbe essere ricalcolato dalla cronologia delle transazioni, non sarebbe così male come l'accesso completo a Turing completo.

    
risposta data 20.04.2018 - 10:30
fonte

Leggi altre domande sui tag