Risorse per conoscere l'allocazione e la sicurezza della memoria

2

Esistono buone risorse online per raccogliere informazioni su come le allocazioni di memoria influiscono sulla sicurezza?

È una nuova area per me, e qualsiasi suggerimento su dove iniziare sarebbe apprezzato.

    
posta Ayrx 30.05.2012 - 11:18
fonte

3 risposte

2

Ho visto cosa hai fatto lì, chiedendo informazioni sull'assegnazione della memoria & sicurezza poi menzionando puntatori;)

Secondo me, il modo migliore per iniziare a imparare a memoria (in generale) è scrivere codice. Non sono sicuro che ci sia un altro modo per avvicinarsi a questo. Non solo un codice, trovare un linguaggio che impone la gestione della memoria sul programmatore, nessun ambiente gestito come Java o .NET Framework. Questi sono ottimi linguaggi per RAD, ma non forniscono gli aspetti di livello inferiore che sarebbero necessari. Raccomando C o C ++. Ulteriori informazioni su puntatori, riferimenti penzolanti, allocazione dinamica della memoria e amp; deallocazione, ecc.

L'assemblaggio è un linguaggio fantastico se vuoi imparare i dettagli del funzionamento del software, ma è anche difficile da comprendere. Tuttavia, non è necessario essere in grado di scrivere codice assembly. Basta prendere alcuni documenti sulla lingua e garantisco che aumenterai notevolmente la tua comprensione della memoria.

A volte l'unico modo per capire veramente come funziona qualcosa, è smontarlo. Raccogli un libro sull'architettura del sistema operativo come Sistemi operativi - Progettazione e implementazione o un libro di ingegneria inversa Inversione: segreti dell'ingegneria inversa . Prendete alcune cose a parte, familiarizzate con un debugger e analizzate le applicazioni in esecuzione in memoria. Inizia a giocare con i punti di interruzione e guarda cosa ti dice il tuo debugger su cosa sta succedendo.

In conclusione, il modo migliore secondo me per conoscere la memoria è di essere responsabile della sua gestione. Inizia lento, impara il C ++ e lavora per cose più difficili.

link

    
risposta data 02.06.2012 - 06:04
fonte
2

Buffer Overflow potrebbe essere ciò a cui stai cercando di fare riferimento. Una volta che hai capito esattamente che cosa vuoi imparare, potresti voler costruire il tuo ambiente di test per osservare come funziona. DVWA è un ottimo punto di partenza.

    
risposta data 02.06.2012 - 05:42
fonte
1

L'allocatore di memoria può influenzare la sicurezza nel modo seguente: la scelta dell'allocazione di memoria può influenzare la facilità o la difficoltà di sfruttare il sovraccarico del buffer e altre vulnerabilità legate alla sicurezza della memoria.

Ad esempio, randomizzare la posizione in cui gli oggetti sono allocati può interferire con gli exploit che si basano su questi oggetti per essere in posizioni prevedibili, sconfiggendo così l'aggressore. Pertanto, un allocatore di memoria ben progettato può svolgere un ruolo nell'implementazione dell'ASLR ( randomizzazione del layout dello spazio indirizzo ). In generale, un allocatore di memoria può potenzialmente aiutare a difendersi da alcuni "exploit di heap".

Consulta, ad esempio, i seguenti documenti di ricerca per alcuni lavori sulla creazione di allocatori di memoria temprati che rendono più difficile sfruttare questo tipo di vulnerabilità:

Ecco alcune ulteriori informazioni su come i sistemi operativi distribuiti implementano queste idee:

risposta data 03.06.2012 - 06:36
fonte

Leggi altre domande sui tag